From c30a6232df03e1efbd9f3b226777b07e087a1122 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 12 Oct 2020 14:27:29 +0200 Subject: BASELINE: Update Chromium to 85.0.4183.140 Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen --- chromium/tools/OWNERS | 5 +- .../tools/accessibility/inspect/ax_dump_events.cc | 1 + .../tools/accessibility/inspect/ax_event_server.cc | 1 + .../tools/accessibility/inspect/ax_tree_server.cc | 20 +- .../tools/accessibility/inspect/ax_tree_server.h | 4 - chromium/tools/android/errorprone_plugin/BUILD.gn | 11 +- chromium/tools/android/md5sum/BUILD.gn | 60 +- chromium/tools/binary_size/.style.yapf | 2 + chromium/tools/binary_size/README.md | 3 + chromium/tools/binary_size/diagnose_bloat.py | 6 +- .../binary_size/generate_commit_size_analysis.py | 116 + .../binary_size/generate_milestone_reports.py | 5 +- chromium/tools/binary_size/libsupersize/archive.py | 461 +- .../binary_size/libsupersize/canned_queries.py | 5 +- .../tools/binary_size/libsupersize/caspian/lens.cc | 2 +- chromium/tools/binary_size/libsupersize/console.py | 20 +- .../tools/binary_size/libsupersize/describe.py | 295 +- chromium/tools/binary_size/libsupersize/diff.py | 64 +- .../tools/binary_size/libsupersize/diff_test.py | 80 +- .../tools/binary_size/libsupersize/file_format.py | 148 +- .../tools/binary_size/libsupersize/html_report.py | 12 +- .../binary_size/libsupersize/integration_test.py | 120 +- chromium/tools/binary_size/libsupersize/models.py | 307 +- .../tools/binary_size/libsupersize/parallel.py | 4 +- chromium/tools/check_grd_for_unused_strings.py | 2 +- chromium/tools/checkteamtags/checkteamtags_test.py | 3 - .../tools/checkteamtags/extract_components_test.py | 3 - .../tools/checkteamtags/owners_file_tags_test.py | 3 - chromium/tools/checkteamtags/run_tests | 4 +- .../tools/chrome_proxy/webdriver/decorators.py | 2 +- .../chrome_proxy/webdriver/subresource_redirect.py | 3 + .../clang/blink_gc_plugin/BadPatternFinder.cpp | 59 - .../blink_gc_plugin/BlinkGCPluginConsumer.cpp | 10 +- .../clang/blink_gc_plugin/BlinkGCPluginOptions.h | 2 + .../clang/blink_gc_plugin/DiagnosticsReporter.cpp | 26 - .../clang/blink_gc_plugin/DiagnosticsReporter.h | 7 - .../tools/clang/blink_gc_plugin/process-graph.py | 39 +- chromium/tools/clang/pylib/clang/compile_db.py | 2 +- .../tools/clang/pylib/clang/compile_db_test.py | 6 +- chromium/tools/clang/pylib/clang/plugin_testing.py | 6 +- .../rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp | 857 +- .../manual-fields-to-ignore.txt | 163 + .../tools/clang/rewrite_raw_ptr_fields/rewrite.sh | 88 + chromium/tools/clang/scripts/apply_edits.py | 26 +- chromium/tools/clang/scripts/apply_edits_test.py | 11 + chromium/tools/clang/scripts/build.py | 102 +- chromium/tools/clang/scripts/clang_tidy_tool.py | 14 +- .../tools/clang/scripts/expand_thin_archives.py | 124 +- chromium/tools/clang/scripts/goma_ld.py | 2 + chromium/tools/clang/scripts/goma_link.py | 89 +- .../tools/clang/scripts/goma_link_unit_tests.py | 78 + chromium/tools/clang/scripts/update.py | 4 +- chromium/tools/clang/scripts/upload_revision.py | 3 +- chromium/tools/code_coverage/coverage.py | 31 +- chromium/tools/determinism/OWNERS | 1 + .../determinism/deterministic_build_whitelist.pyl | 3 + chromium/tools/directory_metadata/README.md | 52 + .../directory_metadata/directory_metadata.proto | 42 + .../directory_metadata/directory_metadata_pb2.py | 188 + chromium/tools/fuchsia/local-sdk.py | 4 +- chromium/tools/get_swarming_logs/OWNERS | 2 + chromium/tools/get_swarming_logs/README.md | 4 + chromium/tools/get_swarming_logs/get_all.sh | 46 + chromium/tools/get_swarming_logs/get_one.sh | 26 + chromium/tools/gritsettings/resource_ids.spec | 137 +- .../tools/gritsettings/startup_resources_win.txt | 474 +- .../gritsettings/translation_expectations.pyl | 4 +- chromium/tools/imagediff/image_diff.cc | 2 +- chromium/tools/imagediff/image_diff_png.cc | 10 +- chromium/tools/infra/OWNERS | 1 - chromium/tools/infra/clobber_cache_utils.py | 19 +- .../ipc_fuzzer/message_lib/message_file_format.h | 2 +- .../tools/ipc_fuzzer/message_lib/message_names.h | 2 +- .../tools/ipc_fuzzer/message_tools/message_util.cc | 3 +- .../tools/ipc_fuzzer/scripts/ipc_fuzzer_gen.py | 2 +- .../tools/ipc_fuzzer/scripts/ipc_fuzzer_mut.py | 2 +- chromium/tools/ipc_fuzzer/scripts/utils.py | 2 +- .../tools/json_schema_compiler/cc_generator.py | 3 +- chromium/tools/json_schema_compiler/code.py | 10 +- chromium/tools/json_schema_compiler/code_test.py | 8 +- .../json_schema_compiler/features_cc_generator.py | 2 +- chromium/tools/json_schema_compiler/h_generator.py | 1 - .../json_schema_compiler/js_externs_generator.py | 29 +- .../js_externs_generator_test.py | 91 +- .../js_interface_generator_test.py | 4 +- chromium/tools/json_schema_compiler/js_util.py | 31 +- chromium/tools/licenses.py | 47 +- chromium/tools/mb/mb.py | 100 +- chromium/tools/mb/mb_config.pyl | 282 +- chromium/tools/mb/mb_unittest.py | 17 +- chromium/tools/md_browser/OWNERS | 4 +- chromium/tools/metrics/BUILD.gn | 6 + chromium/tools/metrics/actions/README.md | 5 +- chromium/tools/metrics/actions/actions.xml | 643 +- chromium/tools/metrics/histograms/OWNERS | 1 + chromium/tools/metrics/histograms/README.md | 50 +- chromium/tools/metrics/histograms/enums.xml | 2109 +++- .../tools/metrics/histograms/histogram_paths.py | 19 +- chromium/tools/metrics/histograms/histograms.xml | 10982 +++++++++++++++---- chromium/tools/metrics/histograms/merge_xml.py | 46 +- .../tools/metrics/histograms/merge_xml_test.py | 160 + .../tools/metrics/histograms/populate_enums.py | 72 + .../metrics/histograms/print_histogram_names.py | 76 +- .../tools/metrics/histograms/test_data/enums.xml | 26 + .../metrics/histograms/test_data/histograms.xml | 44 + .../tools/metrics/histograms/test_data/ukm.xml | 44 + chromium/tools/metrics/ukm/builders_template.py | 13 +- chromium/tools/metrics/ukm/gen_builders_test.py | 2 + chromium/tools/metrics/ukm/ukm.xml | 850 +- chromium/tools/origin_trials/check_token.py | 17 +- chromium/tools/origin_trials/generate_token.py | 45 +- .../tools/perf/chrome_telemetry_build/BUILD.gn | 19 +- chromium/tools/perf/contrib/vr_benchmarks/BUILD.gn | 6 +- chromium/tools/polymer/polymer.py | 11 +- chromium/tools/polymer/polymer_test.py | 74 +- chromium/tools/protoc_wrapper/protoc_wrapper.py | 8 + chromium/tools/resources/ar.py | 96 + .../tools/resources/generate_resource_whitelist.py | 36 +- chromium/tools/run-swarmed.py | 71 +- .../style_variable_generator/base_generator.py | 116 +- .../base_generator_test.py | 60 + .../colors_test_dark_only_expected.css | 19 + .../colors_test_expected.css | 8 + .../colors_test_expected.h | 3 + .../style_variable_generator/css_generator.py | 29 +- .../style_variable_generator/css_generator.tmpl | 16 +- .../style_variable_generator/css_generator_test.py | 7 + .../style_variable_generator/path_overrides.py | 16 + .../style_variable_generator.gni | 1 - .../style_variable_generator.py | 5 + .../style_variable_generator/views_generator.py | 13 +- .../views_generator_h.tmpl | 5 + .../traffic_annotation/auditor/auditor_result.cc | 1 + .../auditor/traffic_annotation_auditor_ui.cc | 1 + .../auditor/traffic_annotation_auditor_unittest.cc | 1 + .../auditor/traffic_annotation_exporter.cc | 1 + .../traffic_annotation/summary/annotations.xml | 10 +- chromium/tools/translation/helper/grd_helper.py | 5 +- .../translation/helper/grd_helper_unittest.py | 2 +- chromium/tools/update_pgo_profiles.py | 16 +- chromium/tools/variations/fieldtrial_to_struct.py | 3 + .../variations/unittest_data/expected_output.cc | 10 + .../variations/unittest_data/expected_output.h | 1 + chromium/tools/vscode/launch.json5 | 10 +- chromium/tools/vscode/tasks.json5 | 6 +- chromium/tools/win/IdleWakeups/IdleWakeups.vcxproj | 10 +- .../tools/win/chromeexts/chrome_exts_command.cc | 2 +- chromium/tools/win/trace-sandbox-viewer.py | 212 + chromium/tools/xdisplaycheck/xdisplaycheck.cc | 2 +- 149 files changed, 17107 insertions(+), 4193 deletions(-) create mode 100755 chromium/tools/binary_size/generate_commit_size_analysis.py create mode 100644 chromium/tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt create mode 100755 chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh create mode 100644 chromium/tools/directory_metadata/README.md create mode 100644 chromium/tools/directory_metadata/directory_metadata.proto create mode 100644 chromium/tools/directory_metadata/directory_metadata_pb2.py create mode 100644 chromium/tools/get_swarming_logs/OWNERS create mode 100644 chromium/tools/get_swarming_logs/README.md create mode 100755 chromium/tools/get_swarming_logs/get_all.sh create mode 100755 chromium/tools/get_swarming_logs/get_one.sh create mode 100644 chromium/tools/metrics/histograms/merge_xml_test.py create mode 100644 chromium/tools/metrics/histograms/populate_enums.py create mode 100644 chromium/tools/metrics/histograms/test_data/enums.xml create mode 100644 chromium/tools/metrics/histograms/test_data/histograms.xml create mode 100644 chromium/tools/metrics/histograms/test_data/ukm.xml create mode 100755 chromium/tools/resources/ar.py create mode 100644 chromium/tools/style_variable_generator/base_generator_test.py create mode 100644 chromium/tools/style_variable_generator/colors_test_dark_only_expected.css create mode 100644 chromium/tools/style_variable_generator/path_overrides.py create mode 100644 chromium/tools/win/trace-sandbox-viewer.py (limited to 'chromium/tools') diff --git a/chromium/tools/OWNERS b/chromium/tools/OWNERS index ca46a760d2f..acc41382250 100644 --- a/chromium/tools/OWNERS +++ b/chromium/tools/OWNERS @@ -7,6 +7,7 @@ brucedawson@chromium.org dpranke@chromium.org +dpranke@google.com scottmg@chromium.org thakis@chromium.org @@ -14,7 +15,7 @@ thakis@chromium.org # changes in this directory are rare and most changes happen in better-owned # subdirectories. # -# TEAM: infra-dev@chromium.org +# TEAM: build@chromium.org # COMPONENT: Build per-file autotest.py=mthiesse@chromium.org @@ -38,8 +39,6 @@ per-file include_tracer.py=thakis@chromium.org per-file ipc_messages_log.py=yfriedman@chromium.org -per-file licenses.py=ichikawa@chromium.org - per-file nocompile_driver.py=ajwong@chromium.org per-file nocompile_driver.py=wychen@chromium.org diff --git a/chromium/tools/accessibility/inspect/ax_dump_events.cc b/chromium/tools/accessibility/inspect/ax_dump_events.cc index 0cdf9710b73..97265bb2e4f 100644 --- a/chromium/tools/accessibility/inspect/ax_dump_events.cc +++ b/chromium/tools/accessibility/inspect/ax_dump_events.cc @@ -8,6 +8,7 @@ #include "base/at_exit.h" #include "base/command_line.h" +#include "base/logging.h" #include "base/message_loop/message_pump_type.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" diff --git a/chromium/tools/accessibility/inspect/ax_event_server.cc b/chromium/tools/accessibility/inspect/ax_event_server.cc index 87195f5719b..eafdc7ee18c 100644 --- a/chromium/tools/accessibility/inspect/ax_event_server.cc +++ b/chromium/tools/accessibility/inspect/ax_event_server.cc @@ -5,6 +5,7 @@ #include "tools/accessibility/inspect/ax_event_server.h" #include +#include #include #include "base/bind.h" diff --git a/chromium/tools/accessibility/inspect/ax_tree_server.cc b/chromium/tools/accessibility/inspect/ax_tree_server.cc index fa7e29c43f1..334e4abd7ec 100644 --- a/chromium/tools/accessibility/inspect/ax_tree_server.cc +++ b/chromium/tools/accessibility/inspect/ax_tree_server.cc @@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/files/file_util.h" #include "base/json/json_writer.h" +#include "base/logging.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" @@ -44,25 +45,6 @@ AXTreeServer::AXTreeServer(const base::StringPiece& pattern, Format(*formatter, *dict, filters_path, use_json); } -AXTreeServer::AXTreeServer(base::ProcessId pid, - const base::FilePath& filters_path, - bool use_json) { - std::unique_ptr formatter( - AccessibilityTreeFormatter::Create()); - - // Get accessibility tree as nested dictionary. - base::string16 accessibility_contents_utf16; - std::unique_ptr dict = - formatter->BuildAccessibilityTreeForProcess(pid); - - if (!dict) { - LOG(ERROR) << "Error: Failed to get accessibility tree"; - return; - } - - Format(*formatter, *dict, filters_path, use_json); -} - AXTreeServer::AXTreeServer(gfx::AcceleratedWidget widget, const base::FilePath& filters_path, bool use_json) { diff --git a/chromium/tools/accessibility/inspect/ax_tree_server.h b/chromium/tools/accessibility/inspect/ax_tree_server.h index 57d20c1865a..988ec8d26af 100644 --- a/chromium/tools/accessibility/inspect/ax_tree_server.h +++ b/chromium/tools/accessibility/inspect/ax_tree_server.h @@ -7,7 +7,6 @@ #include -#include "base/process/process_handle.h" #include "build/build_config.h" #include "content/public/browser/accessibility_tree_formatter.h" @@ -19,9 +18,6 @@ namespace content { class AXTreeServer final { public: - AXTreeServer(base::ProcessId pid, - const base::FilePath& filters_path, - bool use_json); AXTreeServer(gfx::AcceleratedWidget widget, const base::FilePath& filters_path, bool use_json); diff --git a/chromium/tools/android/errorprone_plugin/BUILD.gn b/chromium/tools/android/errorprone_plugin/BUILD.gn index 24d5058de83..6f5759ff608 100644 --- a/chromium/tools/android/errorprone_plugin/BUILD.gn +++ b/chromium/tools/android/errorprone_plugin/BUILD.gn @@ -4,7 +4,11 @@ import("//build/config/android/rules.gni") -java_library("errorprone_plugin_java") { +java_binary("errorprone_plugin") { + # main_class and wrapper script are not actually used. + # This target is referenced directly from java_library_impl(). + main_class = "" + wrapper_script_name = "bin/helper/errorprone_plugin" sources = [ # Turned off because of existing code which fails the check # "src/org/chromium/tools/errorprone/plugin/NoContextGetApplicationContext.java", @@ -19,10 +23,7 @@ java_library("errorprone_plugin_java") { # Necessary to avoid dependency cycle enable_errorprone = false - enable_bytecode_rewriter = false - - # So that we don't need to inject jacoco runtime into the compiler's classpath. - jacoco_never_instrument = true + enable_bytecode_checks = false annotation_processor_deps = [ "//third_party/android_deps:auto_service_processor" ] diff --git a/chromium/tools/android/md5sum/BUILD.gn b/chromium/tools/android/md5sum/BUILD.gn index a02a7fbbf91..54f81693e0e 100644 --- a/chromium/tools/android/md5sum/BUILD.gn +++ b/chromium/tools/android/md5sum/BUILD.gn @@ -1,39 +1,49 @@ # Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +if (current_cpu == "arm" || current_cpu == "arm64") { + import("//build/config/arm.gni") +} -import("//build/config/android/config.gni") -import("//build/symlink.gni") +if (is_android) { + import("//build/config/android/config.gni") + import("//build/symlink.gni") -group("md5sum") { - data_deps = [ - ":md5sum_bin_host($default_toolchain)", - ":md5sum_prepare_dist($default_toolchain)", - ] + group("md5sum") { + data_deps = [ + ":md5sum_bin_host($default_toolchain)", + ":md5sum_prepare_dist($default_toolchain)", + ] + + # TODO(cjhopman): Remove once group data_deps are fixed. + deps = data_deps + } - # TODO(cjhopman): Remove once group data_deps are fixed. - deps = data_deps + if (current_toolchain == default_toolchain) { + import("//build/config/android/rules.gni") + + create_native_executable_dist("md5sum_prepare_dist") { + dist_dir = "$root_build_dir/md5sum_dist" + binary = "$root_build_dir/md5sum_bin" + deps = [ ":md5sum_bin" ] + } + + binary_symlink("md5sum_bin_host") { + binary_label = ":md5sum_bin($host_toolchain)" + output_name = "md5sum_bin_host" + } + } +} else { + # We don't need all that stuff for other OSes. + group("md5sum") { + data_deps = [] + } } executable("md5sum_bin") { sources = [ "md5sum.cc" ] deps = [ "//base", - "//third_party/zlib/google:compression_utils", + "//third_party/zlib/google:compression_utils_portable", ] } - -if (current_toolchain == default_toolchain) { - import("//build/config/android/rules.gni") - - create_native_executable_dist("md5sum_prepare_dist") { - dist_dir = "$root_build_dir/md5sum_dist" - binary = "$root_build_dir/md5sum_bin" - deps = [ ":md5sum_bin" ] - } - - binary_symlink("md5sum_bin_host") { - binary_label = ":md5sum_bin($host_toolchain)" - output_name = "md5sum_bin_host" - } -} diff --git a/chromium/tools/binary_size/.style.yapf b/chromium/tools/binary_size/.style.yapf index 5e055c89722..b4ebbe24670 100644 --- a/chromium/tools/binary_size/.style.yapf +++ b/chromium/tools/binary_size/.style.yapf @@ -1,4 +1,6 @@ [style] based_on_style = pep8 + +# New directories should use a .style.yapf that does not include the following: column_limit = 80 indent_width = 2 diff --git a/chromium/tools/binary_size/README.md b/chromium/tools/binary_size/README.md index dda94ba0979..1866ed19257 100644 --- a/chromium/tools/binary_size/README.md +++ b/chromium/tools/binary_size/README.md @@ -342,6 +342,9 @@ tools/binary_size/diagnose_bloat.py HEAD --gn-args="is_official_build=false" -v # Build and diff all contiguous revs in range BEFORE_REV..AFTER_REV for src/v8. tools/binary_size/diagnose_bloat.py AFTER_REV --reference-rev BEFORE_REV --subrepo v8 --all -v +# Build and diff system_webview_apk HEAD^ and HEAD with arsc obfucstion disabled. +tools/binary_size/diagnose_bloat.py HEAD --target system_webview_apk --gn-args enable_arsc_obfuscation=false + # Display detailed usage info (there are many options). tools/binary_size/diagnose_bloat.py -h ``` diff --git a/chromium/tools/binary_size/diagnose_bloat.py b/chromium/tools/binary_size/diagnose_bloat.py index 69dce4fae98..134f99c78a4 100755 --- a/chromium/tools/binary_size/diagnose_bloat.py +++ b/chromium/tools/binary_size/diagnose_bloat.py @@ -500,9 +500,9 @@ class _DiffArchiveManager(object): logging.info('Creating .sizediff') _RunCmd(supersize_cmd) - logging.info('View using a local server via: %s start_server %s', - os.path.relpath(supersize_path), - os.path.relpath(report_path)) + logging.info('Report created: %s', os.path.relpath(report_path)) + logging.info('View it here: ' + 'https://chrome-supersize.firebaseapp.com/viewer.html') def Summarize(self): path = os.path.join(self.archive_dir, 'last_diff_summary.txt') diff --git a/chromium/tools/binary_size/generate_commit_size_analysis.py b/chromium/tools/binary_size/generate_commit_size_analysis.py new file mode 100755 index 00000000000..c32a246a605 --- /dev/null +++ b/chromium/tools/binary_size/generate_commit_size_analysis.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Lint as: python3 +"""Creates files required to feed into trybot_commit_size_checker""" + +import argparse +import os +import logging +import shutil +import subprocess + +_SRC_ROOT = os.path.normpath( + os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)) +_RESOURCE_SIZES_PATH = os.path.join(_SRC_ROOT, 'build', 'android', + 'resource_sizes.py') +_BINARY_SIZE_DIR = os.path.join(_SRC_ROOT, 'tools', 'binary_size') +_CLANG_UPDATE_PATH = os.path.join(_SRC_ROOT, 'tools', 'clang', 'scripts', + 'update.py') + + +def extract_proguard_mapping(apk_name, mapping_name, staging_dir, + chromium_output_directory): + """Copies proguard mapping file to staging_dir""" + mapping_path = os.path.join(chromium_output_directory, 'apks', mapping_name) + + shutil.copy(mapping_path, os.path.join(staging_dir, apk_name + '.mapping')) + + +def generate_resource_sizes(apk_name, staging_dir, chromium_output_directory): + """Creates results-chart.json file in staging_dir""" + apk_path = os.path.join(chromium_output_directory, 'apks', apk_name) + + subprocess.run( + [ + _RESOURCE_SIZES_PATH, + apk_path, + '--output-format=chartjson', + '--output-dir', + staging_dir, + '--chromium-output-directory', + chromium_output_directory, + ], + check=True, + ) + + +def generate_supersize_archive(apk_name, staging_dir, + chromium_output_directory): + """Creates a .size file for the given .apk or .minimal.apks""" + subprocess.run([_CLANG_UPDATE_PATH, '--package=objdump'], check=True) + apk_path = os.path.join(chromium_output_directory, 'apks', apk_name) + size_path = os.path.join(staging_dir, apk_name + '.size') + + supersize_script_path = os.path.join(_BINARY_SIZE_DIR, 'supersize') + + subprocess.run( + [ + supersize_script_path, + 'archive', + size_path, + '-f', + apk_path, + '-v', + ], + check=True, + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + '--apk-name', + required=True, + help='Name of the apk (ex. Name.apk)', + ) + parser.add_argument( + '--chromium-output-directory', + required=True, + help='Location of the build artifacts.', + ) + parser.add_argument( + '--mapping-name', + required=True, + help='Filename of the proguard mapping file.', + ) + parser.add_argument( + '--staging-dir', + required=True, + help='Directory to write generated files to.', + ) + + args = parser.parse_args() + + extract_proguard_mapping( + args.apk_name, + args.mapping_name, + args.staging_dir, + args.chromium_output_directory, + ) + generate_resource_sizes( + args.apk_name, + args.staging_dir, + args.chromium_output_directory, + ) + generate_supersize_archive( + args.apk_name, + args.staging_dir, + args.chromium_output_directory, + ) + + +if __name__ == '__main__': + main() diff --git a/chromium/tools/binary_size/generate_milestone_reports.py b/chromium/tools/binary_size/generate_milestone_reports.py index 61c81da2135..be7d1b52466 100755 --- a/chromium/tools/binary_size/generate_milestone_reports.py +++ b/chromium/tools/binary_size/generate_milestone_reports.py @@ -71,8 +71,9 @@ _DESIRED_VERSIONS = [ '78.0.3904.62', '79.0.3945.136', '80.0.3987.99', - '81.0.4044.96', # Beta - '83.0.4103.5', # Canary + '81.0.4044.138', + '83.0.4103.60', + '84.0.4147.20', # Canary ] diff --git a/chromium/tools/binary_size/libsupersize/archive.py b/chromium/tools/binary_size/libsupersize/archive.py index 842a81138a7..f36f8b616c9 100644 --- a/chromium/tools/binary_size/libsupersize/archive.py +++ b/chromium/tools/binary_size/libsupersize/archive.py @@ -15,6 +15,7 @@ import logging import os import posixpath import re +import shlex import string import subprocess import sys @@ -65,7 +66,7 @@ _OutputDirectoryContext = collections.namedtuple('_OutputDirectoryContext', [ _SECTION_SIZE_BLACKLIST = ['.symtab', '.shstrtab', '.strtab'] -# Tunable constant "knobs" for CreateSectionSizesAndSymbols(). +# Tunable constant "knobs" for CreateContainerAndSymbols(). class SectionSizeKnobs(object): def __init__(self): # A limit on the number of symbols an address can have, before these symbols @@ -725,9 +726,9 @@ def _ExtendSectionRange(section_range_by_name, section_name, delta_size): section_range_by_name[section_name] = (prev_address, prev_size + delta_size) -def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, - tool_prefix, output_directory, linker_name): - """Creates metadata dict. +def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, tool_prefix, + output_directory, linker_name, build_config): + """Creates metadata dict while updating |build_config|. Args: map_path: Path to the linker .map(.gz) file to parse. @@ -738,6 +739,8 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, tool_prefix: Prefix for c++filt & nm. output_directory: Build output directory. linker_name: A coded linker name (see linker_map_parser.py). + builg_config: Common build configurations to update or to undergo + consistency checks. Returns: A dict mapping string costants to values, or None if empty. Performs @@ -748,21 +751,31 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, """ assert not (apk_path and minimal_apks_path) logging.debug('Constructing metadata') + + def update_build_config(key, value): + if key in build_config: + old_value = build_config[key] + if value != old_value: + raise ValueError('Inconsistent {}: {} (was {})'.format( + key, value, old_value)) + else: + build_config[key] = value + metadata = {} if output_directory: shorten_path = lambda path: os.path.relpath(path, output_directory) gn_args = _ParseGnArgs(os.path.join(output_directory, 'args.gn')) - metadata[models.METADATA_GN_ARGS] = gn_args + update_build_config(models.BUILD_CONFIG_GN_ARGS, gn_args) else: shorten_path = os.path.basename if tool_prefix: relative_tool_prefix = path_util.ToToolsSrcRootRelative(tool_prefix) - metadata[models.METADATA_TOOL_PREFIX] = relative_tool_prefix + update_build_config(models.BUILD_CONFIG_TOOL_PREFIX, relative_tool_prefix) if linker_name: - metadata[models.METADATA_LINKER_NAME] = linker_name + update_build_config(models.BUILD_CONFIG_LINKER_NAME, linker_name) # Deduce GIT revision. path_candidates = [elf_path, apk_path, minimal_apks_path] @@ -774,8 +787,7 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path, if dirname: git_rev = _DetectGitRevision(dirname) if git_rev: - metadata[models.METADATA_GIT_REVISION] = git_rev - break + update_build_config(models.BUILD_CONFIG_GIT_REVISION, git_rev) if elf_path: metadata[models.METADATA_ELF_FILENAME] = shorten_path(elf_path) @@ -1120,6 +1132,8 @@ def _ParsePakSymbols(symbols_by_id, object_paths_by_pak_id): full_name=symbol.full_name, object_path=path, aliases=aliases) aliases.append(new_sym) raw_symbols.append(new_sym) + # Sorting can ignore containers because symbols created here are all in the + # same container. raw_symbols.sort(key=lambda s: (s.section_name, s.address, s.object_path)) raw_total = 0.0 int_total = 0 @@ -1160,8 +1174,9 @@ def _ParseApkElfSectionRanges(section_ranges, metadata, apk_elf_result): # hasn't been used since switching from gold -> lld. apk_section_ranges['%s (unpacked)' % packed_section_name] = unpacked_range - return apk_section_ranges, elf_overhead_size - return section_ranges, 0 + else: + _, apk_section_ranges, elf_overhead_size = apk_elf_result.get() + return apk_section_ranges, elf_overhead_size class _ResourcePathDeobfuscator(object): @@ -1357,10 +1372,9 @@ def _OverwriteSymbolSizesWithRelocationCount(raw_symbols, tool_prefix, raw_symbols[:] = [sym for sym in raw_symbols if sym.size or sym.IsNative()] -def _AddUnattributedSectionSymbols(raw_symbols, section_ranges, elf_result): +def _AddUnattributedSectionSymbols(raw_symbols, section_ranges): # Create symbols for ELF sections not covered by existing symbols. logging.info('Searching for symbol gaps...') - _, section_ranges, _ = elf_result.get() last_symbol_ends = collections.defaultdict(int) for sym in raw_symbols: if sym.end_address > last_symbol_ends[sym.section_name]: @@ -1383,11 +1397,15 @@ def _AddUnattributedSectionSymbols(raw_symbols, section_ranges, elf_result): logging.info('Last symbol in %s does not reach end of section, gap=%d', section_name, overhead) + # Sections that should not bundle into ".other". + unsummed_sections, summed_sections = models.ClassifySections( + section_ranges.keys()) # Sort keys to ensure consistent order (> 1 sections may have address = 0). for section_name in sorted(section_ranges.keys()): # Handle sections that don't appear in |raw_symbols|. - if section_name not in last_symbol_ends: - address, section_size = section_ranges[section_name] + address, section_size = section_ranges[section_name] + if (section_name not in unsummed_sections + and section_name not in summed_sections): logging.info('All bytes in %s are unattributed, gap=%d', section_name, overhead) raw_symbols.append( @@ -1399,27 +1417,31 @@ def _AddUnattributedSectionSymbols(raw_symbols, section_ranges, elf_result): _ExtendSectionRange(section_ranges, models.SECTION_OTHER, section_size) -def CreateSectionSizesAndSymbols(knobs=None, - opts=None, - map_path=None, - tool_prefix=None, - output_directory=None, - elf_path=None, - apk_path=None, - mapping_path=None, - resources_pathmap_path=None, - track_string_literals=True, - metadata=None, - apk_so_path=None, - pak_files=None, - pak_info_file=None, - linker_name=None, - size_info_prefix=None): - """Creates sections sizes and symbols for a SizeInfo. +def CreateContainerAndSymbols(knobs=None, + opts=None, + container_name=None, + metadata=None, + map_path=None, + tool_prefix=None, + output_directory=None, + elf_path=None, + apk_path=None, + mapping_path=None, + resources_pathmap_path=None, + track_string_literals=True, + apk_so_path=None, + pak_files=None, + pak_info_file=None, + linker_name=None, + size_info_prefix=None): + """Creates a Container (with sections sizes) and symbols for a SizeInfo. Args: knobs: Instance of SectionSizeKnobs. opts: Instance of ContainerArchiveOptions. + container_name: Name for the created Container. May be '' if only one + Container exists. + metadata: Metadata dict from CreateMetadata(). map_path: Path to the linker .map(.gz) file to parse. tool_prefix: Prefix for c++filt & nm (required). output_directory: Build output directory. If None, source_paths and symbol @@ -1432,7 +1454,6 @@ def CreateSectionSizesAndSymbols(knobs=None, resource paths to shortened resource paths. track_string_literals: Whether to break down "** merge string" sections into smaller symbols (requires output_directory). - metadata: Metadata dict from CreateMetadata(). apk_so_path: Path to an .so file within an APK file. pak_files: List of paths to .pak files. pak_info_file: Path to a .pak.info file. @@ -1440,8 +1461,9 @@ def CreateSectionSizesAndSymbols(knobs=None, size_info_prefix: Path to $out/size-info/$ApkName. Returns: - A tuple of (section_sizes, raw_symbols). - section_ranges is a dict mapping section names to their (address, size). + A tuple of (container, raw_symbols). + containers is a Container instance that stores metadata and section_sizes + (section_sizes maps section names to respective sizes). raw_symbols is a list of Symbol objects. """ knobs = knobs or SectionSizeKnobs() @@ -1449,6 +1471,8 @@ def CreateSectionSizesAndSymbols(knobs=None, # Extraction takes around 1 second, so do it in parallel. apk_elf_result = parallel.ForkAndCall(_ElfInfoFromApk, (apk_path, apk_so_path, tool_prefix)) + else: + apk_elf_result = None outdir_context = None source_mapper = None @@ -1509,16 +1533,16 @@ def CreateSectionSizesAndSymbols(knobs=None, else: section_ranges, raw_symbols, object_paths_by_name = {}, [], None - elf_overhead_size = _CalculateElfOverhead(section_ranges, elf_path) + if apk_elf_result: + section_ranges, elf_overhead_size = _ParseApkElfSectionRanges( + section_ranges, metadata, apk_elf_result) + else: + elf_overhead_size = _CalculateElfOverhead(section_ranges, elf_path) + if elf_path: + _AddUnattributedSectionSymbols(raw_symbols, section_ranges) pak_symbols_by_id = None if apk_path and size_info_prefix: - if elf_path: - section_ranges, elf_overhead_size = _ParseApkElfSectionRanges( - section_ranges, metadata, apk_elf_result) - _AddUnattributedSectionSymbols(raw_symbols, section_ranges, - apk_elf_result) - # Can modify |section_ranges|. pak_symbols_by_id = _FindPakSymbolsFromApk(opts, section_ranges, apk_path, size_info_prefix) @@ -1591,14 +1615,22 @@ def CreateSectionSizesAndSymbols(knobs=None, _OverwriteSymbolSizesWithRelocationCount(raw_symbols, tool_prefix, elf_path) section_sizes = {k: size for k, (address, size) in section_ranges.items()} - return section_sizes, raw_symbols + container = models.Container(name=container_name, + metadata=metadata, + section_sizes=section_sizes) + for symbol in raw_symbols: + symbol.container = container + return container, raw_symbols -def CreateSizeInfo(section_sizes_list, +def CreateSizeInfo(build_config, + container_list, raw_symbols_list, - metadata_list, normalize_names=True): """Performs operations on all symbols and creates a SizeInfo object.""" + assert len(container_list) == len(raw_symbols_list) + + all_raw_symbols = [] for raw_symbols in raw_symbols_list: file_format.SortSymbols(raw_symbols) file_format.CalculatePadding(raw_symbols) @@ -1609,13 +1641,9 @@ def CreateSizeInfo(section_sizes_list, if normalize_names: _NormalizeNames(raw_symbols) - # TODO(huangs): Implement data fusing to compute the following for real. - assert len(section_sizes_list) == 1 - section_sizes = section_sizes_list[0] - raw_symbols = raw_symbols_list[0] - metadata = metadata_list[0] + all_raw_symbols += raw_symbols - return models.SizeInfo(section_sizes, raw_symbols, metadata=metadata) + return models.SizeInfo(build_config, container_list, all_raw_symbols) def _DetectGitRevision(directory): @@ -1709,63 +1737,47 @@ def _ElfInfoFromApk(apk_path, apk_so_path, tool_prefix): return build_id, section_ranges, elf_overhead_size -def _AutoIdentifyInputFile(args): - if args.f.endswith('.minimal.apks'): - args.minimal_apks_file = args.f - logging.info('Auto-identified --minimal-apks-file.') - elif args.f.endswith('.apk'): - args.apk_file = args.f - logging.info('Auto-identified --apk-file.') - elif args.f.endswith('.so') or '.' not in os.path.basename(args.f): - logging.info('Auto-identified --elf-file.') - args.elf_file = args.f - elif args.f.endswith('.map') or args.f.endswith('.map.gz'): - logging.info('Auto-identified --map-file.') - args.map_file = args.f - else: - return False - return True - +def _AddContainerArguments(parser): + """Add arguments applicable to a single container.""" -def AddMainPathsArguments(parser): - """Add arguments for _DeduceMainPaths().""" + # Special: Use _IdentifyInputFile() to detect main file argument. parser.add_argument('-f', metavar='FILE', help='Auto-identify input file type.') + + # Main file argument: Exactly one should be specified (perhaps via -f), with + # the exception that --map-file can be specified in addition. + # _IdentifyInputFile() and _GetMainFiles() should be kept updated. parser.add_argument('--apk-file', help='.apk file to measure. Other flags can generally be ' - 'derived when this is used.') - parser.add_argument( - '--resources-pathmap-file', - help='.pathmap.txt file that contains a maping from ' - 'original resource paths to shortened resource paths.') + 'derived when this is used.') parser.add_argument('--minimal-apks-file', help='.minimal.apks file to measure. Other flags can ' - 'generally be derived when this is used.') - parser.add_argument('--mapping-file', - help='Proguard .mapping file for deobfuscation.') - parser.add_argument('--elf-file', - help='Path to input ELF file. Currently used for ' - 'capturing metadata.') + 'generally be derived when this is used.') + parser.add_argument('--elf-file', help='Path to input ELF file.') parser.add_argument('--map-file', help='Path to input .map(.gz) file. Defaults to ' '{{elf_file}}.map(.gz)?. If given without ' '--elf-file, no size metadata will be recorded.') - parser.add_argument('--no-source-paths', action='store_true', - help='Do not use .ninja files to map ' - 'object_path -> source_path') - parser.add_argument('--output-directory', - help='Path to the root build directory.') - parser.add_argument('--tool-prefix', - help='Path prefix for c++filt, nm, readelf.') - + parser.add_argument('--ssargs-file', + help='Path to SuperSize multi-container arguments ' + 'file.') -def AddArguments(parser): - parser.add_argument('size_file', help='Path to output .size file.') + # Auxiliary file arguments. + parser.add_argument('--mapping-file', + help='Proguard .mapping file for deobfuscation.') + parser.add_argument('--resources-pathmap-file', + help='.pathmap.txt file that contains a maping from ' + 'original resource paths to shortened resource paths.') parser.add_argument('--pak-file', action='append', help='Paths to pak files.') parser.add_argument('--pak-info-file', help='This file should contain all ids found in the pak ' 'files that have been passed in.') + parser.add_argument('--aux-elf-file', + help='Path to auxiliary ELF if the main file is APK, ' + 'useful for capturing metadata.') + + # Non-file argument. parser.add_argument('--no-string-literals', dest='track_string_literals', default=True, action='store_false', help='Disable breaking down "** merge strings" into more ' @@ -1775,8 +1787,10 @@ def AddArguments(parser): action='store_true', help='Instead of counting binary size, count number of relative' 'relocation instructions in ELF code.') - parser.add_argument('--source-directory', - help='Custom path to the root source directory.') + parser.add_argument('--no-source-paths', + action='store_true', + help='Do not use .ninja files to map ' + 'object_path -> source_path') parser.add_argument( '--java-only', action='store_true', help='Run on only Java symbols') parser.add_argument( @@ -1790,7 +1804,134 @@ def AddArguments(parser): action='store_true', help='Include a padding field for each symbol, instead of rederiving ' 'from consecutive symbols on file load.') - AddMainPathsArguments(parser) + + +def AddArguments(parser): + parser.add_argument('size_file', help='Path to output .size file.') + parser.add_argument('--source-directory', + help='Custom path to the root source directory.') + parser.add_argument('--output-directory', + help='Path to the root build directory.') + parser.add_argument('--tool-prefix', + help='Path prefix for c++filt, nm, readelf.') + _AddContainerArguments(parser) + + +def _IdentifyInputFile(args): + """Identifies main input file type from |args.f|, and updates |args|. + + Identification is performed on filename alone, i.e., the file need not exist. + The result is written to a field in |args|. If the field exists then it + simply gets overwritten. + + If '.' is missing from |args.f| then --elf-file is assumed. + + Returns: + True if identification was successful, else False. +""" + if args.f.endswith('.minimal.apks'): + args.minimal_apks_file = args.f + logging.info('Auto-identified --minimal-apks-file.') + elif args.f.endswith('.apk'): + args.apk_file = args.f + logging.info('Auto-identified --apk-file.') + elif args.f.endswith('.so') or '.' not in os.path.basename(args.f): + args.elf_file = args.f + logging.info('Auto-identified --elf-file.') + elif args.f.endswith('.map') or args.f.endswith('.map.gz'): + args.map_file = args.f + logging.info('Auto-identified --map-file.') + elif args.f.endswith('.ssargs'): + args.ssargs_file = args.f + logging.info('Auto-identified --ssargs-file.') + else: + return False + return True + + +def _GetMainFiles(args): + ret = [args.apk_file, args.elf_file, args.minimal_apks_file, args.ssargs_file] + ret = [v for v in ret if v] + # --map-file can be a main file or used with another main file. So only add it + # if no main file is found yet + if not ret and args.map_file: + ret.append(args.map_file) + # |ret| should only one element; the caller should check and handle errors. + return ret + + +def _DeduceDerivedArgsAndCheckMainInput(args, is_top_level_args, + on_config_error): + """Stores values derived from |args|, and ensures one main input exists. + + Args: + args: Parsed command-line arguments, or .ssargs input. + is_top_level_args: Whether this is processing SuperSize command line + (instead of .ssargs input). + on_config_error: Error callback. + """ + setattr(args, 'is_bundle', args.minimal_apks_file is not None) + main_files = _GetMainFiles(args) + if not main_files: + on_config_error( + 'Must pass at least one of --apk-file, --minimal-apks-file, ' + '--elf-file, --map-file, --ssargs-file') + # --map-file can be a main file, or used with another main file. + if len(main_files) > 1: + on_config_error( + 'Found colliding --apk-file, --minimal-apk-file, --elf-file, ' + '--ssargs-file') + if is_top_level_args: + setattr(args, 'any_path_within_output_directory', main_files[0]) + + +def ParseSsargs(lines): + """Parses .ssargs data. + + An .ssargs file is a text file to specify multiple containers as input to + SuperSize-archive. After '#'-based comments, start / end whitespaces, and + empty lines are stripped, each line specifies a distinct container. Format: + * Positional argument: |name| for the container. + * Main input file specified by -f, --apk-file, --elf-file, etc.: + * Can be an absolute path. + * Can be a relative path. In this case, it's up to the caller to supply the + base directory. + * -f switch must not specify another .ssargs file. + * For supported switches: See _AddContainerArguments(). + + Args: + lines: An iterator containing lines of .ssargs data. + Returns: + A list of arguments, one for each container. + Raises: + ValueError: Parse error, including input line number. + """ + sub_args_list = [] + parser = argparse.ArgumentParser(add_help=False) + parser.error = lambda msg: (_ for _ in ()).throw(ValueError(msg)) + parser.add_argument('name') + _AddContainerArguments(parser) + try: + for lineno, line in enumerate(lines, 1): + toks = shlex.split(line, comments=True) + if not toks: # Skip if line is empty after stripping comments. + continue + sub_args = parser.parse_args(toks) + if set(sub_args.name) & set('<>'): + parser.error('container name cannot have characters in "<>"') + if sub_args.f: + if not _IdentifyInputFile(sub_args): + parser.error('cannot identify file type: {}'.format(sub_args.f)) + if sub_args.ssargs_file: # May be added by the -f flag. + parser.error('cannot nest .ssargs files') + _DeduceDerivedArgsAndCheckMainInput(sub_args, + is_top_level_args=False, + on_config_error=parser.error) + sub_args_list.append(sub_args) + except ValueError as e: + e.args = ('Line %d: %s' % (lineno, e.args[0]), ) + raise e + return sub_args_list def _DeduceNativeInfo(tentative_output_dir, apk_path, elf_path, map_path, @@ -1858,6 +1999,40 @@ def _DeduceAuxPaths(args, apk_prefix): return mapping_path, resources_pathmap_path +def _ReadMultipleArgsFromStream(lines, base_dir, err_prefix, args, + on_config_error): + try: + container_args_list = ParseSsargs(lines) + except ValueError as e: + on_config_error('%s: %s' % (err_prefix, e.args[0])) + sub_args_list = [] + for container_args in container_args_list: + # Clone |args| keys but assign empty values. + sub_args = argparse.Namespace(**{k: None for k in vars(args)}) + # Copy parsed values to |sub_args|. + for k, v in container_args.__dict__.items(): + # Translate file arguments to be relative to |sub_dir|. + if (k.endswith('_file') or k == 'f') and v is not None: + v = os.path.join(base_dir, v) + sub_args.__dict__[k] = v + logging.info('Container: %r' % + {k: v + for k, v in sub_args.__dict__.items() if v is not None}) + sub_args_list.append(sub_args) + return sub_args_list + + +def _ReadMultipleArgsFromFile(args, on_config_error): + with open(args.ssargs_file, 'r') as fh: + lines = list(fh) + err_prefix = 'In file ' + args.ssargs_file + # Supply |base_dir| as the directory containing the .ssargs file, to ensure + # consistent behavior wherever SuperSize-archive runs. + base_dir = os.path.dirname(os.path.abspath(args.ssargs_file)) + return _ReadMultipleArgsFromStream(lines, base_dir, err_prefix, args, + on_config_error) + + def _DeduceMainPaths(args, on_config_error): """Generates main paths (may be deduced) for each containers given by input. @@ -1869,10 +2044,11 @@ def _DeduceMainPaths(args, on_config_error): value=args.output_directory, any_path_within_output_directory=args.any_path_within_output_directory) - def _Inner(sub_args, apk_prefix, apk_path): + def _Inner(idx, sub_args, apk_prefix, apk_path): """Inner helper for _DeduceMainPaths(), for one container. Params: + idx: Numeric index of the container. sub_args: Arguments specific to a container. apk_prefix: Prefix used to search for auxiliary .apk related files. apk_path: Path to .apk file that can be opened for processing, but whose @@ -1880,7 +2056,10 @@ def _DeduceMainPaths(args, on_config_error): """ output_directory = output_directory_finder.Tentative() opts = ContainerArchiveOptions(sub_args, output_directory=output_directory) + container_name = sub_args.name if hasattr(sub_args, 'name') else None if apk_prefix: + if not container_name: + container_name = apk_prefix # Allow either .minimal.apks or just .apks. apk_prefix = apk_prefix.replace('.minimal.apks', '.aab') apk_prefix = apk_prefix.replace('.apks', '.aab') @@ -1890,8 +2069,8 @@ def _DeduceMainPaths(args, on_config_error): tool_prefix = None if opts.analyze_native: elf_path, map_path, apk_so_path = _DeduceNativeInfo( - output_directory, apk_path, sub_args.elf_file, sub_args.map_file, - on_config_error) + output_directory, apk_path, sub_args.elf_file + or sub_args.aux_elf_file, sub_args.map_file, on_config_error) if map_path: linker_name = _DetectLinkerName(map_path) logging.info('Linker name: %s' % linker_name) @@ -1901,6 +2080,8 @@ def _DeduceMainPaths(args, on_config_error): output_directory_finder=output_directory_finder, linker_name=linker_name) tool_prefix = tool_prefix_finder.Finalized() + if not container_name and elf_path: + container_name = elf_path else: # Trust that these values will not be used, and set to None. elf_path = None @@ -1917,17 +2098,27 @@ def _DeduceMainPaths(args, on_config_error): size_info_prefix = os.path.join(output_directory, 'size-info', os.path.basename(apk_prefix)) - return (opts, output_directory, tool_prefix, apk_path, mapping_path, - apk_so_path, elf_path, map_path, resources_pathmap_path, - linker_name, size_info_prefix) + if not container_name: + container_name = 'Container %d' % idx + + return (opts, output_directory, tool_prefix, container_name, apk_path, + mapping_path, apk_so_path, elf_path, map_path, + resources_pathmap_path, linker_name, size_info_prefix) - # Process each container. - # If needed, extract .apk file to a temp file and process that instead. - if args.minimal_apks_file: - with zip_util.UnzipToTemp(args.minimal_apks_file, _APKS_MAIN_APK) as temp: - yield _Inner(args, args.minimal_apks_file, temp) + if args.ssargs_file: + sub_args_list = _ReadMultipleArgsFromFile(args, on_config_error) else: - yield _Inner(args, args.apk_file, args.apk_file) + sub_args_list = [args] + + # Each element in |sub_args_list| specifies a container. + for idx, sub_args in enumerate(sub_args_list): + # If needed, extract .apk file to a temp file and process that instead. + if sub_args.minimal_apks_file: + with zip_util.UnzipToTemp(sub_args.minimal_apks_file, + _APKS_MAIN_APK) as temp: + yield _Inner(idx, sub_args, sub_args.minimal_apks_file, temp) + else: + yield _Inner(idx, sub_args, sub_args.apk_file, sub_args.apk_file) def Run(args, on_config_error): @@ -1935,38 +2126,36 @@ def Run(args, on_config_error): on_config_error('size_file must end with .size') if args.f is not None: - if not _AutoIdentifyInputFile(args): + if not _IdentifyInputFile(args): on_config_error('Cannot identify file %s' % args.f) - if args.apk_file and args.minimal_apks_file: - on_config_error('Cannot use both --apk-file and --minimal-apks-file.') - - # Deduce arguments. - setattr(args, 'is_bundle', args.minimal_apks_file is not None) - any_path = (args.apk_file or args.minimal_apks_file or args.elf_file - or args.map_file) - if any_path is None: - on_config_error( - 'Must pass at least one of --apk-file, --minimal-apks-file, ' - '--elf-file, --map-file') - setattr(args, 'any_path_within_output_directory', any_path) - + _DeduceDerivedArgsAndCheckMainInput(args, + is_top_level_args=True, + on_config_error=on_config_error) knobs = SectionSizeKnobs() - metadata_list = [] - section_sizes_list = [] + build_config = {} + seen_container_names = set() + container_list = [] raw_symbols_list = [] - # Generate one size info for each container. - for (opts, output_directory, tool_prefix, apk_path, mapping_path, apk_so_path, - elf_path, map_path, resources_pathmap_path, linker_name, + # Iterate over each container. + for (opts, output_directory, tool_prefix, container_name, apk_path, + mapping_path, apk_so_path, elf_path, map_path, resources_pathmap_path, + linker_name, size_info_prefix) in _DeduceMainPaths(args, on_config_error): + if container_name in seen_container_names: + raise ValueError('Duplicate container name: {}'.format(container_name)) + seen_container_names.add(container_name) + # Note that |args.apk_file| is used instead of |apk_path|, since the latter # may be an extracted temporary file. metadata = CreateMetadata(map_path, elf_path, args.apk_file, args.minimal_apks_file, tool_prefix, - output_directory, linker_name) - section_sizes, raw_symbols = CreateSectionSizesAndSymbols( + output_directory, linker_name, build_config) + container, raw_symbols = CreateContainerAndSymbols( knobs=knobs, opts=opts, + container_name=container_name, + metadata=metadata, map_path=map_path, tool_prefix=tool_prefix, elf_path=elf_path, @@ -1975,29 +2164,27 @@ def Run(args, on_config_error): output_directory=output_directory, resources_pathmap_path=resources_pathmap_path, track_string_literals=args.track_string_literals, - metadata=metadata, apk_so_path=apk_so_path, pak_files=args.pak_file, pak_info_file=args.pak_info_file, linker_name=linker_name, size_info_prefix=size_info_prefix) - metadata_list.append(metadata) - section_sizes_list.append(section_sizes) + container_list.append(container) raw_symbols_list.append(raw_symbols) - size_info = CreateSizeInfo( - section_sizes_list, - raw_symbols_list, - metadata_list, - normalize_names=False) + size_info = CreateSizeInfo(build_config, + container_list, + raw_symbols_list, + normalize_names=False) if logging.getLogger().isEnabledFor(logging.DEBUG): for line in describe.DescribeSizeInfoCoverage(size_info): logging.debug(line) logging.info('Recorded info for %d symbols', len(size_info.raw_symbols)) - logging.info('Recording metadata: \n %s', '\n '.join( - describe.DescribeMetadata(size_info.metadata))) + for container in size_info.containers: + logging.info('Recording metadata: \n %s', + '\n '.join(describe.DescribeDict(container.metadata))) logging.info('Saving result to %s', args.size_file) file_format.SaveSizeInfo( diff --git a/chromium/tools/binary_size/libsupersize/canned_queries.py b/chromium/tools/binary_size/libsupersize/canned_queries.py index e534a1e036e..2bd3fe7d96f 100644 --- a/chromium/tools/binary_size/libsupersize/canned_queries.py +++ b/chromium/tools/binary_size/libsupersize/canned_queries.py @@ -125,8 +125,9 @@ def _CategorizeGenerated(symbols): symbols.WherePathMatches('gl_bindings_autogen')) symbols = symbols.WhereSourceIsGenerated() - symbols = g.Add('Java Protocol Buffers', symbols.Filter(lambda s: ( - s.source_path.endswith('Proto.java')))) + symbols = g.Add( + 'Java Protocol Buffers', + symbols.Filter(lambda s: '__protoc_java.srcjar' in s.source_path)) symbols = g.Add('C++ Protocol Buffers', symbols.Filter(lambda s: ( '/protobuf/' in s.object_path or s.object_path.endswith('.pbzero.o') or diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens.cc b/chromium/tools/binary_size/libsupersize/caspian/lens.cc index 7011e4f0157..1c9ca5bcc83 100644 --- a/chromium/tools/binary_size/libsupersize/caspian/lens.cc +++ b/chromium/tools/binary_size/libsupersize/caspian/lens.cc @@ -61,7 +61,7 @@ std::string_view GeneratedLens::ParentName(const BaseSymbol& symbol) { return "Not generated"; } - static LazyRE2 java_protobuf_regex = {R"(Proto\.java$)"}; + static LazyRE2 java_protobuf_regex = {R"(__protoc_java\.srcjar)"}; if (PartialMatch(symbol.SourcePath(), *java_protobuf_regex)) { return "Java Protocol Buffers"; } diff --git a/chromium/tools/binary_size/libsupersize/console.py b/chromium/tools/binary_size/libsupersize/console.py index f8ef12e0b62..76e54201801 100644 --- a/chromium/tools/binary_size/libsupersize/console.py +++ b/chromium/tools/binary_size/libsupersize/console.py @@ -125,9 +125,10 @@ class _Session(object): if not first_sym: return [] size_info = self._SizeInfoForSymbol(first_sym) + container = first_sym.container tool_prefix = self._ToolPrefixForSymbol(size_info) - elf_path = self._ElfPathForSymbol( - size_info, tool_prefix, elf_path) + elf_path = self._ElfPathForSymbol(size_info, container, tool_prefix, + elf_path) return string_extract.ReadStringLiterals( thing, elf_path, tool_prefix, all_rodata=all_rodata) @@ -243,7 +244,8 @@ class _Session(object): def _ToolPrefixForSymbol(self, size_info): tool_prefix = self._tool_prefix_finder.Tentative() - orig_tool_prefix = size_info.metadata.get(models.METADATA_TOOL_PREFIX) + orig_tool_prefix = size_info.build_config.get( + models.BUILD_CONFIG_TOOL_PREFIX) if orig_tool_prefix: orig_tool_prefix = path_util.FromToolsSrcRootRelative(orig_tool_prefix) if os.path.exists(path_util.GetObjDumpPath(orig_tool_prefix)): @@ -256,13 +258,13 @@ class _Session(object): '--tool-prefix, or setting --output-directory') return tool_prefix - def _ElfPathForSymbol(self, size_info, tool_prefix, elf_path): + def _ElfPathForSymbol(self, size_info, container, tool_prefix, elf_path): def build_id_matches(elf_path): found_build_id = archive.BuildIdFromElf(elf_path, tool_prefix) - expected_build_id = size_info.metadata.get(models.METADATA_ELF_BUILD_ID) + expected_build_id = container.metadata.get(models.METADATA_ELF_BUILD_ID) return found_build_id == expected_build_id - filename = size_info.metadata.get(models.METADATA_ELF_FILENAME) + filename = container.metadata.get(models.METADATA_ELF_FILENAME) paths_to_try = [] if elf_path: paths_to_try.append(elf_path) @@ -317,8 +319,10 @@ class _Session(object): assert not symbol.IsDelta(), ('Cannot disasseble a Diff\'ed symbol. Try ' 'passing .before_symbol or .after_symbol.') size_info = self._SizeInfoForSymbol(symbol) + container = symbol.container tool_prefix = self._ToolPrefixForSymbol(size_info) - elf_path = self._ElfPathForSymbol(size_info, tool_prefix, elf_path) + elf_path = self._ElfPathForSymbol(size_info, container, tool_prefix, + elf_path) # Always use Android NDK's objdump because llvm-objdump does not seem to # correctly disassemble. output_directory_finder = self._output_directory_finder @@ -489,7 +493,7 @@ def Run(args, on_config_error): output_directory_finder = path_util.OutputDirectoryFinder( value=args.output_directory, any_path_within_output_directory=args.inputs[0]) - linker_name = size_infos[-1].metadata.get(models.METADATA_LINKER_NAME) + linker_name = size_infos[-1].build_config.get(models.BUILD_CONFIG_LINKER_NAME) tool_prefix_finder = path_util.ToolPrefixFinder( value=args.tool_prefix, output_directory_finder=output_directory_finder, diff --git a/chromium/tools/binary_size/libsupersize/describe.py b/chromium/tools/binary_size/libsupersize/describe.py index 1efeadccd6c..319e7f6781c 100644 --- a/chromium/tools/binary_size/libsupersize/describe.py +++ b/chromium/tools/binary_size/libsupersize/describe.py @@ -51,23 +51,21 @@ def _Divide(a, b): return float(a) / b if b else 0 -def _IncludeInTotals(section_name): - return section_name not in models.BSS_SECTIONS and '(' not in section_name +def _GetSectionSizeInfo(unsummed_sections, summed_sections, section_sizes): + sizes = [v for k, v in section_sizes.items() if k in summed_sections] + total_bytes = sum(sizes) + max_bytes = max(sizes) - -def _GetSectionSizeInfo(section_sizes): - total_bytes = sum(v for k, v in section_sizes.items() if _IncludeInTotals(k)) - max_bytes = max( - abs(v) for k, v in section_sizes.items() if _IncludeInTotals(k)) + maybe_significant_sections = unsummed_sections | summed_sections def is_significant_section(name, size): # Show all sections containing symbols, plus relocations. # As a catch-all, also include any section that comprises > 4% of the # largest section. Use largest section rather than total so that it still # works out when showing a diff containing +100, -100 (total=0). - return (name in list(models.SECTION_TO_SECTION_NAME.values()) - or name in ('.rela.dyn', '.rel.dyn') - or _IncludeInTotals(name) and abs(_Divide(size, max_bytes)) > .04) + return (name in maybe_significant_sections + or name in ['.rela.dyn', '.rel.dyn'] + or abs(_Divide(size, max_bytes)) > .04) section_names = sorted( k for k, v in section_sizes.items() if is_significant_section(k, v)) @@ -179,35 +177,50 @@ class DescriberText(Describer): self.recursive = recursive self.summarize = summarize - def _DescribeSectionSizes(self, section_sizes): - total_bytes, section_names = _GetSectionSizeInfo(section_sizes) + def _DescribeSectionSizes(self, + unsummed_sections, + summed_sections, + section_sizes, + indent=''): + total_bytes, section_names = _GetSectionSizeInfo(unsummed_sections, + summed_sections, + section_sizes) yield '' - yield 'Section Sizes (Total={} ({} bytes)):'.format( - _PrettySize(total_bytes), total_bytes) + yield '{}Section Sizes (Total={} ({} bytes)):'.format( + indent, _PrettySize(total_bytes), total_bytes) for name in section_names: size = section_sizes[name] - if not _IncludeInTotals(name): - yield ' {}: {} ({} bytes) (not included in totals)'.format( - name, _PrettySize(size), size) + if name in unsummed_sections: + yield '{} {}: {} ({} bytes) (not included in totals)'.format( + indent, name, _PrettySize(size), size) else: + notes = '' + if name not in summed_sections: + notes = ' (counted in .other)' percent = _Divide(size, total_bytes) - yield ' {}: {} ({} bytes) ({:.1%})'.format( - name, _PrettySize(size), size, percent) + yield '{} {}: {} ({} bytes) ({:.1%}){}'.format( + indent, name, _PrettySize(size), size, percent, notes) if self.verbose: yield '' - yield 'Other section sizes:' + yield '{}Other section sizes:'.format(indent) section_names = sorted( k for k in section_sizes.keys() if k not in section_names) for name in section_names: - not_included_part = '' - if not _IncludeInTotals(name): - not_included_part = ' (not included in totals)' - yield ' {}: {} ({} bytes){}'.format( - name, _PrettySize(section_sizes[name]), section_sizes[name], - not_included_part) + notes = '' + if name in unsummed_sections: + notes = ' (not included in totals)' + elif name not in summed_sections: + notes = ' (counted in .other)' + yield '{} {}: {} ({} bytes){}'.format( + indent, name, _PrettySize(section_sizes[name]), section_sizes[name], + notes) def _DescribeSymbol(self, sym, single_line=False): + container_str = sym.container_short_name + if container_str: + container_str = '<{}>'.format(container_str) + address = 'Group' if sym.IsGroup() else hex(sym.address) last_field = '' @@ -235,11 +248,13 @@ class DescriberText(Describer): if last_field: last_field = ' ' + last_field if sym.IsDelta(): - yield '{}@{:<9s} {}{}'.format( - sym.section, address, pss_field, last_field) + yield '{}{}@{:<9s} {}{}'.format(container_str, sym.section, address, + pss_field, last_field) else: - l = '{}@{:<9s} pss={} padding={}{}'.format( - sym.section, address, pss_field, sym.padding, last_field) + l = '{}{}@{:<9s} pss={} padding={}{}'.format(container_str, + sym.section, address, + pss_field, sym.padding, + last_field) yield l yield ' source_path={} \tobject_path={}'.format( sym.source_path, sym.object_path) @@ -258,16 +273,17 @@ class DescriberText(Describer): else: pss_field = '{:<14}'.format(pss_field) if single_line: - yield '{}@{:<9s} {} {}{}'.format( - sym.section, address, pss_field, sym.name, last_field) + yield '{}{}@{:<9s} {} {}{}'.format(container_str, sym.section, + address, pss_field, sym.name, + last_field) else: path = sym.source_path or sym.object_path if path and sym.generated_source: path = '$root_gen_dir/' + path path = path or '{no path}' - yield '{}@{:<9s} {} {}'.format( - sym.section, address, pss_field, path) + yield '{}{}@{:<9s} {} {}'.format(container_str, sym.section, address, + pss_field, path) if sym.name: yield ' {}{}'.format(sym.name, last_field) @@ -387,13 +403,20 @@ class DescriberText(Describer): else: summary_desc = () + title_parts = ['Index', 'Running Total'] + if group.container_name == '': + title_parts.append('Section@Address') + else: + title_parts.append('Section@Address') if self.verbose: - titles = 'Index | Running Total | Section@Address | ...' - elif group.IsDelta(): - titles = (u'Index | Running Total | Section@Address | \u0394 PSS ' - u'(\u0394 size_without_padding) | Path') + title_parts.append('...') else: - titles = ('Index | Running Total | Section@Address | PSS | Path') + if group.IsDelta(): + title_parts.append(u'\u0394 PSS (\u0394 size_without_padding)') + else: + title_parts.append('PSS') + title_parts.append('Path') + titles = ' | '.join(title_parts) header_desc = (titles, '-' * 60) @@ -483,50 +506,105 @@ class DescriberText(Describer): group_desc = self._DescribeSymbolGroup(delta_group) return itertools.chain(diff_summary_desc, path_delta_desc, group_desc) - def _DescribeDeltaSizeInfo(self, diff): - common_metadata = { + def _DescribeDeltaDict(self, data_name, before_dict, after_dict, indent=''): + common_items = { k: v - for k, v in diff.before.metadata.items() - if diff.after.metadata.get(k) == v + for k, v in before_dict.items() if after_dict.get(k) == v } - before_metadata = { + before_items = { k: v - for k, v in diff.before.metadata.items() if k not in common_metadata + for k, v in before_dict.items() if k not in common_items } - after_metadata = { - k: v - for k, v in diff.after.metadata.items() if k not in common_metadata - } - metadata_desc = itertools.chain( - ('Common Metadata:',), - (' %s' % line for line in DescribeMetadata(common_metadata)), - ('Old Metadata:',), - (' %s' % line for line in DescribeMetadata(before_metadata)), - ('New Metadata:',), - (' %s' % line for line in DescribeMetadata(after_metadata))) - section_desc = self._DescribeSectionSizes(diff.section_sizes) - group_desc = self.GenerateLines(diff.symbols) - return itertools.chain(metadata_desc, section_desc, ('',), group_desc) + after_items = {k: v for k, v in after_dict.items() if k not in common_items} + return itertools.chain( + (indent + 'Common %s:' % data_name, ), + (indent + ' %s' % line for line in DescribeDict(common_items)), + (indent + 'Old %s:' % data_name, ), + (indent + ' %s' % line for line in DescribeDict(before_items)), + (indent + 'New %s:' % data_name, ), + (indent + ' %s' % line for line in DescribeDict(after_items))) + + def _DescribeDeltaSizeInfo(self, diff): + desc_list = [] + # Describe |build_config| and each container. If there is only one container + # then support legacy output by reporting |build_config| as part of the + # first container's metadata. + if len(diff.containers) > 1: + desc_list.append( + self._DescribeDeltaDict('Build config', diff.before.build_config, + diff.after.build_config)) + for c in diff.containers: + name = c.name + desc_list.append(('', )) + desc_list.append(('Container: <%s>' % name, )) + c_before = diff.before.ContainerForName( + name, default=models.Container.Empty()) + c_after = diff.after.ContainerForName(name, + default=models.Container.Empty()) + desc_list.append( + self._DescribeDeltaDict('Metadata', + c_before.metadata, + c_after.metadata, + indent=' ')) + unsummed_sections, summed_sections = c.ClassifySections() + desc_list.append( + self._DescribeSectionSizes(unsummed_sections, + summed_sections, + c.section_sizes, + indent=' ')) + else: # Legacy output for single Container case. + desc_list.append( + self._DescribeDeltaDict('Metadata', diff.before.metadata_legacy, + diff.after.metadata_legacy)) + c = diff.containers[0] + unsummed_sections, summed_sections = c.ClassifySections() + desc_list.append( + self._DescribeSectionSizes(unsummed_sections, summed_sections, + c.section_sizes)) + desc_list.append(('', )) + desc_list.append(self.GenerateLines(diff.symbols)) + return itertools.chain.from_iterable(desc_list) def _DescribeSizeInfo(self, size_info): - metadata_desc = itertools.chain( - ('Metadata:',), - (' %s' % line for line in DescribeMetadata(size_info.metadata))) - section_desc = self._DescribeSectionSizes(size_info.section_sizes) - coverage_desc = () + desc_list = [] + # Describe |build_config| and each container. If there is only one container + # then support legacy output by reporting |build_config| as part of the + # first container's metadata. + if len(size_info.containers) > 1: + desc_list.append(('Build Configs:', )) + desc_list.append(' %s' % line + for line in DescribeDict(size_info.build_config)) + containers = size_info.containers + else: + containers = [ + models.Container(name='', + metadata=size_info.metadata_legacy, + section_sizes=size_info.containers[0].section_sizes) + ] + for c in containers: + if c.name: + desc_list.append(('', )) + desc_list.append(('Container <%s>' % c.name, )) + desc_list.append(('Metadata:', )) + desc_list.append(' %s' % line for line in DescribeDict(c.metadata)) + unsummed_sections, summed_sections = c.ClassifySections() + desc_list.append( + self._DescribeSectionSizes(unsummed_sections, summed_sections, + c.section_sizes)) + if self.verbose: - coverage_desc = itertools.chain( - ('',), DescribeSizeInfoCoverage(size_info)) - group_desc = self.GenerateLines(size_info.symbols) - return itertools.chain(metadata_desc, section_desc, coverage_desc, ('',), - group_desc) + desc_list.append(('', )) + desc_list.append(DescribeSizeInfoCoverage(size_info)) + desc_list.append(('', )) + desc_list.append(self.GenerateLines(size_info.symbols)) + return itertools.chain.from_iterable(desc_list) -def DescribeSizeInfoCoverage(size_info): +def _DescribeSizeInfoContainerCoverage(raw_symbols, container): """Yields lines describing how accurate |size_info| is.""" for section, section_name in models.SECTION_TO_SECTION_NAME.items(): - expected_size = size_info.section_sizes.get(section_name) - in_section = size_info.raw_symbols.WhereInSection(section_name) + expected_size = container.section_sizes.get(section_name) + in_section = raw_symbols.WhereInSection(section_name, container=container) actual_size = in_section.size if expected_size is None: @@ -615,6 +693,18 @@ def DescribeSizeInfoCoverage(size_info): yield ' B) ' + repr(sym) +def DescribeSizeInfoCoverage(size_info): + for i, container in enumerate(size_info.containers): + if i > 0: + yield '' + if container.name: + yield 'Container <%s>' % container.name + # TODO(huangs): Change to use "yield from" once linters allow this. + for line in _DescribeSizeInfoContainerCoverage(size_info.raw_symbols, + container): + yield line + + class DescriberCsv(Describer): def __init__(self, verbose=False): super(DescriberCsv, self).__init__() @@ -628,9 +718,11 @@ class DescriberCsv(Describer): self.csv_writer.writerow(data) return self.stringio.getvalue().rstrip() - def _DescribeSectionSizes(self, section_sizes): - significant_section_names = _GetSectionSizeInfo(section_sizes)[1] - + def _DescribeSectionSizes(self, unsummed_sections, summed_section, + section_sizes): + _, significant_section_names = _GetSectionSizeInfo(unsummed_sections, + summed_section, + section_sizes) if self.verbose: significant_set = set(significant_section_names) section_names = sorted(section_sizes.keys()) @@ -645,14 +737,26 @@ class DescriberCsv(Describer): yield self._RenderCsv([name, size]) def _DescribeDeltaSizeInfo(self, diff): - section_desc = self._DescribeSectionSizes(diff.section_sizes) - group_desc = self.GenerateLines(diff.symbols) - return itertools.chain(section_desc, ('',), group_desc) + desc_list = [] + for c in diff.containers: + unsummed_sections, summed_sections = c.ClassifySections() + desc_list.append( + self._DescribeSectionSizes(unsummed_sections, summed_sections, + c.section_sizes)) + desc_list.append(('', )) + desc_list.append(self.GenerateLines(diff.symbols)) + return itertools.chain.from_iterable(desc_list) def _DescribeSizeInfo(self, size_info): - section_desc = self._DescribeSectionSizes(size_info.section_sizes) - group_desc = self.GenerateLines(size_info.symbols) - return itertools.chain(section_desc, ('',), group_desc) + desc_list = [] + for c in size_info.containers: + unsummed_sections, summed_sections = c.ClassifySections() + desc_list.append( + self._DescribeSectionSizes(unsummed_sections, summed_sections, + c.section_sizes)) + desc_list.append(('', )) + desc_list.append(self.GenerateLines(size_info.symbols)) + return itertools.chain.from_iterable(desc_list) def _DescribeDeltaSymbolGroup(self, delta_group): yield self._RenderSymbolHeader(True); @@ -724,16 +828,25 @@ def _UtcToLocal(utc): return utc + offset -def DescribeMetadata(metadata): - display_dict = metadata.copy() - timestamp = display_dict.get(models.METADATA_ELF_MTIME) - if timestamp: - timestamp_obj = datetime.datetime.utcfromtimestamp(timestamp) - display_dict[models.METADATA_ELF_MTIME] = ( - _UtcToLocal(timestamp_obj).strftime('%Y-%m-%d %H:%M:%S')) - gn_args = display_dict.get(models.METADATA_GN_ARGS) - if gn_args: - display_dict[models.METADATA_GN_ARGS] = ' '.join(gn_args) +def DescribeDict(input_dict): + display_dict = {} + for k, v in input_dict.items(): + if k == models.METADATA_ELF_MTIME: + timestamp_obj = datetime.datetime.utcfromtimestamp(v) + display_dict[k] = ( + _UtcToLocal(timestamp_obj).strftime('%Y-%m-%d %H:%M:%S')) + elif isinstance(v, str): + display_dict[k] = v + elif isinstance(v, list): + if v: + if isinstance(v[0], str): + display_dict[k] = ' '.join(str(t) for t in v) + else: + display_dict[k] = repr(v) + else: + display_dict[k] = '' + else: + display_dict[k] = repr(v) return sorted('%s=%s' % t for t in display_dict.items()) diff --git a/chromium/tools/binary_size/libsupersize/diff.py b/chromium/tools/binary_size/libsupersize/diff.py index 09aafe43e1a..b7035b6474c 100644 --- a/chromium/tools/binary_size/libsupersize/diff.py +++ b/chromium/tools/binary_size/libsupersize/diff.py @@ -4,6 +4,7 @@ """Logic for diffing two SizeInfo objects.""" import collections +import itertools import logging import re @@ -91,6 +92,8 @@ def _MatchSymbols(before, after, key_func, padding_by_section_name): def _DiffSymbolGroups(before, after): # For changed symbols, padding is zeroed out. In order to not lose the # information entirely, store it in aggregate. + # Ignoring Containers, i.e., paddings from sections across Containers are + # combined. padding_by_section_name = collections.defaultdict(int) # Usually >90% of symbols are exact matches, so all of the time is spent in @@ -121,20 +124,63 @@ def _DiffSymbolGroups(before, after): return models.DeltaSymbolGroup(all_deltas) +def _DiffObj(before_obj, after_obj): + """Computes recursive diff of nested plain Python objects. + + Assumes no cyclical links exist. + """ + if before_obj is None: + if after_obj is None: + return None + before_obj = type(after_obj)() + elif after_obj is None: + after_obj = type(before_obj)() + if not isinstance(before_obj, type(after_obj)): + return '(type mismatch)' + if isinstance(before_obj, dict): + keys = set(before_obj.keys()) | set(after_obj.keys()) + return {k: _DiffObj(before_obj.get(k), after_obj.get(k)) for k in keys} + elif isinstance(before_obj, list): + return [ + _DiffObj(b, a) for b, a in itertools.zip_longest(before_obj, after_obj) + ] + elif isinstance(before_obj, (bool, str)): + return '%r -> %r' % (before_obj, after_obj) + elif isinstance(before_obj, (int, float, complex)): + return after_obj - before_obj + return '(unknown type)' + + +def _DiffContainerLists(before_containers, after_containers): + """Computes diff of Containers lists, matching names.""" + # Find ordered unique names, preferring order of |container_after|. + pairs = collections.OrderedDict() + for c in after_containers: + pairs[c.name] = [models.Container.Empty(), c] + for c in before_containers: + if c.name in pairs: + pairs[c.name][0] = c + else: + pairs[c.name] = [c, models.Container.Empty()] + ret = [] + for name, [before_c, after_c] in pairs.items(): + ret.append( + models.Container(name=name, + metadata=_DiffObj(before_c.metadata, after_c.metadata), + section_sizes=_DiffObj(before_c.section_sizes, + after_c.section_sizes))) + # This update newly created diff Containers, not existing ones or EMPTY. + models.Container.AssignShortNames(ret) + return ret + + def Diff(before, after, sort=False): """Diffs two SizeInfo objects. Returns a DeltaSizeInfo.""" assert isinstance(before, models.SizeInfo) assert isinstance(after, models.SizeInfo) - section_sizes = { - k: after.section_sizes.get(k, 0) - v - for k, v in before.section_sizes.items() - } - for k, v in after.section_sizes.items(): - if k not in section_sizes: - section_sizes[k] = v - + containers_diff = _DiffContainerLists(before.containers, after.containers) symbol_diff = _DiffSymbolGroups(before.raw_symbols, after.raw_symbols) - ret = models.DeltaSizeInfo(before, after, section_sizes, symbol_diff) + ret = models.DeltaSizeInfo(before, after, containers_diff, symbol_diff) if sort: syms = ret.symbols # Triggers clustering. diff --git a/chromium/tools/binary_size/libsupersize/diff_test.py b/chromium/tools/binary_size/libsupersize/diff_test.py index 80a4d8996e6..33ec9d851bc 100755 --- a/chromium/tools/binary_size/libsupersize/diff_test.py +++ b/chromium/tools/binary_size/libsupersize/diff_test.py @@ -31,7 +31,13 @@ def _SetName(symbol, full_name, name=None): def _CreateSizeInfo(aliases=None): + build_config = {} + metadata = {} section_sizes = {'.text': 100, '.bss': 40} + containers = [ + models.Container(name='', metadata=metadata, section_sizes=section_sizes) + ] + models.Container.AssignShortNames(containers) TEXT = models.SECTION_TEXT symbols = [ _MakeSym(models.SECTION_DEX_METHOD, 10, 'a', 'com.Foo#bar()'), @@ -41,12 +47,13 @@ def _CreateSizeInfo(aliases=None): _MakeSym(TEXT, 50, 'b'), _MakeSym(TEXT, 60, ''), ] + # For simplicity, not associating |symbols| with |containers|. if aliases: for tup in aliases: syms = symbols[tup[0]:tup[1]] for sym in syms: sym.aliases = syms - return models.SizeInfo(section_sizes, symbols) + return models.SizeInfo(build_config, containers, symbols) class DiffTest(unittest.TestCase): @@ -55,27 +62,27 @@ class DiffTest(unittest.TestCase): size_info1 = _CreateSizeInfo() size_info2 = _CreateSizeInfo() d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) - self.assertEquals(0, d.raw_symbols.padding) + self.assertEqual((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) + self.assertEqual(0, d.raw_symbols.padding) def testSimple_Add(self): size_info1 = _CreateSizeInfo() size_info2 = _CreateSizeInfo() size_info1.raw_symbols -= [size_info1.raw_symbols[0]] d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 1, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(10, d.raw_symbols.size) - self.assertEquals(0, d.raw_symbols.padding) + self.assertEqual((0, 1, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(10, d.raw_symbols.size) + self.assertEqual(0, d.raw_symbols.padding) def testSimple_Delete(self): size_info1 = _CreateSizeInfo() size_info2 = _CreateSizeInfo() size_info2.raw_symbols -= [size_info2.raw_symbols[0]] d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 1), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(-10, d.raw_symbols.size) - self.assertEquals(0, d.raw_symbols.padding) + self.assertEqual((0, 0, 1), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(-10, d.raw_symbols.size) + self.assertEqual(0, d.raw_symbols.padding) def testSimple_Change(self): size_info1 = _CreateSizeInfo() @@ -84,9 +91,9 @@ class DiffTest(unittest.TestCase): size_info2.raw_symbols[0].padding += 20 size_info2.raw_symbols[-1].size += 11 d = diff.Diff(size_info1, size_info2) - self.assertEquals((2, 1, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(22, d.raw_symbols.size) - self.assertEquals(20, d.raw_symbols.padding) + self.assertEqual((2, 1, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(22, d.raw_symbols.size) + self.assertEqual(20, d.raw_symbols.padding) def testDontMatchAcrossSections(self): size_info1 = _CreateSizeInfo() @@ -97,33 +104,34 @@ class DiffTest(unittest.TestCase): size_info2.raw_symbols += [ _MakeSym(models.SECTION_RODATA, 11, 'asdf', name='Hello'), ] + # For simplicity, not associating |symbols| with |containers|. d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testAliases_Remove(self): size_info1 = _CreateSizeInfo(aliases=[(0, 3)]) size_info2 = _CreateSizeInfo(aliases=[(0, 2)]) d = diff.Diff(size_info1, size_info2) # Aliases cause all sizes to change. - self.assertEquals((3, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((3, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testAliases_Add(self): size_info1 = _CreateSizeInfo(aliases=[(0, 2)]) size_info2 = _CreateSizeInfo(aliases=[(0, 3)]) d = diff.Diff(size_info1, size_info2) # Aliases cause all sizes to change. - self.assertEquals((3, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((3, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testAliases_ChangeGroup(self): size_info1 = _CreateSizeInfo(aliases=[(0, 2), (2, 5)]) size_info2 = _CreateSizeInfo(aliases=[(0, 3), (3, 5)]) d = diff.Diff(size_info1, size_info2) # Aliases cause all sizes to change. - self.assertEquals((4, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((4, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testStarSymbolNormalization(self): size_info1 = _CreateSizeInfo() @@ -131,8 +139,8 @@ class DiffTest(unittest.TestCase): size_info2 = _CreateSizeInfo() _SetName(size_info2.raw_symbols[0], '* symbol gap 2 (end of section)') d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testNumberNormalization(self): TEXT = models.SECTION_TEXT @@ -150,9 +158,10 @@ class DiffTest(unittest.TestCase): _MakeSym(TEXT, 33, 'a', name='SingleCategoryPreferences$9#this$009'), _MakeSym(TEXT, 44, 'a', name='.L.ref.tmp.137'), ] + # For simplicity, not associating |symbols| with |containers|. d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testChangedParams(self): # Ensure that params changes match up so long as path doesn't change. @@ -163,8 +172,8 @@ class DiffTest(unittest.TestCase): size_info2.raw_symbols[0].full_name = 'Foo(bool)' size_info2.raw_symbols[0].name = 'Foo' d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testChangedPaths_Native(self): # Ensure that non-globally-unique symbols are not matched when path changes. @@ -172,8 +181,8 @@ class DiffTest(unittest.TestCase): size_info2 = _CreateSizeInfo() size_info2.raw_symbols[1].object_path = 'asdf' d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testChangedPaths_StringLiterals(self): # Ensure that string literals are not matched up. @@ -183,8 +192,8 @@ class DiffTest(unittest.TestCase): size_info2.raw_symbols[0].full_name = models.STRING_LITERAL_NAME size_info2.raw_symbols[0].object_path = 'asdf' d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testChangedPaths_Java(self): # Ensure that Java symbols are matched up. @@ -192,8 +201,8 @@ class DiffTest(unittest.TestCase): size_info2 = _CreateSizeInfo() size_info2.raw_symbols[0].object_path = 'asdf' d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) + self.assertEqual((0, 0, 0), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) def testChangedPaths_ChangedParams(self): # Ensure that path changes are not matched when params also change. @@ -205,9 +214,8 @@ class DiffTest(unittest.TestCase): size_info2.raw_symbols[0].name = 'Foo' size_info2.raw_symbols[0].object_path = 'asdf' d = diff.Diff(size_info1, size_info2) - self.assertEquals((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) - self.assertEquals(0, d.raw_symbols.size) - + self.assertEqual((0, 1, 1), d.raw_symbols.CountsByDiffStatus()[1:]) + self.assertEqual(0, d.raw_symbols.size) if __name__ == '__main__': diff --git a/chromium/tools/binary_size/libsupersize/file_format.py b/chromium/tools/binary_size/libsupersize/file_format.py index 20b5ec11383..a65ac0f2f7b 100644 --- a/chromium/tools/binary_size/libsupersize/file_format.py +++ b/chromium/tools/binary_size/libsupersize/file_format.py @@ -5,9 +5,9 @@ """Deals with loading & saving .size and .sizediff files. The .size file is written in the following format. There are no section -delimiters, instead the end of a section is usually determined by a row count -on the first line of a section, followed by that number of rows. In other -cases, the sections have a known size. +delimiters, instead the end of a section is usually determined by a row count on +the first line of a section, followed by that number of rows. In other cases, +the sections have a known size. Header ------ @@ -116,7 +116,8 @@ import parallel # File format version for .size files. -_SERIALIZATION_VERSION = 'Size File Format v1' +_SERIALIZATION_VERSION_SINGLE_CONTAINER = 'Size File Format v1' +_SERIALIZATION_VERSION_MULTI_CONTAINER = 'Size File Format v1.1' # Header for .sizediff files _SIZEDIFF_HEADER = '# Created by //tools/binary_size\nDIFF\n' @@ -171,16 +172,18 @@ def CalculatePadding(raw_symbols): # Padding not really required, but it is useful to check for large padding and # log a warning. - seen_sections = set() + seen_container_and_sections = set() for i, symbol in enumerate(raw_symbols[1:]): prev_symbol = raw_symbols[i] if symbol.IsOverhead(): # Overhead symbols are not actionable so should be padding-only. symbol.padding = symbol.size - if prev_symbol.section_name != symbol.section_name: - assert symbol.section_name not in seen_sections, ( - 'Input symbols must be sorted by section, then address.') - seen_sections.add(symbol.section_name) + if (prev_symbol.container.name != symbol.container.name + or prev_symbol.section_name != symbol.section_name): + container_and_section = (symbol.container.name, symbol.section_name) + assert container_and_section not in seen_container_and_sections, ( + 'Input symbols must be sorted by container, section, then address.') + seen_container_and_sections.add(container_and_section) continue if (symbol.address <= 0 or prev_symbol.address <= 0 or not symbol.IsNative() or not prev_symbol.IsNative()): @@ -246,24 +249,45 @@ def _SaveSizeInfoToFile(size_info, else: raw_symbols = size_info.raw_symbols + num_containers = len(size_info.containers) + has_multi_containers = (num_containers > 1) + w = _Writer(file_obj) - # Created by supersize header + # "Created by SuperSize" header w.WriteLine('# Created by //tools/binary_size') - w.WriteLine(_SERIALIZATION_VERSION) + if has_multi_containers: + w.WriteLine(_SERIALIZATION_VERSION_MULTI_CONTAINER) + else: + w.WriteLine(_SERIALIZATION_VERSION_SINGLE_CONTAINER) + # JSON header fields fields = { - 'metadata': size_info.metadata, - 'section_sizes': size_info.section_sizes, 'has_components': True, 'has_padding': include_padding, } + + if has_multi_containers: + # Write using new format. + assert len(set(c.name for c in size_info.containers)) == num_containers, ( + 'Container names must be distinct.') + fields['build_config'] = size_info.build_config + fields['containers'] = [{ + 'name': c.name, + 'metadata': c.metadata, + 'section_sizes': c.section_sizes, + } for c in size_info.containers] + else: + # Write using old format. + fields['metadata'] = size_info.metadata_legacy + fields['section_sizes'] = size_info.containers[0].section_sizes + fields_str = json.dumps(fields, indent=2, sort_keys=True) w.WriteLine(str(len(fields_str))) w.WriteLine(fields_str) w.LogSize('header') # For libchrome: 570 bytes. - # Store a single copy of all paths and have them referenced by index. + # Store a single copy of all paths and reference them by index. unique_path_tuples = sorted( set((s.object_path, s.source_path) for s in raw_symbols)) path_tuples = {tup: i for i, tup in enumerate(unique_path_tuples)} @@ -280,9 +304,18 @@ def _SaveSizeInfoToFile(size_info, w.WriteLine(comp) w.LogSize('components') - # Symbol counts by section. - symbol_group_by_section = raw_symbols.GroupedBySectionName() - w.WriteLine('\t'.join(g.name for g in symbol_group_by_section)) + # Symbol counts by container and section. + symbol_group_by_section = raw_symbols.GroupedByContainerAndSectionName() + if has_multi_containers: + container_name_to_index = { + c.name: i + for i, c in enumerate(size_info.containers) + } + w.WriteLine('\t'.join('<%d>%s' % + (container_name_to_index[g.name[0]], g.name[1]) + for g in symbol_group_by_section)) + else: + w.WriteLine('\t'.join(g.name[1] for g in symbol_group_by_section)) w.WriteLine('\t'.join(str(len(g)) for g in symbol_group_by_section)) def gen_delta(gen, prev_value=0): @@ -371,17 +404,49 @@ def _LoadSizeInfoFromFile(file_obj, size_path): """ # Split lines on '\n', since '\r' can appear in some lines! lines = io.TextIOWrapper(file_obj, newline='\n') - _ReadLine(lines) # Line 0: Created by supersize header + _ReadLine(lines) # Line 0: "Created by SuperSize" header actual_version = _ReadLine(lines) - assert actual_version == _SERIALIZATION_VERSION, ( - 'Version mismatch. Need to write some upgrade code.') + if actual_version == _SERIALIZATION_VERSION_SINGLE_CONTAINER: + has_multi_containers = False + elif actual_version == _SERIALIZATION_VERSION_MULTI_CONTAINER: + has_multi_containers = True + else: + raise ValueError('Version mismatch. Need to write some upgrade code.') + # JSON header fields json_len = int(_ReadLine(lines)) json_str = lines.read(json_len) fields = json.loads(json_str) - section_sizes = fields['section_sizes'] - metadata = fields.get('metadata') + assert ('containers' in fields) == has_multi_containers + assert ('build_config' in fields) == has_multi_containers + assert ('containers' in fields) == has_multi_containers + assert ('metadata' not in fields) == has_multi_containers + assert ('section_sizes' not in fields) == has_multi_containers + + containers = [] + if has_multi_containers: # New format. + build_config = fields['build_config'] + for cfield in fields['containers']: + c = models.Container(name=cfield['name'], + metadata=cfield['metadata'], + section_sizes=cfield['section_sizes']) + containers.append(c) + else: # Old format. + build_config = {} + metadata = fields.get('metadata') + if metadata: + for key in models.BUILD_CONFIG_KEYS: + if key in metadata: + build_config[key] = metadata[key] + del metadata[key] + section_sizes = fields['section_sizes'] + containers.append( + models.Container(name='', + metadata=metadata, + section_sizes=section_sizes)) + models.Container.AssignShortNames(containers) + has_components = fields.get('has_components', False) has_padding = fields.get('has_padding', False) @@ -389,7 +454,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path): _ReadLine(lines) # Path list - num_path_tuples = int(_ReadLine(lines)) # Line 4 - number of paths in list + num_path_tuples = int(_ReadLine(lines)) # Number of paths in list # Read the path list values and store for later path_tuples = [ _ReadValuesFromLine(lines, split='\t') for _ in range(num_path_tuples) @@ -401,8 +466,8 @@ def _LoadSizeInfoFromFile(file_obj, size_path): components = [_ReadLine(lines) for _ in range(num_components)] # Symbol counts by section. - section_names = _ReadValuesFromLine(lines, split='\t') - section_counts = [int(c) for c in _ReadValuesFromLine(lines, split='\t')] + container_and_section_names = _ReadValuesFromLine(lines, split='\t') + symbol_counts = [int(c) for c in _ReadValuesFromLine(lines, split='\t')] # Addresses, sizes, paddings, path indices, component indices def read_numeric(delta=False): @@ -414,7 +479,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path): """ ret = [] delta_multiplier = int(delta) - for _ in section_counts: + for _ in symbol_counts: value = 0 fields = [] for f in _ReadValuesFromLine(lines, split=' '): @@ -428,21 +493,31 @@ def _LoadSizeInfoFromFile(file_obj, size_path): if has_padding: paddings = read_numeric(delta=False) else: - paddings = [None] * len(section_names) + paddings = [None] * len(container_and_section_names) path_indices = read_numeric(delta=True) if has_components: component_indices = read_numeric(delta=True) else: - component_indices = [None] * len(section_names) + component_indices = [None] * len(container_and_section_names) - raw_symbols = [None] * sum(section_counts) + raw_symbols = [None] * sum(symbol_counts) symbol_idx = 0 - for (cur_section_name, cur_section_count, cur_addresses, cur_sizes, - cur_paddings, cur_path_indices, cur_component_indices) in zip( - section_names, section_counts, addresses, sizes, paddings, - path_indices, component_indices): + for (cur_container_and_section_name, cur_symbol_count, cur_addresses, + cur_sizes, cur_paddings, cur_path_indices, + cur_component_indices) in zip(container_and_section_names, symbol_counts, + addresses, sizes, paddings, path_indices, + component_indices): + if has_multi_containers: + # Extract 'cur_section_name'. + assert cur_container_and_section_name.startswith('<') + cur_container_idx_str, cur_section_name = ( + cur_container_and_section_name[1:].split('>', 1)) + cur_container = containers[int(cur_container_idx_str)] + else: + cur_section_name = cur_container_and_section_name + cur_container = containers[0] alias_counter = 0 - for i in range(cur_section_count): + for i in range(cur_symbol_count): parts = _ReadValuesFromLine(lines, split='\t') full_name = parts[0] flags_part = None @@ -469,6 +544,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path): # Skip the constructor to avoid default value checks new_sym = models.Symbol.__new__(models.Symbol) + new_sym.container = cur_container new_sym.section_name = cur_section_name new_sym.full_name = full_name new_sym.address = cur_addresses[i] @@ -505,7 +581,9 @@ def _LoadSizeInfoFromFile(file_obj, size_path): if not has_padding: CalculatePadding(raw_symbols) - return models.SizeInfo(section_sizes, raw_symbols, metadata=metadata, + return models.SizeInfo(build_config, + containers, + raw_symbols, size_path=size_path) diff --git a/chromium/tools/binary_size/libsupersize/html_report.py b/chromium/tools/binary_size/libsupersize/html_report.py index 72d9e27a119..bad1c8367cd 100644 --- a/chromium/tools/binary_size/libsupersize/html_report.py +++ b/chromium/tools/binary_size/libsupersize/html_report.py @@ -212,18 +212,20 @@ def BuildReportFromSizeInfo(out_path, size_info, all_symbols=False): symbols = symbols.WhereDiffStatusIs(models.DIFF_STATUS_UNCHANGED).Inverted() meta, tree_nodes = _MakeTreeViewList(symbols, all_symbols) + assert len(size_info.containers) == 1 + c = size_info.containers[0] logging.info('Created %d tree nodes', len(tree_nodes)) meta.update({ - 'diff_mode': is_diff, - 'section_sizes': size_info.section_sizes, + 'diff_mode': is_diff, + 'section_sizes': c.section_sizes, }) if is_diff: meta.update({ - 'before_metadata': size_info.before.metadata, - 'after_metadata': size_info.after.metadata, + 'before_metadata': size_info.before.metadata_legacy, + 'after_metadata': size_info.after.metadata_legacy, }) else: - meta['metadata'] = size_info.metadata + meta['metadata'] = size_info.metadata_legacy # Write newline-delimited JSON file logging.info('Serializing JSON') diff --git a/chromium/tools/binary_size/libsupersize/integration_test.py b/chromium/tools/binary_size/libsupersize/integration_test.py index 805ea14945a..bd47604cf37 100755 --- a/chromium/tools/binary_size/libsupersize/integration_test.py +++ b/chromium/tools/binary_size/libsupersize/integration_test.py @@ -170,14 +170,19 @@ class IntegrationTest(unittest.TestCase): 'source_directory': _TEST_SOURCE_DIR, }) - def _CloneSizeInfo(self, use_output_directory=True, use_elf=True, - use_apk=False, use_minimal_apks=False, use_pak=False): + def _CloneSizeInfo(self, + use_output_directory=True, + use_elf=False, + use_apk=False, + use_minimal_apks=False, + use_pak=False, + use_aux_elf=False): assert not use_elf or use_output_directory assert not (use_apk and use_pak) - cache_key = ( - use_output_directory, use_elf, use_apk, use_minimal_apks, use_pak) + cache_key = (use_output_directory, use_elf, use_apk, use_minimal_apks, + use_pak, use_aux_elf) if cache_key not in IntegrationTest.cached_size_info: - elf_path = _TEST_ELF_PATH if use_elf else None + elf_path = _TEST_ELF_PATH if use_elf or use_aux_elf else None output_directory = _TEST_OUTPUT_DIR if use_output_directory else None knobs = archive.SectionSizeKnobs() opts = archive.ContainerArchiveOptions(self._CreateTestArgs()) @@ -210,34 +215,38 @@ class IntegrationTest(unittest.TestCase): pak_info_file = _TEST_PAK_INFO_PATH linker_name = 'gold' with _AddMocksToPath(): + build_config = {} metadata = archive.CreateMetadata(_TEST_MAP_PATH, elf_path, apk_path, minimal_apks_path, _TEST_TOOL_PREFIX, - output_directory, linker_name) - section_sizes, raw_symbols = archive.CreateSectionSizesAndSymbols( + output_directory, linker_name, + build_config) + container, raw_symbols = archive.CreateContainerAndSymbols( knobs=knobs, opts=opts, + container_name='', + metadata=metadata, map_path=_TEST_MAP_PATH, tool_prefix=_TEST_TOOL_PREFIX, - elf_path=elf_path, output_directory=output_directory, + elf_path=elf_path, apk_path=apk_path or extracted_minimal_apk_path, apk_so_path=apk_so_path, - metadata=metadata, pak_files=pak_files, pak_info_file=pak_info_file, linker_name=linker_name, size_info_prefix=size_info_prefix) IntegrationTest.cached_size_info[cache_key] = archive.CreateSizeInfo( - [section_sizes], [raw_symbols], [metadata]) + build_config, [container], [raw_symbols]) return copy.deepcopy(IntegrationTest.cached_size_info[cache_key]) def _DoArchive(self, archive_path, use_output_directory=True, - use_elf=True, + use_elf=False, use_apk=False, use_minimal_apks=False, use_pak=False, + use_aux_elf=None, debug_measures=False, include_padding=False): args = [ @@ -255,42 +264,46 @@ class IntegrationTest(unittest.TestCase): args += ['-f', _TEST_APK_PATH] elif use_minimal_apks: args += ['-f', _TEST_MINIMAL_APKS_PATH] - if use_elf: - if use_apk or use_minimal_apks: - args += ['--elf-file', _TEST_ELF_PATH] - else: - args += ['-f', _TEST_ELF_PATH] + elif use_elf: + args += ['-f', _TEST_ELF_PATH] if use_pak: args += ['--pak-file', _TEST_APK_LOCALE_PAK_PATH, '--pak-file', _TEST_APK_PAK_PATH, '--pak-info-file', _TEST_PAK_INFO_PATH] + if use_aux_elf: + args += ['--aux-elf-file', _TEST_ELF_PATH] if include_padding: args += ['--include-padding'] _RunApp('archive', args, debug_measures=debug_measures) def _DoArchiveTest(self, use_output_directory=True, - use_elf=True, + use_elf=False, use_apk=False, use_minimal_apks=False, use_pak=False, + use_aux_elf=False, debug_measures=False, include_padding=False): with tempfile.NamedTemporaryFile(suffix='.size') as temp_file: - self._DoArchive( - temp_file.name, - use_output_directory=use_output_directory, - use_elf=use_elf, - use_apk=use_apk, - use_minimal_apks=use_minimal_apks, - use_pak=use_pak, - debug_measures=debug_measures, - include_padding=include_padding) + self._DoArchive(temp_file.name, + use_output_directory=use_output_directory, + use_elf=use_elf, + use_apk=use_apk, + use_minimal_apks=use_minimal_apks, + use_pak=use_pak, + use_aux_elf=use_aux_elf, + debug_measures=debug_measures, + include_padding=include_padding) size_info = archive.LoadAndPostProcessSizeInfo(temp_file.name) # Check that saving & loading is the same as directly parsing. expected_size_info = self._CloneSizeInfo( - use_output_directory=use_output_directory, use_elf=use_elf, - use_apk=use_apk, use_minimal_apks=use_minimal_apks, use_pak=use_pak) + use_output_directory=use_output_directory, + use_elf=use_elf, + use_apk=use_apk, + use_minimal_apks=use_minimal_apks, + use_pak=use_pak, + use_aux_elf=use_aux_elf) self.assertEqual(expected_size_info.metadata, size_info.metadata) # Don't cluster. expected_size_info.symbols = expected_size_info.raw_symbols @@ -301,11 +314,15 @@ class IntegrationTest(unittest.TestCase): sym_strs = (repr(sym) for sym in size_info.symbols) stats = describe.DescribeSizeInfoCoverage(size_info) - if size_info.metadata: - metadata = describe.DescribeMetadata(size_info.metadata) + if len(size_info.containers) == 1: + # If there's only one container, merge the its metadata into build_config. + merged_data_desc = describe.DescribeDict(size_info.metadata_legacy) + return itertools.chain(merged_data_desc, stats, sym_strs) else: - metadata = [] - return itertools.chain(metadata, stats, sym_strs) + build_config = describe.DescribeDict(size_info.build_config) + metadata = itertools.chain.from_iterable( + describe.DescribeDict(c.metadata) for c in size_info.containers) + return itertools.chain(build_config, metadata, stats, sym_strs) @_CompareWithGolden() def test_Archive(self): @@ -313,38 +330,38 @@ class IntegrationTest(unittest.TestCase): @_CompareWithGolden() def test_Archive_OutputDirectory(self): - return self._DoArchiveTest(use_elf=False) + return self._DoArchiveTest() @_CompareWithGolden() def test_Archive_Elf(self): - return self._DoArchiveTest() + return self._DoArchiveTest(use_elf=True) @_CompareWithGolden() def test_Archive_Apk(self): - return self._DoArchiveTest(use_apk=True) + return self._DoArchiveTest(use_apk=True, use_aux_elf=True) @_CompareWithGolden() def test_Archive_MinimalApks(self): - return self._DoArchiveTest(use_minimal_apks=True) + return self._DoArchiveTest(use_minimal_apks=True, use_aux_elf=True) @_CompareWithGolden() def test_Archive_Pak_Files(self): - return self._DoArchiveTest(use_pak=True) + return self._DoArchiveTest(use_pak=True, use_aux_elf=True) @_CompareWithGolden(name='Archive_Elf') def test_Archive_Elf_DebugMeasures(self): - return self._DoArchiveTest(debug_measures=True) + return self._DoArchiveTest(use_elf=True, debug_measures=True) @_CompareWithGolden(name='Archive') def test_ArchiveSparse(self): - return self._DoArchiveTest( - use_output_directory=False, use_elf=False, include_padding=True) + return self._DoArchiveTest(use_output_directory=False, include_padding=True) @_CompareWithGolden() def test_Console(self): with tempfile.NamedTemporaryFile(suffix='.size') as size_file, \ tempfile.NamedTemporaryFile(suffix='.txt') as output_file: - file_format.SaveSizeInfo(self._CloneSizeInfo(), size_file.name) + file_format.SaveSizeInfo(self._CloneSizeInfo(use_elf=True), + size_file.name) query = [ 'ShowExamples()', 'ExpandRegex("_foo_")', @@ -366,7 +383,8 @@ class IntegrationTest(unittest.TestCase): def test_Csv(self): with tempfile.NamedTemporaryFile(suffix='.size') as size_file, \ tempfile.NamedTemporaryFile(suffix='.txt') as output_file: - file_format.SaveSizeInfo(self._CloneSizeInfo(), size_file.name) + file_format.SaveSizeInfo(self._CloneSizeInfo(use_elf=True), + size_file.name) query = [ 'Csv(size_info, to_file=%r)' % output_file.name, ] @@ -378,7 +396,8 @@ class IntegrationTest(unittest.TestCase): @_CompareWithGolden() def test_Diff_NullDiff(self): with tempfile.NamedTemporaryFile(suffix='.size') as temp_file: - file_format.SaveSizeInfo(self._CloneSizeInfo(), temp_file.name) + file_format.SaveSizeInfo(self._CloneSizeInfo(use_elf=True), + temp_file.name) return _RunApp('diff', [temp_file.name, temp_file.name]) # Runs archive 3 times, and asserts the contents are the same each time. @@ -393,10 +412,13 @@ class IntegrationTest(unittest.TestCase): @_CompareWithGolden() def test_Diff_Basic(self): - size_info1 = self._CloneSizeInfo(use_elf=False, use_pak=True) - size_info2 = self._CloneSizeInfo(use_elf=False, use_pak=True) - size_info1.metadata = {"foo": 1, "bar": [1,2,3], "baz": "yes"} - size_info2.metadata = {"foo": 1, "bar": [1,3], "baz": "yes"} + size_info1 = self._CloneSizeInfo(use_pak=True) + size_info2 = self._CloneSizeInfo(use_pak=True) + size_info2.build_config['git_revision'] = 'xyz789' + container1 = size_info1.containers[0] + container2 = size_info2.containers[0] + container1.metadata = {"foo": 1, "bar": [1, 2, 3], "baz": "yes"} + container2.metadata = {"foo": 1, "bar": [1, 3], "baz": "yes"} size_info1.raw_symbols -= size_info1.raw_symbols[:2] size_info2.raw_symbols -= size_info2.raw_symbols[-3:] @@ -434,7 +456,7 @@ class IntegrationTest(unittest.TestCase): @_CompareWithGolden() def test_FullDescription(self): - size_info = self._CloneSizeInfo() + size_info = self._CloneSizeInfo(use_elf=True) # Show both clustered and non-clustered so that they can be compared. size_info.symbols = size_info.raw_symbols return itertools.chain( @@ -445,7 +467,7 @@ class IntegrationTest(unittest.TestCase): @_CompareWithGolden() def test_SymbolGroupMethods(self): - all_syms = self._CloneSizeInfo().symbols + all_syms = self._CloneSizeInfo(use_elf=True).symbols global_syms = all_syms.WhereNameMatches('GLOBAL') # Tests Filter(), Inverted(), and __sub__(). non_global_syms = global_syms.Inverted() diff --git a/chromium/tools/binary_size/libsupersize/models.py b/chromium/tools/binary_size/libsupersize/models.py index 1edbb39f311..dae0f808b83 100644 --- a/chromium/tools/binary_size/libsupersize/models.py +++ b/chromium/tools/binary_size/libsupersize/models.py @@ -22,6 +22,7 @@ Description of common properties: Never None, but will be '' for anonymous symbols. * is_anonymous: True when the symbol exists in an anonymous namespace (which are removed from both full_name and name during normalization). + * container: A (shared) Container instance. * section_name: E.g. ".text", ".rodata", ".data.rel.local" * section: The second character of |section_name|. E.g. "t", "r", "d". * component: The team that owns this feature. @@ -37,7 +38,18 @@ import re import match_util -METADATA_GIT_REVISION = 'git_revision' +BUILD_CONFIG_GIT_REVISION = 'git_revision' +BUILD_CONFIG_GN_ARGS = 'gn_args' +BUILD_CONFIG_LINKER_NAME = 'linker_name' +BUILD_CONFIG_TOOL_PREFIX = 'tool_prefix' # Path relative to SRC_ROOT. + +BUILD_CONFIG_KEYS = ( + BUILD_CONFIG_GIT_REVISION, + BUILD_CONFIG_GN_ARGS, + BUILD_CONFIG_LINKER_NAME, + BUILD_CONFIG_TOOL_PREFIX, +) + METADATA_APK_FILENAME = 'apk_file_name' # Path relative to output_directory. METADATA_APK_SIZE = 'apk_size' # File size of apk in bytes. METADATA_MAP_FILENAME = 'map_file_name' # Path relative to output_directory. @@ -46,9 +58,6 @@ METADATA_ELF_FILENAME = 'elf_file_name' # Path relative to output_directory. METADATA_ELF_MTIME = 'elf_mtime' # int timestamp in utc. METADATA_ELF_BUILD_ID = 'elf_build_id' METADATA_ELF_RELOCATIONS_COUNT = 'elf_relocations_count' -METADATA_GN_ARGS = 'gn_args' -METADATA_LINKER_NAME = 'linker_name' -METADATA_TOOL_PREFIX = 'tool_prefix' # Path relative to SRC_ROOT. # New sections should also be added to the SuperSize UI. SECTION_BSS = '.bss' @@ -93,6 +102,8 @@ PAK_SECTIONS = ( SECTION_PAK_TRANSLATIONS, ) +CONTAINER_MULTIPLE = '*' + SECTION_NAME_TO_SECTION = { SECTION_BSS: 'b', SECTION_BSS_REL_RO: 'b', @@ -170,35 +181,108 @@ DIFF_COUNT_DELTA = [0, 0, 1, -1] STRING_LITERAL_NAME = 'string literal' + +def ClassifySections(section_names): + """Returns section names subsets classified by contribution to binary size. + + Args: + section_names: A list of existing sections names. + + Returns: + Tuple (unsummed_sections, summed_sections). |unsummed_sections| are sections + that don't contribute to binary size. |summed_sections| are sections that + *explicitly* contribute to binary size. What's excluded are sections that + *implicitly* contribute to binary size -- these get lumped into the .other + section. + """ + unsummed_sections = set(name for name in section_names + if name in BSS_SECTIONS or '(' in name) + summed_sections = (set(section_names) + & set(SECTION_NAME_TO_SECTION.keys()) - unsummed_sections) + return frozenset(unsummed_sections), frozenset(summed_sections) + + +class Container(object): + """Info for a single SuperSize input file (e.g., APK file). + + Fields: + name: Container name. Must be unique among containers, and can be ''. + short_name: Short container name for compact display. This, also needs to be + unique among containers in the same SizeInfo, and can be ''. + metadata: A dict. + section_sizes: A dict of section_name -> size. + classified_sections: Cache for ClassifySections(). + """ + __slots__ = ( + 'name', + 'short_name', + 'metadata', + 'section_sizes', + '_classified_sections', + ) + + def __init__(self, name, metadata, section_sizes): + # name == '' hints that only one container exists, and there's no need to + # distinguish them. This can affect console output. + self.name = name + self.short_name = None # Assigned by AssignShortNames(). + self.metadata = metadata or {} + self.section_sizes = section_sizes # E.g. {SECTION_TEXT: 0} + self._classified_sections = None + + @staticmethod + def AssignShortNames(containers): + for i, c in enumerate(containers): + c.short_name = str(i) if c.name else '' + + def ClassifySections(self): + if not self._classified_sections: + self._classified_sections = ClassifySections(self.section_sizes.keys()) + return self._classified_sections + + @staticmethod + def Empty(): + """Returns a placeholder Container that should be read-only. + + For simplicity, we're not enforcing read-only checks (frozenmap does not + exist, unfortunately). Creating a new instance instead of using a global + singleton for robustness. + """ + return Container(name='(empty)', metadata={}, section_sizes={}) + + class BaseSizeInfo(object): """Base class for SizeInfo and DeltaSizeInfo. Fields: - section_sizes: A dict of section_name -> size. + build_config: A dict of build configurations. + containers: A list of Containers. raw_symbols: A SymbolGroup containing all top-level symbols (no groups). symbols: A SymbolGroup of all symbols, where symbols have been grouped by full_name (where applicable). May be re-assigned when it is - desirable to show custom groupings while still printing metadata and - section_sizes. + desirable to show custom groupings while still printing containers. native_symbols: Subset of |symbols| that are from native code. pak_symbols: Subset of |symbols| that are from pak files. """ __slots__ = ( - 'section_sizes', + 'build_config', + 'containers', 'raw_symbols', '_symbols', '_native_symbols', '_pak_symbols', ) - def __init__(self, section_sizes, raw_symbols, symbols=None): + def __init__(self, build_config, containers, raw_symbols, symbols=None): if isinstance(raw_symbols, list): raw_symbols = SymbolGroup(raw_symbols) - self.section_sizes = section_sizes # E.g. {SECTION_TEXT: 0} + self.build_config = build_config + self.containers = containers self.raw_symbols = raw_symbols self._symbols = symbols self._native_symbols = None self._pak_symbols = None + Container.AssignShortNames(self.containers) @property def symbols(self): @@ -226,25 +310,53 @@ class BaseSizeInfo(object): self._pak_symbols = self.raw_symbols.WhereIsPak() return self._pak_symbols + @property + def all_section_sizes(self): + return [c.section_sizes for c in self.containers] + + @property + def metadata(self): + return [c.metadata for c in self.containers] + + def ContainerForName(self, name, default=None): + return next((c for c in self.containers if c.name == name), default) + class SizeInfo(BaseSizeInfo): """Represents all size information for a single binary. Fields: - metadata: A dict. size_path: Path to .size file this was loaded from (or None). """ __slots__ = ( - 'metadata', 'size_path', ) - def __init__(self, section_sizes, raw_symbols, metadata=None, symbols=None, + def __init__(self, + build_config, + containers, + raw_symbols, + symbols=None, size_path=None): - super(SizeInfo, self).__init__(section_sizes, raw_symbols, symbols=symbols) - self.metadata = metadata or {} + super(SizeInfo, self).__init__(build_config, + containers, + raw_symbols, + symbols=symbols) self.size_path = size_path + @property + def metadata_legacy(self): + """Return |container[0].metadata| fused with |build_config|. + + Supported only if there is one Container. + """ + assert len(self.containers) == 1 + metadata = self.containers[0].metadata.copy() + for k, v in self.build_config.items(): + assert k not in metadata + metadata[k] = v + return metadata + class DeltaSizeInfo(BaseSizeInfo): """What you get when you Diff() two SizeInfo objects. @@ -258,8 +370,8 @@ class DeltaSizeInfo(BaseSizeInfo): 'after', ) - def __init__(self, before, after, section_sizes, raw_symbols): - super(DeltaSizeInfo, self).__init__(section_sizes, raw_symbols) + def __init__(self, before, after, containers, raw_symbols): + super(DeltaSizeInfo, self).__init__(None, containers, raw_symbols) self.before = before self.after = after @@ -271,6 +383,14 @@ class BaseSymbol(object): """ __slots__ = () + @property + def container_name(self): + return self.container.name if self.container else '' + + @property + def container_short_name(self): + return self.container.short_name if self.container else '' + @property def section(self): """Returns the one-letter section.""" @@ -392,6 +512,7 @@ class Symbol(BaseSymbol): 'object_path', 'aliases', 'padding', + 'container', 'section_name', 'source_path', 'size', @@ -420,16 +541,21 @@ class Symbol(BaseSymbol): self.flags = flags self.aliases = aliases self.padding = 0 + self.container = None self.component = '' def __repr__(self): - template = ('{}@{:x}(size_without_padding={},padding={},full_name={},' + if self.container and self.container.name: + container_str = '<{}>'.format(self.container.name) + else: + container_str = '' + template = ('{}{}@{:x}(size_without_padding={},padding={},full_name={},' 'object_path={},source_path={},flags={},num_aliases={},' 'component={})') - return template.format( - self.section_name, self.address, self.size_without_padding, - self.padding, self.full_name, self.object_path, self.source_path, - self.FlagsString(), self.num_aliases, self.component) + return template.format(container_str, self.section_name, self.address, + self.size_without_padding, self.padding, + self.full_name, self.object_path, self.source_path, + self.FlagsString(), self.num_aliases, self.component) def SetName(self, full_name, template_name=None, name=None): # Note that _NormalizeNames() will clobber these values. @@ -468,13 +594,24 @@ class DeltaSymbol(BaseSymbol): self.after_symbol = after_symbol def __repr__(self): - template = ('{}{}@{:x}(size_without_padding={},padding={},full_name={},' + before_container_name = (self.before_symbol.container_name + if self.before_symbol else None) + after_container_name = (self.after_symbol.container_name + if self.after_symbol else None) + if after_container_name: + if before_container_name != after_container_name: + container_str = '<~{}>'.format(after_container_name) + else: + container_str = '<{}>'.format(after_container_name) + else: # None or ''. + container_str = '' + template = ('{}{}{}@{:x}(size_without_padding={},padding={},full_name={},' 'object_path={},source_path={},flags={})') - return template.format( - DIFF_PREFIX_BY_STATUS[self.diff_status], self.section_name, - self.address, self.size_without_padding, self.padding, - self.full_name, self.object_path, self.source_path, - self.FlagsString()) + return template.format(DIFF_PREFIX_BY_STATUS[self.diff_status], + container_str, self.section_name, self.address, + self.size_without_padding, self.padding, + self.full_name, self.object_path, self.source_path, + self.FlagsString()) def IsDelta(self): return True @@ -530,6 +667,10 @@ class DeltaSymbol(BaseSymbol): def aliases(self): return None + @property + def container(self): + return (self.after_symbol or self.before_symbol).container + @property def section_name(self): return (self.after_symbol or self.before_symbol).section_name @@ -617,6 +758,7 @@ class SymbolGroup(BaseSymbol): 'is_default_sorted', # True for groups created by Sorted() ) + # template_name and full_name are useful when clustering symbol clones. def __init__(self, symbols, @@ -626,6 +768,7 @@ class SymbolGroup(BaseSymbol): name='', section_name=None, is_default_sorted=False): + assert isinstance(symbols, list) # Rejects non-reusable generators. self._padding = None self._size = None self._pss = None @@ -680,6 +823,20 @@ class SymbolGroup(BaseSymbol): def index(self, item): return self._symbols.index(item) + @property + def container_name(self): + ret = set(s.container_name for s in self._symbols) + if ret: + return CONTAINER_MULTIPLE if len(ret) > 1 else (ret.pop() or '') + return '' + + @property + def container_short_name(self): + ret = set(s.container_short_name for s in self._symbols) + if ret: + return CONTAINER_MULTIPLE if len(ret) > 1 else (ret.pop() or '') + return '' + @property def address(self): first = self._symbols[0].address if self else 0 @@ -744,16 +901,20 @@ class SymbolGroup(BaseSymbol): self.template_name = full_name if template_name is None else template_name self.name = full_name if name is None else name - def IterUniqueSymbols(self): - """Yields all symbols, but only one from each alias group.""" + @staticmethod + def _IterUnique(symbol_iter): seen_aliases_lists = set() - for s in self: + for s in symbol_iter: if not s.aliases: yield s elif id(s.aliases) not in seen_aliases_lists: seen_aliases_lists.add(id(s.aliases)) yield s + def IterUniqueSymbols(self): + """Yields all symbols, but only one from each alias group.""" + return SymbolGroup._IterUnique(self) + def IterLeafSymbols(self): """Yields all symbols, recursing into subgroups.""" for s in self: @@ -775,14 +936,13 @@ class SymbolGroup(BaseSymbol): is_default_sorted = self.is_default_sorted if section_name is None: section_name = self.section_name - return self.__class__( - symbols, - filtered_symbols=filtered_symbols, - full_name=full_name, - template_name=template_name, - name=name, - section_name=section_name, - is_default_sorted=is_default_sorted) + return self.__class__(symbols, + filtered_symbols=filtered_symbols, + full_name=full_name, + template_name=template_name, + name=name, + section_name=section_name, + is_default_sorted=is_default_sorted) def Sorted(self, cmp_func=None, key=None, reverse=False): """Sorts by abs(PSS).""" @@ -832,13 +992,23 @@ class SymbolGroup(BaseSymbol): def WherePssBiggerThan(self, min_pss): return self.Filter(lambda s: s.pss >= min_pss) - def WhereInSection(self, section): + def WhereInSection(self, section, container=None): """|section| can be section_name ('.bss'), or section chars ('bdr').""" if section.startswith('.'): - ret = self.Filter(lambda s: s.section_name == section) + if container: + short_name = container.short_name + ret = self.Filter(lambda s: (s.container.short_name == short_name and s. + section_name == section)) + else: + ret = self.Filter(lambda s: s.section_name == section) ret.section_name = section else: - ret = self.Filter(lambda s: s.section in section) + if container: + short_name = container.short_name + ret = self.Filter(lambda s: (s.container.short_name == short_name and s. + section in section)) + else: + ret = self.Filter(lambda s: s.section in section) if section in SECTION_TO_SECTION_NAME: ret.section_name = SECTION_TO_SECTION_NAME[section] return ret @@ -937,10 +1107,9 @@ class SymbolGroup(BaseSymbol): # Symbols within third_party that do not contain the string "foo". symbols.WherePathMatches(r'third_party').WhereMatches('foo').Inverted() """ - return self._CreateTransformed( - self._filtered_symbols, - filtered_symbols=self._symbols, - section_name=SECTION_MULTIPLE) + return self._CreateTransformed(self._filtered_symbols, + filtered_symbols=self._symbols, + section_name=SECTION_MULTIPLE) def GroupedBy(self, func, min_count=0, group_factory=None): """Returns a SymbolGroup of SymbolGroups, indexed by |func|. @@ -1042,18 +1211,16 @@ class SymbolGroup(BaseSymbol): full_name = token[1] sym = symbols[0] if token[1].startswith('*'): - return self._CreateTransformed( - symbols, - full_name=full_name, - template_name=full_name, - name=full_name, - section_name=sym.section_name) - return self._CreateTransformed( - symbols, - full_name=full_name, - template_name=sym.template_name, - name=sym.name, - section_name=sym.section_name) + return self._CreateTransformed(symbols, + full_name=full_name, + template_name=full_name, + name=full_name, + section_name=sym.section_name) + return self._CreateTransformed(symbols, + full_name=full_name, + template_name=sym.template_name, + name=sym.name, + section_name=sym.section_name) # A full second faster to cluster per-section. Plus, don't need create # (section_name, name) tuples in cluster_func. @@ -1080,17 +1247,19 @@ class SymbolGroup(BaseSymbol): """ def group_factory(_, symbols): sym = symbols[0] - return self._CreateTransformed( - symbols, - full_name=sym.full_name, - template_name=sym.template_name, - name=sym.name, - section_name=sym.section_name) + return self._CreateTransformed(symbols, + full_name=sym.full_name, + template_name=sym.template_name, + name=sym.name, + section_name=sym.section_name) return self.GroupedBy( lambda s: (same_name_only and s.full_name, id(s.aliases or s)), min_count=min_count, group_factory=group_factory) + def GroupedByContainerAndSectionName(self): + return self.GroupedBy(lambda s: (s.container_name, s.section_name)) + def GroupedBySectionName(self): return self.GroupedBy(lambda s: s.section_name) @@ -1195,10 +1364,12 @@ class DeltaSymbolGroup(SymbolGroup): def CountUniqueSymbols(self): """Returns (num_unique_before_symbols, num_unique_after_symbols).""" - syms = (s.before_symbol for s in self.IterLeafSymbols() if s.before_symbol) - before_count = SymbolGroup(syms).CountUniqueSymbols() - syms = (s.after_symbol for s in self.IterLeafSymbols() if s.after_symbol) - after_count = SymbolGroup(syms).CountUniqueSymbols() + syms_iter = (s.before_symbol for s in self.IterLeafSymbols() + if s.before_symbol) + before_count = sum(1 for _ in SymbolGroup._IterUnique(syms_iter)) + syms_iter = (s.after_symbol for s in self.IterLeafSymbols() + if s.after_symbol) + after_count = sum(1 for _ in SymbolGroup._IterUnique(syms_iter)) return before_count, after_count @property diff --git a/chromium/tools/binary_size/libsupersize/parallel.py b/chromium/tools/binary_size/libsupersize/parallel.py index 19cef2d6c21..0467864c62f 100644 --- a/chromium/tools/binary_size/libsupersize/parallel.py +++ b/chromium/tools/binary_size/libsupersize/parallel.py @@ -192,12 +192,12 @@ def BulkForkAndCall(func, arg_tuples, **kwargs): """Calls |func| in a fork'ed process for each set of args within |arg_tuples|. Args: - kwargs: Common key word arguments to be passed to |func|. + kwargs: Common keyword arguments to be passed to |func|. Yields the return values as they come in. """ arg_tuples = list(arg_tuples) - if not len(arg_tuples): + if not arg_tuples: return if DISABLE_ASYNC: diff --git a/chromium/tools/check_grd_for_unused_strings.py b/chromium/tools/check_grd_for_unused_strings.py index d0b60da8cee..d11c3e17b0e 100755 --- a/chromium/tools/check_grd_for_unused_strings.py +++ b/chromium/tools/check_grd_for_unused_strings.py @@ -140,7 +140,7 @@ def main(): ui_chromeos_dir = os.path.join(ui_dir, 'chromeos') grd_files = [ os.path.join(ash_base_dir, 'ash_strings.grd'), - os.path.join(ash_shortcut_viewer_dir, 'ash_components_strings.grd'), + os.path.join(ash_shortcut_viewer_dir, 'shortcut_viewer_strings.grd'), os.path.join(chrome_app_dir, 'chromium_strings.grd'), os.path.join(chrome_app_dir, 'generated_resources.grd'), os.path.join(chrome_app_dir, 'google_chrome_strings.grd'), diff --git a/chromium/tools/checkteamtags/checkteamtags_test.py b/chromium/tools/checkteamtags/checkteamtags_test.py index a3c46b7d174..3616344c02f 100644 --- a/chromium/tools/checkteamtags/checkteamtags_test.py +++ b/chromium/tools/checkteamtags/checkteamtags_test.py @@ -9,9 +9,6 @@ import unittest import checkteamtags -SRC = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir) -sys.path.append(os.path.join(SRC, 'third_party', 'pymock')) - import mock diff --git a/chromium/tools/checkteamtags/extract_components_test.py b/chromium/tools/checkteamtags/extract_components_test.py index e0debb4bb30..b046a1b6965 100644 --- a/chromium/tools/checkteamtags/extract_components_test.py +++ b/chromium/tools/checkteamtags/extract_components_test.py @@ -12,9 +12,6 @@ from StringIO import StringIO import extract_components -SRC = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir) -sys.path.append(os.path.join(SRC, 'third_party', 'pymock')) - import mock diff --git a/chromium/tools/checkteamtags/owners_file_tags_test.py b/chromium/tools/checkteamtags/owners_file_tags_test.py index 2de932d32ae..9d3b8706976 100644 --- a/chromium/tools/checkteamtags/owners_file_tags_test.py +++ b/chromium/tools/checkteamtags/owners_file_tags_test.py @@ -10,9 +10,6 @@ import unittest import owners_file_tags -SRC = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir) -sys.path.append(os.path.join(SRC, 'third_party', 'pymock')) - import mock @contextmanager diff --git a/chromium/tools/checkteamtags/run_tests b/chromium/tools/checkteamtags/run_tests index e6872cfd77c..b9586899f09 100755 --- a/chromium/tools/checkteamtags/run_tests +++ b/chromium/tools/checkteamtags/run_tests @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env vpython # Copyright 2017 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -12,8 +12,6 @@ import sys import unittest import logging -SRC = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir) - def main(): if 'full-log' in sys.argv: diff --git a/chromium/tools/chrome_proxy/webdriver/decorators.py b/chromium/tools/chrome_proxy/webdriver/decorators.py index 33a086beeba..8cdcdf568fa 100644 --- a/chromium/tools/chrome_proxy/webdriver/decorators.py +++ b/chromium/tools/chrome_proxy/webdriver/decorators.py @@ -82,7 +82,7 @@ chrome_version = None def GetChromeVersion(): with TestDriver() as t: - t.LoadURL('http://check.googlezip.net/connect') + t.LoadURL('about:blank') ua = t.ExecuteJavascriptStatement('navigator.userAgent') match = re.search('Chrome/[0-9\.]+', ua) if not match: diff --git a/chromium/tools/chrome_proxy/webdriver/subresource_redirect.py b/chromium/tools/chrome_proxy/webdriver/subresource_redirect.py index eb42b2aaac4..7ef4ed0537f 100644 --- a/chromium/tools/chrome_proxy/webdriver/subresource_redirect.py +++ b/chromium/tools/chrome_proxy/webdriver/subresource_redirect.py @@ -14,6 +14,7 @@ class SubresourceRedirect(IntegrationTest): def enableSubresourceRedirectFeature(self, test_driver): test_driver.EnableChromeFeature('SubresourceRedirect("bad_class"); - auto* gc_base_class = - result.Nodes.getNodeAs("gc_base_class"); - auto* mixin_base_class = - result.Nodes.getNodeAs("mixin_base_class"); - - clang::CXXBasePaths paths; - if (!bad_class->isDerivedFrom(mixin_base_class, paths)) - return; - const auto& path = paths.front(); - - // It's most useful to describe the most derived "mixin" class (i.e. which - // does not derive the concrete GarbageCollected base). - auto mixin_it = std::find_if( - path.begin(), path.end(), - [gc_base_class](const clang::CXXBasePathElement& path_element) { - return !path_element.Class->isDerivedFrom(gc_base_class); - }); - const clang::CXXRecordDecl* mixin_class = mixin_it->Class; - diagnostics_.MissingMixinMarker(bad_class, mixin_class, path.begin()->Base); - - ++mixin_it; - for (auto it = path.begin() + 1; it != mixin_it; ++it) - diagnostics_.MissingMixinMarkerNote(it->Base); - } - - private: - DiagnosticsReporter& diagnostics_; -}; - } // namespace void FindBadPatterns(clang::ASTContext& ast_context, @@ -151,8 +95,5 @@ void FindBadPatterns(clang::ASTContext& ast_context, OptionalGarbageCollectedMatcher optional_gc(diagnostics); optional_gc.Register(match_finder); - MissingMixinMarker missing_mixin_marker(diagnostics); - missing_mixin_marker.Register(match_finder); - match_finder.matchAST(ast_context); } diff --git a/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp b/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp index e4233a4f48a..068cbc69373 100644 --- a/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp +++ b/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.cpp @@ -89,6 +89,7 @@ BlinkGCPluginConsumer::BlinkGCPluginConsumer( // Ignore GC implementation files. options_.ignored_directories.push_back("/heap/"); + options_.allowed_directories.push_back("/test/"); } void BlinkGCPluginConsumer::HandleTranslationUnit(ASTContext& context) { @@ -633,9 +634,14 @@ bool BlinkGCPluginConsumer::InIgnoredDirectory(RecordInfo* info) { #if defined(_WIN32) std::replace(filename.begin(), filename.end(), '\\', '/'); #endif - for (const auto& dir : options_.ignored_directories) - if (filename.find(dir) != std::string::npos) + for (const auto& ignored_dir : options_.ignored_directories) + if (filename.find(ignored_dir) != std::string::npos) { + for (const auto& allowed_dir : options_.allowed_directories) { + if (filename.find(allowed_dir) != std::string::npos) + return false; + } return true; + } return false; } diff --git a/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginOptions.h b/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginOptions.h index e05100bc1ad..a9cae8d6811 100644 --- a/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginOptions.h +++ b/chromium/tools/clang/blink_gc_plugin/BlinkGCPluginOptions.h @@ -29,6 +29,8 @@ struct BlinkGCPluginOptions { std::set ignored_classes; std::set checked_namespaces; std::vector ignored_directories; + // |allowed_directories| overrides |ignored_directories|. + std::vector allowed_directories; }; #endif // TOOLS_BLINK_GC_PLUGIN_BLINK_GC_PLUGIN_OPTIONS_H_ diff --git a/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp b/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp index 05fe834b978..88f2ab4177b 100644 --- a/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp +++ b/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp @@ -145,13 +145,6 @@ const char kOptionalUsedWithGC[] = "[blink-gc] Disallowed construction of %0 found; %1 is a garbage-collected " "type. optional cannot hold garbage-collected objects."; -const char kMissingMixinMarker[] = - "[blink-gc] Garbage-collected class %0 derives mixin class %1. " - "You must add USING_GARBAGE_COLLECTED_MIXIN(%2)."; - -const char kMissingMixinMarkerNote[] = - "[blink-gc] Mixin base class derived here:"; - } // namespace DiagnosticBuilder DiagnosticsReporter::ReportDiagnostic( @@ -253,10 +246,6 @@ DiagnosticsReporter::DiagnosticsReporter( diagnostic_.getCustomDiagID(getErrorLevel(), kUniquePtrUsedWithGC); diag_optional_used_with_gc_ = diagnostic_.getCustomDiagID(getErrorLevel(), kOptionalUsedWithGC); - diag_missing_mixin_marker_ = - diagnostic_.getCustomDiagID(getErrorLevel(), kMissingMixinMarker); - diag_missing_mixin_marker_note_ = diagnostic_.getCustomDiagID( - DiagnosticsEngine::Note, kMissingMixinMarkerNote); } bool DiagnosticsReporter::hasErrorOccurred() const @@ -552,18 +541,3 @@ void DiagnosticsReporter::OptionalUsedWithGC( ReportDiagnostic(expr->getBeginLoc(), diag_optional_used_with_gc_) << optional << gc_type << expr->getSourceRange(); } - -void DiagnosticsReporter::MissingMixinMarker( - const clang::CXXRecordDecl* bad_class, - const clang::CXXRecordDecl* mixin_class, - const clang::CXXBaseSpecifier* first_base) { - ReportDiagnostic(first_base->getBaseTypeLoc(), diag_missing_mixin_marker_) - << bad_class << mixin_class << bad_class->getName() - << first_base->getSourceRange(); -} - -void DiagnosticsReporter::MissingMixinMarkerNote( - const clang::CXXBaseSpecifier* base) { - ReportDiagnostic(base->getBaseTypeLoc(), diag_missing_mixin_marker_note_) - << base->getSourceRange(); -} diff --git a/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.h b/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.h index ca585d5a046..fea2d87755f 100644 --- a/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.h +++ b/chromium/tools/clang/blink_gc_plugin/DiagnosticsReporter.h @@ -82,11 +82,6 @@ class DiagnosticsReporter { void OptionalUsedWithGC(const clang::Expr* expr, const clang::CXXRecordDecl* optional, const clang::CXXRecordDecl* gc_type); - void MissingMixinMarker(const clang::CXXRecordDecl* bad_class, - const clang::CXXRecordDecl* mixin_class, - const clang::CXXBaseSpecifier* first_base); - void MissingMixinMarkerNote(const clang::CXXBaseSpecifier* base); - private: clang::DiagnosticBuilder ReportDiagnostic( clang::SourceLocation location, @@ -144,8 +139,6 @@ class DiagnosticsReporter { unsigned diag_unique_ptr_used_with_gc_; unsigned diag_optional_used_with_gc_; - unsigned diag_missing_mixin_marker_; - unsigned diag_missing_mixin_marker_note_; }; #endif // TOOLS_BLINK_GC_PLUGIN_DIAGNOSTICS_REPORTER_H_ diff --git a/chromium/tools/clang/blink_gc_plugin/process-graph.py b/chromium/tools/clang/blink_gc_plugin/process-graph.py index 865a234342a..39e53f18e12 100755 --- a/chromium/tools/clang/blink_gc_plugin/process-graph.py +++ b/chromium/tools/clang/blink_gc_plugin/process-graph.py @@ -4,7 +4,8 @@ # found in the LICENSE file. from __future__ import print_function -import argparse, os, sys, json, subprocess, pickle, StringIO +from StringIO import StringIO +import argparse, os, sys, json, subprocess, pickle parser = argparse.ArgumentParser( description = @@ -57,6 +58,14 @@ ignored_cycles = [] # Global flag to determine exit code. global_reported_error = False +try: + # Python3 remove sys.maxint. + maxint = sys.maxint +except AttributeError: + # Also see https://stackoverflow.com/a/13795777/4052492. + maxint = sys.maxsize + + def set_reported_error(value): global global_reported_error global_reported_error = value @@ -109,18 +118,20 @@ class Node: else: self.edges[new_edge.key] = new_edge def super_edges(self): - return [ e for e in self.edges.itervalues() if e.is_super() ] + return [e for e in self.edges.values() if e.is_super()] + def subclass_edges(self): - return [ e for e in self.edges.itervalues() if e.is_subclass() ] + return [e for e in self.edges.values() if e.is_subclass()] + def reset(self): - self.cost = sys.maxint + self.cost = maxint self.visited = False self.path = None self.counts = {} for ptr in ptr_types: self.counts[ptr] = 0 def update_counts(self): - for e in self.edges.itervalues(): + for e in self.edges.values(): inc_ptr(e.dst, e.ptr) # Representation of directed graph edges. @@ -199,7 +210,7 @@ def copy_super_edges(edge): copy_super_edges(e) # Copy strong super-class edges (ignoring sub-class edges) to the sub class. sub_node = graph[edge.src] - for e in super_node.edges.itervalues(): + for e in super_node.edges.values(): if e.keeps_alive() and not e.is_subclass(): new_edge = Edge( src = sub_node.name, @@ -222,16 +233,16 @@ def copy_super_edges(edge): super_node.edges[sub_edge.key] = sub_edge def complete_graph(): - for node in graph.itervalues(): + for node in graph.values(): for edge in node.super_edges(): copy_super_edges(edge) - for edge in node.edges.itervalues(): + for edge in node.edges.values(): if edge.is_root(): roots.append(edge) log("Copied edges down edges for %d graph nodes" % global_inc_copy) def reset_graph(): - for n in graph.itervalues(): + for n in graph.values(): n.reset() def shortest_path(start, end): @@ -243,7 +254,7 @@ def shortest_path(start, end): current.visited = True if current == end or current.cost >= end.cost + 1: return - for e in current.edges.itervalues(): + for e in current.edges.values(): if not e.keeps_alive(): continue dst = graph.get(e.dst) @@ -276,7 +287,7 @@ def detect_cycles(): continue # Find the shortest path from the root target (dst) to its host (src) shortest_path(dst, src) - if src.cost < sys.maxint: + if src.cost < maxint: report_cycle(root_edge) def is_ignored_cycle(cycle): @@ -307,7 +318,7 @@ def report_cycle(root_edge): for p in path: if len(p.loc) > max_loc: max_loc = len(p.loc) - out = StringIO.StringIO() + out = StringIO() for p in path[:-1]: print((p.loc + ':').ljust(max_loc + 1), p, file=out) sout = out.getvalue() @@ -370,7 +381,7 @@ def print_stats(): gc_managed = [] hierarchies = [] - for node in graph.itervalues(): + for node in graph.values(): node.update_counts() for sup in node.super_edges(): if sup.dst in gcref_bases: @@ -395,7 +406,7 @@ def print_stats(): hierarchies.append((base, stats)) print("\nHierarchies in transition (RefCountedGarbageCollected):") - hierarchies.sort(key=lambda (n,s): -s['classes']) + hierarchies.sort(key=lambda n: -n[1]['classes']) for (node, stats) in hierarchies: total = stats['mem'] + stats['ref'] + stats['raw'] print( diff --git a/chromium/tools/clang/pylib/clang/compile_db.py b/chromium/tools/clang/pylib/clang/compile_db.py index 46220af8b90..50decf71907 100755 --- a/chromium/tools/clang/pylib/clang/compile_db.py +++ b/chromium/tools/clang/pylib/clang/compile_db.py @@ -67,7 +67,7 @@ def _ProcessEntry(entry): match = _RSP_RE.search(entry['command']) if match: rsp_path = os.path.join(entry['directory'], match.group(2)) - rsp_contents = file(rsp_path).read() + rsp_contents = open(rsp_path).read() entry['command'] = ''.join([ entry['command'][:match.start(1)], rsp_contents, diff --git a/chromium/tools/clang/pylib/clang/compile_db_test.py b/chromium/tools/clang/pylib/clang/compile_db_test.py index 493f2f815db..9ec818bbb5e 100755 --- a/chromium/tools/clang/pylib/clang/compile_db_test.py +++ b/chromium/tools/clang/pylib/clang/compile_db_test.py @@ -62,7 +62,11 @@ class CompileDbTest(unittest.TestCase): _TEST_COMPILE_DB) # Assert no changes were made. - self.assertItemsEqual(processed_compile_db, _TEST_COMPILE_DB) + try: + # assertItemsEqual is renamed assertCountEqual in Python3. + self.assertCountEqual(processed_compile_db, _TEST_COMPILE_DB) + except AttributeError: + self.assertItemsEqual(processed_compile_db, _TEST_COMPILE_DB) def testProcessForWindows(self): sys.platform = 'win32' diff --git a/chromium/tools/clang/pylib/clang/plugin_testing.py b/chromium/tools/clang/pylib/clang/plugin_testing.py index 7082ac87978..6b2e6067118 100755 --- a/chromium/tools/clang/pylib/clang/plugin_testing.py +++ b/chromium/tools/clang/pylib/clang/plugin_testing.py @@ -63,7 +63,7 @@ class ClangPluginTest(object): cmd = clang_cmd[:] try: # Some tests need to run with extra flags. - cmd.extend(file('%s.flags' % test_name).read().split()) + cmd.extend(open('%s.flags' % test_name).read().split()) except IOError: pass cmd.append(test) @@ -85,7 +85,9 @@ class ClangPluginTest(object): def RunOneTest(self, test_name, cmd): try: - actual = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + actual = subprocess.check_output(cmd, + stderr=subprocess.STDOUT, + universal_newlines=True) except subprocess.CalledProcessError as e: # Some plugin tests intentionally trigger compile errors, so just ignore # an exit code that indicates failure. diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp b/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp index eb51290ca28..f94ce4e03f3 100644 --- a/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp +++ b/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp @@ -8,11 +8,26 @@ // becomes: // CheckedPtr field_ // +// Note that the tool always emits two kinds of output: +// 1. Fields to exclude: +// - FilteredExprWriter +// 2. Edit/replacement directives: +// - FieldDeclRewriter +// - AffectedExprRewriter +// The rewriter is expected to be used twice, in two passes: +// 1. Output from the 1st pass should be used to generate fields-to-ignore.txt +// (or to augment the manually created exclusion list file) +// 2. The 2nd pass should use fields-to-ignore.txt from the first pass as input +// for the --exclude-fields cmdline parameter. The output from the 2nd pass +// can be used to perform the actual rewrite via extract_edits.py and +// apply_edits.py. +// // For more details, see the doc here: // https://docs.google.com/document/d/1chTvr3fSofQNV_PDPEHRyUgcJCQBgTDOOBriW9gIm9M #include #include +#include #include #include #include @@ -22,6 +37,7 @@ #include "clang/ASTMatchers/ASTMatchers.h" #include "clang/ASTMatchers/ASTMatchersMacros.h" #include "clang/Basic/CharInfo.h" +#include "clang/Basic/SourceLocation.h" #include "clang/Basic/SourceManager.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendActions.h" @@ -32,6 +48,7 @@ #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Refactoring.h" #include "clang/Tooling/Tooling.h" +#include "llvm/ADT/StringExtras.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/ErrorOr.h" #include "llvm/Support/FormatVariadic.h" @@ -48,56 +65,588 @@ namespace { // replaces a raw pointer. const char kIncludePath[] = "base/memory/checked_ptr.h"; -// Output format is documented in //docs/clang_tool_refactoring.md -class ReplacementsPrinter { +// Name of a cmdline parameter that can be used to specify a file listing fields +// that should not be rewritten to use CheckedPtr. +// +// See also: +// - OutputSectionHelper +// - FieldDeclFilterFile +const char kExcludeFieldsParamName[] = "exclude-fields"; + +// OutputSectionHelper helps gather and emit a section of output. +// +// The section of output is delimited in a way that makes it easy to extract it +// with sed like so: +// $ DELIM = ... +// $ cat ~/scratch/rewriter.out \ +// | sed '/^==== BEGIN $DELIM ====$/,/^==== END $DELIM ====$/{//!b};d' \ +// | sort | uniq > ~/scratch/some-out-of-band-output.txt +// (For DELIM="EDITS", there is also tools/clang/scripts/extract_edits.py.) +// +// Each output line is deduped and may be followed by optional comment tags: +// Some filter # tag1, tag2 +// Another filter # tag1, tag2, tag3 +// An output line with no comment tags +// +// The output lines are sorted. This helps provide deterministic output (even +// if AST matchers start firing in a different order after benign clang +// changes). +// +// See also: +// - FieldDeclFilterFile +// - OutputHelper +class OutputSectionHelper { public: - ReplacementsPrinter() { llvm::outs() << "==== BEGIN EDITS ====\n"; } + explicit OutputSectionHelper(llvm::StringRef output_delimiter) + : output_delimiter_(output_delimiter.str()) {} - ~ReplacementsPrinter() { llvm::outs() << "==== END EDITS ====\n"; } + void Add(llvm::StringRef output_line, llvm::StringRef tag = "") { + // Look up |tags| associated with |output_line|. As a side effect of the + // lookup, |output_line| will be inserted if it wasn't already present in + // the map. + llvm::StringSet<>& tags = output_line_to_tags_[output_line]; - void PrintReplacement(const clang::SourceManager& source_manager, - const clang::SourceRange& replacement_range, - std::string replacement_text) { + if (!tag.empty()) + tags.insert(tag); + } + + void Emit() { + if (output_line_to_tags_.empty()) + return; + + llvm::outs() << "==== BEGIN " << output_delimiter_ << " ====\n"; + for (const llvm::StringRef& output_line : + GetSortedKeys(output_line_to_tags_)) { + llvm::outs() << output_line; + + const llvm::StringSet<>& tags = output_line_to_tags_[output_line]; + if (!tags.empty()) { + std::vector sorted_tags = GetSortedKeys(tags); + std::string tags_comment = + llvm::join(sorted_tags.begin(), sorted_tags.end(), ", "); + llvm::outs() << " # " << tags_comment; + } + + llvm::outs() << "\n"; + } + llvm::outs() << "==== END " << output_delimiter_ << " ====\n"; + } + + private: + template + std::vector GetSortedKeys( + const llvm::StringMap& map) { + std::vector sorted(map.keys().begin(), map.keys().end()); + std::sort(sorted.begin(), sorted.end()); + return sorted; + } + + std::string output_delimiter_; + llvm::StringMap> output_line_to_tags_; +}; + +// Output format is documented in //docs/clang_tool_refactoring.md +class OutputHelper : public clang::tooling::SourceFileCallbacks { + public: + OutputHelper() + : edits_helper_("EDITS"), field_decl_filter_helper_("FIELD FILTERS") {} + ~OutputHelper() = default; + + void AddReplacement(const clang::SourceManager& source_manager, + const clang::SourceRange& replacement_range, + std::string replacement_text, + bool should_add_include = false) { clang::tooling::Replacement replacement( source_manager, clang::CharSourceRange::getCharRange(replacement_range), replacement_text); llvm::StringRef file_path = replacement.getFilePath(); + if (file_path.empty()) + return; + std::replace(replacement_text.begin(), replacement_text.end(), '\n', '\0'); - llvm::outs() << "r:::" << file_path << ":::" << replacement.getOffset() - << ":::" << replacement.getLength() - << ":::" << replacement_text << "\n"; + std::string replacement_directive = llvm::formatv( + "r:::{0}:::{1}:::{2}:::{3}", file_path, replacement.getOffset(), + replacement.getLength(), replacement_text); + edits_helper_.Add(replacement_directive); + + if (should_add_include) { + std::string include_directive = llvm::formatv( + "include-user-header:::{0}:::-1:::-1:::{1}", file_path, kIncludePath); + edits_helper_.Add(include_directive); + } + } + + void AddFilteredField(const clang::FieldDecl& field_decl, + llvm::StringRef filter_tag) { + std::string qualified_name = field_decl.getQualifiedNameAsString(); + field_decl_filter_helper_.Add(qualified_name, filter_tag); + } + + private: + // clang::tooling::SourceFileCallbacks override: + bool handleBeginSource(clang::CompilerInstance& compiler) override { + const clang::FrontendOptions& frontend_options = compiler.getFrontendOpts(); + + assert((frontend_options.Inputs.size() == 1) && + "run_tool.py should invoke the rewriter one file at a time"); + const clang::FrontendInputFile& input_file = frontend_options.Inputs[0]; + assert(input_file.isFile() && + "run_tool.py should invoke the rewriter on actual files"); + + current_language_ = input_file.getKind().getLanguage(); + + return true; // Report that |handleBeginSource| succeeded. + } + + // clang::tooling::SourceFileCallbacks override: + void handleEndSource() override { + if (ShouldSuppressOutput()) + return; + + edits_helper_.Emit(); + field_decl_filter_helper_.Emit(); + } - bool was_inserted = false; - std::tie(std::ignore, was_inserted) = - files_with_already_added_includes_.insert(file_path.str()); - if (was_inserted) - llvm::outs() << "include-user-header:::" << file_path - << ":::-1:::-1:::" << kIncludePath << "\n"; + bool ShouldSuppressOutput() { + switch (current_language_) { + case clang::Language::Unknown: + case clang::Language::Asm: + case clang::Language::LLVM_IR: + case clang::Language::OpenCL: + case clang::Language::CUDA: + case clang::Language::RenderScript: + case clang::Language::HIP: + // Rewriter can't handle rewriting the current input language. + return true; + + case clang::Language::C: + case clang::Language::ObjC: + // CheckedPtr requires C++. In particular, attempting to #include + // "base/memory/checked_ptr.h" from C-only compilation units will lead + // to compilation errors. + return true; + + case clang::Language::CXX: + case clang::Language::ObjCXX: + return false; + } + + assert(false && "Unrecognized clang::Language"); + return true; + } + + OutputSectionHelper edits_helper_; + OutputSectionHelper field_decl_filter_helper_; + clang::Language current_language_ = clang::Language::Unknown; +}; + +llvm::StringRef GetFilePath(const clang::SourceManager& source_manager, + const clang::FieldDecl& field_decl) { + clang::SourceLocation loc = field_decl.getSourceRange().getBegin(); + if (loc.isInvalid() || !loc.isFileID()) + return llvm::StringRef(); + + clang::FileID file_id = source_manager.getDecomposedLoc(loc).first; + const clang::FileEntry* file_entry = + source_manager.getFileEntryForID(file_id); + if (!file_entry) + return llvm::StringRef(); + + return file_entry->getName(); +} + +AST_MATCHER(clang::FieldDecl, isInThirdPartyLocation) { + llvm::StringRef file_path = + GetFilePath(Finder->getASTContext().getSourceManager(), Node); + + // Blink is part of the Chromium git repo, even though it contains + // "third_party" in its path. + if (file_path.contains("third_party/blink/")) + return false; + + // V8 needs to be considered "third party", even though its paths do not + // contain the "third_party" substring. In particular, the rewriter should + // not append |.get()| to references to |v8::RegisterState::pc|, because + // //v8/include/v8.h will *not* get rewritten. + if (file_path.contains("v8/include/")) + return true; + + // Otherwise, just check if the paths contains the "third_party" substring. + return file_path.contains("third_party"); +} + +AST_MATCHER(clang::FieldDecl, isInGeneratedLocation) { + llvm::StringRef file_path = + GetFilePath(Finder->getASTContext().getSourceManager(), Node); + + return file_path.startswith("gen/") || file_path.contains("/gen/"); +} + +// Represents a filter file specified via cmdline, that can be used to filter +// out specific FieldDecls. +// +// See also: +// - kExcludeFieldsParamName +// - OutputSectionHelper +class FieldDeclFilterFile { + public: + explicit FieldDeclFilterFile(const std::string& filepath) { + if (!filepath.empty()) + ParseInputFile(filepath); + } + + bool Contains(const clang::FieldDecl& field_decl) const { + std::string qualified_name = field_decl.getQualifiedNameAsString(); + auto it = fields_to_filter_.find(qualified_name); + return it != fields_to_filter_.end(); } private: - std::set files_with_already_added_includes_; + // Expected file format: + // - '#' character starts a comment (which gets ignored). + // - Blank or whitespace-only or comment-only lines are ignored. + // - Other lines are expected to contain a fully-qualified name of a field + // like: + // autofill::AddressField::address1_ # some comment + // - Templates are represented without template arguments, like: + // WTF::HashTable::table_ # some comment + void ParseInputFile(const std::string& filepath) { + llvm::ErrorOr> file_or_err = + llvm::MemoryBuffer::getFile(filepath); + if (std::error_code err = file_or_err.getError()) { + llvm::errs() << "ERROR: Cannot open the file specified in --" + << kExcludeFieldsParamName << " argument: " << filepath + << ": " << err.message() << "\n"; + assert(false); + return; + } + + llvm::line_iterator it(**file_or_err, true /* SkipBlanks */, '#'); + for (; !it.is_at_eof(); ++it) { + llvm::StringRef line = *it; + + // Remove trailing comments. + size_t comment_start_pos = line.find('#'); + if (comment_start_pos != llvm::StringRef::npos) + line = line.substr(0, comment_start_pos); + line = line.trim(); + + if (line.empty()) + continue; + + fields_to_filter_.insert(line); + } + } + + // Stores fully-namespace-qualified names of fields matched by the filter. + llvm::StringSet<> fields_to_filter_; }; -AST_MATCHER(clang::ClassTemplateSpecializationDecl, isImplicitSpecialization) { +AST_MATCHER_P(clang::FieldDecl, + isListedInFilterFile, + FieldDeclFilterFile, + Filter) { + return Filter.Contains(Node); +} + +AST_MATCHER(clang::Decl, isInExternCContext) { + return Node.getLexicalDeclContext()->isExternCContext(); +} + +// Given: +// template class MyTemplate {}; // Node1 and Node4 +// template class MyTemplate {}; // Node2 +// template <> class MyTemplate {}; // Node3 +// void foo() { +// // This creates implicit template specialization (Node4) out of the +// // explicit template definition (Node1). +// MyTemplate v; +// } +// with the following AST nodes: +// ClassTemplateDecl MyTemplate - Node1 +// | |-CXXRecordDecl class MyTemplate definition +// | `-ClassTemplateSpecializationDecl class MyTemplate definition - Node4 +// ClassTemplatePartialSpecializationDecl class MyTemplate definition - Node2 +// ClassTemplateSpecializationDecl class MyTemplate definition - Node3 +// +// Matches AST node 4, but not AST node2 nor node3. +AST_MATCHER(clang::ClassTemplateSpecializationDecl, + isImplicitClassTemplateSpecialization) { return !Node.isExplicitSpecialization(); } +// Given: +// template void foo(T t, T2 t2) {}; // N1 and N4 +// template void foo(int t, T2 t) {}; // N2 +// template <> void foo(int t, char t2) {}; // N3 +// void foo() { +// // This creates implicit template specialization (N4) out of the +// // explicit template definition (N1). +// foo(true, 1.23); +// } +// with the following AST nodes: +// FunctionTemplateDecl foo +// |-FunctionDecl 0x191da68 foo 'void (T, T2)' // N1 +// `-FunctionDecl 0x194bf08 foo 'void (bool, double)' // N4 +// FunctionTemplateDecl foo +// `-FunctionDecl foo 'void (int, T2)' // N2 +// FunctionDecl foo 'void (int, char)' // N3 +// +// Matches AST node N4, but not AST nodes N1, N2 nor N3. +AST_MATCHER(clang::FunctionDecl, isImplicitFunctionTemplateSpecialization) { + switch (Node.getTemplateSpecializationKind()) { + case clang::TSK_ImplicitInstantiation: + return true; + case clang::TSK_Undeclared: + case clang::TSK_ExplicitSpecialization: + case clang::TSK_ExplicitInstantiationDeclaration: + case clang::TSK_ExplicitInstantiationDefinition: + return false; + } +} + AST_MATCHER(clang::Type, anyCharType) { return Node.isAnyCharacterType(); } +AST_POLYMORPHIC_MATCHER(isInMacroLocation, + AST_POLYMORPHIC_SUPPORTED_TYPES(clang::Decl, + clang::Stmt, + clang::TypeLoc)) { + return Node.getBeginLoc().isMacroID(); +} + +// If |field_decl| declares a field in an implicit template specialization, then +// finds and returns the corresponding FieldDecl from the template definition. +// Otherwise, just returns the original |field_decl| argument. +const clang::FieldDecl* GetExplicitDecl(const clang::FieldDecl* field_decl) { + if (field_decl->isAnonymousStructOrUnion()) + return field_decl; // Safe fallback - |field_decl| is not a pointer field. + + const clang::CXXRecordDecl* record_decl = + clang::dyn_cast(field_decl->getParent()); + if (!record_decl) + return field_decl; // Non-C++ records are never template instantiations. + + const clang::CXXRecordDecl* pattern_decl = + record_decl->getTemplateInstantiationPattern(); + if (!pattern_decl) + return field_decl; // |pattern_decl| is not a template instantiation. + + if (record_decl->getTemplateSpecializationKind() != + clang::TemplateSpecializationKind::TSK_ImplicitInstantiation) { + return field_decl; // |field_decl| was in an *explicit* specialization. + } + + // Find the field decl with the same name in |pattern_decl|. + clang::DeclContextLookupResult lookup_result = + pattern_decl->lookup(field_decl->getDeclName()); + assert(!lookup_result.empty()); + const clang::NamedDecl* found_decl = lookup_result.front(); + assert(found_decl); + field_decl = clang::dyn_cast(found_decl); + assert(field_decl); + return field_decl; +} + +AST_MATCHER_P(clang::FieldDecl, + hasExplicitFieldDecl, + clang::ast_matchers::internal::Matcher, + InnerMatcher) { + const clang::FieldDecl* explicit_field_decl = GetExplicitDecl(&Node); + return InnerMatcher.matches(*explicit_field_decl, Finder, Builder); +} + +// If |original_param| declares a parameter in an implicit template +// specialization of a function or method, then finds and returns the +// corresponding ParmVarDecl from the template definition. Otherwise, just +// returns the |original_param| argument. +// +// Note: nullptr may be returned in rare, unimplemented cases. +const clang::ParmVarDecl* GetExplicitDecl( + const clang::ParmVarDecl* original_param) { + const clang::FunctionDecl* original_func = + clang::dyn_cast(original_param->getDeclContext()); + if (!original_func) { + // |!original_func| may happen when the ParmVarDecl is part of a + // FunctionType, but not part of a FunctionDecl: + // base::Callback + // + // In theory, |parm_var_decl_here| can also represent an implicit template + // specialization in this scenario. OTOH, it should be rare + shouldn't + // matter for this rewriter, so for now let's just return the + // |original_param|. + // + // TODO: Implement support for this scenario. + return nullptr; + } + + const clang::FunctionDecl* pattern_func = + original_func->getTemplateInstantiationPattern(); + if (!pattern_func) { + // |original_func| is not a template instantiation - return the + // |original_param|. + return original_param; + } + + // See if |pattern_func| has a parameter that is a template parameter pack. + bool has_param_pack = false; + unsigned int index_of_param_pack = std::numeric_limits::max(); + for (unsigned int i = 0; i < pattern_func->getNumParams(); i++) { + const clang::ParmVarDecl* pattern_param = pattern_func->getParamDecl(i); + if (!pattern_param->isParameterPack()) + continue; + + if (has_param_pack) { + // TODO: Implement support for multiple parameter packs. + return nullptr; + } + + has_param_pack = true; + index_of_param_pack = i; + } + + // Find and return the corresponding ParmVarDecl from |pattern_func|. + unsigned int original_index = original_param->getFunctionScopeIndex(); + unsigned int pattern_index = std::numeric_limits::max(); + if (!has_param_pack) { + pattern_index = original_index; + } else { + // |original_func| has parameters that look like this: + // l1, l2, l3, p1, p2, p3, t1, t2, t3 + // where + // lN is a leading, non-pack parameter + // pN is an expansion of a template parameter pack + // tN is a trailing, non-pack parameter + // Using the knowledge above, let's adjust |pattern_index| as needed. + unsigned int leading_param_num = index_of_param_pack; // How many |lN|. + unsigned int pack_expansion_num = // How many |pN| above. + original_func->getNumParams() - pattern_func->getNumParams() + 1; + if (original_index < leading_param_num) { + // |original_param| is a leading, non-pack parameter. + pattern_index = original_index; + } else if (leading_param_num <= original_index && + original_index < (leading_param_num + pack_expansion_num)) { + // |original_param| is an expansion of a template pack parameter. + pattern_index = index_of_param_pack; + } else if ((leading_param_num + pack_expansion_num) <= original_index) { + // |original_param| is a trailing, non-pack parameter. + pattern_index = original_index - pack_expansion_num + 1; + } + } + assert(pattern_index < pattern_func->getNumParams()); + return pattern_func->getParamDecl(pattern_index); +} + +AST_MATCHER_P(clang::ParmVarDecl, + hasExplicitParmVarDecl, + clang::ast_matchers::internal::Matcher, + InnerMatcher) { + const clang::ParmVarDecl* explicit_param = GetExplicitDecl(&Node); + if (!explicit_param) { + // Rare, unimplemented case - fall back to returning "no match". + return false; + } + + return InnerMatcher.matches(*explicit_param, Finder, Builder); +} + +// Returns |true| if and only if: +// 1. |a| and |b| are in the same file (e.g. |false| is returned if any location +// is within macro scratch space or a similar location; similarly |false| is +// returned if |a| and |b| are in different files). +// 2. |a| and |b| overlap. +bool IsOverlapping(const clang::SourceManager& source_manager, + const clang::SourceRange& a, + const clang::SourceRange& b) { + clang::FullSourceLoc a1(a.getBegin(), source_manager); + clang::FullSourceLoc a2(a.getEnd(), source_manager); + clang::FullSourceLoc b1(b.getBegin(), source_manager); + clang::FullSourceLoc b2(b.getEnd(), source_manager); + + // Are all locations in a file? + if (!a1.isFileID() || !a2.isFileID() || !b1.isFileID() || !b2.isFileID()) + return false; + + // Are all locations in the same file? + if (a1.getFileID() != a2.getFileID() || a2.getFileID() != b1.getFileID() || + b1.getFileID() != b2.getFileID()) { + return false; + } + + // Check the 2 cases below: + // 1. A: |============| + // B: |===============| + // a1 b1 a2 b2 + // or + // 2. A: |====================| + // B: |=======| + // a1 b1 b2 a2 + bool b1_is_inside_a_range = a1.getFileOffset() <= b1.getFileOffset() && + b1.getFileOffset() <= a2.getFileOffset(); + + // Check the 2 cases below: + // 1. B: |============| + // A: |===============| + // b1 a1 b2 a2 + // or + // 2. B: |====================| + // A: |=======| + // b1 a1 a2 b2 + bool a1_is_inside_b_range = b1.getFileOffset() <= a1.getFileOffset() && + a1.getFileOffset() <= b2.getFileOffset(); + + return b1_is_inside_a_range || a1_is_inside_b_range; +} + +// Matcher for FieldDecl that has a SourceRange that overlaps other declarations +// within the parent RecordDecl. +// +// Given +// struct MyStruct { +// int f; +// int f2, f3; +// struct S { int x } f4; +// }; +// - doesn't match |f| +// - matches |f2| and |f3| (which overlap each other's location) +// - matches |f4| (which overlaps the location of |S|) +AST_MATCHER(clang::FieldDecl, overlapsOtherDeclsWithinRecordDecl) { + const clang::FieldDecl& self = Node; + const clang::SourceManager& source_manager = + Finder->getASTContext().getSourceManager(); + + const clang::RecordDecl* record_decl = self.getParent(); + clang::SourceRange self_range(self.getBeginLoc(), self.getEndLoc()); + + auto is_overlapping_sibling = [&](const clang::Decl* other_decl) { + if (other_decl == &self) + return false; + + clang::SourceRange other_range(other_decl->getBeginLoc(), + other_decl->getEndLoc()); + return IsOverlapping(source_manager, self_range, other_range); + }; + bool has_sibling_with_overlapping_location = + std::any_of(record_decl->decls_begin(), record_decl->decls_end(), + is_overlapping_sibling); + return has_sibling_with_overlapping_location; +} + +// Rewrites |SomeClass* field| (matched as "affectedFieldDecl") into +// |CheckedPtr field| and for each file rewritten in such way adds an +// |#include "base/memory/checked_ptr.h"|. class FieldDeclRewriter : public MatchFinder::MatchCallback { public: - explicit FieldDeclRewriter(ReplacementsPrinter* replacements_printer) - : replacements_printer_(replacements_printer) {} + explicit FieldDeclRewriter(OutputHelper* output_helper) + : output_helper_(output_helper) {} void run(const MatchFinder::MatchResult& result) override { const clang::ASTContext& ast_context = *result.Context; const clang::SourceManager& source_manager = *result.SourceManager; const clang::FieldDecl* field_decl = - result.Nodes.getNodeAs("fieldDecl"); + result.Nodes.getNodeAs("affectedFieldDecl"); assert(field_decl && "matcher should bind 'fieldDecl'"); const clang::TypeSourceInfo* type_source_info = @@ -112,7 +661,7 @@ class FieldDeclRewriter : public MatchFinder::MatchCallback { // // Consider the following example: // const Pointee* const field_name_; - // ^-------------------^ = |replacement_range| + // ^--------------------^ = |replacement_range| // ^ = |field_decl->getLocation()| // ^ = |field_decl->getBeginLoc()| // ^ = PointerTypeLoc::getStarLoc @@ -121,9 +670,8 @@ class FieldDeclRewriter : public MatchFinder::MatchCallback { // We get the |replacement_range| in a bit clumsy way, because clang docs // for QualifiedTypeLoc explicitly say that these objects "intentionally do // not provide source location for type qualifiers". - clang::SourceRange replacement_range( - field_decl->getBeginLoc(), - field_decl->getLocation().getLocWithOffset(-1)); + clang::SourceRange replacement_range(field_decl->getBeginLoc(), + field_decl->getLocation()); // Calculate |replacement_text|. std::string replacement_text = GenerateNewText(ast_context, pointer_type); @@ -131,8 +679,9 @@ class FieldDeclRewriter : public MatchFinder::MatchCallback { replacement_text.insert(0, "mutable "); // Generate and print a replacement. - replacements_printer_->PrintReplacement(source_manager, replacement_range, - replacement_text); + output_helper_->AddReplacement(source_manager, replacement_range, + replacement_text, + true /* should_add_include */); } private: @@ -156,12 +705,59 @@ class FieldDeclRewriter : public MatchFinder::MatchCallback { printing_policy.SuppressScope = 1; // s/blink::Pointee/Pointee/ std::string pointee_type_as_string = pointee_type.getAsString(printing_policy); - result += llvm::formatv("CheckedPtr<{0}>", pointee_type_as_string); + result += llvm::formatv("CheckedPtr<{0}> ", pointee_type_as_string); return result; } - ReplacementsPrinter* const replacements_printer_; + OutputHelper* const output_helper_; +}; + +// Rewrites |my_struct.ptr_field| (matched as "affectedMemberExpr") into +// |my_struct.ptr_field.get()|. +class AffectedExprRewriter : public MatchFinder::MatchCallback { + public: + explicit AffectedExprRewriter(OutputHelper* output_helper) + : output_helper_(output_helper) {} + + void run(const MatchFinder::MatchResult& result) override { + const clang::SourceManager& source_manager = *result.SourceManager; + + const clang::MemberExpr* member_expr = + result.Nodes.getNodeAs("affectedMemberExpr"); + assert(member_expr && "matcher should bind 'affectedMemberExpr'"); + + clang::SourceLocation member_name_start = member_expr->getMemberLoc(); + size_t member_name_length = member_expr->getMemberDecl()->getName().size(); + clang::SourceLocation insertion_loc = + member_name_start.getLocWithOffset(member_name_length); + + clang::SourceRange replacement_range(insertion_loc, insertion_loc); + + output_helper_->AddReplacement(source_manager, replacement_range, ".get()"); + } + + private: + OutputHelper* const output_helper_; +}; + +// Emits problematic fields (matched as "affectedFieldDecl") as filtered fields. +class FilteredExprWriter : public MatchFinder::MatchCallback { + public: + FilteredExprWriter(OutputHelper* output_helper, llvm::StringRef filter_tag) + : output_helper_(output_helper), filter_tag_(filter_tag) {} + + void run(const MatchFinder::MatchResult& result) override { + const clang::FieldDecl* field_decl = + result.Nodes.getNodeAs("affectedFieldDecl"); + assert(field_decl && "matcher should bind 'affectedFieldDecl'"); + + output_helper_->AddFilteredField(*field_decl, filter_tag_); + } + + private: + OutputHelper* const output_helper_; + llvm::StringRef filter_tag_; }; } // namespace @@ -173,19 +769,21 @@ int main(int argc, const char* argv[]) { llvm::InitializeNativeTargetAsmParser(); llvm::cl::OptionCategory category( "rewrite_raw_ptr_fields: changes |T* field_| to |CheckedPtr field_|."); + llvm::cl::opt exclude_fields_param( + kExcludeFieldsParamName, llvm::cl::value_desc("filepath"), + llvm::cl::desc("file listing fields to be blocked (not rewritten)")); clang::tooling::CommonOptionsParser options(argc, argv, category); clang::tooling::ClangTool tool(options.getCompilations(), options.getSourcePathList()); MatchFinder match_finder; - ReplacementsPrinter replacements_printer; + OutputHelper output_helper; // Supported pointer types ========= // Given // struct MyStrict { // int* int_ptr; // int i; - // char* char_ptr; // int (*func_ptr)(); // int (MyStruct::* member_func_ptr)(char); // int (*ptr_to_array_of_ints)[123] @@ -196,21 +794,25 @@ int main(int argc, const char* argv[]) { recordType(hasDeclaration(cxxRecordDecl( hasMethod(allOf(hasOverloadedOperatorName("new"), isDeleted()))))); auto supported_pointer_types_matcher = - pointerType(unless(pointee(hasUnqualifiedDesugaredType(anyOf( - record_with_deleted_allocation_operator_type_matcher, functionType(), - memberPointerType(), anyCharType(), arrayType()))))); + pointerType(unless(pointee(hasUnqualifiedDesugaredType( + anyOf(record_with_deleted_allocation_operator_type_matcher, + functionType(), memberPointerType(), arrayType()))))); // Implicit field declarations ========= // Matches field declarations that do not explicitly appear in the source // code: // 1. fields of classes generated by the compiler to back capturing lambdas, - // 2. fields within an implicit class template specialization (e.g. when a - // template is instantiated by a bit of code and there's no explicit - // specialization for it). + // 2. fields within an implicit class or function template specialization + // (e.g. when a template is instantiated by a bit of code and there's no + // explicit specialization for it). + auto implicit_class_specialization_matcher = + classTemplateSpecializationDecl(isImplicitClassTemplateSpecialization()); + auto implicit_function_specialization_matcher = + functionDecl(isImplicitFunctionTemplateSpecialization()); auto implicit_field_decl_matcher = fieldDecl(hasParent(cxxRecordDecl(anyOf( - isLambda(), classTemplateSpecializationDecl(isImplicitSpecialization()), - hasAncestor( - classTemplateSpecializationDecl(isImplicitSpecialization())))))); + isLambda(), implicit_class_specialization_matcher, + hasAncestor(decl(anyOf(implicit_class_specialization_matcher, + implicit_function_specialization_matcher))))))); // Field declarations ========= // Given @@ -220,16 +822,181 @@ int main(int argc, const char* argv[]) { // matches |int* y|. Doesn't match: // - non-pointer types // - fields of lambda-supporting classes + // - fields listed in the --exclude-fields cmdline param + // - "implicit" fields (i.e. field decls that are not explicitly present in + // the source code) + FieldDeclFilterFile fields_to_exclude(exclude_fields_param); auto field_decl_matcher = - fieldDecl(allOf(hasType(supported_pointer_types_matcher), - unless(implicit_field_decl_matcher))) - .bind("fieldDecl"); - FieldDeclRewriter field_decl_rewriter(&replacements_printer); + fieldDecl( + allOf(hasType(supported_pointer_types_matcher), + unless(anyOf(isInThirdPartyLocation(), isInGeneratedLocation(), + isExpansionInSystemHeader(), isInExternCContext(), + isListedInFilterFile(fields_to_exclude), + implicit_field_decl_matcher)))) + .bind("affectedFieldDecl"); + FieldDeclRewriter field_decl_rewriter(&output_helper); match_finder.addMatcher(field_decl_matcher, &field_decl_rewriter); + // Matches expressions that used to return a value of type |SomeClass*| + // but after the rewrite return an instance of |CheckedPtr|. + // Many such expressions might need additional changes after the rewrite: + // - Some expressions (printf args, const_cast args, etc.) might need |.get()| + // appended. + // - Using such expressions in specific contexts (e.g. as in-out arguments or + // as a return value of a function returning references) may require + // additional work and should cause related fields to be emitted as + // candidates for the --field-filter-file parameter. + auto affected_member_expr_matcher = + memberExpr(member(fieldDecl(hasExplicitFieldDecl(field_decl_matcher)))) + .bind("affectedMemberExpr"); + auto affected_implicit_expr_matcher = implicitCastExpr(has(expr(anyOf( + // Only single implicitCastExpr is present in case of: + // |auto* v = s.ptr_field;| + expr(affected_member_expr_matcher), + // 2nd nested implicitCastExpr is present in case of: + // |const auto* v = s.ptr_field;| + expr(implicitCastExpr(has(affected_member_expr_matcher))))))); + auto affected_expr_matcher = + expr(anyOf(affected_member_expr_matcher, affected_implicit_expr_matcher)); + + // Places where |.get()| needs to be appended ========= + // Given + // void foo(const S& s) { + // printf("%p", s.y); + // const_cast<...>(s.y) + // reinterpret_cast<...>(s.y) + // } + // matches the |s.y| expr if it matches the |affected_expr_matcher| above. + // + // See also testcases in tests/affected-expr-original.cc + auto affected_expr_that_needs_fixing_matcher = expr(allOf( + affected_expr_matcher, + hasParent(expr(anyOf(callExpr(callee(functionDecl(isVariadic()))), + cxxConstCastExpr(), cxxReinterpretCastExpr()))))); + AffectedExprRewriter affected_expr_rewriter(&output_helper); + match_finder.addMatcher(affected_expr_that_needs_fixing_matcher, + &affected_expr_rewriter); + + // Affected ternary operator args ========= + // Given + // void foo(const S& s) { + // cond ? s.y : ... + // } + // binds the |s.y| expr if it matches the |affected_expr_matcher| above. + // + // See also testcases in tests/affected-expr-original.cc + auto affected_ternary_operator_arg_matcher = + conditionalOperator(eachOf(hasTrueExpression(affected_expr_matcher), + hasFalseExpression(affected_expr_matcher))); + match_finder.addMatcher(affected_ternary_operator_arg_matcher, + &affected_expr_rewriter); + + // Calls to templated functions ========= + // Given + // struct S { int* y; }; + // template + // void templatedFunc(T* arg) {} + // void foo(const S& s) { + // templatedFunc(s.y); + // } + // binds the |s.y| expr if it matches the |affected_expr_matcher| above. + // + // See also testcases in tests/affected-expr-original.cc + auto templated_function_arg_matcher = forEachArgumentWithParam( + affected_expr_matcher, parmVarDecl(hasType(qualType(allOf( + findAll(qualType(substTemplateTypeParmType())), + unless(referenceType())))))); + match_finder.addMatcher(callExpr(templated_function_arg_matcher), + &affected_expr_rewriter); + // TODO(lukasza): It is unclear why |traverse| below is needed. Maybe it can + // be removed if https://bugs.llvm.org/show_bug.cgi?id=46287 is fixed. + match_finder.addMatcher( + traverse(clang::ast_type_traits::TK_AsIs, + cxxConstructExpr(templated_function_arg_matcher)), + &affected_expr_rewriter); + + // |auto| type declarations ========= + // Given + // struct S { int* y; }; + // void foo(const S& s) { + // auto* p = s.y; + // } + // binds the |s.y| expr if it matches the |affected_expr_matcher| above. + // + // See also testcases in tests/affected-expr-original.cc + auto auto_var_decl_matcher = declStmt(forEach( + varDecl(allOf(hasType(pointerType(pointee(autoType()))), + hasInitializer(anyOf( + affected_expr_matcher, + initListExpr(hasInit(0, affected_expr_matcher)))))))); + match_finder.addMatcher(auto_var_decl_matcher, &affected_expr_rewriter); + + // address-of(affected-expr) ========= + // Given + // ... &s.y ... + // matches the |s.y| expr if it matches the |affected_member_expr_matcher| + // above. + // + // See also the testcases in tests/gen-in-out-arg-test.cc. + auto affected_addr_of_expr_matcher = expr(allOf( + affected_expr_matcher, hasParent(unaryOperator(hasOperatorName("&"))))); + FilteredExprWriter filtered_addr_of_expr_writer(&output_helper, "addr-of"); + match_finder.addMatcher(affected_addr_of_expr_matcher, + &filtered_addr_of_expr_writer); + + // in-out reference arg ========= + // Given + // struct S { SomeClass* ptr_field; }; + // void f(SomeClass*& in_out_arg) { ... } + // template void f2(T&& rvalue_ref_arg) { ... } + // template void f3(Ts&&... rvalue_ref_args) { ... } + // void bar() { + // S s; + // foo(s.ptr_field) + // } + // matches the |s.ptr_field| expr if it matches the + // |affected_member_expr_matcher| and is passed as a function argument that + // has |FooBar*&| type (like |f|, but unlike |f2| and |f3|). + // + // See also the testcases in tests/gen-in-out-arg-test.cc. + auto affected_in_out_ref_arg_matcher = callExpr(forEachArgumentWithParam( + affected_expr_matcher.bind("expr"), + hasExplicitParmVarDecl( + hasType(qualType(allOf(referenceType(pointee(pointerType())), + unless(rValueReferenceType()))))))); + FilteredExprWriter filtered_in_out_ref_arg_writer(&output_helper, + "in-out-param-ref"); + match_finder.addMatcher(affected_in_out_ref_arg_matcher, + &filtered_in_out_ref_arg_writer); + + // See the doc comment for the overlapsOtherDeclsWithinRecordDecl matcher + // and the testcases in tests/gen-overlaps-test.cc. + auto overlapping_field_decl_matcher = fieldDecl( + allOf(field_decl_matcher, overlapsOtherDeclsWithinRecordDecl())); + FilteredExprWriter overlapping_field_decl_writer(&output_helper, + "overlapping"); + match_finder.addMatcher(overlapping_field_decl_matcher, + &overlapping_field_decl_writer); + + // See the doc comment for the isInMacroLocation matcher + // and the testcases in tests/gen-macro-test.cc. + auto macro_field_decl_matcher = + fieldDecl(allOf(field_decl_matcher, isInMacroLocation())); + FilteredExprWriter macro_field_decl_writer(&output_helper, "macro"); + match_finder.addMatcher(macro_field_decl_matcher, ¯o_field_decl_writer); + + // See the doc comment for the anyCharType matcher + // and the testcases in tests/gen-char-test.cc. + auto char_ptr_field_decl_matcher = fieldDecl(allOf( + field_decl_matcher, hasType(pointerType(pointee( + hasUnqualifiedDesugaredType(anyCharType())))))); + FilteredExprWriter char_ptr_field_decl_writer(&output_helper, "char"); + match_finder.addMatcher(char_ptr_field_decl_matcher, + &char_ptr_field_decl_writer); + // Prepare and run the tool. std::unique_ptr factory = - clang::tooling::newFrontendActionFactory(&match_finder); + clang::tooling::newFrontendActionFactory(&match_finder, &output_helper); int result = tool.run(factory.get()); if (result != 0) return result; diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt b/chromium/tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt new file mode 100644 index 00000000000..b8cc64f3bb3 --- /dev/null +++ b/chromium/tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt @@ -0,0 +1,163 @@ +# File that lists fields that should be ignored when running the +# rewrite_raw_ptr_fields tool on Chromium sources. +# +# Each non-comment, non-empty line should specify a fully-namespace qualified +# field like: +# my_namespace::my_subnamespace::MyStruct::my_field_ +# +# There is no need to specify template arguments: +# my_namespace::my_subnamespace::MyTemplate::my_field_ + +# Populated manually - need to keep it constexpr: +base::BasicStringPiece::ptr_ +base::CheckedContiguousIterator::current_ +base::CheckedContiguousIterator::end_ +base::CheckedContiguousIterator::start_ +base::CheckedContiguousRange::container_ +base::FeatureParam::feature +base::FeatureParam::feature +base::FeatureParam::feature +base::FeatureParam, std::__Cr::allocator>, false>::feature +base::FeatureParam::feature +base::FeatureParam::options +base::span::data_ +crash_reporter::internal::CrashKeyStringCombinedImpl::breakpad_key_ +crash_reporter::internal::CrashKeyStringCombinedImpl::crashpad_key_ +crash_reporter::internal::CrashKeyStringImpl::index_array_ +crash_reporter::internal::CrashKeyStringImpl::index_array_ +flags_ui::FeatureEntry::FeatureVariation::params +gfx::VectorIcon::reps +gfx::VectorIconRep::path +safe_browsing::(anonymous namespace)::(anonymous struct)::feature +tracing::MessageInfo::accepted_field_ids +tracing::MessageInfo::sub_messages +ui::(anonymous namespace)::I18nTestParam::test + +# Populated manually - double implicit-cast required. +PaintManager::instance_ + +# Populated manually - needed to avoid global constructors +base::(anonymous namespace)::Provider::next + +# Populated manually - needed for lock annotations +base::trace_event::TraceLog::OptionalAutoLock::lock_ + +# Populated manually to avoid hitting tokens limit explicitly +# enforced in check.cc: +# // check.h is a widely included header and its size has significant impact on +# // build time. Try not to raise this limit unless absolutely necessary. See +# // https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md +# #pragma clang max_tokens_here 17000 +logging::CheckError::log_message_ + +# Populated manually - templates make it difficult for the rewriter to see that +# |.get()| needs to be appended. +blink::xpath::EvaluationContext::node +WTF::HashTableAddResult::container_ +WTF::HashTableAddResult::stored_value + +# Populated manually - conflicting types in an initializer list +WebUITabStripContainerView::tab_counter_ + +# Populated manually to avoid returning a reference to a temporary T* (result of +# implicitly casting CheckedPtr to T*). This covers functions that return +# |SomeClass*&| and local variables with that type. +AllTabContentsesList::Iterator::cur_ +blink::NormalPage::CompactionContext::current_page_ +blink::Worklist::PrivateSegmentHolder::private_pop_segment +blink::Worklist::PrivateSegmentHolder::private_push_segment +content::(anonymous namespace)::AudioStreamMonitorTest::monitor_ +content::AudioStreamMonitor::clock_ +remoting::ChromotingHostTest::client1_ +remoting::ChromotingHostTest::client2_ +WTF::ICUConverterWrapper::converter + +# Populated manually - always holds a pointer to an OilPan-allocated memory. +blink::PersistentBase::raw_ +blink::SVGFilterBuilder::last_effect_ + +# Populated manually - the rewriter has trouble appending |.get()| inside macros +# that work with |XDisplay*|. +extensions::GlobalShortcutListenerX11::x_display_ +gl::GLVisualPickerGLX::display_ +media::(anonymous namespace)::UserInputMonitorLinuxCore::x_record_display_ +media::cast::test::LinuxOutputWindow::display_ +remoting::(anonymous namespace)::InputInjectorX11::Core::display_ +remoting::(anonymous namespace)::LocalHotkeyInputMonitorX11::Core::x_record_display_ +remoting::(anonymous namespace)::LocalMouseInputMonitorX11::Core::x_record_display_ +remoting::ClipboardX11::display_ +remoting::XServerClipboard::display_ +Simulator::display_ +ui::ClipboardX11::X11Details::x_display_ +ui::SelectionRequestorTest::x_display_ +ui::X11EventSource::display_ +ui::X11MenuRegistrar::xdisplay_ +ui::X11WorkspaceHandler::xdisplay_ +ui::XDisplayManager::xdisplay_ +ui::XOSExchangeDataProvider::x_display_ +ui::XVisualManager::display_ +ui::XWindow::xdisplay_ +views::test::(anonymous namespace)::UIControlsDesktopX11::x_display_ +viz::SkiaOutputDeviceX11::display_ +x11::Connection::display_ + +# Populated manually - static_cast not related by inheritance. +gtk::GtkKeyBindingsHandler::fake_window_ +gtk::GtkKeyBindingsHandler::handler_ +gtk::SelectFileDialogImplGTK::preview_ +net::(anonymous namespace)::SettingGetterImplGSettings::client_ +net::(anonymous namespace)::SettingGetterImplGSettings::http_client_ +net::(anonymous namespace)::SettingGetterImplGSettings::https_client_ +net::(anonymous namespace)::SettingGetterImplGSettings::ftp_client_ +net::(anonymous namespace)::SettingGetterImplGSettings::socks_client_ +remoting::(anonymous namespace)::DisconnectWindowGtk::disconnect_window_ +remoting::(anonymous namespace)::DisconnectWindowGtk::message_ +remoting::(anonymous namespace)::GtkFileChooserOnUiThread::file_dialog_ +remoting::(anonymous namespace)::It2MeConfirmationDialogLinux::confirmation_window_ +remoting::ContinueWindowGtk::continue_window_ +ui::AXPlatformNodeAuraLinux::atk_hyperlink_ +PrintDialogGtk::dialog_ + +# Populated manually - using nmap or base::AllocPages directly +blink::GCInfoTable::table_ +disk_cache::MappedFile::buffer_ + +# Populated manually: +# 1. This guarantees that both fields of the union are skipped +# (otherwise, |characters8| might be skipped because of anyCharType +# heuristic, but |characters16| might be rewritte) +# 2. Note that this is one of the cases where the code may write one +# field of the union and then read another. According to the spec +# this may result in undefined behavior. +# https://en.cppreference.com/w/cpp/language/union: "It's undefined behavior +# to read from the member of the union that wasn't most recently written." +blink::VTTScanner::(anonymous union)::characters8 +blink::VTTScanner::(anonymous union)::characters16 + +# Populated manually, because of in-out-arg usage. +blink::PaintController::IdAsHashKey::client +ui::AXPlatformNodeAuraLinux::document_parent_ +ui::AXPlatformNodeAuraLinux::atk_object_ + +# Populated manually - problems related to passing to a templated && parameter, +# which is later forwarded to something that doesn't vibe with CheckedPtr. The +# rewriter has no visibility into where the parameter is forwarded to. +ProfileDestroyer::profile_ +(anonymous namespace)::BluetoothLowEnergyApiTest::mock_adapter_ +base::trace_event::TraceValue::as_convertable +content::RenderProcessHostImpl::browser_context_ +device::BluetoothDevice::adapter_ + +# Populated manually - problems related to lambdas with no return type, where +# the return value is CheckedPtr, but variable/parameter receiving the lambda +# expects the raw pointer type. +vr::LocationBarState::vector_icon +vr::OmniboxSuggestion::icon + +# Populated manually - these pointers are assigned invalid address (with top +# bits sets), which CheckedPtr is unable to handle, leading to run-time crashes. +(anonymous namespace)::TlsVectorEntry::data +blink::(anonymous namespace)::ThreadMarker::creating_thread_ +blink::ControlKey::name_ +performance_manager::frame_priority::BoostingVoteAggregator::Edge::src_ +performance_manager::frame_priority::BoostingVoteAggregator::Edge::dst_ diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh b/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh new file mode 100755 index 00000000000..e932c3248d5 --- /dev/null +++ b/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# IMPORTANT! Before running this script you have to perform these steps: +# 1. Run `mkdir ~/scratch` +# 2. Run `gn args out/{your_out_dir}` and set the following options: +# use_goma = false +# # this can be skipped if you do this in build/config/clang/clang.gni +# clang_use_chrome_plugins = false +# +# (You can do these steps only once, as long as you don't delete the directories +# between rewrites.) +# +# For more fine-grained instructions, see: +# https://docs.google.com/document/d/1chTvr3fSofQNV_PDPEHRyUgcJCQBgTDOOBriW9gIm9M/edit?ts=5e9549a2#heading=h.fjdnrdg1gcty + +set -e # makes the script quit on any command failure + +OUT_DIR="out/rewrite" +if [ "$1" != "" ] +then + OUT_DIR="$1" +fi + +COMPILE_DIRS=. +EDIT_DIRS=. + +# Save llvm-build as it is about to be overwritten. +mv third_party/llvm-build third_party/llvm-build-upstream + +# Build and test the rewriter. +echo "*** Building the rewriter ***" +time tools/clang/scripts/build.py \ + --without-android \ + --without-fuchsia \ + --extra-tools rewrite_raw_ptr_fields +tools/clang/rewrite_raw_ptr_fields/tests/run_all_tests.py + +# Build generated files that a successful compilation depends on. +echo "*** Preparing targets ***" +gn gen $OUT_DIR +GEN_H_TARGETS=`ninja -C $OUT_DIR -t targets all | grep '^gen/.*\(\.h\|inc\|css_tokenizer_codepoints.cc\)' | cut -d : -f 1` +time ninja -C $OUT_DIR $GEN_H_TARGETS + +# A preliminary rewriter run in a special mode that generates a list of fields +# to ignore. These fields would likely lead to compiler errors if rewritten. +echo "*** Generating the ignore list ***" +time tools/clang/scripts/run_tool.py \ + --tool rewrite_raw_ptr_fields \ + --generate-compdb \ + -p $OUT_DIR \ + $COMPILE_DIRS > ~/scratch/rewriter.out +cat ~/scratch/rewriter.out \ + | sed '/^==== BEGIN FIELD FILTERS ====$/,/^==== END FIELD FILTERS ====$/{//!b};d' \ + | sort | uniq > ~/scratch/automated-fields-to-ignore.txt +cat ~/scratch/automated-fields-to-ignore.txt \ + tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt \ + >> ~/scratch/combined-fields-to-ignore.txt + +# Main rewrite. +echo "*** Running the main rewrite phase ***" +time tools/clang/scripts/run_tool.py \ + --tool rewrite_raw_ptr_fields \ + --tool-arg=--exclude-fields=$HOME/scratch/combined-fields-to-ignore.txt \ + -p $OUT_DIR \ + $COMPILE_DIRS > ~/scratch/rewriter.main.out + +# Apply edits generated by the main rewrite. +echo "*** Applying edits ***" +cat ~/scratch/rewriter.main.out | \ + tools/clang/scripts/extract_edits.py | \ + tools/clang/scripts/apply_edits.py -p $OUT_DIR $EDIT_DIRS + +# Revert directories that are known to be troublesome and/or not needed. +git checkout -- base/allocator/ # prevent cycles; CheckedPtr uses allocator +git checkout -- ppapi/ # lots of legacy C and pre-C++11 code +git checkout -- tools/ # not built into Chrome +git checkout -- net/tools/ # not built into Chrome + +# Format sources, as many lines are likely over 80 chars now. +echo "*** Formatting ***" +time git cl format + +# Restore llvm-build. Without this, your future builds will be painfully slow. +rm -r -f third_party/llvm-build +mv third_party/llvm-build-upstream third_party/llvm-build diff --git a/chromium/tools/clang/scripts/apply_edits.py b/chromium/tools/clang/scripts/apply_edits.py index f6e9dcb16c6..a49a739792b 100755 --- a/chromium/tools/clang/scripts/apply_edits.py +++ b/chromium/tools/clang/scripts/apply_edits.py @@ -76,7 +76,7 @@ def _ParseEditsFromStdin(build_directory): if not os.path.isfile(path): resolved_path = os.path.realpath(os.path.join(build_directory, path)) else: - resolved_path = path + resolved_path = os.path.realpath(path) if not os.path.isfile(resolved_path): sys.stderr.write('Edit applies to a non-existent file: %s\n' % path) @@ -197,12 +197,24 @@ def _InsertNonSystemIncludeHeader(filepath, header_line_to_add, contents): def _ApplyReplacement(filepath, contents, edit, last_edit): - if (last_edit is not None and edit.edit_type == last_edit.edit_type - and edit.offset == last_edit.offset and edit.length == last_edit.length): - raise ValueError(('Conflicting replacement text: ' + - '%s at offset %d, length %d: "%s" != "%s"\n') % - (filepath, edit.offset, edit.length, edit.replacement, - last_edit.replacement)) + assert (edit.edit_type == 'r') + assert ((last_edit is None) or (last_edit.edit_type == 'r')) + + if last_edit is not None: + if edit.offset == last_edit.offset and edit.length == last_edit.length: + assert (edit.replacement != last_edit.replacement) + raise ValueError(('Conflicting replacement text: ' + + '%s at offset %d, length %d: "%s" != "%s"\n') % + (filepath, edit.offset, edit.length, edit.replacement, + last_edit.replacement)) + + if edit.offset + edit.length > last_edit.offset: + raise ValueError( + ('Overlapping replacements: ' + + '%s at offset %d, length %d: "%s" and ' + + 'offset %d, length %d: "%s"\n') % + (filepath, edit.offset, edit.length, edit.replacement, + last_edit.offset, last_edit.length, last_edit.replacement)) contents[edit.offset:edit.offset + edit.length] = edit.replacement if not edit.replacement: diff --git a/chromium/tools/clang/scripts/apply_edits_test.py b/chromium/tools/clang/scripts/apply_edits_test.py index c6cb552860d..d8edd45f869 100755 --- a/chromium/tools/clang/scripts/apply_edits_test.py +++ b/chromium/tools/clang/scripts/apply_edits_test.py @@ -574,6 +574,17 @@ class ApplyReplacementTest(unittest.TestCase): with self.assertRaisesRegexp(ValueError, expected_msg_regex): _ApplyEdit(old_text, edit) + def testOverlappingReplacement(self): + old_text = "123 456 789" + last = _CreateReplacement(old_text, "456 789", "foo") + edit = _CreateReplacement(old_text, "123 456", "bar") + expected_msg_regex = 'Overlapping replacements' + expected_msg_regex += '.*some_file.cc' + expected_msg_regex += '.*offset 0, length 7.*"bar"' + expected_msg_regex += '.*offset 4, length 7.*"foo"' + with self.assertRaisesRegexp(ValueError, expected_msg_regex): + _ApplyEdit(old_text, edit, last_edit=last) + if __name__ == '__main__': unittest.main() diff --git a/chromium/tools/clang/scripts/build.py b/chromium/tools/clang/scripts/build.py index 2425e0b705b..3f2af8b3cf9 100755 --- a/chromium/tools/clang/scripts/build.py +++ b/chromium/tools/clang/scripts/build.py @@ -14,6 +14,7 @@ from __future__ import print_function import argparse import glob +import io import json import os import pipes @@ -215,7 +216,7 @@ def CreateChromeToolsShim(): tool detection logic munges them in a weird way.""" assert not any(i in os.path.basename(CHROME_TOOLS_SHIM_DIR) for i in '-_') os.mkdir(CHROME_TOOLS_SHIM_DIR) - with file(os.path.join(CHROME_TOOLS_SHIM_DIR, 'CMakeLists.txt'), 'w') as f: + with open(os.path.join(CHROME_TOOLS_SHIM_DIR, 'CMakeLists.txt'), 'w') as f: f.write('# Automatically generated by tools/clang/scripts/update.py. ' + 'Do not edit.\n') f.write('# Since tools/clang is located in another directory, use the \n') @@ -326,7 +327,8 @@ def VerifyVersionOfBuiltClangMatchesVERSION(): clang = os.path.join(LLVM_BUILD_DIR, 'bin', 'clang') if sys.platform == 'win32': clang += '-cl.exe' - version_out = subprocess.check_output([clang, '--version']) + version_out = subprocess.check_output([clang, '--version'], + universal_newlines=True) version_out = re.match(r'clang version ([0-9.]+)', version_out).group(1) if version_out != RELEASE_VERSION: print(('unexpected clang version %s (not %s), ' @@ -339,33 +341,29 @@ def CopyLibstdcpp(args, build_dir): if not args.gcc_toolchain: return # Find libstdc++.so.6 - libstdcpp = subprocess.check_output( - [os.path.join(args.gcc_toolchain, 'bin', 'g++'), - '-print-file-name=libstdc++.so.6']).rstrip() + libstdcpp = subprocess.check_output([ + os.path.join(args.gcc_toolchain, 'bin', 'g++'), + '-print-file-name=libstdc++.so.6' + ], + universal_newlines=True).rstrip() # Copy libstdc++.so.6 into the build dir so that the built binaries can find # it. Binaries get their rpath set to $origin/../lib/. For clang, lld, # etc. that live in the bin/ directory, this means they expect to find the .so - # in their neighbouring lib/ dir. For other tools however, this doesn't work - # since those exeuctables are spread out into different directories. - # TODO(hans): Unit tests don't get rpath set at all, unittests/ copying - # below doesn't help at the moment. + # in their neighbouring lib/ dir. + # For unit tests we pass -Wl,-rpath to the linker pointing to the lib64 dir + # in the gcc toolchain, via LLVM_LOCAL_RPATH below. + # The two fuzzer tests are weird in that they copy the fuzzer binary from bin/ + # into the test tree under a different name. To make the relative rpath in + # them work, copy libstdc++ to the copied location for now. + # TODO(thakis): Instead, make the upstream lit.local.cfg.py for these 2 tests + # check if the binary contains an rpath and if so disable the tests. for d in ['lib', 'test/tools/llvm-isel-fuzzer/lib', - 'test/tools/llvm-opt-fuzzer/lib', - 'unittests/CodeGen/lib', - 'unittests/DebugInfo/lib', - 'unittests/ExecutionEngine/lib', - 'unittests/Support/lib', - 'unittests/Target/lib', - 'unittests/Transforms/lib', - 'unittests/lib', - 'unittests/tools/lib', - 'unittests/tools/llvm-exegesis/lib']: + 'test/tools/llvm-opt-fuzzer/lib']: EnsureDirExists(os.path.join(build_dir, d)) CopyFile(libstdcpp, os.path.join(build_dir, d)) - def gn_arg(v): if v == 'True': return True @@ -437,7 +435,16 @@ def main(): # Don't buffer stdout, so that print statements are immediately flushed. - sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) + # LLVM tests print output without newlines, so with buffering they won't be + # immediately printed. + major, _, _, _, _ = sys.version_info + if major == 3: + # Python3 only allows unbuffered output for binary streams. This + # workaround comes from https://stackoverflow.com/a/181654/4052492. + sys.stdout = io.TextIOWrapper(open(sys.stdout.fileno(), 'wb', 0), + write_through=True) + else: + sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) # The gnuwin package also includes curl, which is needed to interact with the # github API below. @@ -478,14 +485,6 @@ def main(): # LLVM_ENABLE_LLD). cc, cxx, lld = None, None, None - if args.gcc_toolchain: - # Use the specified gcc installation for building. - cc = os.path.join(args.gcc_toolchain, 'bin', 'gcc') - cxx = os.path.join(args.gcc_toolchain, 'bin', 'g++') - if not os.access(cc, os.X_OK): - print('Invalid --gcc-toolchain: ' + args.gcc_toolchain) - return 1 - cflags = [] cxxflags = [] ldflags = [] @@ -519,6 +518,18 @@ def main(): '-DLLVM_INCLUDE_GO_TESTS=OFF', ] + if args.gcc_toolchain: + # Use the specified gcc installation for building. + cc = os.path.join(args.gcc_toolchain, 'bin', 'gcc') + cxx = os.path.join(args.gcc_toolchain, 'bin', 'g++') + if not os.access(cc, os.X_OK): + print('Invalid --gcc-toolchain: ' + args.gcc_toolchain) + return 1 + base_cmake_args += [ + '-DLLVM_LOCAL_RPATH=' + os.path.join(args.gcc_toolchain, 'lib64') + ] + + if sys.platform == 'darwin': # For libc++, we only want the headers. base_cmake_args.extend([ @@ -531,7 +542,7 @@ def main(): if args.gcc_toolchain: # Don't use the custom gcc toolchain when building compiler-rt tests; those # tests are built with the just-built Clang, and target both i386 and x86_64 - # for example, so should ust the system's libstdc++. + # for example, so should use the system's libstdc++. base_cmake_args.append( '-DCOMPILER_RT_TEST_COMPILER_CFLAGS=--gcc-toolchain=') @@ -867,28 +878,10 @@ def main(): CopyDirectoryContents(rt_lib_src_dir, rt_lib_dst_dir) if args.with_android: - make_toolchain = os.path.join( - ANDROID_NDK_DIR, 'build', 'tools', 'make_standalone_toolchain.py') # TODO(thakis): Now that the NDK uses clang, try to build all archs in - # one LLVM build instead of making 3 different toolchains and building - # 3 times. + # one LLVM build instead of building 3 times. + toolchain_dir = ANDROID_NDK_DIR + '/toolchains/llvm/prebuilt/linux-x86_64' for target_arch in ['aarch64', 'arm', 'i686']: - # Make standalone Android toolchain for target_arch. - toolchain_dir = os.path.join( - LLVM_BUILD_DIR, 'android-toolchain-' + target_arch) - api_level = '21' if target_arch == 'aarch64' else '19' - RunCommand([ - make_toolchain, - '--api=' + api_level, - '--force', - '--install-dir=%s' % toolchain_dir, - '--stl=libc++', - '--arch=' + { - 'aarch64': 'arm64', - 'arm': 'arm', - 'i686': 'x86', - }[target_arch]]) - # Build compiler-rt runtimes needed for Android in a separate build tree. build_dir = os.path.join(LLVM_BUILD_DIR, 'android-' + target_arch) if not os.path.exists(build_dir): @@ -897,10 +890,13 @@ def main(): target_triple = target_arch if target_arch == 'arm': target_triple = 'armv7' + api_level = '21' if target_arch == 'aarch64' else '19' target_triple += '-linux-android' + api_level - cflags = ['--target=%s' % target_triple, - '--sysroot=%s/sysroot' % toolchain_dir, - '-B%s' % toolchain_dir] + cflags = [ + '--target=' + target_triple, + '--sysroot=%s/sysroot' % toolchain_dir, + '--gcc-toolchain=' + toolchain_dir, + ] android_args = base_cmake_args + [ '-DCMAKE_C_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang'), '-DCMAKE_CXX_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang++'), diff --git a/chromium/tools/clang/scripts/clang_tidy_tool.py b/chromium/tools/clang/scripts/clang_tidy_tool.py index 57e54f7049d..afbe12bb45d 100755 --- a/chromium/tools/clang/scripts/clang_tidy_tool.py +++ b/chromium/tools/clang/scripts/clang_tidy_tool.py @@ -107,8 +107,7 @@ def RunClangTidy(checks, header_filter, auto_fix, clang_src_dir, subprocess.check_call(args) -def RunClangTidyDiff(checks, header_filter, auto_fix, clang_src_dir, - clang_build_dir, out_dir): +def RunClangTidyDiff(checks, auto_fix, clang_src_dir, clang_build_dir, out_dir): """Invoke the |clang-tidy-diff.py| script over the diff from stdin.""" clang_tidy_diff_script = os.path.join( clang_src_dir, 'clang-tools-extra', 'clang-tidy', 'tool', @@ -129,9 +128,6 @@ def RunClangTidyDiff(checks, header_filter, auto_fix, clang_src_dir, if checks: args.append('-checks={}'.format(checks)) - if header_filter: - args.append('-header-filter={}'.format(header_filter)) - if auto_fix: args.append('-fix') @@ -202,11 +198,9 @@ def main(): ] if args.diff: steps += [ - ('Running clang-tidy on diff', - lambda: RunClangTidyDiff(args.checks, args.header_filter, - args.auto_fix, args.clang_src_dir, - args.clang_build_dir, args.OUT_DIR, - args.NINJA_TARGET)), + ('Running clang-tidy on diff', lambda: RunClangTidyDiff( + args.checks, args.auto_fix, args.clang_src_dir, args. + clang_build_dir, args.OUT_DIR)), ] else: steps += [ diff --git a/chromium/tools/clang/scripts/expand_thin_archives.py b/chromium/tools/clang/scripts/expand_thin_archives.py index ede95921f77..b51393587da 100755 --- a/chromium/tools/clang/scripts/expand_thin_archives.py +++ b/chromium/tools/clang/scripts/expand_thin_archives.py @@ -12,120 +12,10 @@ from __future__ import print_function from __future__ import unicode_literals import argparse -import errno -import io -import os -import re import sys -COMPILER_RE = re.compile('clang') -LINKER_RE = re.compile('l(?:ld|ink)') -LIB_RE = re.compile('.*\\.(?:a|lib)', re.IGNORECASE) -OBJ_RE = re.compile(b'(.*)\\.(o(?:bj)?)', re.IGNORECASE) -THIN_AR_LFN_RE = re.compile('/([0-9]+)') - - -def ensure_dir(path): - """ - Creates path as a directory if it does not already exist. - """ - try: - os.makedirs(path) - except OSError as e: - if e.errno != errno.EEXIST: - raise - - -def thin_archive(path): - """ - Returns True if path refers to a thin archive (ar file), False if not. - """ - with open(path, 'rb') as f: - return f.read(8) == b'!\n' - - -def write_rsp(path, params): - """ - Writes params to a newly created response file at path. - """ - ensure_dir(os.path.basename(path)) - with open(path, 'wb') as f: - f.write(b'\n'.join(params)) - - -def names_in_archive(path): - """ - Yields the member names in the archive file at path. - """ - with open(path, 'rb') as f: - long_names = None - f.seek(8, io.SEEK_CUR) - while True: - file_id = f.read(16) - if len(file_id) == 0: - break - f.seek(32, io.SEEK_CUR) - m = THIN_AR_LFN_RE.match(file_id) - if long_names and m: - name_pos = long(m.group(1)) - name_end = long_names.find('/\n', name_pos) - name = long_names[name_pos:name_end] - else: - name = file_id - try: - size = long(f.read(10)) - except: - sys.stderr.write('While parsing %r, pos %r\n' % (path, f.tell())) - raise - # Two entries are special: '/' and '//'. The former is - # the symbol table, which we skip. The latter is the long - # file name table, which we read. - # Anything else is a filename entry which we yield. - # Every file record ends with two terminating characters - # which we skip. - seek_distance = 2 - if file_id == '/ ': - # Skip symbol table. - seek_distance += size + (size & 1) - elif file_id == '// ': - # Read long name table. - f.seek(2, io.SEEK_CUR) - long_names = f.read(size) - seek_distance = size & 1 - else: - yield name - f.seek(seek_distance, io.SEEK_CUR) - - -def expand_args(args, linker_prefix=''): - """ - Yields the parameters in args, with thin archives replaced by a sequence of - '-start-lib', the member names, and '-end-lib'. This is used to get a command - line where members of thin archives are mentioned explicitly. - """ - for arg in args: - if len(arg) > 1 and arg[0] == '@': - for x in expand_rsp(arg[1:], linker_prefix): - yield x - elif LIB_RE.match(arg) and os.path.exists(arg) and thin_archive(arg): - yield(linker_prefix + '-start-lib') - for name in names_in_archive(arg): - yield(os.path.dirname(arg) + '/' + name) - yield(linker_prefix + '-end-lib') - else: - yield(arg) - - -def expand_rsp(rspname, linker_prefix=''): - """ - Yields the parameters found in the response file at rspname, with thin - archives replaced by a sequence of '-start-lib', the member names, - and '-end-lib'. This is used to get a command line where members of - thin archives are mentioned explicitly. - """ - with open(rspname) as f: - for x in expand_args(f.read().split(), linker_prefix): - yield x +from goma_link import GomaLinkWindows +from goma_ld import GomaLinkUnix def main(argv): @@ -152,11 +42,19 @@ def main(argv): cmdline = cmdline[1:] linker_prefix = args.linker_prefix + if linker_prefix == '-Wl,': + linker = GomaLinkUnix() + else: + linker = GomaLinkWindows() + + rsp_expanded = list(linker.expand_args_rsps(cmdline)) + expanded_args = list(linker.expand_thin_archives(rsp_expanded)) + if args.output: output = open(args.output, 'w') else: output = sys.stdout - for arg in expand_args(cmdline, linker_prefix=linker_prefix): + for arg in expanded_args: output.write('%s\n' % (arg,)) if args.output: output.close() diff --git a/chromium/tools/clang/scripts/goma_ld.py b/chromium/tools/clang/scripts/goma_ld.py index 9a7365bf90c..576dfa9f9d2 100755 --- a/chromium/tools/clang/scripts/goma_ld.py +++ b/chromium/tools/clang/scripts/goma_ld.py @@ -26,6 +26,8 @@ class GomaLinkUnix(goma_link.GomaLinkBase): WL = '-Wl,' TLTO = '-plugin-opt=thinlto' SEP = '=' + DATA_SECTIONS = '-fdata-sections' + FUNCTION_SECTIONS = '-ffunction-sections' GROUP_RE = re.compile(WL + '--(?:end|start)-group') MACHINE_RE = re.compile('-m([0-9]+)') OBJ_PATH = '-plugin-opt=obj-path' + SEP diff --git a/chromium/tools/clang/scripts/goma_link.py b/chromium/tools/clang/scripts/goma_link.py index 7c4e5cd9534..8bf194e4bdb 100755 --- a/chromium/tools/clang/scripts/goma_link.py +++ b/chromium/tools/clang/scripts/goma_link.py @@ -218,6 +218,10 @@ class GomaLinkBase(object): jobs = None # These constants should work across platforms. + DATA_SECTIONS_RE = re.compile('-f(no-)?data-sections|[-/]Gw(-)?', + re.IGNORECASE) + FUNCTION_SECTIONS_RE = re.compile('-f(no-)?function-sections|[-/]Gy(-)?', + re.IGNORECASE) LIB_RE = re.compile('.*\\.(?:a|lib)', re.IGNORECASE) LTO_RE = re.compile('|'.join(( '-fsanitize=cfi.*', @@ -227,8 +231,36 @@ class GomaLinkBase(object): '-Wl,--lto.*', '-Wl,--thin.*', ))) + MLLVM_RE = re.compile('(?:-Wl,)?([-/]mllvm)[:=]?(.*)', re.IGNORECASE) OBJ_RE = re.compile('(.*)\\.(o(?:bj)?)', re.IGNORECASE) + def transform_codegen_param(self, param): + return self.transform_codegen_param_common(param) + + def transform_codegen_param_common(self, param): + """ + If param is a parameter relevant to code generation, returns the + parameter in a form that is suitable to pass to clang. For values + of param that are not relevant to code generation, returns None. + """ + match = self.MACHINE_RE.match(param) + if match and match.group(1).lower() in ['x86', 'i386', 'arm', '32']: + return ['-m32'] + match = self.MLLVM_RE.match(param) + if match: + if match.group(2): + return ['-mllvm', match.group(2)] + else: + return ['-mllvm'] + if (param.startswith('-f') and not param.startswith('-flto') + and not param.startswith('-fsanitize') + and not param.startswith('-fthinlto') + and not param.startswith('-fwhole-program')): + return [param] + if param.startswith('-g'): + return [param] + return None + def output_path(self, args): """ Analyzes command line arguments in args and returns the output @@ -354,33 +386,11 @@ class GomaLinkBase(object): ] final_params = [] in_mllvm = [False] - optlevel = [2] - - MLLVM_RE = re.compile('(?:-Wl,)?([-/]mllvm)[:=]?(.*)', re.IGNORECASE) - def transform_codegen_param(param): - """ - If param is a parameter relevant to code generation, returns the - parameter in a form that is suitable to pass to clang. For values - of param that are not relevant to code generation, returns None. - """ - match = self.MACHINE_RE.match(param) - if match and match.group(1).lower() in ['x86', 'i386', 'arm', '32']: - return ['-m32'] - match = MLLVM_RE.match(param) - if match: - if match.group(2): - return ['-mllvm', match.group(2)] - else: - return ['-mllvm'] - if (param.startswith('-f') and not param.startswith('-flto') - and not param.startswith('-fsanitize') - and not param.startswith('-fthinlto') - and not param.startswith('-fwhole-program')): - return [param] - if param.startswith('-g'): - return [param] - return None + # Defaults that match those for local linking. + optlevel = [2] + data_sections = [True] + function_sections = [True] def extract_opt_level(param): """ @@ -422,17 +432,24 @@ class GomaLinkBase(object): return # Check for params that affect code generation. - cg_param = transform_codegen_param(param) + cg_param = self.transform_codegen_param(param) if cg_param: codegen_params.extend(cg_param) # No return here, we still want to check for -mllvm. # Check for -mllvm. - match = MLLVM_RE.match(param) + match = self.MLLVM_RE.match(param) if match and not match.group(2): # Next parameter will be the thing to pass to LLVM. in_mllvm[0] = True + # Parameters that override defaults disable the defaults; the + # final value is set by passing through the parameter. + if self.DATA_SECTIONS_RE.match(param): + data_sections[0] = False + if self.FUNCTION_SECTIONS_RE.match(param): + function_sections[0] = False + helper() if self.GROUP_RE.match(param): return @@ -452,7 +469,7 @@ class GomaLinkBase(object): elif not self.LTO_RE.match(param): final_params.append(param) - index_params.append(self.WL + self.PREFIX_REPLACE + ';' + obj_dir) + index_params.append(self.WL + self.PREFIX_REPLACE + ';' + obj_dir + '/') i = 0 while i < len(args): x = args[i] @@ -471,6 +488,10 @@ class GomaLinkBase(object): return None codegen_params.append('-O' + str(optlevel[0])) + if data_sections[0]: + codegen_params.append(self.DATA_SECTIONS) + if function_sections[0]: + codegen_params.append(self.FUNCTION_SECTIONS) if use_common_objects: splitfile = None @@ -623,6 +644,8 @@ class GomaLinkWindows(GomaLinkBase): WL = '' TLTO = '-thinlto' SEP = ':' + DATA_SECTIONS = '-Gw' + FUNCTION_SECTIONS = '-Gy' GROUP_RE = re.compile(WL + '--(?:end|start)-group') MACHINE_RE = re.compile('[-/]machine:(.*)', re.IGNORECASE) OBJ_PATH = '-lto-obj-path' + SEP @@ -641,6 +664,14 @@ class GomaLinkWindows(GomaLinkBase): 'tls_edit.exe', } + def transform_codegen_param(self, param): + # In addition to parameters handled by transform_codegen_param_common, + # we pass on parameters that start in 'G' or 'Q', which are + # MSVC-style parameters that affect code generation. + if len(param) >= 2 and param[0] in ['-', '/'] and param[1] in ['G', 'Q']: + return [param] + return self.transform_codegen_param_common(param) + def process_output_param(self, args, i): """ If args[i] is a parameter that specifies the output file, diff --git a/chromium/tools/clang/scripts/goma_link_unit_tests.py b/chromium/tools/clang/scripts/goma_link_unit_tests.py index e35179d36fb..255ff6ad1f6 100755 --- a/chromium/tools/clang/scripts/goma_link_unit_tests.py +++ b/chromium/tools/clang/scripts/goma_link_unit_tests.py @@ -125,6 +125,84 @@ class GomaLinkUnitTest(unittest.TestCase): self.assertNotIn('-flto=thin', result.final_params) + def test_codegen_params_default(self): + with FakeFs(bitcode_files=['foo.o'], other_files=['bar.o']): + result = goma_ld.GomaLinkUnix().analyze_expanded_args( + ['clang', 'foo.o', 'bar.o', '-o', 'foo'], 'foo', 'clang', 'lto.foo', + 'common', False) + # Codegen optimization level should default to 2. + self.assertIn('-O2', result.codegen_params) + # -fdata-sections and -ffunction-sections default to on to match the + # behavior of local linking. + self.assertIn('-fdata-sections', result.codegen_params) + self.assertIn('-ffunction-sections', result.codegen_params) + + def test_codegen_params_default_cl(self): + with FakeFs(bitcode_files=['foo.obj'], other_files=['bar.obj']): + result = goma_link.GomaLinkWindows().analyze_expanded_args( + ['clang-cl', 'foo.obj', 'bar.obj', '-Fefoo.exe'], 'foo.exe', + 'clang-cl', 'lto.foo', 'common', False) + # Codegen optimization level should default to 2. + self.assertIn('-O2', result.codegen_params) + # -Gw and -Gy default to on to match the behavior of local linking. + self.assertIn('-Gw', result.codegen_params) + self.assertIn('-Gy', result.codegen_params) + + def test_codegen_params_no_data_sections(self): + with FakeFs(bitcode_files=['foo.o'], other_files=['bar.o']): + result = goma_ld.GomaLinkUnix().analyze_expanded_args( + ['clang', '-fno-data-sections', 'foo.o', 'bar.o', '-o', 'foo'], 'foo', + 'clang', 'lto.foo', 'common', False) + self.assertNotIn('-fdata-sections', result.codegen_params) + self.assertIn('-ffunction-sections', result.codegen_params) + + def test_codegen_params_no_function_sections(self): + with FakeFs(bitcode_files=['foo.o'], other_files=['bar.o']): + result = goma_ld.GomaLinkUnix().analyze_expanded_args( + ['clang', '-fno-function-sections', 'foo.o', 'bar.o', '-o', 'foo'], + 'foo', 'clang', 'lto.foo', 'common', False) + self.assertIn('-fdata-sections', result.codegen_params) + self.assertNotIn('-ffunction-sections', result.codegen_params) + + def test_codegen_params_no_data_sections_cl(self): + with FakeFs(bitcode_files=['foo.obj'], other_files=['bar.obj']): + result = goma_link.GomaLinkWindows().analyze_expanded_args( + ['clang-cl', '/Gw-', 'foo.obj', 'bar.obj', '/Fefoo.exe'], 'foo.exe', + 'clang-cl', 'lto.foo', 'common', False) + self.assertNotIn('-fdata-sections', result.codegen_params) + self.assertNotIn('-Gw', result.codegen_params) + self.assertNotIn('/Gw', result.codegen_params) + self.assertIn('-Gy', result.codegen_params) + + def test_codegen_params_no_function_sections_cl(self): + with FakeFs(bitcode_files=['foo.obj'], other_files=['bar.obj']): + result = goma_link.GomaLinkWindows().analyze_expanded_args( + ['clang-cl', '/Gy-', 'foo.obj', 'bar.obj', '/Fefoo.exe'], 'foo.exe', + 'clang-cl', 'lto.foo', 'common', False) + self.assertIn('-Gw', result.codegen_params) + self.assertNotIn('-ffunction-sections', result.codegen_params) + self.assertNotIn('-Gy', result.codegen_params) + self.assertNotIn('/Gy', result.codegen_params) + + def test_codegen_params_explicit_data_and_function_sections(self): + with FakeFs(bitcode_files=['foo.o'], other_files=['bar.o']): + result = goma_ld.GomaLinkUnix().analyze_expanded_args([ + 'clang', '-ffunction-sections', '-fdata-sections', 'foo.o', 'bar.o', + '-o', 'foo' + ], 'foo', 'clang', 'lto.foo', 'common', False) + self.assertIn('-fdata-sections', result.codegen_params) + self.assertIn('-ffunction-sections', result.codegen_params) + + def test_codegen_params_explicit_data_and_function_sections_cl(self): + with FakeFs(bitcode_files=['foo.obj'], other_files=['bar.obj']): + result = goma_link.GomaLinkWindows().analyze_expanded_args( + ['clang-cl', '/Gy', '-Gw', 'foo.obj', 'bar.obj', '/Fefoo.exe'], + 'foo.exe', 'clang-cl', 'lto.foo', 'common', False) + self.assertIn('-Gw', result.codegen_params) + self.assertIn('/Gy', result.codegen_params) + self.assertNotIn('-fdata-sections', result.codegen_params) + self.assertNotIn('-ffunction-sections', result.codegen_params) + def test_ensure_file_no_dir(self): with named_directory() as d, working_directory(d): self.assertFalse(os.path.exists('test')) diff --git a/chromium/tools/clang/scripts/update.py b/chromium/tools/clang/scripts/update.py index 83e0ede51fb..c9bdcf3ae20 100755 --- a/chromium/tools/clang/scripts/update.py +++ b/chromium/tools/clang/scripts/update.py @@ -37,8 +37,8 @@ import zipfile # Do NOT CHANGE this if you don't know what you're doing -- see # https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md # Reverting problematic clang rolls is safe, though. -CLANG_REVISION = '99ac9ce7016d701b43b8f0c308dc3463da57d983' -CLANG_SVN_REVISION = 'n353803' +CLANG_REVISION = '4e813bbdf' +CLANG_SVN_REVISION = 'n356902' CLANG_SUB_REVISION = 1 PACKAGE_VERSION = '%s-%s-%s' % (CLANG_SVN_REVISION, CLANG_REVISION[:8], diff --git a/chromium/tools/clang/scripts/upload_revision.py b/chromium/tools/clang/scripts/upload_revision.py index cbe0c8b961b..9cd4484cd2b 100755 --- a/chromium/tools/clang/scripts/upload_revision.py +++ b/chromium/tools/clang/scripts/upload_revision.py @@ -29,6 +29,7 @@ CHROMIUM_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..', '..')) # Keep lines in here at <= 72 columns, else they wrap in gerrit. COMMIT_FOOTER = \ ''' +TODO: Add bug number. Cq-Include-Trybots: chromium/try:mac_chromium_asan_rel_ng Cq-Include-Trybots: chromium/try:linux_chromium_cfi_rel_ng @@ -39,7 +40,7 @@ Cq-Include-Trybots: chromium/try:linux-chromeos-dbg,win-asan Cq-Include-Trybots: chromium/try:chromeos-amd64-generic-cfi-thin-lto-rel Cq-Include-Trybots: chromium/try:linux_chromium_compile_dbg_32_ng Cq-Include-Trybots: chromium/try:win7-rel,win-angle-deqp-rel-32 -Cq-Include-Trybots: chromium/try:win-angle-deqp-rel-64 +Cq-Include-Trybots: chromium/try:win-angle-deqp-rel-64,linux_angle_deqp_rel_ng Cq-Include-Trybots: chromium/try:dawn-win10-x86-deps-rel Cq-Include-Trybots: chrome/try:iphone-device,ipad-device Cq-Include-Trybots: chrome/try:linux-chromeos-chrome diff --git a/chromium/tools/code_coverage/coverage.py b/chromium/tools/code_coverage/coverage.py index a4b8f88c576..b367cf59498 100755 --- a/chromium/tools/code_coverage/coverage.py +++ b/chromium/tools/code_coverage/coverage.py @@ -80,12 +80,6 @@ import shutil import subprocess import urllib2 -sys.path.append( - os.path.join( - os.path.dirname(__file__), os.path.pardir, os.path.pardir, 'tools', - 'clang', 'scripts')) -import update - sys.path.append( os.path.join( os.path.dirname(__file__), os.path.pardir, os.path.pardir, @@ -96,12 +90,15 @@ import coverage_utils # Absolute path to the code coverage tools binary. These paths can be # overwritten by user specified coverage tool paths. -LLVM_BIN_DIR = os.path.join(update.LLVM_BUILD_DIR, 'bin') +# Absolute path to the root of the checkout. +SRC_ROOT_PATH = os.path.join(os.path.abspath(os.path.dirname(__file__)), + os.path.pardir, os.path.pardir) +LLVM_BIN_DIR = os.path.join( + os.path.join(SRC_ROOT_PATH, 'third_party', 'llvm-build', 'Release+Asserts'), + 'bin') LLVM_COV_PATH = os.path.join(LLVM_BIN_DIR, 'llvm-cov') LLVM_PROFDATA_PATH = os.path.join(LLVM_BIN_DIR, 'llvm-profdata') -# Absolute path to the root of the checkout. -SRC_ROOT_PATH = None # Build directory, the value is parsed from command line arguments. BUILD_DIR = None @@ -157,7 +154,8 @@ def _ConfigureLLVMCoverageTools(args): LLVM_COV_PATH = os.path.join(llvm_bin_dir, 'llvm-cov') LLVM_PROFDATA_PATH = os.path.join(llvm_bin_dir, 'llvm-profdata') else: - update.UpdatePackage('coverage_tools', coverage_utils.GetHostPlatform()) + subprocess.check_call( + ['tools/clang/scripts/update.py', '--package', 'coverage_tools']) if coverage_utils.GetHostPlatform() == 'win': LLVM_COV_PATH += '.exe' @@ -948,19 +946,18 @@ def _ParseCommandArguments(): def Main(): """Execute tool commands.""" + + # Change directory to source root to aid in relative paths calculations. + os.chdir(SRC_ROOT_PATH) + # Setup coverage binaries even when script is called with empty params. This # is used by coverage bot for initial setup. if len(sys.argv) == 1: - update.UpdatePackage('coverage_tools', coverage_utils.GetHostPlatform()) + subprocess.check_call( + ['tools/clang/scripts/update.py', '--package', 'coverage_tools']) print(__doc__) return - # Change directory to source root to aid in relative paths calculations. - global SRC_ROOT_PATH - SRC_ROOT_PATH = coverage_utils.GetFullPath( - os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardir)) - os.chdir(SRC_ROOT_PATH) - args = _ParseCommandArguments() coverage_utils.ConfigureLogging(verbose=args.verbose, log_file=args.log_file) _ConfigureLLVMCoverageTools(args) diff --git a/chromium/tools/determinism/OWNERS b/chromium/tools/determinism/OWNERS index 0def7ec35b8..5be7c401366 100644 --- a/chromium/tools/determinism/OWNERS +++ b/chromium/tools/determinism/OWNERS @@ -2,6 +2,7 @@ # https://crbug.com/314403 dpranke@chromium.org +dpranke@google.com erikchen@chromium.org sebmarchand@chromium.org thakis@chromium.org diff --git a/chromium/tools/determinism/deterministic_build_whitelist.pyl b/chromium/tools/determinism/deterministic_build_whitelist.pyl index 3b7e6725d05..3d87f6aab2f 100644 --- a/chromium/tools/determinism/deterministic_build_whitelist.pyl +++ b/chromium/tools/determinism/deterministic_build_whitelist.pyl @@ -109,6 +109,9 @@ 'test_data/ppapi/tests/extensions/packaged_app/newlib/ppapi_tests_extensions_packaged_app_newlib_x86_64.nexe', 'test_data/ppapi/tests/extensions/popup/newlib/ppapi_tests_extensions_popup_newlib_x86_64.nexe', 'test_data/ppapi/tests/extensions/socket_permissions/newlib/ppapi_tests_extensions_socket_permissions_newlib_x86_64.nexe', + + # https://crbug.com/1093166 + 'test_data/ppapi/tests/extensions/packaged_app/pnacl/ppapi_tests_extensions_packaged_app_newlib_pnacl.pexe', ], # TODO(thakis): Move mac det bots to use two distinct build dirs, diff --git a/chromium/tools/directory_metadata/README.md b/chromium/tools/directory_metadata/README.md new file mode 100644 index 00000000000..26386d6118b --- /dev/null +++ b/chromium/tools/directory_metadata/README.md @@ -0,0 +1,52 @@ +# Chromium METADATA files + +METADATA.chromium files are a source-focused mechanism by which owners can +provide users of their code important information, including: + +* The team responsible for the code. +* The Monorail component where bugs should be filed. +* The OS type. + +METADATA.chromium files are structured protobuf files that are amenable to +programmatic interaction. + +## Contents + +This directory contains the +[proto definition](https://source.chromium.org/chromium/chromium/src/+/master:tools/directory_metadata/directory_metadata.proto) +for METADATA.chromium files, which is the source of truth about +METADATA.chromium file contents. + +Historical information can be found in the +[original proposal](https://docs.google.com/document/d/17WMlceIMwge2ZiCvBWaBuk0w60YgieBd-ly3I8XsbzU/preview). + +## Usage + +METADATA.chromium files apply to all contents of a directory including its +subdirectories. + +There is no inheritance mechanism, so any information in METADATA.chromium files +in parent directories is ignored. + +For example, given the files below, the value of the `os` field for +a/b/METADATA.chromium would be `OS_UNSPECIFIED` regardless of the contents of +a/METADATA.chromium. + +**a/METADATA.chromium** +``` +monorail { + project: "chromium" + component: "Component" +} +team_email: "team@chromium.org" +os: OS_LINUX +``` + +**a/b/METADATA.chromium** +``` +monorail { + project: "chromium" + component: "Component>Foo" +} +team_email: "foo-team@chromium.org" +``` diff --git a/chromium/tools/directory_metadata/directory_metadata.proto b/chromium/tools/directory_metadata/directory_metadata.proto new file mode 100644 index 00000000000..540fa3c112c --- /dev/null +++ b/chromium/tools/directory_metadata/directory_metadata.proto @@ -0,0 +1,42 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto3"; + +// Metadata information for a directory. +message Metadata { + // Monorail metadata. Its component field should always map to the same + // team_email field (see below) for every directory that it is listed in. + Monorail monorail = 1; + // The team responsible for the directory. Only a single email is allowed. + // For example, “team-email@chromium.org”. + string team_email = 2; + // The code in this directory is specific to this OS. + OS os = 3; + // Reserved for metadata information for third-party code. See + // https://opensource.google/docs/thirdparty/metadata/ + reserved 13; + reserved "third_party"; +} + +// Supported OS to tag a directory. +enum OS { + OS_UNSPECIFIED = 0; + OS_LINUX = 1; + OS_WINDOWS = 2; + OS_MAC = 3; + OS_ANDROID = 4; + OS_IOS = 5; + OS_CHROME = 6; + OS_FUCHSIA = 7; +} + +// Monorail specific metadata. +message Monorail { + // The Monorail project. For example, “chromium”. + string project = 1; + // The Monorail component. For example, “UI>Browser>Zoom”. + // Only a single component is allowed. + string component = 2; +} diff --git a/chromium/tools/directory_metadata/directory_metadata_pb2.py b/chromium/tools/directory_metadata/directory_metadata_pb2.py new file mode 100644 index 00000000000..1c34d0777f5 --- /dev/null +++ b/chromium/tools/directory_metadata/directory_metadata_pb2.py @@ -0,0 +1,188 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: directory_metadata.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='directory_metadata.proto', + package='', + syntax='proto3', + serialized_options=None, + serialized_pb=_b('\n\x18\x64irectory_metadata.proto\"_\n\x08Metadata\x12\x1b\n\x08monorail\x18\x01 \x01(\x0b\x32\t.Monorail\x12\x12\n\nteam_email\x18\x02 \x01(\t\x12\x0f\n\x02os\x18\x03 \x01(\x0e\x32\x03.OSJ\x04\x08\r\x10\x0eR\x0bthird_party\".\n\x08Monorail\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tcomponent\x18\x02 \x01(\t*h\n\x02OS\x12\x12\n\x0eOS_UNSPECIFIED\x10\x00\x12\t\n\x05LINUX\x10\x01\x12\x0b\n\x07WINDOWS\x10\x02\x12\x07\n\x03MAC\x10\x03\x12\x0b\n\x07\x41NDROID\x10\x04\x12\x07\n\x03IOS\x10\x05\x12\n\n\x06\x43HROME\x10\x06\x12\x0b\n\x07\x46UCHSIA\x10\x07\x62\x06proto3') +) + +_OS = _descriptor.EnumDescriptor( + name='OS', + full_name='OS', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='OS_UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LINUX', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='WINDOWS', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MAC', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ANDROID', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IOS', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CHROME', index=6, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FUCHSIA', index=7, number=7, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=173, + serialized_end=277, +) +_sym_db.RegisterEnumDescriptor(_OS) + +OS = enum_type_wrapper.EnumTypeWrapper(_OS) +OS_UNSPECIFIED = 0 +LINUX = 1 +WINDOWS = 2 +MAC = 3 +ANDROID = 4 +IOS = 5 +CHROME = 6 +FUCHSIA = 7 + + + +_METADATA = _descriptor.Descriptor( + name='Metadata', + full_name='Metadata', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='monorail', full_name='Metadata.monorail', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='team_email', full_name='Metadata.team_email', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='os', full_name='Metadata.os', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=28, + serialized_end=123, +) + + +_MONORAIL = _descriptor.Descriptor( + name='Monorail', + full_name='Monorail', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='project', full_name='Monorail.project', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='component', full_name='Monorail.component', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=171, +) + +_METADATA.fields_by_name['monorail'].message_type = _MONORAIL +_METADATA.fields_by_name['os'].enum_type = _OS +DESCRIPTOR.message_types_by_name['Metadata'] = _METADATA +DESCRIPTOR.message_types_by_name['Monorail'] = _MONORAIL +DESCRIPTOR.enum_types_by_name['OS'] = _OS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict( + DESCRIPTOR = _METADATA, + __module__ = 'directory_metadata_pb2' + # @@protoc_insertion_point(class_scope:Metadata) + )) +_sym_db.RegisterMessage(Metadata) + +Monorail = _reflection.GeneratedProtocolMessageType('Monorail', (_message.Message,), dict( + DESCRIPTOR = _MONORAIL, + __module__ = 'directory_metadata_pb2' + # @@protoc_insertion_point(class_scope:Monorail) + )) +_sym_db.RegisterMessage(Monorail) + + +# @@protoc_insertion_point(module_scope) diff --git a/chromium/tools/fuchsia/local-sdk.py b/chromium/tools/fuchsia/local-sdk.py index 59cf6ee9a1a..30a3d030272 100755 --- a/chromium/tools/fuchsia/local-sdk.py +++ b/chromium/tools/fuchsia/local-sdk.py @@ -37,8 +37,8 @@ def EnsureEmptyDir(path): def BuildForArch(arch): build_dir = 'out/release-' + arch Run('scripts/fx', '--dir', build_dir, 'set', 'core.qemu-' + arch, - '--with-base=//sdk/bundles:tools', '--args=is_debug=false', - '--args=build_sdk_archives=true') + '--args=cache_package_labels+=["//sdk/bundles:tools"]', + '--args=is_debug=false', '--args=build_sdk_archives=true') Run('scripts/fx', 'build', 'sdk', 'build/images') diff --git a/chromium/tools/get_swarming_logs/OWNERS b/chromium/tools/get_swarming_logs/OWNERS new file mode 100644 index 00000000000..5206e3a602a --- /dev/null +++ b/chromium/tools/get_swarming_logs/OWNERS @@ -0,0 +1,2 @@ +altimin@chromium.org +fergal@chromium.org diff --git a/chromium/tools/get_swarming_logs/README.md b/chromium/tools/get_swarming_logs/README.md new file mode 100644 index 00000000000..ed4b70c523e --- /dev/null +++ b/chromium/tools/get_swarming_logs/README.md @@ -0,0 +1,4 @@ +# Caveat Usor + +This is just a quick script that I wrote and am checking in. +Feel free to send patches and ping me if it doesn't work. diff --git a/chromium/tools/get_swarming_logs/get_all.sh b/chromium/tools/get_swarming_logs/get_all.sh new file mode 100755 index 00000000000..fe9a7dc7670 --- /dev/null +++ b/chromium/tools/get_swarming_logs/get_all.sh @@ -0,0 +1,46 @@ +#!/bin/bash -e +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Downloads all logs from a CQ run. You can find the task ID by e.g. clicking +# through to the CQ run from gerrit and finding, e.g. the line +# +# Swarming Task: 4cb6401085894f10 +# +# This will create a .txt for the main log and create subdir for the ID and put +# one .txt file in there for each subtask's log. +# +# Usage: +# get_all.sh + +base_dir=$1 +shift +id=$1 +shift + +bindir=$(dirname $0) + +function get_ids() { + perl -lne 'print $1 if m#shard \#0\]\(https://chromium-swarm.appspot.com/user/task/([0-9a-f]*)#;' "$1" | sort | uniq +} + +log=$("$bindir"/get_one.sh "$base_dir" "$id") +dir="$base_dir/$id" +running=0 +for id in $(get_ids "$log" ); do + if [ "$running" -gt 32 ]; then + echo >&2 waiting $running + wait -n + running=$(($running - 1)) + fi + echo >&2 getting $id + "$bindir"/get_one.sh "$dir" "$id" & + running=$(($running + 1)) +done + +while [ "$running" -gt 0 ]; do + echo >&2 waiting $running + wait -n + running=$(($running - 1)) +done diff --git a/chromium/tools/get_swarming_logs/get_one.sh b/chromium/tools/get_swarming_logs/get_one.sh new file mode 100755 index 00000000000..6b64f2dd4e1 --- /dev/null +++ b/chromium/tools/get_swarming_logs/get_one.sh @@ -0,0 +1,26 @@ +#!/bin/bash -ex +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Download the log from a CQ run. You can find the task ID by e.g. clicking +# through to the CQ run from gerrit and finding, e.g. the line +# +# Swarming Task: 4cb6401085894f10 +# +# The script will create a .txt for this log in the output dir. If you want all +# the logs of subtasks, see get_all.sh +# +# Usage: +# get_one.sh + +base_dir=$1 +shift +id=$1 +shift + +out="$base_dir/$id.txt" +mkdir -p "$base_dir" +tools/luci-go/swarming collect -task-output-stdout=console \ + -S chromium-swarm.appspot.com "$id" > "$out" +echo "$out" diff --git a/chromium/tools/gritsettings/resource_ids.spec b/chromium/tools/gritsettings/resource_ids.spec index 535829b4eed..fa2306ead7d 100644 --- a/chromium/tools/gritsettings/resource_ids.spec +++ b/chromium/tools/gritsettings/resource_ids.spec @@ -113,13 +113,6 @@ "chrome/browser/resources/bookmarks/bookmarks_resources_vulcanized.grd": { "includes": [1300], }, - "chrome/browser/resources/chromeos/camera/camera_resources.grd": { - "includes": [1320], - "structures": [1340], - }, - "chrome/browser/resources/chromeos/camera/src/strings/camera_strings.grd": { - "messages": [1360], - }, "chrome/browser/resources/chromeos/cellular_setup/cellular_setup_resources.grd": { "structures": [1380], }, @@ -153,106 +146,140 @@ "chrome/browser/resources/local_ntp/local_ntp_resources.grd": { "includes": [1620], }, + "chrome/browser/resources/nearby_internals/nearby_internals_resources.grd": { + "includes": [1630], + }, + "chrome/browser/resources/nearby_share/nearby_share_dialog_resources.grd": { + "includes": [1650], + }, "chrome/browser/resources/new_tab_page/new_tab_page_resources_vulcanized.grd": { - "includes": [1640], + "includes": [1660], }, "chrome/browser/resources/new_tab_page/new_tab_page_resources.grd": { - "includes": [1660], + "includes": [1680], }, "chrome/browser/resources/print_preview/print_preview_resources_vulcanized.grd": { - "includes": [1680], + "includes": [1700], }, "chrome/browser/resources/print_preview/print_preview_resources.grd": { - "includes": [1700], - "structures": [1720], + "includes": [1720], + "structures": [1740], + }, + "chrome/browser/resources/print_preview/print_preview_pdf_resources.grd": { + "includes": [1750], }, "chrome/browser/resources/settings/os_settings_resources_vulcanized.grd": { - "includes": [1740], + "includes": [1760], }, "chrome/browser/resources/settings/os_settings_resources.grd": { - "includes": [1760], - "structures": [1780], + "includes": [1780], + "structures": [1800], }, "chrome/browser/resources/settings/settings_resources_vulcanized.grd": { - "includes": [1800], + "includes": [1820], }, "chrome/browser/resources/settings/settings_resources.grd": { - "includes": [1810], - "structures": [1820], + "includes": [1830], + "structures": [1840], }, "chrome/browser/resources/signin/profile_picker/profile_picker_resources.grd": { - "structures": [1840], + "includes": [1860], + "structures": [1870], }, "chrome/browser/resources/tab_strip/tab_strip_resources.grd": { - "structures": [1860], - "includes": [1880], + "structures": [1880], + "includes": [1900], }, "chrome/browser/resources/welcome/welcome_resources.grd": { - "includes": [1900], - "structures": [1920], + "includes": [1920], + "structures": [1940], }, "chrome/browser/supervised_user/supervised_user_unscaled_resources.grd": { - "includes": [1930], + "includes": [1950], }, "chrome/browser/test_dummy/internal/android/resources/resources.grd": { - "includes": [1940], + "includes": [1960], }, "chrome/browser/vr/testapp/vr_testapp_resources.grd": { - "includes": [1950], + "includes": [1970], }, # END chrome/browser section. # START chrome/ WebUI resources section - "chrome/browser/media/kaleidoscope/internal/kaleidoscope_resources.grd": { + # Both the kaleidoscope_resources.grd and kaleidoscope_internal_resources.grd + # start with the same id because only one of them is built based on whether + # src-internal is available. + "chrome/browser/media/kaleidoscope/kaleidoscope_resources.grd": { + # Big alignment at start of section. + "META": {"align": 100}, + "includes": [2000], + }, + "chrome/browser/media/kaleidoscope/kaleidoscope_internal_resources.grd": { # Big alignment at start of section. "META": {"align": 100}, "includes": [2000], - "messages": [2010], + }, + # The internal version of kaleidoscope_resources.grd will be removed in a + # follow up. It is only here to avoid build breakages. + "chrome/browser/media/kaleidoscope/internal/kaleidoscope_resources.grd": { + "META": {"sizes": {"includes": [50],}}, # Relies on src-internal. + "includes": [2010], + }, + "chrome/browser/media/kaleidoscope/internal/kaleidoscope_strings.grd": { + "META": {"sizes": {"messages": [50]}, "join": 2}, # Relies on src-internal. + "messages": [2015], }, "chrome/browser/resources/bluetooth_internals/resources.grd": { "includes": [2020], }, - "chrome/browser/resources/gaia_auth_host/gaia_auth_host_resources.grd": { + "chrome/browser/resources/chromeos/bluetooth_pairing_dialog/bluetooth_pairing_dialog_resources.grd": { "includes": [2030], + "structures": [2050], + }, + "chrome/browser/resources/chromeos/bluetooth_pairing_dialog/bluetooth_pairing_dialog_resources_vulcanized.grd": { + "includes": [2070], + }, + "chrome/browser/resources/gaia_auth_host/gaia_auth_host_resources.grd": { + "includes": [2080], }, "chrome/browser/resources/invalidations/invalidations_resources.grd": { - "includes": [2040], + "includes": [2090], }, "chrome/browser/resources/media/webrtc_logs_resources.grd": { - "includes": [2060], + "includes": [2100], }, "chrome/browser/resources/net_internals/net_internals_resources.grd": { - "includes": [2080], + "includes": [2120], }, "chrome/browser/resources/omnibox/resources.grd": { - "includes": [2100], + "includes": [2140], }, "chrome/browser/resources/quota_internals/quota_internals_resources.grd": { - "includes": [2120], + "includes": [2160], }, "chrome/browser/resources/sync_file_system_internals/sync_file_system_internals_resources.grd": { - "includes": [2140], + "includes": [2180], }, "chrome/browser/resources/usb_internals/resources.grd": { - "includes": [2160], + "includes": [2200], }, "chrome/browser/resources/webapks/webapks_ui_resources.grd": { - "includes": [2180], + "includes": [2220], }, "components/sync/driver/resources.grd": { - "includes": [2200], + "includes": [2240], }, "components/resources/dev_ui_components_resources.grd": { - "includes": [2210], + "includes": [2260], }, "content/browser/resources/media/media_internals_resources.grd": { - "includes": [2220], + "includes": [2270], }, "content/browser/webrtc/resources/resources.grd": { - "includes": [2240], + "includes": [2280], }, "content/dev_ui_content_resources.grd": { - "includes": [2250], + "includes": [2300], }, # END chrome/ WebUI resources section @@ -281,6 +308,13 @@ "META": {"align": 100}, "messages": [2500], }, + "chromeos/components/camera_app_ui/resources/camera_app_resources.grd": { + "includes": [2505], + "structures": [2510], + }, + "chromeos/components/camera_app_ui/resources/src/strings/camera_strings.grd": { + "messages": [2515], + }, "chromeos/components/help_app_ui/resources/help_app_resources.grd": { "includes": [2520], }, @@ -304,7 +338,7 @@ # start with the same id because only one of them is built depending on if # src_internal is available. Lower bound for number of resource ids is number # of languages (74). - "chromeos/components/media_app_ui/resources/pkg/media_app_bundle_resources.grd": { + "chromeos/components/media_app_ui/resources/prod/media_app_bundle_resources.grd": { "META": {"sizes": {"includes": [120],}}, # Relies on src-internal. "includes": [2580], }, @@ -319,6 +353,9 @@ "chromeos/components/sample_system_web_app_ui/resources/sample_system_web_app_resources.grd": { "includes": [2640], }, + "chromeos/components/telemetry_extension_ui/resources/telemetry_extension_resources.grd": { + "includes": [2650], + }, "chromeos/resources/chromeos_resources.grd": { "includes": [2660], }, @@ -474,7 +511,7 @@ "ash/ash_strings.grd": { "messages": [3060], }, - "ash/shortcut_viewer/ash_components_strings.grd": { + "ash/shortcut_viewer/shortcut_viewer_strings.grd": { "messages": [3080], }, "ash/keyboard/ui/keyboard_resources.grd": { @@ -539,7 +576,9 @@ "services/services_strings.grd": { "messages": [3460], }, - + "skia/skia_resources.grd": { + "includes": [3470], + }, "third_party/blink/public/blink_image_resources.grd": { "structures": [3480], }, @@ -600,10 +639,16 @@ # This file is generated during the build. "<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd": { - "META": {"sizes": {"includes": [500],}}, + "META": {"sizes": {"includes": [1000],}}, "includes": [3860], }, + # This file is generated during the build. + "<(SHARED_INTERMEDIATE_DIR)/resources/inspector_overlay/inspector_overlay_resources.grd": { + "META": {"sizes": {"includes": [50],}}, + "includes": [3880], + }, + # END "everything else" section. # Everything but chrome/, components/, content/, and ios/ diff --git a/chromium/tools/gritsettings/startup_resources_win.txt b/chromium/tools/gritsettings/startup_resources_win.txt index 5588a0c3252..f1dfce7431c 100644 --- a/chromium/tools/gritsettings/startup_resources_win.txt +++ b/chromium/tools/gritsettings/startup_resources_win.txt @@ -1,210 +1,264 @@ -IDS_DEFAULT_PROFILE_NAME 101 -IDS_LEGACY_DEFAULT_PROFILE_NAME 102 -IDR_MOJO_CONTENT_BROWSER_MANIFEST 103 -IDR_CHROME_CONTENT_BROWSER_MANIFEST_OVERLAY 104 -IDR_MOJO_CONTENT_GPU_MANIFEST 105 -IDR_CHROME_CONTENT_GPU_MANIFEST_OVERLAY 106 -IDR_MOJO_CONTENT_PACKAGED_SERVICES_MANIFEST 107 -IDR_CHROME_CONTENT_PACKAGED_SERVICES_MANIFEST_OVERLAY 108 -IDR_MOJO_CONTENT_PLUGIN_MANIFEST 109 -IDR_CHROME_CONTENT_PLUGIN_MANIFEST_OVERLAY 110 -IDR_MOJO_CONTENT_RENDERER_MANIFEST 111 -IDR_CHROME_CONTENT_RENDERER_MANIFEST_OVERLAY 112 -IDR_MOJO_CONTENT_UTILITY_MANIFEST 113 -IDR_CHROME_CONTENT_UTILITY_MANIFEST_OVERLAY 114 -IDR_MOJO_CATALOG_MANIFEST 115 -IDR_NACL_LOADER_MANIFEST 116 -IDR_NACL_BROKER_MANIFEST 117 -IDR_PRINT_COMPOSITOR_MANIFEST 118 -IDR_CHROME_RENDERER_SERVICE_MANIFEST 119 -IDR_DOWNLOAD_FILE_TYPES_PB 120 -IDR_PLUGIN_DB_JSON 121 -IDS_ACCEPT_LANGUAGES 122 -IDS_DEFAULT_ENCODING 123 -IDS_STANDARD_FONT_FAMILY 124 -IDS_FIXED_FONT_FAMILY 125 -IDS_FIXED_FONT_FAMILY_ALT_WIN 126 -IDS_SERIF_FONT_FAMILY 127 -IDS_SANS_SERIF_FONT_FAMILY 128 -IDS_CURSIVE_FONT_FAMILY 129 -IDS_FANTASY_FONT_FAMILY 130 -IDS_PICTOGRAPH_FONT_FAMILY 131 -IDS_STANDARD_FONT_FAMILY_JAPANESE 132 -IDS_FIXED_FONT_FAMILY_JAPANESE 133 -IDS_SERIF_FONT_FAMILY_JAPANESE 134 -IDS_SANS_SERIF_FONT_FAMILY_JAPANESE 135 -IDS_STANDARD_FONT_FAMILY_KOREAN 136 -IDS_SERIF_FONT_FAMILY_KOREAN 137 -IDS_SANS_SERIF_FONT_FAMILY_KOREAN 138 -IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN 139 -IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN 140 -IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN 141 -IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN 142 -IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN 143 -IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN 144 -IDS_CURSIVE_FONT_FAMILY_SIMPLIFIED_HAN 145 -IDS_CURSIVE_FONT_FAMILY_TRADITIONAL_HAN 146 -IDS_FIXED_FONT_FAMILY_ARABIC 147 -IDS_SANS_SERIF_FONT_FAMILY_ARABIC 148 -IDS_STANDARD_FONT_FAMILY_CYRILLIC 149 -IDS_FIXED_FONT_FAMILY_CYRILLIC 150 -IDS_SERIF_FONT_FAMILY_CYRILLIC 151 -IDS_SANS_SERIF_FONT_FAMILY_CYRILLIC 152 -IDS_STANDARD_FONT_FAMILY_GREEK 153 -IDS_FIXED_FONT_FAMILY_GREEK 154 -IDS_SERIF_FONT_FAMILY_GREEK 155 -IDS_SANS_SERIF_FONT_FAMILY_GREEK 156 -IDS_FIXED_FONT_FAMILY_KOREAN 157 -IDS_CURSIVE_FONT_FAMILY_KOREAN 158 -IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN 159 -IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN 160 -IDS_DEFAULT_FONT_SIZE 161 -IDS_DEFAULT_FIXED_FONT_SIZE 162 -IDS_MINIMUM_FONT_SIZE 163 -IDS_MINIMUM_LOGICAL_FONT_SIZE 164 -IDS_SPELLCHECK_DICTIONARY 165 -IDS_BOOKMARK_BAR_FOLDER_NAME 166 -IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME 167 -IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME 168 -IDS_PRODUCT_NAME 169 -IDS_PROFILES_DEFAULT_NAME 170 -IDR_CLOUDPRINT_MANIFEST 171 -IDS_WEBSTORE_APP_DESCRIPTION 172 -IDS_WEBSTORE_NAME_STORE 173 -IDR_WEBSTORE_MANIFEST 174 -IDR_CRYPTOTOKEN_MANIFEST 175 -IDR_PDF_MANIFEST 176 -IDS_VERSION_UI_UNOFFICIAL 177 -IDS_CRASH_RECOVERY_TITLE 178 -IDS_CRASH_RECOVERY_CONTENT 179 -IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME 180 -IDS_APP_ACCNAME_MINIMIZE 181 -IDS_APP_ACCNAME_MAXIMIZE 182 -IDS_APP_ACCNAME_RESTORE 183 -IDS_APP_ACCNAME_CLOSE 184 -IDS_TOOLTIP_NEW_TAB 185 -IDS_ACCNAME_NEWTAB 186 -IDR_TAB_DROP_DOWN 187 -IDS_UI_FONT_FAMILY 188 -IDS_UI_FONT_SIZE_SCALER 189 -IDS_MINIMUM_UI_FONT_SIZE 190 -IDS_APP_COPY 191 -IDS_APP_SELECT_ALL 192 -IDS_TOOLTIP_BACK 193 -IDS_ACCNAME_BACK 194 -IDS_ACCDESCRIPTION_BACK 195 -IDS_TOOLTIP_FORWARD 196 -IDS_ACCNAME_FORWARD 197 -IDS_ACCDESCRIPTION_FORWARD 198 -IDS_RELOAD_MENU_NORMAL_RELOAD_ITEM 199 -IDS_RELOAD_MENU_HARD_RELOAD_ITEM 200 -IDS_RELOAD_MENU_EMPTY_AND_HARD_RELOAD_ITEM 201 -IDS_ACCNAME_RELOAD 202 -IDS_TOOLTIP_HOME 203 -IDS_ACCNAME_HOME 204 -IDS_MEDIA_ROUTER_ABOUT 205 -IDS_LEARN_MORE 206 -IDS_MEDIA_ROUTER_HELP 207 -IDS_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION 208 -IDS_MEDIA_ROUTER_TOGGLE_MEDIA_REMOTING 209 -IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE 210 -IDS_MEDIA_ROUTER_REPORT_ISSUE 211 -IDS_MEDIA_ROUTER_ICON_TOOLTIP_TEXT 212 -IDS_GENERIC_USER_AVATAR_LABEL 213 -IDS_ACCNAME_APP 214 -IDS_APPMENU_TOOLTIP 215 -IDS_OMNIBOX_PLACEHOLDER_TEXT 216 -IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR 217 -IDS_REGISTER_PROTOCOL_HANDLER_TOOLTIP 218 -IDS_OMNIBOX_CLEAR_ALL 219 -IDS_EMPTY_KEYWORD_VALUE 220 -IDS_DEFAULT_TAB_TITLE 221 -IDS_BROWSER_WINDOW_TITLE_FORMAT 222 -IDS_EXTENSION_WEB_STORE_TITLE_SHORT 223 -IDS_WEBSTORE_URL 224 -IDS_NTP_CONFIRM_MSG_SHORTCUT_REMOVED 225 -IDS_NEW_TAB_REMOVE_THUMBNAIL_TOOLTIP 226 -IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE 227 -IDS_NEW_TAB_RESTORE_THUMBNAILS_SHORT_LINK 228 -IDS_NEW_TAB_ATTRIBUTION_INTRO 229 -IDS_NEW_TAB_TITLE 230 -IDS_NEW_TAB_MOST_VISITED 231 -IDS_GOOGLE_SEARCH_BOX_EMPTY_HINT_MD 232 -IDS_NTP_CUSTOM_BG_CUSTOMIZE_BACKGROUND 233 -IDS_NTP_CUSTOM_BG_GOOGLE_PHOTOS 234 -IDS_NTP_CUSTOM_BG_CHROME_WALLPAPERS 235 -IDS_NTP_CUSTOM_BG_UPLOAD_AN_IMAGE 236 -IDS_NTP_CUSTOM_BG_RESTORE_DEFAULT 237 -IDS_NTP_CUSTOM_BG_SELECT_A_COLLECTION 238 -IDS_NTP_CUSTOM_BG_DAILY_REFRESH 239 -IDS_NTP_CUSTOM_LINKS_DONE 240 -IDS_NTP_CUSTOM_BG_CANCEL 241 -IDS_NTP_CUSTOM_BG_SELECT_GOOGLE_ALBUM 242 -IDS_NTP_CONNECTION_ERROR_NO_PERIOD 243 -IDS_NTP_CONNECTION_ERROR 244 -IDS_NTP_ERROR_MORE_INFO 245 -IDS_NTP_CUSTOM_BG_BACKGROUNDS_UNAVAILABLE 246 -IDS_NTP_CUSTOM_BG_CUSTOMIZE_NTP_LABEL 247 -IDS_NTP_CUSTOM_BG_BACK_LABEL 248 -IDS_NTP_CUSTOM_BG_GOOGLE_PHOTO_LABEL 249 -IDS_NTP_CUSTOM_BG_PHOTO_SELECTED 250 -IDS_NTP_CUSTOM_LINKS_ADD_SHORTCUT_TITLE 251 -IDS_NTP_CUSTOM_LINKS_ADD_SHORTCUT_TOOLTIP 252 -IDS_NTP_CUSTOM_LINKS_EDIT_SHORTCUT 253 -IDS_NTP_CUSTOM_LINKS_EDIT_SHORTCUT_TOOLTIP 254 -IDS_NTP_CUSTOM_LINKS_NAME 255 -IDS_NTP_CUSTOM_LINKS_URL 256 -IDS_NTP_CUSTOM_LINKS_REMOVE 257 -IDS_NTP_CUSTOM_LINKS_CANCEL 258 -IDS_NTP_CUSTOM_LINKS_INVALID_URL 259 -IDS_NTP_CONFIRM_MSG_SHORTCUT_EDITED 260 -IDS_NTP_CONFIRM_MSG_SHORTCUT_ADDED 261 -IDS_NTP_CONFIRM_MSG_RESTORE_DEFAULTS 262 -IDS_NTP_CUSTOM_LINKS_CANT_CREATE 263 -IDS_NTP_CUSTOM_LINKS_CANT_EDIT 264 -IDS_NTP_CUSTOM_LINKS_CANT_REMOVE 265 -IDS_NEW_TAB_VOICE_AUDIO_ERROR 266 -IDS_NEW_TAB_VOICE_DETAILS 267 -IDS_CLICK_TO_VIEW_DOODLE 268 -IDS_TOOLTIP_MIC_SEARCH 269 -IDS_NEW_TAB_VOICE_LANGUAGE_ERROR 270 -IDS_NEW_TAB_VOICE_LISTENING 271 -IDS_NEW_TAB_VOICE_NETWORK_ERROR 272 -IDS_NEW_TAB_VOICE_NO_TRANSLATION 273 -IDS_NEW_TAB_VOICE_NO_VOICE 274 -IDS_NEW_TAB_VOICE_PERMISSION_ERROR 275 -IDS_NEW_TAB_VOICE_READY 276 -IDS_NEW_TAB_VOICE_TRY_AGAIN 277 -IDS_NEW_TAB_VOICE_WAITING 278 -IDS_NEW_TAB_VOICE_OTHER_ERROR 279 -IDR_DEFAULT_FAVICON 280 -IDS_ACCNAME_CLOSE 281 -IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME 282 -IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP 283 -IDR_BOOKMARK_BAR_APPS_SHORTCUT 284 -IDS_ACCNAME_BOOKMARKS_CHEVRON 285 -IDR_BOOKMARK_BAR_FOLDER 286 -IDR_BOOKMARK_BAR_FOLDER_MANAGED 287 -IDR_SSL_ERROR_ASSISTANT_PB 288 -IDS_WEB_FONT_SIZE 289 -IDS_WEB_FONT_FAMILY 290 -IDR_LOCAL_NTP_HTML 291 -IDS_LOAD_STATE_WAITING_FOR_DELEGATE_GENERIC 292 -IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME 293 -IDR_LOCAL_NTP_CSS 294 -IDR_LOCAL_NTP_VOICE_CSS 295 -IDR_LOCAL_NTP_CUSTOM_BACKGROUNDS_CSS 296 -IDR_LOCAL_NTP_CUSTOM_BACKGROUNDS_JS 297 -IDR_LOCAL_NTP_JS 298 -IDR_LOCAL_NTP_VOICE_JS 299 -IDR_MOST_VISITED_SINGLE_HTML 300 -IDR_CUSTOM_LINKS_EDIT_HTML 301 -IDR_MOST_VISITED_SINGLE_CSS 302 -IDR_MOST_VISITED_SINGLE_JS 303 -IDR_CUSTOM_LINKS_EDIT_CSS 304 -IDR_CUSTOM_LINKS_EDIT_JS 305 -IDR_WEBSTORE_ICON_32 306 -IDS_NTP_FONT_FAMILY 307 -IDR_CUSTOM_LINKS_EDIT_MENU_SVG 308 -IDR_CUSTOM_LINKS_ADD_SVG 309 -IDS_TOOLTIP_STARRED 310 \ No newline at end of file +IDS_PRODUCT_NAME 101 +IDR_DOWNLOAD_FILE_TYPES_PB 102 +IDR_PLUGIN_DB_JSON 103 +IDS_ACCEPT_LANGUAGES 104 +IDS_DEFAULT_ENCODING 105 +IDS_STANDARD_FONT_FAMILY 106 +IDS_FIXED_FONT_FAMILY 107 +IDS_FIXED_FONT_FAMILY_ALT_WIN 108 +IDS_SERIF_FONT_FAMILY 109 +IDS_SANS_SERIF_FONT_FAMILY 110 +IDS_CURSIVE_FONT_FAMILY 111 +IDS_FANTASY_FONT_FAMILY 112 +IDS_PICTOGRAPH_FONT_FAMILY 113 +IDS_STANDARD_FONT_FAMILY_JAPANESE 114 +IDS_FIXED_FONT_FAMILY_JAPANESE 115 +IDS_SERIF_FONT_FAMILY_JAPANESE 116 +IDS_SANS_SERIF_FONT_FAMILY_JAPANESE 117 +IDS_STANDARD_FONT_FAMILY_KOREAN 118 +IDS_SERIF_FONT_FAMILY_KOREAN 119 +IDS_SANS_SERIF_FONT_FAMILY_KOREAN 120 +IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN 121 +IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN 122 +IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN 123 +IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN 124 +IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN 125 +IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN 126 +IDS_CURSIVE_FONT_FAMILY_SIMPLIFIED_HAN 127 +IDS_CURSIVE_FONT_FAMILY_TRADITIONAL_HAN 128 +IDS_FIXED_FONT_FAMILY_ARABIC 129 +IDS_SANS_SERIF_FONT_FAMILY_ARABIC 130 +IDS_STANDARD_FONT_FAMILY_CYRILLIC 131 +IDS_FIXED_FONT_FAMILY_CYRILLIC 132 +IDS_SERIF_FONT_FAMILY_CYRILLIC 133 +IDS_SANS_SERIF_FONT_FAMILY_CYRILLIC 134 +IDS_STANDARD_FONT_FAMILY_GREEK 135 +IDS_FIXED_FONT_FAMILY_GREEK 136 +IDS_SERIF_FONT_FAMILY_GREEK 137 +IDS_SANS_SERIF_FONT_FAMILY_GREEK 138 +IDS_FIXED_FONT_FAMILY_KOREAN 139 +IDS_CURSIVE_FONT_FAMILY_KOREAN 140 +IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN 141 +IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN 142 +IDS_MINIMUM_FONT_SIZE 143 +IDS_MINIMUM_LOGICAL_FONT_SIZE 144 +IDS_SPELLCHECK_DICTIONARY 145 +IDR_PREF_HASH_SEED_BIN 146 +IDS_POLICY_OVERRIDDEN 147 +IDS_BOOKMARK_BAR_FOLDER_NAME 148 +IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME 149 +IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME 150 +IDS_PROFILES_DEFAULT_NAME 151 +IDR_CLOUDPRINT_MANIFEST 152 +IDS_WEBSTORE_APP_DESCRIPTION 153 +IDS_WEBSTORE_NAME_STORE 154 +IDR_WEBSTORE_MANIFEST 155 +IDR_PDF_MANIFEST 156 +IDR_HANGOUT_SERVICES_MANIFEST 157 +IDS_FEEDBACK_REPORT_PAGE_TITLE 158 +IDS_FEEDBACK_REPORT_APP_TITLE 159 +IDR_FEEDBACK_MANIFEST 160 +IDR_NETWORK_SPEECH_SYNTHESIS_MANIFEST 161 +IDR_CRYPTOTOKEN_MANIFEST 162 +IDR_EXTENSIONS_FAVICON 163 +IDS_EXTENSION_USB_DEVICE_PRODUCT_NAME_AND_VENDOR 164 +IDS_EXTENSIONS_LOAD_ERROR_MESSAGE 165 +IDS_CRASH_RECOVERY_TITLE 166 +IDS_CRASH_RECOVERY_CONTENT 167 +IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME 168 +IDS_AUTOFILL_ADDRESS_SUMMARY_SEPARATOR 169 +IDS_AUTOFILL_CC_VISA 170 +IDR_DEFAULT_FAVICON 171 +IDS_EXTENSION_WEB_STORE_TITLE_SHORT 172 +IDS_WEBSTORE_URL 173 +IDS_NTP_CONFIRM_MSG_SHORTCUT_REMOVED 174 +IDS_NEW_TAB_REMOVE_THUMBNAIL_TOOLTIP 175 +IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE 176 +IDS_NEW_TAB_RESTORE_THUMBNAILS_SHORT_LINK 177 +IDS_NEW_TAB_ATTRIBUTION_INTRO 178 +IDS_NEW_TAB_TITLE 179 +IDS_NEW_TAB_MOST_VISITED 180 +IDS_GOOGLE_SEARCH_BOX_EMPTY_HINT_MD 181 +IDS_NTP_CUSTOM_BG_CHROME_WALLPAPERS 182 +IDS_NTP_CUSTOM_BG_UPLOAD_AN_IMAGE 183 +IDS_NTP_CUSTOM_BG_RESTORE_DEFAULT 184 +IDS_NTP_CUSTOM_BG_SELECT_A_COLLECTION 185 +IDS_NTP_CUSTOM_LINKS_DONE 186 +IDS_NTP_CUSTOM_BG_CANCEL 187 +IDS_NTP_CONNECTION_ERROR_NO_PERIOD 188 +IDS_NTP_CONNECTION_ERROR 189 +IDS_NTP_ERROR_MORE_INFO 190 +IDS_NTP_CUSTOM_BG_BACKGROUNDS_UNAVAILABLE 191 +IDS_NTP_CUSTOM_BG_CUSTOMIZE_NTP_LABEL 192 +IDS_NTP_CUSTOM_BG_BACK_LABEL 193 +IDS_NTP_CUSTOM_BG_IMAGE_SELECTED 194 +IDS_NTP_CUSTOM_LINKS_ADD_SHORTCUT_TITLE 195 +IDS_NTP_CUSTOM_LINKS_ADD_SHORTCUT_TOOLTIP 196 +IDS_NTP_CUSTOM_LINKS_EDIT_SHORTCUT 197 +IDS_NTP_CUSTOM_LINKS_EDIT_SHORTCUT_TOOLTIP 198 +IDS_NTP_CUSTOM_LINKS_NAME 199 +IDS_NTP_CUSTOM_LINKS_URL 200 +IDS_NTP_CUSTOM_LINKS_REMOVE 201 +IDS_NTP_CUSTOM_LINKS_CANCEL 202 +IDS_NTP_CUSTOM_LINKS_INVALID_URL 203 +IDS_NTP_CONFIRM_MSG_SHORTCUT_EDITED 204 +IDS_NTP_CONFIRM_MSG_SHORTCUT_ADDED 205 +IDS_NTP_CONFIRM_MSG_RESTORE_DEFAULTS 206 +IDS_NTP_CUSTOM_LINKS_CANT_CREATE 207 +IDS_NTP_CUSTOM_LINKS_CANT_EDIT 208 +IDS_NTP_CUSTOM_LINKS_CANT_REMOVE 209 +IDS_NTP_DOODLE_SHARE_LABEL 210 +IDS_NTP_DOODLE_SHARE_DIALOG_CLOSE_LABEL 211 +IDS_NTP_DOODLE_SHARE_DIALOG_FACEBOOK_LABEL 212 +IDS_NTP_DOODLE_SHARE_DIALOG_TWITTER_LABEL 213 +IDS_NTP_DOODLE_SHARE_DIALOG_MAIL_LABEL 214 +IDS_NTP_DOODLE_SHARE_DIALOG_COPY_LABEL 215 +IDS_NTP_DOODLE_SHARE_DIALOG_LINK_LABEL 216 +IDS_NEW_TAB_VOICE_AUDIO_ERROR 217 +IDS_NEW_TAB_VOICE_DETAILS 218 +IDS_TOOLTIP_MIC_SEARCH 219 +IDS_NEW_TAB_VOICE_LANGUAGE_ERROR 220 +IDS_LEARN_MORE 221 +IDS_NEW_TAB_VOICE_LISTENING 222 +IDS_NEW_TAB_VOICE_NETWORK_ERROR 223 +IDS_NEW_TAB_VOICE_NO_TRANSLATION 224 +IDS_NEW_TAB_VOICE_NO_VOICE 225 +IDS_NEW_TAB_VOICE_PERMISSION_ERROR 226 +IDS_NEW_TAB_VOICE_READY 227 +IDS_NEW_TAB_VOICE_TRY_AGAIN 228 +IDS_NEW_TAB_VOICE_WAITING 229 +IDS_NEW_TAB_VOICE_OTHER_ERROR 230 +IDS_NEW_TAB_VOICE_CLOSE_TOOLTIP 231 +IDS_NEW_TAB_VOICE_SEARCH_CLOSED 232 +IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR 233 +IDS_OMNIBOX_REMOVE_SUGGESTION 234 +IDS_TOOLTIP_HEADER_HIDE_SUGGESTIONS_BUTTON 235 +IDS_TOOLTIP_HEADER_SHOW_SUGGESTIONS_BUTTON 236 +IDS_ACC_HEADER_HIDE_SUGGESTIONS_BUTTON 237 +IDS_ACC_HEADER_SHOW_SUGGESTIONS_BUTTON 238 +IDS_NTP_DISMISS_PROMO 239 +IDS_UI_FONT_FAMILY 240 +IDS_UI_FONT_SIZE_SCALER 241 +IDS_MINIMUM_UI_FONT_SIZE 242 +IDS_TOOLTIP_NEW_TAB 243 +IDS_ACCNAME_NEWTAB 244 +IDR_TAB_DROP_DOWN 245 +IDS_APP_ACCNAME_MINIMIZE 246 +IDS_APP_ACCNAME_MAXIMIZE 247 +IDS_APP_ACCNAME_RESTORE 248 +IDS_APP_ACCNAME_CLOSE 249 +IDS_APP_COPY 250 +IDS_APP_SELECT_ALL 251 +IDS_TOOLTIP_BACK 252 +IDS_ACCNAME_BACK 253 +IDS_ACCDESCRIPTION_BACK 254 +IDS_TOOLTIP_FORWARD 255 +IDS_ACCNAME_FORWARD 256 +IDS_ACCDESCRIPTION_FORWARD 257 +IDS_RELOAD_MENU_NORMAL_RELOAD_ITEM 258 +IDS_RELOAD_MENU_HARD_RELOAD_ITEM 259 +IDS_RELOAD_MENU_EMPTY_AND_HARD_RELOAD_ITEM 260 +IDS_ACCNAME_RELOAD 261 +IDS_TOOLTIP_HOME 262 +IDS_ACCNAME_HOME 263 +IDS_TOOLTIP_EXTENSIONS_BUTTON 264 +IDS_MEDIA_ROUTER_ABOUT 265 +IDS_MEDIA_ROUTER_HELP 266 +IDS_MEDIA_ROUTER_ALWAYS_SHOW_TOOLBAR_ACTION 267 +IDS_MEDIA_ROUTER_TOGGLE_MEDIA_REMOTING 268 +IDS_MEDIA_ROUTER_CLOUD_SERVICES_TOGGLE 269 +IDS_MEDIA_ROUTER_REPORT_ISSUE 270 +IDS_MEDIA_ROUTER_ICON_TOOLTIP_TEXT 271 +IDS_GLOBAL_MEDIA_CONTROLS_ICON_TOOLTIP_TEXT 272 +IDS_ACCNAME_APP 273 +IDS_APPMENU_TOOLTIP 274 +IDR_PROFILE_AVATAR_0 275 +IDS_TOOLTIP_LOCATION_ICON 276 +IDS_OMNIBOX_PLACEHOLDER_TEXT 277 +IDS_REGISTER_PROTOCOL_HANDLER_TOOLTIP 278 +IDS_NOTIFICATIONS_OFF_EXPLANATORY_TEXT 279 +IDS_OMNIBOX_ICON_SEND_TAB_TO_SELF 280 +IDS_OMNIBOX_PWA_INSTALL_ICON_LABEL 281 +IDS_OMNIBOX_CLEAR_ALL 282 +IDS_EMPTY_KEYWORD_VALUE 283 +IDS_DEFAULT_TAB_TITLE 284 +IDS_BROWSER_WINDOW_TITLE_FORMAT 285 +IDS_ACCNAME_CLOSE 286 +IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME 287 +IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP 288 +IDR_BOOKMARK_BAR_APPS_SHORTCUT 289 +IDS_ACCNAME_BOOKMARKS_CHEVRON 290 +IDR_FOLDER_CLOSED 291 +IDR_BOOKMARK_BAR_FOLDER_MANAGED 292 +IDS_EXTENSIONS_HAS_ACCESS_TO_SITE 293 +IDR_EXTENSION_ACTION_PLAIN_BACKGROUND 294 +IDS_ACCESSIBLE_BROWSER_WINDOW_TITLE_FORMAT 295 +IDS_EXTENSIONS_WANTS_ACCESS_TO_SITE 296 +IDR_BOOKMARKS_FAVICON 297 +IDS_WEB_FONT_SIZE 298 +IDS_WEB_FONT_FAMILY 299 +IDS_PROXY_RESOLVER_DISPLAY_NAME 300 +IDS_DEFAULT_BROWSER_INFOBAR_TEXT 301 +IDS_DEFAULT_BROWSER_INFOBAR_OK_BUTTON_LABEL 302 +IDS_SAD_TAB_TITLE 303 +IDS_SAD_TAB_MESSAGE 304 +IDS_SAD_TAB_ERROR_CODE 305 +IDS_SAD_TAB_RELOAD_LABEL 306 +IDS_SAD_TAB_RELOAD_TITLE 307 +IDS_SAD_TAB_RELOAD_TRY 308 +IDS_SAD_TAB_RELOAD_INCOGNITO 309 +IDS_SAD_TAB_RELOAD_RESTART_BROWSER 310 +IDS_SAD_TAB_RELOAD_RESTART_DEVICE 311 +IDS_CRASHED_TAB_FEEDBACK_LINK 312 +IDS_LOAD_STATE_WAITING_FOR_RESPONSE 313 +IDR_CRASH_SAD_FAVICON 314 +IDS_NEW_TAB 315 +IDS_NEW_WINDOW 316 +IDS_NEW_INCOGNITO_WINDOW 317 +IDS_HISTORY_SHOW_HISTORY 318 +IDS_RECENTLY_CLOSED 319 +IDS_RECENTLY_CLOSED_WINDOW 320 +IDS_RECENT_TABS_NO_DEVICE_TABS 321 +IDS_HISTORY_MENU 322 +IDS_SHOW_DOWNLOADS 323 +IDS_BOOKMARK_THIS_TAB 324 +IDS_BOOKMARK_ALL_TABS 325 +IDS_PIN_TO_START_SCREEN 326 +IDS_SHOW_BOOKMARK_BAR 327 +IDS_BOOKMARK_MANAGER 328 +IDS_IMPORT_SETTINGS_MENU_LABEL 329 +IDS_BOOKMARKS_MENU 330 +IDS_ZOOM_MENU 331 +IDS_ZOOM_MINUS2 332 +IDS_ZOOM_PLUS2 333 +IDS_PRINT 334 +IDS_MEDIA_ROUTER_MENU_ITEM_TITLE 335 +IDS_FIND 336 +IDS_SAVE_PAGE 337 +IDS_ADD_TO_OS_LAUNCH_SURFACE 338 +IDS_CLEAR_BROWSING_DATA 339 +IDS_SHOW_EXTENSIONS 340 +IDS_TASK_MANAGER 341 +IDS_DEV_TOOLS 342 +IDS_MORE_TOOLS_MENU 343 +IDS_EDIT 344 +IDS_CUT 345 +IDS_COPY 346 +IDS_PASTE 347 +IDS_SETTINGS 348 +IDS_ABOUT 349 +IDS_HELP_PAGE 350 +IDS_FEEDBACK 351 +IDS_HELP_MENU 352 +IDS_EXIT 353 +IDS_MANAGED_BY 354 +IDS_ZOOM_MENU2 355 +IDS_ACCNAME_ZOOM_MINUS2 356 +IDS_ACCNAME_ZOOM_PLUS2 357 +IDS_ACCNAME_FULLSCREEN 358 +IDS_APP_F11_KEY 359 +IDS_EDIT2 360 +IDS_APP_CTRL_KEY 361 +IDS_APP_ACCELERATOR_WITH_MODIFIER 362 +IDS_APP_MENU_EMPTY_SUBMENU 363 +IDS_APP_SHIFT_KEY 364 diff --git a/chromium/tools/gritsettings/translation_expectations.pyl b/chromium/tools/gritsettings/translation_expectations.pyl index 1ab8ed19290..b2598b2b057 100644 --- a/chromium/tools/gritsettings/translation_expectations.pyl +++ b/chromium/tools/gritsettings/translation_expectations.pyl @@ -25,7 +25,7 @@ "android_webview/java/strings/android_webview_strings.grd", "android_webview/ui/aw_strings.grd", "ash/ash_strings.grd", - "ash/shortcut_viewer/ash_components_strings.grd", + "ash/shortcut_viewer/shortcut_viewer_strings.grd", "chrome/android/features/vr/java/strings/android_chrome_vr_strings.grd", "chrome/android/features/media_router/java/strings/android_chrome_media_router_strings.grd", "chrome/android/features/keyboard_accessory/internal/java/strings/android_keyboard_accessory_strings.grd", @@ -36,12 +36,12 @@ "chrome/app/chromium_strings.grd", "chrome/app/generated_resources.grd", "chrome/app/google_chrome_strings.grd", - "chrome/browser/resources/chromeos/camera/src/strings/camera_strings.grd", "chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings.grd", "chrome/browser/touch_to_fill/android/internal/java/strings/android_touch_to_fill_strings.grd", "chrome/browser/ui/android/strings/android_chrome_strings.grd", "chrome/credential_provider/gaiacp/gaia_resources.grd", "chromeos/chromeos_strings.grd", + "chromeos/components/camera_app_ui/resources/src/strings/camera_strings.grd", "components/autofill/android/java/strings/autofill_strings.grd", "components/browser_ui/strings/android/browser_ui_strings.grd", "components/components_chromium_strings.grd", diff --git a/chromium/tools/imagediff/image_diff.cc b/chromium/tools/imagediff/image_diff.cc index 06802ea6372..d5c727373be 100644 --- a/chromium/tools/imagediff/image_diff.cc +++ b/chromium/tools/imagediff/image_diff.cc @@ -18,10 +18,10 @@ #include #include +#include "base/check.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" -#include "base/logging.h" #include "base/numerics/safe_conversions.h" #include "base/process/memory.h" #include "base/strings/string_util.h" diff --git a/chromium/tools/imagediff/image_diff_png.cc b/chromium/tools/imagediff/image_diff_png.cc index 7524026c192..806923906f1 100644 --- a/chromium/tools/imagediff/image_diff_png.cc +++ b/chromium/tools/imagediff/image_diff_png.cc @@ -7,7 +7,10 @@ #include #include -#include "base/logging.h" +#include + +#include "base/check.h" +#include "base/notreached.h" #include "build/build_config.h" #include "third_party/libpng/png.h" #include "third_party/zlib/zlib.h" @@ -87,11 +90,10 @@ class PngDecoderState { output_channels(0), is_opaque(true), output(o), - row_converter(NULL), + row_converter(nullptr), width(0), height(0), - done(false) { - } + done(false) {} ColorFormat output_format; int output_channels; diff --git a/chromium/tools/infra/OWNERS b/chromium/tools/infra/OWNERS index fd400005193..797eddd5c93 100644 --- a/chromium/tools/infra/OWNERS +++ b/chromium/tools/infra/OWNERS @@ -1,4 +1,3 @@ -agable@chromium.org gbeaty@chromium.org martiniss@chromium.org diff --git a/chromium/tools/infra/clobber_cache_utils.py b/chromium/tools/infra/clobber_cache_utils.py index be957234485..ba180373d22 100644 --- a/chromium/tools/infra/clobber_cache_utils.py +++ b/chromium/tools/infra/clobber_cache_utils.py @@ -9,6 +9,7 @@ from __future__ import print_function import os import subprocess import sys +import textwrap _SRC_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) _SWARMING_CLIENT = os.path.join(_SRC_ROOT, 'tools', 'swarming_client', @@ -48,16 +49,26 @@ def _trigger_clobber(swarming_server, pool, cache, bot, mount_rel_path, '-d', 'id', bot, + '--cipd-package', + 'cpython:infra/python/cpython/${platform}:latest', '--named-cache', cache, mount_rel_path, '--priority=10', '--raw-cmd', '--', - # TODO(jbudorick): Generalize this for windows. - '/bin/rm', - '-rf', - mount_rel_path, + 'cpython/bin/python${EXECUTABLE_SUFFIX}', + '-c', + textwrap.dedent('''\ + import os, shutil, stat + + def remove_readonly(func, path, _): + "Clear the readonly bit and reattempt the removal" + os.chmod(path, stat.S_IWRITE) + func(path) + + shutil.rmtree({mount_rel_path!r}, onerror=remove_readonly) + '''.format(mount_rel_path=mount_rel_path)), ] if dry_run: print('Would run `%s`' % ' '.join(cmd)) diff --git a/chromium/tools/ipc_fuzzer/message_lib/message_file_format.h b/chromium/tools/ipc_fuzzer/message_lib/message_file_format.h index fb39d05f12f..70cc62b9ca8 100644 --- a/chromium/tools/ipc_fuzzer/message_lib/message_file_format.h +++ b/chromium/tools/ipc_fuzzer/message_lib/message_file_format.h @@ -36,7 +36,7 @@ // |------------------------| | // | ... | | // |------------------------| | -// | "FrameHostMsg_OpenURL" <--+ +// | "FrameHostMsg_Detach" <--+ // |------------------------| // | ... | // |========================| diff --git a/chromium/tools/ipc_fuzzer/message_lib/message_names.h b/chromium/tools/ipc_fuzzer/message_lib/message_names.h index 6c45ef3a0b5..094118fc3a4 100644 --- a/chromium/tools/ipc_fuzzer/message_lib/message_names.h +++ b/chromium/tools/ipc_fuzzer/message_lib/message_names.h @@ -9,7 +9,7 @@ #include #include -#include "base/logging.h" +#include "base/check.h" #include "base/macros.h" namespace ipc_fuzzer { diff --git a/chromium/tools/ipc_fuzzer/message_tools/message_util.cc b/chromium/tools/ipc_fuzzer/message_tools/message_util.cc index b598fa48d4f..d77b2973ee2 100644 --- a/chromium/tools/ipc_fuzzer/message_tools/message_util.cc +++ b/chromium/tools/ipc_fuzzer/message_tools/message_util.cc @@ -127,8 +127,9 @@ int main(int argc, char** argv) { args[0], base::FilePath::StringType(1, ','), base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { ipc_fuzzer::MessageVector message_vector; - if (!ipc_fuzzer::MessageFile::Read(base::FilePath(name), &message_vector)) + if (!ipc_fuzzer::MessageFile::Read(base::FilePath(name), &message_vector)) { return EXIT_FAILURE; + } input_message_vector.insert(input_message_vector.end(), std::make_move_iterator(message_vector.begin()), std::make_move_iterator(message_vector.end())); diff --git a/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_gen.py b/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_gen.py index 2c1bbcfb067..635ed063d2b 100644 --- a/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_gen.py +++ b/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_gen.py @@ -44,7 +44,7 @@ class GenerationalFuzzer: utils.create_flags_file(ipcdump_testcase_path) def main(self): - for _ in xrange(self.args.no_of_files): + for _ in range(self.args.no_of_files): self.generate_ipcdump_testcase() return 0 diff --git a/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_mut.py b/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_mut.py index 5045b4420a1..70408984edd 100644 --- a/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_mut.py +++ b/chromium/tools/ipc_fuzzer/scripts/ipc_fuzzer_mut.py @@ -74,7 +74,7 @@ class MutationalFuzzer: def main(self): self.set_corpus() - for _ in xrange(self.args.no_of_files): + for _ in range(self.args.no_of_files): self.create_mutated_ipcdump_testcase() return 0 diff --git a/chromium/tools/ipc_fuzzer/scripts/utils.py b/chromium/tools/ipc_fuzzer/scripts/utils.py index 3f1984598a3..0b2245c2694 100644 --- a/chromium/tools/ipc_fuzzer/scripts/utils.py +++ b/chromium/tools/ipc_fuzzer/scripts/utils.py @@ -21,7 +21,7 @@ UNCOMMON_PREFIX_CHANCE = 10 # 1 in 10 COMMON_LAUNCH_PREFIXES = [ '--renderer-cmd-prefix', ] -UNCOMMON_LAUNCH_PEFIXES = [ +UNCOMMON_LAUNCH_PREFIXES = [ '--plugin-launcher', '--ppapi-plugin-launcher', '--utility-cmd-prefix', diff --git a/chromium/tools/json_schema_compiler/cc_generator.py b/chromium/tools/json_schema_compiler/cc_generator.py index 11302a320cf..e0e1e19c831 100644 --- a/chromium/tools/json_schema_compiler/cc_generator.py +++ b/chromium/tools/json_schema_compiler/cc_generator.py @@ -42,7 +42,8 @@ class _Generator(object): .Append(cpp_util.GENERATED_FILE_MESSAGE % self._namespace.source_file) .Append() .Append(self._util_cc_helper.GetIncludePath()) - .Append('#include "base/logging.h"') + .Append('#include "base/check.h"') + .Append('#include "base/notreached.h"') .Append('#include "base/strings/string_number_conversions.h"') .Append('#include "base/strings/utf_string_conversions.h"') .Append('#include "base/values.h"') diff --git a/chromium/tools/json_schema_compiler/code.py b/chromium/tools/json_schema_compiler/code.py index ef41cf88407..c23fc483c50 100644 --- a/chromium/tools/json_schema_compiler/code.py +++ b/chromium/tools/json_schema_compiler/code.py @@ -124,13 +124,18 @@ class Code(object): def trim_comment(comment, max_len): if len(comment) <= max_len: return comment, '' + # If we ran out of space due to existing content, don't try to wrap. + if max_len <= 1: + return '', comment.lstrip() last_space = comment.rfind(' ', 0, max_len + 1) if last_space != -1: line = comment[0:last_space] comment = comment[last_space + 1:] else: - line = comment[0:max_len] - comment = comment[max_len:] + # If the line can't be split, then don't try. The comments might be + # important (e.g. JSDoc) where splitting it breaks things. + line = comment + comment = '' return line, comment.lstrip() # First line has the full maximum length. @@ -145,6 +150,7 @@ class Code(object): # Any subsequent lines be subject to the wrap indent. max_len = (self._comment_length - len(''.join(self._line_prefixes)) - len(comment_prefix) - wrap_indent) + assert max_len > 1 while len(comment): line, comment = trim_comment(comment, max_len) self.Append(comment_prefix + (' ' * wrap_indent) + line, substitute=False) diff --git a/chromium/tools/json_schema_compiler/code_test.py b/chromium/tools/json_schema_compiler/code_test.py index 90e28793408..6d54ecc47a4 100755 --- a/chromium/tools/json_schema_compiler/code_test.py +++ b/chromium/tools/json_schema_compiler/code_test.py @@ -141,12 +141,16 @@ class CodeTest(unittest.TestCase): 'longness, that is, using a different\n' '// word, length.', c.Render()) + # Words that cannot be broken up are left as too long. long_word = 'x' * 100 c = Code() + c.Comment('xxx') c.Comment(long_word) + c.Comment('xxx') self.assertEquals( - '// ' + 'x' * 77 + '\n' - '// ' + 'x' * 23, + '// xxx\n' + '// ' + 'x' * 100 + '\n' + '// xxx', c.Render()) c = Code(indent_size=2, comment_length=40) c.Comment('Pretend this is a Closure Compiler style comment, which should ' diff --git a/chromium/tools/json_schema_compiler/features_cc_generator.py b/chromium/tools/json_schema_compiler/features_cc_generator.py index 4af9aa71eff..c79796cbdfe 100644 --- a/chromium/tools/json_schema_compiler/features_cc_generator.py +++ b/chromium/tools/json_schema_compiler/features_cc_generator.py @@ -35,7 +35,7 @@ class _Generator(object): .Append() .Append('#include "%s.h"' % self._source_file_filename) .Append() - .Append('#include "base/logging.h"') + .Append('#include "base/notreached.h"') .Append() .Concat(cpp_util.OpenNamespace(self._namespace)) .Append() diff --git a/chromium/tools/json_schema_compiler/h_generator.py b/chromium/tools/json_schema_compiler/h_generator.py index 90e34d33fa3..04b26e4cd78 100644 --- a/chromium/tools/json_schema_compiler/h_generator.py +++ b/chromium/tools/json_schema_compiler/h_generator.py @@ -57,7 +57,6 @@ class _Generator(object): .Append('#include ') .Append('#include ') .Append() - .Append('#include "base/logging.h"') .Append('#include "base/values.h"') .Cblock(self._type_helper.GenerateIncludes(include_soft=include_soft)) .Append() diff --git a/chromium/tools/json_schema_compiler/js_externs_generator.py b/chromium/tools/json_schema_compiler/js_externs_generator.py index 36670cd3197..f510bf5290c 100644 --- a/chromium/tools/json_schema_compiler/js_externs_generator.py +++ b/chromium/tools/json_schema_compiler/js_externs_generator.py @@ -53,6 +53,9 @@ class _Generator(object): for js_type in self._namespace.types.values(): self._AppendType(c, js_type) + for prop in self._namespace.properties.values(): + self._AppendProperty(c, prop) + for function in self._namespace.functions.values(): self._AppendFunction(c, function) @@ -162,12 +165,24 @@ class _Generator(object): c.Append('@typedef {') if properties: - self._js_util.AppendObjectDefinition( - c, self._namespace.name, properties, new_line=False) + self._js_util.AppendObjectDefinition(c, + self._namespace.name, + properties, + new_line=False) else: - c.Append('Object', new_line=False) + c.Append('Object', new_line=False) c.Append('}', new_line=False) + def _AppendProperty(self, c, prop): + """Appends the code representing a top-level property, including its + documentation. For example: + + /** @type {string} */ + chrome.runtime.id; + """ + self._AppendTypeJsDoc(c, prop.type_, prop.optional) + c.Append() + def _AppendFunction(self, c, function): """Appends the code representing a function, including its documentation. For example: @@ -203,14 +218,10 @@ class _Generator(object): """Appends the code creating namespace object. For example: - /** - * @const - */ + /** @const */ chrome.bookmarks = {}; """ - c.Append("""/** - * @const - */""") + c.Append('/** @const */') c.Append('chrome.%s = {};' % self._namespace.name) c.Append() diff --git a/chromium/tools/json_schema_compiler/js_externs_generator_test.py b/chromium/tools/json_schema_compiler/js_externs_generator_test.py index 6bd417986c2..797456e36cf 100755 --- a/chromium/tools/json_schema_compiler/js_externs_generator_test.py +++ b/chromium/tools/json_schema_compiler/js_externs_generator_test.py @@ -65,6 +65,10 @@ namespace fakeApi { callback OptionalParamCallback = void(optional Qux qux); + interface Properties { + static DOMString lastError(); + }; + interface Functions { // Does something exciting! And what's more, this is a multiline function // comment! It goes onto multiple lines! @@ -78,7 +82,26 @@ namespace fakeApi { [deprecated="Use a new method."] static DOMString returnString(); + static void instanceOfObjectParam([instanceOf=SomeType] object obj); + static void optionalParam(optional OptionalParamCallback callback); + + static void nonFinalOptionalParams( + DOMString string, + optional double num, + object obj, + [instanceOf = SomeType] object someType, + [instanceOf = SomeType] optional object optionalSomeType, + optional boolean bool, + optional Baz baz, + VoidCallback callback); + + static void multipleOptionalParams( + optional DOMString param1, + optional DOMString param2, + optional object obj, + [instanceOf = SomeType] optional object optionalSomeType, + optional VoidCallback callback); }; interface Events { @@ -102,9 +125,7 @@ fake_idl_expected = """// Copyright %s The Chromium Authors. All rights reserved /** @fileoverview Externs generated from namespace: fakeApi */ -/** - * @const - */ +/** @const */ chrome.fakeApi = {}; /** @@ -184,17 +205,23 @@ chrome.fakeApi.Qux.prototype.go = function() {}; chrome.fakeApi.Qux.prototype.stop = function() {}; +/** + * @type {string} + * @see https://developer.chrome.com/extensions/fakeApi#type-lastError + */ +chrome.fakeApi.lastError; + /** * Does something exciting! And what's more, this is a multiline function * comment! It goes onto multiple lines! * @param {!chrome.fakeApi.Baz} baz The baz to use. - * @param {function():void} callback + * @param {function(): void} callback * @see https://developer.chrome.com/extensions/fakeApi#method-doSomething */ chrome.fakeApi.doSomething = function(baz, callback) {}; /** - * @param {function(!chrome.fakeApi.Baz, !chrome.fakeApi.Greek):void=} callback + * @param {function(!chrome.fakeApi.Baz, !chrome.fakeApi.Greek): void=} callback * The callback which will most assuredly in all cases be called; that is, * of course, iff such a callback was provided and is not at all null. * @see https://developer.chrome.com/extensions/fakeApi#method-bazGreek @@ -209,11 +236,40 @@ chrome.fakeApi.bazGreek = function(callback) {}; chrome.fakeApi.returnString = function() {}; /** - * @param {function((!chrome.fakeApi.Qux|undefined)):void=} callback + * @param {SomeType} obj + * @see https://developer.chrome.com/extensions/fakeApi#method-instanceOfObjectParam + */ +chrome.fakeApi.instanceOfObjectParam = function(obj) {}; + +/** + * @param {function((!chrome.fakeApi.Qux|undefined)): void=} callback * @see https://developer.chrome.com/extensions/fakeApi#method-optionalParam */ chrome.fakeApi.optionalParam = function(callback) {}; +/** + * @param {string} string + * @param {?number|undefined} num + * @param {Object} obj + * @param {SomeType} someType + * @param {?SomeType|undefined} optionalSomeType + * @param {?boolean|undefined} bool + * @param {?chrome.fakeApi.Baz|undefined} baz + * @param {function(): void} callback + * @see https://developer.chrome.com/extensions/fakeApi#method-nonFinalOptionalParams + */ +chrome.fakeApi.nonFinalOptionalParams = function(string, num, obj, someType, optionalSomeType, bool, baz, callback) {}; + +/** + * @param {string=} param1 + * @param {string=} param2 + * @param {Object=} obj + * @param {SomeType=} optionalSomeType + * @param {function(): void=} callback + * @see https://developer.chrome.com/extensions/fakeApi#method-multipleOptionalParams + */ +chrome.fakeApi.multipleOptionalParams = function(param1, param2, obj, optionalSomeType, callback) {}; + /** * Fired when we realize it's a trap! * @type {!ChromeEvent} @@ -261,9 +317,7 @@ fake_private_idl_expected = """// Copyright %s The Chromium Authors. All rights /** @fileoverview Externs generated from namespace: fakeApiPrivate */ -/** - * @const - */ +/** @const */ chrome.fakeApiPrivate = {}; /** @@ -310,6 +364,12 @@ fake_json = """// Copyright 2014 The Chromium Authors. All rights reserved. "additionalProperties": {"type": "string"} } ], + "properties": { + "lastError": { + "type": "string", + "description": "The lastError." + } + }, "functions": [ { "name": "funcWithInlineObj", "type": "function", @@ -383,9 +443,7 @@ fake_json_expected = """// Copyright %s The Chromium Authors. All rights reserve /** @fileoverview Externs generated from namespace: fakeJson */ -/** - * @const - */ +/** @const */ chrome.fakeJson = {}; /** @@ -405,6 +463,13 @@ chrome.fakeJson.CrazyEnum = { */ chrome.fakeJson.CrazyObject; +/** + * The lastError. + * @type {string} + * @see https://developer.chrome.com/extensions/fakeJson#type-lastError + */ +chrome.fakeJson.lastError; + /** * @param {{ * foo: (boolean|undefined), @@ -417,7 +482,7 @@ chrome.fakeJson.CrazyObject; * description that causes problems! * @param {function({ * str: string - * }):void} callback The callback to this heinous method + * }): void} callback The callback to this heinous method * @return {{ * str: string, * int: number diff --git a/chromium/tools/json_schema_compiler/js_interface_generator_test.py b/chromium/tools/json_schema_compiler/js_interface_generator_test.py index 19034b909f7..a108bf5669a 100755 --- a/chromium/tools/json_schema_compiler/js_interface_generator_test.py +++ b/chromium/tools/json_schema_compiler/js_interface_generator_test.py @@ -89,13 +89,13 @@ FakeApi.prototype = { * Does something exciting! And what's more, this is a multiline function * comment! It goes onto multiple lines! * @param {!chrome.fakeApi.Baz} baz The baz to use. - * @param {function():void} callback + * @param {function(): void} callback * @see https://developer.chrome.com/extensions/fakeApi#method-doSomething */ doSomething: function(baz, callback) {}, /** - * @param {function(!chrome.fakeApi.Baz, !chrome.fakeApi.Greek):void=} + * @param {function(!chrome.fakeApi.Baz, !chrome.fakeApi.Greek): void=} * callback The callback which will most assuredly in all cases be called; * that is, of course, iff such a callback was provided and is not at all * null. diff --git a/chromium/tools/json_schema_compiler/js_util.py b/chromium/tools/json_schema_compiler/js_util.py index 5a23c862fef..a6c72a67e39 100644 --- a/chromium/tools/json_schema_compiler/js_util.py +++ b/chromium/tools/json_schema_compiler/js_util.py @@ -35,7 +35,8 @@ class JsUtil(object): """Given an OrderedDict of properties, returns a Code containing the description of an object. """ - if not properties: return + if not properties: + return c.Sblock('{', new_line=new_line) first = True @@ -77,10 +78,26 @@ class JsUtil(object): c.Comment(' %s' % description, comment_prefix='', wrap_indent=4, new_line=False) - for param in function.params: - append_field(c, 'param', - self._TypeToJsType(namespace_name, param.type_), - param.name, param.optional, param.description) + for i, param in enumerate(function.params): + # Mark the parameter as optional, *only if* all following parameters are + # also optional, to avoid JSC_OPTIONAL_ARG_AT_END errors thrown by Closure + # Compiler. + optional = (all(p.optional for p in function.params[i:]) + and (function.callback is None or function.callback.optional)) + js_type = self._TypeToJsType(namespace_name, param.type_) + + # If the parameter was originally optional, but was followed by + # non-optional parameters, allow it to be `null` or `undefined` instead. + if not optional and param.optional: + js_type_string = js_type.Render() + + # Remove the leading "!" from |js_type_string| if it exists, since "?!" + # is not a valid type modifier. + if js_type_string.startswith('!'): + js_type_string = js_type_string[1:] + js_type = Code().Append('?%s|undefined' % js_type_string) + + append_field(c, 'param', js_type, param.name, optional, param.description) if function.callback: append_field(c, 'param', @@ -127,7 +144,7 @@ class JsUtil(object): c.Concat(t, new_line = False) if i is not len(function.params) - 1: c.Append(', ', new_line=False, strip_right=False) - c.Append('):', new_line=False) + c.Append('): ', new_line=False, strip_right=False) if function.returns: c.Concat(self._TypeToJsType(namespace_name, function.returns), @@ -146,6 +163,8 @@ class JsUtil(object): c = Code() self.AppendObjectDefinition(c, namespace_name, js_type.properties) return c + if js_type.instance_of: + return Code().Append(js_type.instance_of) return Code().Append('Object') if js_type.property_type is PropertyType.ARRAY: return (Code().Append('!Array<'). diff --git a/chromium/tools/licenses.py b/chromium/tools/licenses.py index feeaf77aaec..fb1762f5cf0 100755 --- a/chromium/tools/licenses.py +++ b/chromium/tools/licenses.py @@ -113,10 +113,18 @@ PRUNE_DIRS = (VCS_METADATA_DIRS + # that contain multiple others as transitive dependencies. ADDITIONAL_PATHS_FILENAME = 'additional_readme_paths.json' +# A list of paths that contain license information but that would otherwise +# not be included. Possible reasons include: +# - Third party directories in //clank which are considered to be Google-owned +# - Directories that are directly checked out from upstream, and thus +# don't have a README.chromium +# - Directories that contain example code, or build tooling. +# - Nested third_party code inside other third_party libraries. ADDITIONAL_PATHS = ( os.path.join('chrome', 'common', 'extensions', 'docs', 'examples'), os.path.join('chrome', 'test', 'chromeos', 'autotest'), os.path.join('chrome', 'test', 'data'), + os.path.join('clank', 'third_party', 'elements'), os.path.join('native_client'), os.path.join('testing', 'gmock'), os.path.join('testing', 'gtest'), @@ -464,6 +472,16 @@ def FilterDirsWithFiles(dirs_list, root): return [x for x in dirs_list if ContainsFiles(x, root)] +def ProcessAdditionalReadmePathsJson(dirname, third_party_dirs): + """For a given directory, process the additional readme paths, and add to + third_party_dirs.""" + additional_paths_file = os.path.join(dirname, ADDITIONAL_PATHS_FILENAME) + if os.path.exists(additional_paths_file): + with open(additional_paths_file) as paths_file: + extra_paths = json.load(paths_file) + third_party_dirs.update([os.path.join(dirname, p) for p in extra_paths]) + + def FindThirdPartyDirs(prune_paths, root): """Find all third_party directories underneath the source root.""" third_party_dirs = set() @@ -485,15 +503,11 @@ def FindThirdPartyDirs(prune_paths, root): # Add all subdirectories that are not marked for skipping. for dir in dirs: dirpath = os.path.join(path, dir) - additional_paths_file = os.path.join(root, dirpath, - ADDITIONAL_PATHS_FILENAME) if dirpath not in prune_paths: third_party_dirs.add(dirpath) - if os.path.exists(additional_paths_file): - with open(additional_paths_file) as paths_file: - extra_paths = json.load(paths_file) - third_party_dirs.update( - [os.path.join(dirpath, p) for p in extra_paths]) + + additional_paths_dir = os.path.join(root, dirpath) + ProcessAdditionalReadmePathsJson(additional_paths_dir, third_party_dirs) # Don't recurse into any subdirs from here. dirs[:] = [] @@ -507,6 +521,8 @@ def FindThirdPartyDirs(prune_paths, root): for dir in ADDITIONAL_PATHS: if dir not in prune_paths: third_party_dirs.add(dir) + additional_paths_dir = os.path.join(root, dir) + ProcessAdditionalReadmePathsJson(additional_paths_dir, third_party_dirs) return third_party_dirs @@ -664,6 +680,7 @@ def GenerateCredits( entries.append( MetadataToTemplateEntry(chromium_license_metadata, entry_template)) + entries_by_name = {} for path in third_party_dirs: try: metadata = ParseDir(path, _REPOSITORY_ROOT) @@ -680,7 +697,15 @@ def GenerateCredits( # updated to provide --gn-target to this script. if path in KNOWN_NON_IOS_LIBRARIES: continue - entries.append(MetadataToTemplateEntry(metadata, entry_template)) + + new_entry = MetadataToTemplateEntry(metadata, entry_template) + # Skip entries that we've already seen (it exists in multiple directories). + prev_entry = entries_by_name.setdefault(new_entry['name'], new_entry) + if prev_entry is not new_entry and ( + prev_entry['content'] == new_entry['content']): + continue + + entries.append(new_entry) entries.sort(key=lambda entry: (entry['name'].lower(), entry['content'])) for entry_id, entry in enumerate(entries): @@ -750,11 +775,11 @@ def GenerateLicenseFile(output_file, gn_out_dir, gn_target, target_os): # Add necessary third_party. for directory in sorted(third_party_dirs): metadata = ParseDir(directory, _REPOSITORY_ROOT, require_license_file=True) - content.append('-' * 20) - content.append(directory.split(os.sep)[-1]) - content.append('-' * 20) license_file = metadata['License File'] if license_file and license_file != NOT_SHIPPED: + content.append('-' * 20) + content.append(directory.split(os.sep)[-1]) + content.append('-' * 20) content.append(_ReadFile(license_file)) content_text = '\n'.join(content) diff --git a/chromium/tools/mb/mb.py b/chromium/tools/mb/mb.py index ca28ed00d19..f79ff0bf0fd 100755 --- a/chromium/tools/mb/mb.py +++ b/chromium/tools/mb/mb.py @@ -27,10 +27,12 @@ import sys import subprocess import tempfile import traceback -import urllib2 import zipfile -from collections import OrderedDict +if sys.version_info.major == 2: + from urllib2 import urlopen +else: + from urllib.request import urlopen CHROMIUM_SRC_DIR = os.path.dirname(os.path.dirname(os.path.dirname( os.path.abspath(__file__)))) @@ -549,55 +551,6 @@ class MetaBuildWrapper(object): if zip_dir: self.RemoveDirectory(zip_dir) - def _AddBaseSoftware(self, cmd): - # HACK(iannucci): These packages SHOULD NOT BE HERE. - # Remove method once Swarming Pool Task Templates are implemented. - # crbug.com/812428 - - # Read vpython version from pinned depot_tools manifest. Better than - # duplicating the pin here. The pin file format is simple enough to parse - # it inline here. - manifest_path = self.PathJoin(self.chromium_src_dir, 'third_party', - 'depot_tools', 'cipd_manifest.txt') - vpython_pkg = vpython_version = None - for line in self.ReadFile(manifest_path).splitlines(): - # lines look like: - # name/of/package version - if 'vpython' in line and 'git_revision' in line: - vpython_pkg, vpython_version = line.split() - break - if vpython_pkg is None: - raise ValueError('unable to read vpython pin from %s' % (manifest_path, )) - - # Add in required base software. This should be kept in sync with the - # `chromium_swarming` recipe module in build.git. All references to - # `swarming_module` below are purely due to this. - cipd_packages = [ - ('infra/python/cpython/${platform}', - 'version:2.7.15.chromium14'), - ('infra/tools/luci/logdog/butler/${platform}', - 'git_revision:e1abc57be62d198b5c2f487bfb2fa2d2eb0e867c'), - ] - cipd_packages.append((vpython_pkg, vpython_version)) - cipd_packages.append((vpython_pkg.replace('vpython', 'vpython-native'), - vpython_version)) - - for pkg, vers in cipd_packages: - cmd.append('--cipd-package=.swarming_module:%s:%s' % (pkg, vers)) - - # Add packages to $PATH - cmd.extend([ - '--env-prefix=PATH', '.swarming_module', - '--env-prefix=PATH', '.swarming_module/bin', - ]) - - # Add cache directives for vpython. - vpython_cache_path = '.swarming_module_cache/vpython' - cmd.extend([ - '--named-cache=swarming_module_cache_vpython', vpython_cache_path, - '--env-prefix=VPYTHON_VIRTUALENV_ROOT', vpython_cache_path, - ]) - def _RunUnderSwarming(self, build_dir, target): isolate_server = 'isolateserver.appspot.com' namespace = 'default-gzip' @@ -609,11 +562,8 @@ class MetaBuildWrapper(object): # # TODO(dpranke): Also, add support for sharding and merging results. dimensions = [] - swarming_pool = '' for k, v in self._DefaultDimensions() + self.args.dimensions: dimensions += ['-d', k, v] - if k == 'pool': - swarming_pool = v archive_json_path = self.ToSrcRelPath( '%s/%s.archive.json' % (build_dir, target)) @@ -677,10 +627,6 @@ class MetaBuildWrapper(object): '-S', swarming_server, '--tags=purpose:user-debug-mb', ] + dimensions - # TODO(crbug.com/812428): Remove this once all pools have migrated to task - # templates. - if not swarming_pool.endswith('.template'): - self._AddBaseSoftware(cmd) if self.args.extra_args: cmd += ['--'] + self.args.extra_args self.Print('') @@ -1171,7 +1117,7 @@ class MetaBuildWrapper(object): rpaths = [ target + '.runtime_deps', stamp_runtime_deps] - elif (target_type == 'script' or target_type == 'windowed_script' + elif (target_type == 'script' or isolate_map[target].get('label_type') == 'group'): # For script targets, the build target is usually a group, # for which gn generates the runtime_deps next to the stamp file @@ -1276,11 +1222,11 @@ class MetaBuildWrapper(object): 'chromevox_test_data/', 'gen/ui/file_manager/file_manager/', 'resources/chromeos/', - 'resources/chromeos/accessibility/autoclick/', + 'resources/chromeos/accessibility/accessibility_common/', 'resources/chromeos/accessibility/chromevox/', 'resources/chromeos/accessibility/select_to_speak/', 'test_data/chrome/browser/resources/chromeos/accessibility/' - 'autoclick/', + 'accessibility_common/', 'test_data/chrome/browser/resources/chromeos/accessibility/' 'chromevox/', 'test_data/chrome/browser/resources/chromeos/accessibility/' @@ -1446,12 +1392,12 @@ class MetaBuildWrapper(object): is_mac = self.platform == 'darwin' is_win = self.platform == 'win32' or 'target_os="win"' in vals['gn_args'] - # This should be true if tests with type='windowed_test_launcher' or - # type='windowed_script' are expected to run using xvfb. For example, - # Linux Desktop, X11 CrOS and Ozone CrOS builds on Linux (xvfb is not used - # on CrOS HW or VMs). Note that one Ozone build can be used to run - # different backends. Currently, tests are executed for the headless and - # X11 backends and both can run under Xvfb on Linux. + # This should be true if tests with type='windowed_test_launcher' are + # expected to run using xvfb. For example, Linux Desktop, X11 CrOS and + # Ozone CrOS builds on Linux (xvfb is not used on CrOS HW or VMs). Note + # that one Ozone build can be used to run different backends. Currently, + # tests are executed for the headless and X11 backends and both can run + # under Xvfb on Linux. # TODO(tonikitoo,msisov,fwang): Find a way to run tests for the Wayland # backend. use_xvfb = (self.platform == 'linux2' and not is_android and not is_fuchsia @@ -1507,7 +1453,7 @@ class MetaBuildWrapper(object): # mimicking what generated_script would do script = 'bin/run_{}'.format(target) cmdline += ['../../testing/test_env.py', script] - elif is_android and test_type not in ('script', 'windowed_script'): + elif is_android and test_type != 'script': if asan: cmdline += [os.path.join('bin', 'run_with_asan'), '--'] cmdline += [ @@ -1518,14 +1464,14 @@ class MetaBuildWrapper(object): '--store-tombstones'] if clang_coverage or java_coverage: cmdline += ['--coverage-dir', '${ISOLATED_OUTDIR}'] - elif is_fuchsia and test_type not in ('script', 'windowed_script'): + elif is_fuchsia and test_type != 'script': cmdline += [ '../../testing/test_env.py', os.path.join('bin', 'run_%s' % target), '--test-launcher-bot-mode', '--system-log-file', '${ISOLATED_OUTDIR}/system_log' ] - elif is_cros_device and test_type not in ('script', 'windowed_script'): + elif is_cros_device and test_type != 'script': cmdline += [ '../../testing/test_env.py', os.path.join('bin', 'run_%s' % target), @@ -1561,17 +1507,11 @@ class MetaBuildWrapper(object): '--tsan=%d' % tsan, '--cfi-diag=%d' % cfi_diag, ] - elif use_xvfb and test_type == 'windowed_script': - extra_files.append('../../testing/xvfb.py') - cmdline += [ - '../../testing/xvfb.py', - '../../' + self.ToSrcRelPath(isolate_map[target]['script']) - ] - elif test_type in ('script', 'windowed_script'): + elif test_type == 'script': # If we're testing a CrOS simplechrome build, assume we need to prepare a # DUT for testing. So prepend the command to run with the test wrapper. if is_cros_device: - cmdline = [ + cmdline += [ os.path.join('bin', 'cros_test_wrapper'), '--logs-dir=${ISOLATED_OUTDIR}', ] @@ -1853,7 +1793,7 @@ class MetaBuildWrapper(object): def Fetch(self, url): # This function largely exists so it can be overridden for testing. - f = urllib2.urlopen(url) + f = urlopen(url) contents = f.read() f.close() return contents @@ -1861,7 +1801,7 @@ class MetaBuildWrapper(object): def MaybeMakeDirectory(self, path): try: os.makedirs(path) - except OSError, e: + except OSError as e: if e.errno != errno.EEXIST: raise diff --git a/chromium/tools/mb/mb_config.pyl b/chromium/tools/mb/mb_config.pyl index 74762ed561a..f7f300daaa5 100644 --- a/chromium/tools/mb/mb_config.pyl +++ b/chromium/tools/mb/mb_config.pyl @@ -20,6 +20,7 @@ 'chromeos-betty-pi-arc-cfi-thin-lto-chrome': 'chromeos_betty-pi-arc_cfi_thin_lto_official', 'chromeos-betty-pi-arc-chrome': 'chromeos_betty-pi-arc_include_unwind_tables_official', 'chromeos-eve-chrome': 'chromeos_eve_include_unwind_tables_official', + 'chromeos-eve-arc-r-chrome': 'chromeos_eve-arc-r_include_unwind_tables_official', 'chromeos-kevin-chrome': 'chromeos_kevin_include_unwind_tables_official', # Don't include unwind tables for the remaining three builders since # they monitor binary size growth, which may be affected by the tables. @@ -55,8 +56,11 @@ 'chromium': { 'android-archive-rel': 'android_without_codecs_release_bot_minimal_symbols', 'android-archive-dbg': 'android_without_codecs_debug_bot', + 'android-official': 'android_official_optimize_goma', + 'fuchsia-official': 'fuchsia_official_optimize_goma', 'linux-archive-rel': 'release_bot', 'linux-archive-dbg': 'debug_bot', + 'linux-official': 'official_optimize_goma', 'mac-archive-rel': 'release_bot_mac_strip_minimal_symbols', 'mac-archive-dbg': 'debug_bot', 'win32-archive-rel': 'release_bot_x86_minimal_symbols_enable_archive_compression', @@ -76,6 +80,7 @@ 'Deterministic Android (dbg)': 'android_debug_bot', 'android-arm64-proguard-rel': 'android_release_bot_minimal_symbols_arm64_webview_google', + 'android-binary-size-generator': 'android_binary_size', 'android-cronet-arm-dbg': 'android_cronet_debug_static_bot_arm_no_neon', 'android-cronet-arm-rel': 'android_cronet_release_bot_minimal_symbols_arm_no_neon', 'android-cronet-arm64-dbg': 'android_cronet_debug_static_bot_arm64', @@ -91,6 +96,8 @@ # on the chromium.gpu waterfall, which it mirrors via trybots.pyl. 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild', + 'android-marshmallow-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting_webview_google', + 'android-nougat-arm64-rel': 'android_release_bot_minimal_symbols_arm64_fastbuild_webview_google', 'android-pie-arm64-rel': 'android_release_bot_minimal_symbols_arm64_webview_google', 'android-pie-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google', 'android-10-arm64-rel': 'android_release_bot_minimal_symbols_arm64_fastbuild_webview_google', @@ -100,7 +107,7 @@ 'Android WebLayer P FYI (rel)': 'android_release_bot_minimal_symbols_arm64', 'Android WebView P Blink-CORS FYI (rel)': 'android_release_bot_minimal_symbols_arm64_webview_google', 'Android WebView P FYI (rel)': 'android_release_bot_minimal_symbols_arm64_webview_google', - 'android-marshmallow-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting', + 'android-marshmallow-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting_webview_google', 'android-bfcache-rel': 'android_release_bot_minimal_symbols', 'android-weblayer-pie-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google', }, @@ -183,6 +190,8 @@ 'Dawn Win10 x64 Builder': 'dawn_tests_release_trybot', 'Dawn Win10 x86 DEPS Builder': 'dawn_tests_release_trybot_x86', 'Dawn Win10 x64 DEPS Builder': 'dawn_tests_release_trybot', + + 'Dawn Win10 x64 ASAN Release': 'dawn_tests_asan_release_trybot', }, 'chromium.devtools-frontend': { @@ -252,14 +261,15 @@ 'android-code-coverage-native': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_native_coverage', 'android-mojo-webview-rel': 'android_release_bot_minimal_symbols_arm64', 'chromeos-amd64-generic-lacros-rel': 'chromeos_amd64-generic_lacros_rel', - 'chromeos-amd64-generic-rel-vm-tests': 'chromeos_amd64-generic_dcheck_always_on', - 'chromeos-kevin-rel-hw-tests': 'chromeos_kevin', 'fuchsia-fyi-arm64-rel': 'release_bot_fuchsia_arm64', 'fuchsia-fyi-x64-dbg': 'debug_bot_fuchsia', 'fuchsia-fyi-x64-rel': 'release_bot_fuchsia', 'ios13-beta-simulator': 'ios_simulator_debug_static_bot', 'ios13-sdk-device': 'ios_device_release_static_rbe_bot', 'ios13-sdk-simulator': 'ios_simulator_debug_static_rbe_bot', + 'ios14-beta-simulator': 'ios_simulator_debug_static_bot', + 'ios14-sdk-simulator': 'ios_simulator_debug_static_rbe_bot', + 'ios-asan': 'ios_simulator_release_static_asan_bot', 'ios-simulator': 'ios_error', 'ios-simulator-code-coverage': 'clang_code_coverage_ios', 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot', @@ -267,29 +277,24 @@ 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window', 'ios-webkit-tot': 'ios_simulator_debug_static_rbe_bot', 'linux-annotator-rel': 'release_bot', - 'linux-autofill-captured-sites-rel': 'release_bot', 'linux-bfcache-rel': 'release_bot', 'linux-blink-animation-use-time-delta': 'debug_bot_enable_blink_animation_use_time_delta', - 'linux-blink-cors-rel': 'release_bot_minimal_symbols', 'linux-blink-heap-concurrent-marking-tsan-rel': 'release_trybot_tsan', 'linux-blink-heap-verification': 'release_bot_enable_blink_heap_verification_dcheck_always_on', 'linux-chromeos-code-coverage': 'chromeos_with_codecs_release_bot_coverage', 'linux-chromium-tests-staging-builder': 'release_bot', 'linux-code-coverage': 'clang_code_coverage', 'linux-fieldtrial-rel': 'release_bot_minimal_symbols', - 'linux-password-manager-captured-sites-rel': 'release_bot', 'linux-perfetto-rel': 'perfetto_release_bot', 'linux-upload-perfetto': 'release_bot', 'linux-wpt-fyi-rel': 'release_bot_minimal_symbols', - 'mac-autofill-captured-sites-rel': 'release_bot', + 'mac-arm64': 'mac_arm64_release_bot', 'mac-code-coverage': 'clang_code_coverage', 'mac-hermetic-upgrade-rel': 'release_bot', 'mac-mojo-rel': 'release_trybot', 'mac-upload-perfetto': 'release_bot', 'win-annotator-rel': 'release_bot', - 'win-autofill-captured-sites-rel': 'release_bot', 'win-celab-builder-rel': 'release_bot_minimal_symbols', - 'win-password-manager-captured-sites-rel': 'release_bot', 'win-pixel-builder-rel': 'release_bot', 'win-upload-perfetto': 'release_bot', 'win10-code-coverage': 'clang_code_coverage', @@ -304,17 +309,17 @@ 'Linux Builder Goma RBE Canary': 'gpu_tests_release_bot', 'Linux Builder Goma RBE Latest Client': 'gpu_tests_release_bot', - 'Win Builder (dbg) Goma Canary': 'gpu_tests_debug_bot_x86', - 'Win Builder (dbg) Goma Latest Client': 'gpu_tests_debug_bot_x86', - 'Win Builder (dbg) Goma RBE Latest Client': 'gpu_tests_debug_bot_x86', + 'Win Builder (dbg) Goma Canary': 'gpu_tests_debug_bot_x86_no_symbols', + 'Win Builder (dbg) Goma Latest Client': 'gpu_tests_debug_bot_x86_no_symbols', + 'Win Builder (dbg) Goma RBE Latest Client': 'gpu_tests_debug_bot_x86_no_symbols', 'Win Builder Goma Canary': 'gpu_tests_release_bot_x86_minimal_symbols', 'Win Builder Goma Latest Client': 'gpu_tests_release_bot_x86_minimal_symbols', 'Win Builder Goma RBE Latest Client': 'gpu_tests_release_bot_x86_minimal_symbols', 'win32-archive-rel-goma-canary-localoutputcache': 'release_bot_x86_minimal_symbols_enable_archive_compression', 'win32-archive-rel-goma-latest-localoutputcache': 'release_bot_x86_minimal_symbols_enable_archive_compression', - 'Win7 Builder (dbg) Goma Canary': 'gpu_tests_debug_bot_x86', - 'Win7 Builder (dbg) Goma Latest Client': 'gpu_tests_debug_bot_x86', + 'Win7 Builder (dbg) Goma Canary': 'gpu_tests_debug_bot_x86_no_symbols', + 'Win7 Builder (dbg) Goma Latest Client': 'gpu_tests_debug_bot_x86_no_symbols', 'Win7 Builder Goma Canary': 'gpu_tests_release_bot_x86_minimal_symbols', 'Win7 Builder Goma Latest Client': 'gpu_tests_release_bot_x86_minimal_symbols', @@ -414,8 +419,8 @@ 'Android FYI 64 dEQP Vk Release (Pixel 2)': 'angle_deqp_android_vulkan_ndk_release_trybot_arm64', 'Android FYI SkiaRenderer GL (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64', 'Android FYI SkiaRenderer Vulkan (Pixel 2)': 'gpu_tests_android_release_trybot', - 'ChromeOS FYI Release (amd64-generic)': 'gpu_fyi_tests_chromeos_amd64_release_trybot_dcheck_off', - 'ChromeOS FYI Release (kevin)': 'gpu_fyi_tests_chromeos_kevin_release_trybot_dcheck_off', + 'ChromeOS FYI Release (amd64-generic)': 'gpu_tests_chromeos_amd64_release_trybot_dcheck_off_no_symbols', + 'ChromeOS FYI Release (kevin)': 'gpu_tests_chromeos_kevin_release_trybot_dcheck_off_no_symbols', 'GPU FYI Linux Builder': 'gpu_fyi_tests_release_trybot', 'GPU FYI Linux Ozone Builder': 'angle_ozone_linux_system_gbm_libdrm_release_trybot', 'GPU FYI Linux Builder (dbg)': 'gpu_fyi_tests_debug_trybot', @@ -463,11 +468,11 @@ 'Linux Builder (dbg)': 'gpu_tests_debug_bot', 'Linux Builder (dbg)(32)': 'gpu_tests_debug_bot_x86', 'Linux Builder': 'gpu_tests_release_bot', - # TODO(falken): switch to a non-trybot config. - 'Network Service Linux': 'release_trybot', + 'Network Service Linux': 'release_bot', 'fuchsia-arm64-cast': 'release_bot_fuchsia_arm64_cast', 'fuchsia-x64-cast': 'release_bot_fuchsia_cast', 'fuchsia-x64-dbg': 'debug_bot_fuchsia_compile_only', + 'linux-blink-cors-rel': 'release_bot_blink_minimal_symbols', 'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11', 'linux-ozone-rel': 'ozone_linux_release_bot', 'linux-trusty-rel': 'gpu_tests_release_bot', @@ -479,6 +484,7 @@ 'ios-device': 'ios_device_release_rbe_compile_only', 'ios-simulator': 'ios_simulator_debug_static_rbe_bot', 'ios-simulator-full-configs': 'ios_simulator_debug_static_bot', + 'ios-simulator-noncq': 'ios_simulator_debug_static_rbe_bot', 'WebKit Mac10.13 (retina)': 'release_bot', }, @@ -491,9 +497,9 @@ 'Linux MSan Builder': 'msan_release_bot', 'Linux TSan Builder': 'tsan_disable_nacl_release_bot', 'Mac ASan 64 Builder': 'asan_minimal_symbols_disable_nacl_release_bot_dcheck_always_on', - 'WebKit Linux ASAN': 'asan_lsan_release_bot', - 'WebKit Linux Leak': 'release_bot', - 'WebKit Linux MSAN': 'msan_release_bot', + 'WebKit Linux ASAN': 'asan_lsan_release_bot_blink', + 'WebKit Linux Leak': 'release_bot_blink', + 'WebKit Linux MSAN': 'msan_release_bot_blink', 'android-asan': 'android_clang_asan_release_bot', 'win-asan': 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release', }, @@ -549,6 +555,7 @@ # This should be the same with 'Win x64 Builder'. 'win-rel-swarming': 'gpu_tests_release_bot_minimal_symbols', + 'win-rel-swarming-staging': 'gpu_tests_release_bot_minimal_symbols', }, 'client.nacl.sdk': { @@ -629,8 +636,8 @@ 'chromium.win': { # Windows bots take too long to link w/ full symbols and time out. - 'Win Builder': 'gpu_tests_release_bot_x86_minimal_symbols', - 'Win Builder (dbg)': 'gpu_tests_debug_bot_x86', + 'Win Builder': 'gpu_tests_release_bot_x86_no_symbols', + 'Win Builder (dbg)': 'gpu_tests_debug_bot_x86_no_symbols', 'Win x64 Builder': 'gpu_tests_release_bot_minimal_symbols', 'Win x64 Builder Code Coverage': 'gpu_tests_release_bot_minimal_symbols_code_coverage', 'Win x64 Builder (dbg)': 'gpu_tests_debug_bot', @@ -639,7 +646,12 @@ 'internal.chrome.fyi': { 'chromeos-amd64-generic-lacros-internal-rel': 'chromeos_amd64-generic_lacros_rel', + 'linux-autofill-captured-sites-rel': 'release_bot', + 'linux-password-manager-captured-sites-rel': 'release_bot', + 'mac-autofill-captured-sites-rel': 'release_bot', + 'win-autofill-captured-sites-rel': 'release_bot', 'win-celab-rel': 'official_celab_release_bot', + 'win-password-manager-captured-sites-rel': 'release_bot', }, 'internal.client.kitchensync': { @@ -656,22 +668,33 @@ 'gn-builder-win': 'release_bot_x86_minimal_symbols', }, + 'official.chrome.continuous': { + 'chromeos-amd64-generic-lacros-internal': 'chromeos_amd64-generic_lacros', + }, + 'tryserver.blink': { # Most tryservers should have '_trybot' in their config names, but # 'release_trybot' includes 'dcheck_always_on', and the blink # release trybots must *not* enable dchecks, because that could # cause them to produce different baselines than the release # waterfall bots, and run_web_tests.py can't handle that (by design). - 'linux-blink-rel': 'release_bot_minimal_symbols', - 'mac10.10-blink-rel': 'release_bot_minimal_symbols', - 'mac10.11-blink-rel': 'release_bot_minimal_symbols', - 'mac10.12-blink-rel': 'release_bot_minimal_symbols', - 'mac10.13-blink-rel': 'release_bot_minimal_symbols', - 'mac10.13_retina-blink-rel': 'release_bot_minimal_symbols', - 'mac10.14-blink-rel': 'release_bot_minimal_symbols', - 'mac10.15-blink-rel': 'release_bot_minimal_symbols_no_nacl', - 'win7-blink-rel': 'release_bot_x86_minimal_symbols', - 'win10-blink-rel': 'release_bot_x86_minimal_symbols', + 'linux-blink-rel': 'release_bot_blink_minimal_symbols', + 'linux-blink-optional-highdpi-rel': 'release_bot_blink_minimal_symbols', + 'mac10.10-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.11-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.12-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.13-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.13_retina-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.14-blink-rel': 'release_bot_blink_minimal_symbols', + 'mac10.15-blink-rel': 'release_bot_blink_minimal_symbols_no_nacl', + 'win7-blink-rel': 'release_bot_blink_x86_minimal_symbols', + 'win10-blink-rel': 'release_bot_blink_x86_minimal_symbols', + }, + + 'tryserver.chromium': { + 'android-official': 'android_official_optimize_goma_trybot', + 'fuchsia-official': 'fuchsia_official_optimize_goma_trybot', + 'linux-official': 'official_optimize_goma_trybot' }, 'tryserver.chromium.android': { @@ -683,7 +706,9 @@ 'android-cronet-arm-dbg': 'android_cronet_debug_static_bot_arm_no_neon', 'android-lollipop-arm-rel': 'android_release_trybot_fastbuild_webview_google', 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_fastbuild_java_coverage', - 'android-marshmallow-x86-fyi-rel': 'android_release_trybot_x86_fastbuild_resource_whitelisting', + 'android-marshmallow-x86-fyi-rel': 'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google', + 'android-marshmallow-x86-rel': 'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google', + 'android-nougat-arm64-rel': 'android_release_trybot_arm64_fastbuild_webview_google', 'android-oreo-arm64-cts-networkservice-dbg': 'android_debug_trybot_arm64', 'android-pie-arm64-coverage-rel': 'android_release_trybot_arm64_webview_google_native_coverage', 'android-pie-arm64-rel': 'android_release_trybot_arm64_webview_google_expectations', @@ -707,9 +732,6 @@ 'android_compile_x86_dbg': 'android_debug_trybot_compile_only_x86', 'android_coverage': 'android_debug_trybot_java_coverage', 'android_cronet': 'android_cronet_release_trybot_arm_no_neon', - - 'android_cronet_tester': 'android_cronet_debug_static_bot_arm_no_neon', - 'android_mojo': 'android_release_trybot_arm64', 'android_n5x_swarming_dbg': 'android_debug_trybot_arm64', 'android_optional_gpu_tests_rel': 'gpu_tests_android_release_trybot_arm64', @@ -763,6 +785,7 @@ 'chromeos-betty-chrome': 'chromeos_betty_include_unwind_tables_official', 'chromeos-betty-pi-arc-cfi-thin-lto-chrome': 'chromeos_betty-pi-arc_cfi_thin_lto_official', 'chromeos-betty-pi-arc-chrome': 'chromeos_betty-pi-arc_include_unwind_tables_official', + 'chromeos-eve-arc-r-chrome': 'chromeos_eve-arc-r_include_unwind_tables_official', 'chromeos-eve-chrome': 'chromeos_eve_include_unwind_tables_official', 'chromeos-eve-compile-chrome': 'chromeos_eve_include_unwind_tables_official', 'chromeos-kevin-chrome': 'chromeos_kevin_include_unwind_tables_official', @@ -791,8 +814,8 @@ 'chromeos-arm-generic-rel': 'chromeos_arm-generic_dcheck_always_on', 'chromeos-kevin-compile-rel': 'chromeos_kevin', 'chromeos-kevin-rel': 'chromeos_kevin', - 'gpu-fyi-try-chromeos-amd64-generic': 'gpu_fyi_tests_chromeos_amd64_release_trybot_dcheck_off', - 'gpu-fyi-try-chromeos-kevin': 'gpu_fyi_tests_chromeos_kevin_release_trybot_dcheck_off', + 'gpu-fyi-try-chromeos-amd64-generic': 'gpu_tests_chromeos_amd64_release_trybot_dcheck_off_no_symbols', + 'gpu-fyi-try-chromeos-kevin': 'gpu_tests_chromeos_kevin_release_trybot_dcheck_off_no_symbols', 'linux-chromeos-rel': 'chromeos_with_codecs_release_trybot_code_coverage', 'linux-chromeos-compile-dbg': 'chromeos_with_codecs_debug_bot', 'linux-chromeos-dbg': 'chromeos_with_codecs_debug_bot', @@ -806,6 +829,8 @@ 'linux-dawn-rel': 'dawn_tests_release_trybot', 'mac-dawn-rel': 'dawn_tests_release_trybot', 'win-dawn-rel': 'dawn_tests_release_trybot', + 'dawn-try-win10-x86-rel': 'dawn_tests_release_trybot_x86', + 'dawn-try-win10-x64-asan-rel': 'dawn_tests_asan_release_trybot', }, 'tryserver.chromium.linux': { @@ -876,7 +901,7 @@ # the CI configuration, where no debug builder exists. 'linux_chromium_ubsan_rel_ng': 'ubsan_vptr_release_bot', - 'linux_layout_tests_composite_after_paint': 'release_trybot', + 'linux_layout_tests_composite_after_paint': 'gpu_tests_release_trybot', 'linux_layout_tests_layout_ng_disabled': 'release_trybot', 'linux-layout-tests-edit-ng': 'release_trybot', 'linux-layout-tests-fragment-item': 'release_trybot', @@ -885,6 +910,7 @@ 'linux_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot', 'linux_upload_clang': 'release_bot', 'linux_vr': 'vr_release_trybot', + 'network_service_linux': 'release_trybot', }, 'tryserver.chromium.mac': { @@ -906,10 +932,12 @@ 'ios-device': 'ios_device_release_rbe_compile_only', 'ios13-beta-simulator': 'ios_simulator_debug_static_rbe_bot', 'ios13-sdk-simulator': 'ios_simulator_debug_static_rbe_bot', + 'ios14-beta-simulator': 'ios_simulator_debug_static_rbe_bot', + 'ios14-sdk-simulator': 'ios_simulator_debug_static_rbe_bot', 'ios-simulator': 'ios_simulator_debug_static_rbe_bot', 'ios-simulator-full-configs': 'ios_simulator_debug_static_bot', 'ios-simulator-cronet': 'ios_cronet', - 'ios-simulator-code-coverage': 'clang_code_coverage_ios', + 'ios-simulator-code-coverage': 'clang_code_coverage_ios_partial_instrumentation', 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot', 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window', 'mac-osxbeta-rel': 'gpu_tests_release_trybot_deterministic_mac', @@ -977,7 +1005,6 @@ 'gpu-fyi-try-win10-nvidia-skgl-64': 'gpu_fyi_tests_release_trybot', 'win10_chromium_x64_dbg_ng': 'gpu_tests_debug_bot', 'win10_chromium_x64_rel_ng': 'gpu_tests_release_trybot_resource_whitelisting_code_coverage', - 'win10_chromium_x64_coverage_rel_ng': 'gpu_tests_release_trybot_resource_whitelisting_code_coverage', 'win10_chromium_x64_rel_ng_exp': 'release_trybot', 'win-annotator-rel': 'release_trybot', 'win-asan': 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release', @@ -986,9 +1013,9 @@ 'win7-rel': 'gpu_tests_release_trybot_x86_resource_whitelisting', 'win_x64_archive': 'release_trybot', 'win_archive': 'release_trybot_x86', - 'win_chromium_compile_dbg_ng': 'gpu_tests_debug_trybot_x86_compile_only', + 'win_chromium_compile_dbg_ng': 'gpu_tests_debug_bot_x86_no_symbols', 'win_chromium_compile_rel_ng': 'gpu_tests_release_trybot_x86_resource_whitelisting', - 'win_chromium_dbg_ng': 'gpu_tests_debug_bot_x86', + 'win_chromium_dbg_ng': 'gpu_tests_debug_bot_x86_no_symbols', 'win_chromium_x64_rel_ng': 'gpu_tests_release_trybot', 'win_mojo': 'release_trybot_x86', 'win_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot', @@ -1008,7 +1035,7 @@ 'tryserver.webrtc': { 'win_chromium_compile': 'gpu_tests_release_trybot_resource_whitelisting', - 'win_chromium_compile_dbg': 'gpu_tests_debug_trybot_x86_compile_only', + 'win_chromium_compile_dbg': 'gpu_tests_debug_bot_x86_no_symbols', 'mac_chromium_compile': 'gpu_tests_release_trybot', 'linux_chromium_compile': 'release_trybot', 'linux_chromium_compile_dbg': 'debug_bot', @@ -1183,6 +1210,14 @@ 'android', 'incremental', 'debug_bot', ], + 'android_official_optimize_goma': [ + 'official_optimize_goma', 'android_without_codecs', + ], + + 'android_official_optimize_goma_trybot': [ + 'official_optimize_goma_trybot', 'android_without_codecs', + ], + 'android_release_bot_minimal_symbols': [ 'android', 'release_bot', 'minimal_symbols', 'strip_debug_info', ], @@ -1213,9 +1248,9 @@ 'strip_debug_info', 'android_fastbuild', 'webview_google', ], - 'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting': [ + 'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting_webview_google': [ 'android', 'release_bot', 'minimal_symbols', 'x86', - 'android_fastbuild', 'resource_whitelisting', + 'android_fastbuild', 'resource_whitelisting', 'webview_google', ], 'android_release_bot_minimal_symbols_x86_fastbuild_webview_google': [ @@ -1257,9 +1292,9 @@ 'android_no_proguard', 'webview_google', ], - 'android_release_trybot_x86_fastbuild_resource_whitelisting': [ + 'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google': [ 'android', 'release_trybot', 'x86', 'android_fastbuild', - 'resource_whitelisting', + 'resource_whitelisting', 'webview_google', ], 'android_release_trybot_x86_fastbuild_webview_google': [ @@ -1383,6 +1418,10 @@ 'asan', 'lsan', 'release_bot', ], + 'asan_lsan_release_bot_blink': [ + 'asan', 'lsan', 'release_bot_blink', + ], + 'asan_lsan_release_trybot': [ 'asan', 'lsan', 'release_trybot', ], @@ -1429,8 +1468,8 @@ 'chromeos_amd64-generic', 'cfi_full', 'thin_lto', ], - 'chromeos_amd64-generic_dcheck_always_on': [ - 'chromeos_amd64-generic', 'dcheck_always_on', + 'chromeos_amd64-generic_lacros': [ + 'amd64-generic', 'amd64-lacros', 'goma', 'official', ], 'chromeos_amd64-generic_lacros_rel': [ @@ -1480,6 +1519,10 @@ 'chromeos_device', 'betty-pi-arc', 'include_unwind_tables', 'official', ], + 'chromeos_eve-arc-r_include_unwind_tables_official': [ + 'chromeos_device', 'eve-arc-r', 'include_unwind_tables', 'official', + ], + 'chromeos_eve_include_unwind_tables_official': [ 'chromeos_device', 'eve', 'include_unwind_tables', 'official', ], @@ -1526,6 +1569,10 @@ 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe', ], + 'clang_code_coverage_ios_partial_instrumentation': [ + 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe', 'partial_code_coverage_instrumentation', + ], + 'clang_tot_asan_lsan_static_release': [ 'clang_tot', 'asan', 'lsan', 'static', 'release', ], @@ -1635,6 +1682,10 @@ 'codesearch', ], + 'dawn_tests_asan_release_trybot': [ + 'dawn_tests', 'asan', 'release_trybot', + ], + 'dawn_tests_release_trybot': [ 'dawn_tests', 'release_trybot', ], @@ -1675,6 +1726,14 @@ 'debug_bot', 'x86', 'no_com_init_hooks', 'chrome_with_codecs' ], + 'fuchsia_official_optimize_goma': [ + 'official_optimize_goma', 'fuchsia', + ], + + 'fuchsia_official_optimize_goma_trybot': [ + 'official_optimize_goma_trybot', 'fuchsia', + ], + 'gpu_fyi_tests_android_vulkan_ndk_release_trybot': [ 'gpu_fyi_android_tests', 'vulkan_ndk', 'release_trybot', 'static_angle', ], @@ -1689,14 +1748,6 @@ 'arm64', 'static_angle', ], - 'gpu_fyi_tests_chromeos_amd64_release_trybot_dcheck_off': [ - 'gpu_fyi_tests', 'chromeos_amd64-generic', 'release_trybot_dcheck_off', - ], - - 'gpu_fyi_tests_chromeos_kevin_release_trybot_dcheck_off': [ - 'gpu_fyi_tests', 'chromeos_kevin', 'release_trybot_dcheck_off', - ], - 'gpu_fyi_tests_debug_trybot': [ 'gpu_fyi_tests', 'debug_bot', ], @@ -1772,6 +1823,15 @@ 'use_java_coverage', 'partial_code_coverage_instrumentation', ], + 'gpu_tests_chromeos_amd64_release_trybot_dcheck_off_no_symbols': [ + 'gpu_tests', 'chromeos_amd64-generic', 'release_trybot_dcheck_off', + 'no_symbols', + ], + + 'gpu_tests_chromeos_kevin_release_trybot_dcheck_off_no_symbols': [ + 'gpu_tests', 'chromeos_kevin', 'release_trybot_dcheck_off', 'no_symbols', + ], + 'gpu_tests_debug_bot': [ 'gpu_tests', 'debug_bot', ], @@ -1780,8 +1840,8 @@ 'gpu_tests', 'debug_bot', 'x86', ], - 'gpu_tests_debug_trybot_x86_compile_only': [ - 'gpu_tests', 'debug_bot', 'x86', 'compile_only', + 'gpu_tests_debug_bot_x86_no_symbols': [ + 'gpu_tests', 'debug_bot', 'x86', 'no_symbols' ], 'gpu_tests_release_bot_minimal_symbols': [ @@ -1804,6 +1864,10 @@ 'gpu_tests', 'release_bot', 'x86', 'minimal_symbols', ], + 'gpu_tests_release_bot_x86_no_symbols': [ + 'gpu_tests', 'release_bot', 'x86', 'no_symbols', + ], + 'gpu_tests_release_trybot': [ 'gpu_tests', 'release_trybot', ], @@ -1878,7 +1942,7 @@ ], 'ios_clang_device_tot': [ - 'clang_tot', 'ios_device', 'release', + 'clang_tot', 'ios_device', 'release', 'ios_chromium_cert' ], 'ios_cronet': [ @@ -1887,11 +1951,11 @@ ], 'ios_device_release_compile_only': [ - 'compile_only', 'ios_device', 'ios_disable_code_signing', 'release_bot' + 'compile_only', 'ios_device', 'ios_google_cert', 'ios_disable_code_signing', 'release_bot' ], 'ios_device_release_rbe_compile_only': [ - 'compile_only', 'ios_device', 'ios_disable_code_signing', 'ios_use_goma_rbe', 'release_bot' + 'compile_only', 'ios_device', 'ios_google_cert', 'ios_disable_code_signing', 'ios_use_goma_rbe', 'release_bot' ], # doesn't have symbol_level=0 @@ -1911,6 +1975,10 @@ 'debug_static_bot', 'ios_simulator', 'ios_use_goma_rbe' ], + 'ios_simulator_release_static_asan_bot': [ + 'ios_simulator', 'release_bot', 'asan' + ], + 'libfuzzer_asan_debug_bot': [ 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'disable_seed_corpus', ], @@ -1982,10 +2050,11 @@ 'libfuzzer', 'asan', 'release_trybot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', ], - 'msan_release_bot': [ - 'msan', 'release_bot', + 'mac_arm64_release_bot': [ + 'release_bot', 'arm64', ], + 'msan_no_origins_release_bot': [ 'msan_no_origins', 'release_bot', ], @@ -1994,6 +2063,10 @@ 'msan', 'release_bot', ], + 'msan_release_bot_blink': [ + 'msan', 'release_bot_blink', + ], + 'official_celab_release_bot': [ 'official', 'release_bot', 'minimal_symbols', ], @@ -2007,7 +2080,7 @@ ], 'official_goma_mac_perf': [ - 'official', 'goma', 'no_keystone_registration_framework', 'minimal_symbols', + 'official', 'goma', 'no_keystone_registration_framework', 'full_symbols', ], 'official_goma_mac_pgo': [ @@ -2062,6 +2135,14 @@ 'official', 'goma', 'x86', 'static', 'no_symbols', 'pgo_phase_1', 'no_resource_whitelisting', ], + 'official_optimize_goma': [ + 'official_optimize_goma', + ], + + 'official_optimize_goma_trybot': [ + 'official_optimize_goma_trybot', + ], + 'ozone_linux_release_bot': [ 'ozone_linux', 'release_bot', ], @@ -2087,8 +2168,27 @@ 'release_bot', ], + 'release_bot_blink': [ + 'release_bot_blink', + ], + + 'release_bot_blink_minimal_symbols': [ + 'release_bot_blink', 'minimal_symbols', + ], + + 'release_bot_blink_minimal_symbols_no_nacl': [ + 'release_bot_blink', + 'minimal_symbols', + 'disable_nacl', + ], + + + 'release_bot_blink_x86_minimal_symbols': [ + 'release_bot_blink', 'x86', 'minimal_symbols', + ], + 'release_bot_enable_blink_heap_verification_dcheck_always_on': [ - 'release_bot', 'enable_blink_heap_verification', 'dcheck_always_on', + 'release_bot_blink', 'enable_blink_heap_verification', 'dcheck_always_on', ], 'release_bot_fuchsia': [ @@ -2115,6 +2215,10 @@ 'release_bot', 'mac_strip', 'minimal_symbols', 'mac_deterministic_build' ], + 'release_bot_minimal_symbols': [ + 'release_bot', 'minimal_symbols', + ], + 'release_bot_v8_debug': [ 'release_bot', 'v8_enable_debugging_features', ], @@ -2123,10 +2227,6 @@ 'release_bot', 'x86', ], - 'release_bot_minimal_symbols': [ - 'release_bot', 'minimal_symbols', - ], - 'release_bot_x86_minimal_symbols': [ 'release_bot', 'x86', 'minimal_symbols', ], @@ -2143,10 +2243,6 @@ 'release_bot', 'x86', 'minimal_symbols', 'no_com_init_hooks', 'chrome_with_codecs' ], - 'release_bot_minimal_symbols_no_nacl': [ - 'release_bot', 'minimal_symbols', 'disable_nacl', - ], - 'release_trybot': [ 'release_trybot', ], @@ -2156,7 +2252,7 @@ ], 'release_trybot_enable_blink_heap_verification': [ - 'release_trybot', 'enable_blink_heap_verification', + 'release_trybot_blink', 'enable_blink_heap_verification', ], 'release_trybot_fuchsia': [ @@ -2251,7 +2347,7 @@ }, 'amd64-lacros': { - 'gn_args': 'ozone_platform_wayland=true ozone_platform_x11=false target_os="linux" use_cras=false use_evdev_gestures=false use_vaapi=false use_gtk=false use_glib=false enable_linux_installer=false rtc_use_pipewire=false use_gio=false use_v8_context_snapshot=false use_custom_libcxx=false use_pulseaudio=false use_pangocairo=false chromeos_is_browser_only=true use_system_libsync=false cros_host_sysroot="//build/linux/debian_sid_amd64-sysroot" cros_v8_snapshot_sysroot="//build/linux/debian_sid_amd64-sysroot" use_custom_libcxx_for_host=true' + 'gn_args': 'use_ozone=true ozone_platform_wayland=true ozone_platform_x11=false target_os="linux" use_cras=false use_evdev_gestures=false use_vaapi=false use_gtk=false use_glib=false enable_linux_installer=false rtc_use_pipewire=false use_gio=false use_v8_context_snapshot=false use_custom_libcxx=false use_pulseaudio=false use_pangocairo=false chromeos_is_browser_only=true use_system_libsync=false cros_host_sysroot="//build/linux/debian_sid_amd64-sysroot" cros_v8_snapshot_sysroot="//build/linux/debian_sid_amd64-sysroot" use_custom_libcxx_for_host=true' }, # We build Android with codecs on most bots to ensure maximum test @@ -2492,6 +2588,10 @@ 'args_file': '//build/args/chromeos/eve.gni', }, + 'eve-arc-r': { + 'args_file': '//build/args/chromeos/eve-arc-r.gni', + }, + 'java_warnings_as_errors': { 'gn_args': ('java_warnings_as_errors=true'), }, @@ -2577,6 +2677,14 @@ 'gn_args': 'target_os="ios"', }, + 'ios_google_cert': { + 'gn_args': 'ios_code_signing_identity_description=\"Apple Development\"', + }, + + 'ios_chromium_cert': { + 'gn_args': 'ios_code_signing_identity_description=\"iPhone Developer\"', + }, + 'ios_deployment_target_9_0': { 'gn_args': 'ios_deployment_target=\"9.0\"', }, @@ -2675,6 +2783,14 @@ 'gn_args': 'is_official_build=true is_debug=false', }, + 'official_optimize_goma': { + 'mixins': ['official_optimize', 'goma'], + }, + + 'official_optimize_goma_trybot': { + 'mixins': ['official_optimize_goma', 'minimal_symbols', 'dcheck_always_on'], + }, + 'optimize_for_fuzzing': { 'gn_args': 'optimize_for_fuzzing=true', }, @@ -2725,6 +2841,12 @@ 'mixins': ['release', 'static', 'goma'], }, + # All bots that run the WPT test suite must have H.264 compiled in, + # in order to give consistent results for WebRTC codec-dependent tests. + 'release_bot_blink': { + 'mixins': ['release', 'static', 'goma', 'chrome_with_codecs'], + }, + 'release_java': { 'gn_args': 'is_java_debug=false', }, @@ -2733,6 +2855,10 @@ 'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'], }, + 'release_trybot_blink': { + 'mixins': ['release_bot_blink', 'minimal_symbols', 'dcheck_always_on'], + }, + 'release_trybot_dcheck_off': { 'mixins': ['release_trybot', 'dcheck_off',], }, diff --git a/chromium/tools/mb/mb_unittest.py b/chromium/tools/mb/mb_unittest.py index 6e8fe140440..60a74887ae5 100755 --- a/chromium/tools/mb/mb_unittest.py +++ b/chromium/tools/mb/mb_unittest.py @@ -11,10 +11,14 @@ from __future__ import absolute_import import json import os import re -import StringIO import sys import unittest +if sys.version_info.major == 2: + from StringIO import StringIO +else: + from io import StringIO + sys.path.insert( 0, os.path.abspath( @@ -385,7 +389,7 @@ class UnitTest(unittest.TestCase): self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) def test_analyze_handles_way_too_many_results(self): - too_many_files = ', '.join(['"//foo:foo%d"' % i for i in xrange(40 * 1024)]) + too_many_files = ', '.join(['"//foo:foo%d"' % i for i in range(40 * 1024)]) files = {'/tmp/in.json': '''{\ "files": ["foo/foo_unittest.cc"], "test_targets": ["foo_unittests"], @@ -439,9 +443,10 @@ class UnitTest(unittest.TestCase): self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_bot', '//out/Debug'], mbw=mbw, ret=0) - self.assertEqual( - mbw.files['/fake_src/out/Debug/args.gn'], - 'import("//build/args/bots/fake_master/fake_args_bot.gn")\n') + # TODO(https://crbug.com/1093038): This assert is inappropriately failing. + # self.assertEqual( + # mbw.files['/fake_src/out/Debug/args.gn'], + # 'import("//build/args/bots/fake_master/fake_args_bot.gn")\n') def test_gen_args_file_mixins(self): mbw = self.fake_mbw() @@ -764,7 +769,7 @@ class UnitTest(unittest.TestCase): def test_help(self): orig_stdout = sys.stdout try: - sys.stdout = StringIO.StringIO() + sys.stdout = StringIO() self.assertRaises(SystemExit, self.check, ['-h']) self.assertRaises(SystemExit, self.check, ['help']) self.assertRaises(SystemExit, self.check, ['help', 'gen']) diff --git a/chromium/tools/md_browser/OWNERS b/chromium/tools/md_browser/OWNERS index 5279ad8e7a5..453a875de04 100644 --- a/chromium/tools/md_browser/OWNERS +++ b/chromium/tools/md_browser/OWNERS @@ -1,5 +1,3 @@ dpranke@chromium.org +dpranke@google.com nodir@chromium.org - -# TEAM: infra-dev@chromium.org -# COMPONENT: Build diff --git a/chromium/tools/metrics/BUILD.gn b/chromium/tools/metrics/BUILD.gn index 2d277a178ab..e5a8e38bfbb 100644 --- a/chromium/tools/metrics/BUILD.gn +++ b/chromium/tools/metrics/BUILD.gn @@ -7,6 +7,7 @@ action("histograms_xml") { sources = [ "histograms/enums.xml", "histograms/histograms.xml", + "ukm/ukm.xml", ] output = "$root_out_dir/histograms.xml" outputs = [ output ] @@ -85,6 +86,9 @@ group("metrics_python_tests") { "//tools/metrics/common/pretty_print_xml.py", "//tools/metrics/common/etree_util.py", + "//tools/metrics/histograms/test_data/enums.xml", + "//tools/metrics/histograms/test_data/histograms.xml", + "//tools/metrics/histograms/test_data/ukm.xml", "//tools/metrics/histograms/enums.xml", "//tools/metrics/histograms/expand_owners.py", "//tools/metrics/histograms/expand_owners_unittest.py", @@ -96,6 +100,8 @@ group("metrics_python_tests") { "//tools/metrics/histograms/histogram_paths.py", "//tools/metrics/histograms/histograms_print_style.py", "//tools/metrics/histograms/merge_xml.py", + "//tools/metrics/histograms/merge_xml_test.py", + "//tools/metrics/histograms/populate_enums.py", "//tools/metrics/histograms/pretty_print.py", "//tools/metrics/histograms/pretty_print_test.py", diff --git a/chromium/tools/metrics/actions/README.md b/chromium/tools/metrics/actions/README.md index cfac42a705e..ca722e69d6a 100644 --- a/chromium/tools/metrics/actions/README.md +++ b/chromium/tools/metrics/actions/README.md @@ -4,7 +4,8 @@ This document gives the best practices on how to use user actions in code and how to document them for the dashboard. User actions come with only a name and a timestamp. They are best used when you care about a sequence--which actions happen in what order. If you don't care about the order, you should be using -histograms (likely enumerated histograms). +[histograms](https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md) +(likely [enumerated histograms](https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms)). Often, you want both user actions and histogram logging in your code. They enable different analyses. They're complementary. @@ -135,7 +136,7 @@ about the user action description that reveal problems with interpretation of the data and call for a different recording strategy. Two, it allows the user action reviewer to easily review the emission code to see if it comports with these best practices, and to look for other errors. - + ### Understandable to Everyone User actions descriptions should be understandable to someone not familiar with diff --git a/chromium/tools/metrics/actions/actions.xml b/chromium/tools/metrics/actions/actions.xml index 6e03b7b2637..cca15bdeb1e 100644 --- a/chromium/tools/metrics/actions/actions.xml +++ b/chromium/tools/metrics/actions/actions.xml @@ -2442,7 +2442,7 @@ should be able to be added at any place in this file. - pschaffner@chromium.com + pschaffner@chromium.org Force pressed on a springboard shortcut and tapped Incognito Search in Chrome for iOS. @@ -2450,7 +2450,7 @@ should be able to be added at any place in this file. - pschaffner@chromium.com + pschaffner@chromium.org Force pressed on a springboard shortcut and tapped New Search in Chrome for iOS. @@ -2697,15 +2697,23 @@ should be able to be added at any place in this file. - ftirelo@chromium.org + battre@chromium.org This user action is logged when a user has cleared the form after having accepted an Autofill suggestion. + + siyua@chromium.org + + This user action is logged when the legal message link in the credit card + upload bubble is clicked by the user. + + + - sebsg@chromium.org + battre@chromium.org This user action is logged when the form is filled with the credit card suggestion selected by the user. This should always happen after a @@ -2714,7 +2722,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when the form is filled with the profile suggestion selected by the user. This should always happen after a @@ -2734,7 +2742,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill detects a form submission for a form where all the fields were autofilled. @@ -2742,7 +2750,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill detects a form submission for a form where Autofill suggestions were not shown. @@ -2750,7 +2758,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill detects a form submission for a form where an Autofill suggestion was shown but no fields were filled. @@ -2758,7 +2766,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill detects a form submission for a form where some field were filled. @@ -2766,7 +2774,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill detects a form submission for a form that is not Autofillable or for a form that was filled with new @@ -2775,7 +2783,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when Autofill thinks a form is about to be submitted. The reason behind this is that some sites do not use the @@ -2784,21 +2792,21 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when a credit card form is parsed. - sebsg@chromium.org + battre@chromium.org This user action is logged when a profile form is parsed. - sebsg@chromium.org + battre@chromium.org This user action is logged when the user interacts with an autofillable credit card field, either by clicking or by typing. @@ -2806,7 +2814,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when the user interacts with an autofillable profile field, either by clicking or by typing. @@ -2814,7 +2822,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when a user has selected (clicked on) an Autofill suggestion. This should always happen after @@ -2823,7 +2831,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when the user is shown some credit card suggestions. This should always happen after a @@ -2842,7 +2850,7 @@ should be able to be added at any place in this file. - sebsg@chromium.org + battre@chromium.org This user action is logged when the user is shown some profile suggestions. This should always happen after a Autofill_PolledProfileSuggestion. @@ -2850,24 +2858,49 @@ should be able to be added at any place in this file. - nikunjb@chromium.org - sebsg@chromium.org + battre@chromium.org + jsaul@google.com Recorded when user visits chrome://settings/autofill page. - nikunjb@chromium.org - sebsg@chromium.org + battre@chromium.org + jsaul@google.com Recorded when user adds card via chrome://settings/payments page. + + sujiezhu@google.com + jsaul@google.com + + Recorded when user adds card with a nickname via settings page. + + + + + sujiezhu@google.com + jsaul@google.com + + Recorded when user edits card via chrome://settings/payments page. + + + + + sujiezhu@google.com + jsaul@google.com + + Recorded when user edits card with a new nickname via + chrome://settings/payments page. + + + - nikunjb@chromium.org - sebsg@chromium.org + battre@chromium.org + jsaul@google.com Recorded when user visits chrome://settings/payments page. @@ -4317,6 +4350,24 @@ should be able to be added at any place in this file. + + myy@chromium.org + essential-inputs-team@google.com + + Recorded when a user clicks the link to open Emoji Suggestions section in + Chrome OS Smart Inputs setting page. + + + + + myy@chromium.org + essential-inputs-team@google.com + + Recorded when a user clicks the link to open Personal Information + Suggestions section in Chrome OS Smart Inputs setting page. + + + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -4996,6 +5047,14 @@ should be able to be added at any place in this file. + + donnd@chromium.org + + The user established a new selection through a touch and hold gesture or tap + while Contextual Search was active. + + + donnd@chromium.org @@ -5101,14 +5160,14 @@ should be able to be added at any place in this file. This feature was deprecated in M74 - twellington@chromium.com - wylieb@chromium.com + twellington@chromium.org + wylieb@chromium.org Android: User interacts with the feature directly. This feature was deprecated in M74 - twellington@chromium.com + twellington@chromium.org Android: User used the context menu on a suggested item on the contextual suggestions surface. @@ -6129,6 +6188,10 @@ should be able to be added at any place in this file. + + Functionality was rolled into Share on Mac. Doesn't appear to have been used + on other platforms. + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -8569,6 +8632,47 @@ should be able to be added at any place in this file. Please enter the description of this user action. + + gambard@chromium.org + justincohen@chromium.org + + Recorded when the user is tapping the doodle on the NTP. There is also a + histogram (NewTabPageActioniOS::doodle), but histograms are not recorded in + Breadcrumbs. iOS Breadcrumbs attaches steps the user performed in the app to + crash logs. These steps can help debug causes of crashes when the stack + doesn't provide enough information. + + + + + eugenebut@chromium.org + mrefaat@chromium.org + + Recorded when the user taps on OPEN IN... button to share the page + (typically PDF). + + + + + rkgibson@google.com + gambard@chromium.org + The user zoomed in on a webpage. iOS only. + + + + rkgibson@google.com + gambard@chromium.org + The user zoomed out on a webpage. iOS only. + + + + rkgibson@google.com + gambard@chromium.org + + The user reset the zoom level on a webpage. iOS only. + + + msarda@chromium.org jlebel@chromium.org @@ -8579,7 +8683,7 @@ should be able to be added at any place in this file. - eugenebut@chromium.com + eugenebut@chromium.org sczs@chromium.org Recorded when a user closes bookmark manager by swiping down. iOS-only. @@ -8722,7 +8826,7 @@ should be able to be added at any place in this file. djean@chromium.org - javierrobles@chromium.com + javierrobles@chromium.org Reported when Passwords Settings UI was dismissed using swipe down gesture. iOS only. @@ -8864,6 +8968,15 @@ should be able to be added at any place in this file. Please enter the description of this user action. + + jamescook@chromium.org + lacros-team@google.com + + Recorded when the user launches a new instance of the lacros-chrome binary, + for example by clicking on the Lacros shelf icon. + + + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -12233,6 +12346,32 @@ should be able to be added at any place in this file. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Chrome About Settings UI to root Settings + screen. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + Reported when Chrome About Settings UI was dismissed. iOS only. + + + + + msarda@chromium.org + jlebel@chromium.org + + Reported when user goes back from Accounts Settings UI to root Settings + screen. iOS only. + + + msarda@chromium.org jlebel@chromium.org @@ -12336,6 +12475,40 @@ should be able to be added at any place in this file. + + olivierrobin@chromium.org + sczs@chromium.org + + Reported when user goes back from Addresses Settings UI to root Settings + screen. iOS only. + + + + + olivierrobin@chromium.org + sczs@chromium.org + + Reported when Addresses Settings UI was dismissed. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Bandwidth Settings UI to root Settings + screen. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + Reported when Bandwidth Settings UI was dismissed. iOS only. + + + Deprecated as of 1/2020 Please list the metric's owners. Add more owner tags as needed. @@ -12551,6 +12724,7 @@ should be able to be added at any place in this file. + Removed as of 5/2020 mdjones@chromium.org chrome-android-apps@chromium.org The bottom toolbar's overflow menu was shown. @@ -12652,6 +12826,23 @@ should be able to be added at any place in this file. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Content Settings UI to root Settings + screen. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + s Reported when Content Settings UI was dismissed. iOS only. + + + Deprecated as of 8/2015 Please list the metric's owners. Add more owner tags as needed. @@ -12811,6 +13002,23 @@ should be able to be added at any place in this file. + + olivierrobin@chromium.org + sczs@chromium.org + + Reported when user goes back from Credit Card Settings UI to root Settings + screen. iOS only. + + + + + olivierrobin@chromium.org + sczs@chromium.org + + Reported when Credit Card Settings UI was dismissed. iOS only. + + + Deprecated 12/2018. CustomFeedback never shipped to 100% and is no longer @@ -12968,6 +13176,15 @@ should be able to be added at any place in this file. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Google Services Settings UI to root + Settings screen. iOS only. + + + msarda@chromium.org jlebel@chromium.org @@ -13788,9 +14005,18 @@ should be able to be added at any place in this file. Please enter the description of this user action. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Passwords Settings UI to root Settings + screen. iOS only. + + + djean@chromium.org - javierrobles@chromium.com + javierrobles@chromium.org Reported when Passwords Settings UI was dismissed. iOS only. @@ -13835,12 +14061,50 @@ should be able to be added at any place in this file. User closes the tab while preview page is loaded. + + msramek@chromium.org + sczs@chromium.org + + Reported when user goes back from Privacy Settings UI to root Settings + screen. iOS only. + + + + + msramek@chromium.org + sczs@chromium.org + + Reported when Privacy Settings UI was dismissed. iOS only. + + + + + eugenebut@chromium.org + michaeldo@chromium.org + + Emitted on iOS when over-scroll action touch gesture closes current tab. + This fires only after the triggering touch is released while the refresh + effect has been pulled beyond the activation threshold. + + + + + eugenebut@chromium.org + michaeldo@chromium.org + + Emitted on iOS when over-scroll action touch gesture opens a new tab. This + fires only after the triggering touch is released while the refresh effect + has been pulled beyond the activation threshold. + + + + eugenebut@chromium.org tedchoc@chromium.org - Emitted on Android when a pull-to-refresh touch gesture initiates a page - reload. This fires only after the triggering touch is released while the - refresh effect has been pulled beyond the activation threshold. + Emitted on Android and iOS when a pull-to-refresh touch gesture initiates a + page reload. This fires only after the triggering touch is released while + the refresh effect has been pulled beyond the activation threshold. @@ -14025,6 +14289,23 @@ should be able to be added at any place in this file. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user goes back from Search Engine Settings UI to root Settings + screen. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + Reported when Search Engine Settings UI was dismissed. iOS only. + + + edchin@chromium.org gambard@chromium.org @@ -14744,6 +15025,7 @@ should be able to be added at any place in this file. + Removed as of 5/2020 mdjones@chromium.org chrome-android-apps@chromium.org @@ -14782,6 +15064,23 @@ should be able to be added at any place in this file. + + rohitrao@chromium.org + sczs@chromium.org + + Reported when user goes back from Voice Search Settings UI to root Settings + screen. iOS only. + + + + + rohitrao@chromium.org + sczs@chromium.org + + Reported when Voice Search Settings UI was dismissed. iOS only. + + + eugenebut@chromium.org michaeldo@chromium.org @@ -14846,6 +15145,14 @@ should be able to be added at any place in this file. + + marq@chromium.org + djean@chromium.org + + Recorded when user taps Open In New Window in context menu. iOS only. + + + eugenebut@chromium.org michaeldo@chromium.org @@ -16038,6 +16345,15 @@ should be able to be added at any place in this file. Please enter the description of this user action. + + Deprecated 07/2020 + myy@chromium.org + essential-inputs-team@google.com + + When user click the link to open Smart Inputs setting page in ChromeOS. + + + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -17964,6 +18280,12 @@ should be able to be added at any place in this file. + + Deprecated. Not a good representation of user behaviour for page loads. + Check the count of PageLoad.ParseTiming.NavigationToParseStart or + IOS.PageLoadCount.Counts (on that platform) for a better approximation of + page loads. + Please list the metric's owners. Add more owner tags as needed. When a page load starts. This can include page loads that are not completed, @@ -18144,6 +18466,59 @@ should be able to be added at any place in this file. + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user clicks on the reset password button on the + interstitial. + + + + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user clicked on the change password button on the password + protection modal warning. + + + + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user closed the password protection modal warning. + + + + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user clicked on the ignore button on the password + protection modal warning. + + + + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user clicks on the change password button on the page info + bubble. + + + + + bdea@chromium.org + chrome-safebrowsing-alerts@google.com + + Reported when the user clicks on the mark site as legitimate button on the + page info bubble. + + + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -18728,6 +19103,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18736,6 +19112,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18744,6 +19121,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. msalama@chromium.org User clicked on settings from the user menu prompted message to go to cookie @@ -18753,6 +19131,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18761,6 +19140,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18769,6 +19149,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. droger@chromium.org msarda@chromium.org tangltom@chromium.org @@ -18778,6 +19159,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18786,6 +19168,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18794,6 +19177,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -18809,6 +19193,7 @@ should be able to be added at any place in this file. + Removed since M85, replaced by a histogram. vasilii@chromium.org ewald@chromium.org @@ -19503,7 +19888,8 @@ should be able to be added at any place in this file. The user changed the selection by manipulating the selection handles. Only one action of this kind is emmitted when the selection handles are - repeatedly moved. + repeatedly moved. Recorded whenever the selection changes on any platform in + the native touch selection controller. @@ -19603,6 +19989,30 @@ should be able to be added at any place in this file. + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user navigates to Bandwidth Settings. iOS only. + + + + + eugenebut@chromium.org + sczs@chromium.org + + Reported when user navigates to Content Settings. iOS only. + + + + + jlebel@chromium.org + fernandex@chromium.org + + Reported when user navigates to Google Services Settings. iOS only. + + + Removed as original metrics is over counting. Replaced with @@ -19640,6 +20050,24 @@ should be able to be added at any place in this file. + + jlebel@chromium.org + fernandex@chromium.org + msarda@chromium.org + + Recorded when the user taps on the account item in the settings. Recorded + for iOS only. + + + + + thgreenfrog@chromium.org + sczs@chromium.org + + Reported when user navigates to Language Settings. iOS only. + + + rainhard@chromium.org andzaytsev@google.com @@ -19692,6 +20120,14 @@ should be able to be added at any place in this file. + + rohitrao@chromium.org + sczs@chromium.org + + Reported when user navigates to Voice Search Settings. iOS only. + + + gzadina@chromium.org tbarzic@chromium.org @@ -19845,6 +20281,14 @@ should be able to be added at any place in this file. + + sophey@chromium.org + src/components/send_tab_to_self/OWNERS + + The "Copy Text" option was selected in the sharing hub. + + + kmilka@chromium.org src/components/send_tab_to_self/OWNERS @@ -19948,6 +20392,7 @@ should be able to be added at any place in this file. + Removed 06/2020. Never launched. tgupta@chromium.org src/components/send_tab_to_self/OWNERS @@ -19956,6 +20401,7 @@ should be able to be added at any place in this file. + Removed 06/2020. Never launched. tgupta@chromium.org src/components/send_tab_to_self/OWNERS @@ -19980,6 +20426,7 @@ should be able to be added at any place in this file. + Deprecated 6/2020 tgupta@chromium.org src/components/send_tab_to_self/OWNERS @@ -20004,6 +20451,7 @@ should be able to be added at any place in this file. + Deprecated 6/2020 tgupta@chromium.org src/components/send_tab_to_self/OWNERS @@ -20329,7 +20777,7 @@ should be able to be added at any place in this file. - mathp@chromium.org + battre@chromium.org Recorded when showing sign in entry in the Autofill dropdown. @@ -20393,7 +20841,7 @@ should be able to be added at any place in this file. not_user_triggered="true"> manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when showing sign in entry in the manage cards bubble. @@ -20443,7 +20891,7 @@ should be able to be added at any place in this file. manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when showing sign in entry in the save card bubble. @@ -20522,7 +20970,7 @@ should be able to be added at any place in this file. not_user_triggered="true"> manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when the personalized sign-in promo is shown with an account in the manage cards bubble. @@ -20563,7 +21011,7 @@ should be able to be added at any place in this file. not_user_triggered="true"> manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when the personalized sign-in promo is shown with an account in the save card bubble. @@ -20633,7 +21081,7 @@ should be able to be added at any place in this file. not_user_triggered="true"> manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when the personalized sign-in promo is shown with no account in the manage cards bubble. @@ -20675,7 +21123,7 @@ should be able to be added at any place in this file. not_user_triggered="true"> manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded when the personalized sign-in promo is shown with no account in the save card bubble. @@ -20797,7 +21245,7 @@ should be able to be added at any place in this file. - mathp@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_AUTOFILL_DROPDOWN. @@ -20897,7 +21345,7 @@ should be able to be added at any place in this file. manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_MANAGE_CARDS_BUBBLE. @@ -20955,7 +21403,7 @@ should be able to be added at any place in this file. manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_SAVE_CARD_BUBBLE. @@ -21217,7 +21665,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_MANAGE_CARDS_BUBBLE, with a new @@ -21261,7 +21709,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_SAVE_CARD_BUBBLE, with a new @@ -21338,7 +21786,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_MANAGE_CARDS_BUBBLE, with a new @@ -21384,7 +21832,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_SAVE_CARD_BUBBLE, with a new @@ -21590,7 +22038,7 @@ should be able to be added at any place in this file. manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_MANAGE_CARDS_BUBBLE, using another @@ -21634,7 +22082,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_SAVE_CARD_BUBBLE, using another @@ -21718,7 +22166,7 @@ should be able to be added at any place in this file. manasverma@google.com jsaul@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_MANAGE_CARDS_BUBBLE, using the @@ -21762,7 +22210,7 @@ should be able to be added at any place in this file. jsaul@chromium.org manasverma@google.com msarda@chromium.org - sebsg@chromium.org + battre@chromium.org Recorded on sign in start from access point signin_metrics::AccessPoint::ACCESS_POINT_SAVE_CARD_BUBBLE, using the @@ -21792,7 +22240,18 @@ should be able to be added at any place in this file. + + jlebel@chromium.org + fernandex@chromium.org + msarda@chromium.org + + Recorded when the user signs out from the Account list view. Recorded for + iOS only. + + + + Removed since M85, replaced by a histogram. droger@chromium.org msarda@chromium.org tangltom@chromium.org @@ -21803,6 +22262,16 @@ should be able to be added at any place in this file. + + jlebel@chromium.org + fernandex@chromium.org + msarda@chromium.org + + Recorded when the user signs out and delete user data, from the Account list + view. Recorded for iOS only. + + + gogerald@chromium.org @@ -22261,6 +22730,21 @@ should be able to be added at any place in this file. + + wychen@chromium.org + yuezhanggg@chromium.org + + Metric record when the trendy terms start surface is shown (the user taps + the tab switcher button or on chrome start). + + + + + wychen@chromium.org + yuezhanggg@chromium.org + The user tapped a trendy term. + + gogerald@chromium.org @@ -23081,7 +23565,7 @@ should be able to be added at any place in this file. - twellington@chromium.com + twellington@chromium.org chrome-android-app@chromium.org Android: The suggestions section is collapsed by user click on the section @@ -23090,7 +23574,7 @@ should be able to be added at any place in this file. - twellington@chromium.com + twellington@chromium.org chrome-android-app@chromium.org Android: The suggestions section is expanded by user click on the section @@ -23791,6 +24275,15 @@ should be able to be added at any place in this file. + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + User clicked on the tab group header of the last expanded tab group. This + user action means there are no more available tabs so the user saw a no-op. + + + connily@chromium.org cyan@chromium.org @@ -23857,6 +24350,24 @@ should be able to be added at any place in this file. + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + User clicked on the tab group header of an expanded tab group to collapse + the group. + + + + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + User clicked on the tab group header of a collapsed tab group to expand the + group. + + + minch@chromium.org @@ -24325,6 +24836,24 @@ should be able to be added at any place in this file. + + collinbaker@chromium.org + chrome-desktop-ui@google.com + + The user switched away from primarily using touch input or the browser + started in non-touch mode. + + + + + collinbaker@chromium.org + chrome-desktop-ui@google.com + + The user switched to primarily using touch input or the browser started in + touch mode. + + + Please list the metric's owners. Add more owner tags as needed. Please enter the description of this user action. @@ -25353,6 +25882,8 @@ should be able to be added at any place in this file. + + + + diff --git a/chromium/tools/metrics/histograms/OWNERS b/chromium/tools/metrics/histograms/OWNERS index 324e060050c..dd81623be7c 100644 --- a/chromium/tools/metrics/histograms/OWNERS +++ b/chromium/tools/metrics/histograms/OWNERS @@ -14,6 +14,7 @@ per-file histograms.xml=alexilin@chromium.org per-file histograms.xml=altimin@chromium.org # Scheduling-related metrics. per-file histograms.xml=csharrison@chromium.org per-file histograms.xml=cthomp@chromium.org # For security-related metrics only. +per-file histograms.xml=dschinazi@chromium.org # For networking-related metrics only. per-file histograms.xml=schenney@chromium.org per-file histograms.xml=tbansal@chromium.org per-file histograms.xml=tby@chromium.org # For chrome knowledge team metrics only. diff --git a/chromium/tools/metrics/histograms/README.md b/chromium/tools/metrics/histograms/README.md index 32cc0260d47..c0ef689dbc7 100644 --- a/chromium/tools/metrics/histograms/README.md +++ b/chromium/tools/metrics/histograms/README.md @@ -2,9 +2,11 @@ This document gives the best practices on how to use histograms in code and how to document the histograms for the dashboards. There are three general types -of histograms: enumerated histograms, count histograms (for arbitrary numbers), -and sparse histograms (for anything when the precision is important over a wide -range and/or the range is not possible to specify a priori). +of histograms: [enumerated histograms](#Enum-Histograms), +[count histograms](#Count-Histograms) (for arbitrary numbers), and +[sparse histograms](#When-To-Use-Sparse-Histograms) (for anything when the +precision is important over a wide range and/or the range is not possible to +specify a priori). [TOC] @@ -151,12 +153,34 @@ or: UmaHistogramEnumeration("NewTabPageAction", action); ``` +Logging histograms from Java should look similar: + +```java +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +@IntDef({NewTabPageAction.USE_OMNIBOX, NewTabPageAction.CLICK_TITLE, + NewTabPageAction.OPEN_BOOKMARK}) +private @interface NewTabPageAction { + int USE_OMNIBOX = 0; + int CLICK_TITLE = 1; + // int USE_SEARCHBOX = 2; // no longer used, combined into omnibox + int OPEN_BOOKMARK = 3; + int COUNT = 4; +} + +// Using a helper function is optional, but avoids some boilerplate. +private static void logNewTabPageAction(@NewTabPageAction int action) { + RecordHistogram.recordEnumeratedHistogram( + "NewTabPageAction", action, NewTabPageAction.COUNT); +} +``` + #### Legacy Enums **Note: this method of defining histogram enums is deprecated. Do not use this for new enums *in C++*.** -Many legacy enums define a `kCount` sentinel, reying on the compiler to +Many legacy enums define a `kCount` sentinel, relying on the compiler to automatically update it when new entries are added: ```c++ @@ -494,11 +518,11 @@ If the histogram is being replaced by a new version: * Note in the `` message the name of the replacement histogram. -* Make sure the descriptions of the original and replacement histogram - are different. It's never appropriate for them to be identical. Either - the old description was wrong, and it should be revised to explain what - it actually measured, or the old histogram was measuring something not - as useful as the replacement, in which case the new histogram is +* Make sure the descriptions of the original and replacement histogram + are different. It's never appropriate for them to be identical. Either + the old description was wrong, and it should be revised to explain what + it actually measured, or the old histogram was measuring something not + as useful as the replacement, in which case the new histogram is measuring something different and needs to have a new description. A changelist that marks a histogram as obsolete should be reviewed by all @@ -531,6 +555,14 @@ obsolete. You can also mark individual histograms within the suffix as obsolete, indicating the expansion for that histogram is obsolete yet the expansion for other histograms with the same suffix are not. +Histogram suffixes can be difficult to use, especially if they are applied +recursively. Consider using the `print_histogram_names.py --diff` tool to +enumerate all the histogram names that are generated by a particular CL. e.g. +(from the repo root): +``` +./tools/metrics/histograms/print_histogram_names.py --diff origin/master +``` + ### Enum labels _All_ histograms, including boolean and sparse histograms, may have enum labels diff --git a/chromium/tools/metrics/histograms/enums.xml b/chromium/tools/metrics/histograms/enums.xml index 907a0c6b702..c394f02fb8d 100644 --- a/chromium/tools/metrics/histograms/enums.xml +++ b/chromium/tools/metrics/histograms/enums.xml @@ -124,6 +124,24 @@ uploading your change for review. These are checked by presubmit scripts. + + + Track which ATK APIs are being called by clients on Linux Desktop. + + atk_object_get_name + atk_object_get_description + + atk_object_get_n_accessible_children + + atk_object_ref_accessible_child + atk_object_get_index_in_parent + atk_object_get_parent + atk_object_ref_relation_set + atk_object_get_attributes + atk_object_get_role + atk_object_ref_state_set + + Tracks the color scheme used when high contrast is enabled. @@ -677,6 +695,16 @@ uploading your change for review. These are checked by presubmit scripts. UIA Window.get_IsTopmost + + UIA FragmentRoot.ElementProviderFromPoint + + UIA FragmentRoot.GetFocus + + UIA AdviseEvents.AdviseEventAdded + + + UIA AdviseEvents.AdviseEventRemoved + @@ -868,6 +896,7 @@ Unknown properties are collapsed to zero. --> + @@ -892,6 +921,11 @@ Unknown properties are collapsed to zero. --> + + + + + @@ -1326,6 +1360,7 @@ Unknown properties are collapsed to zero. --> + @@ -1417,6 +1452,9 @@ Unknown properties are collapsed to zero. --> + + + @@ -1424,6 +1462,22 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + + + + + + @@ -1952,6 +2006,36 @@ Unknown properties are collapsed to zero. --> + + + The user tapped the "upload this crash report" button. + + + The developer UI uploaded the crash report with no dialog because the user + met the criteria for crash uploads. + + + The user was shown a dialog after tapping the upload button. The user + responded by uploading the crash report anyway. + + + The user was shown a dialog after tapping the upload button. The user + responded by dismissing the dialog and did not upload the crash. + + + The user tapped the "file bug report" button. + + + The user was shown a dialog after tapping the "file bug report" + button. The user responded by proceeding to crbug.com. + + + The user was shown a dialog after tapping the "file bug report" + button. The user responded by dismissing the dialog and did not file a bug + report. + + + @@ -1963,6 +2047,7 @@ Unknown properties are collapsed to zero. --> + @@ -1971,6 +2056,18 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + + @@ -3438,6 +3535,7 @@ Unknown properties are collapsed to zero. --> + @@ -4119,6 +4217,12 @@ Unknown properties are collapsed to zero. --> + + + + + + @@ -4142,6 +4246,9 @@ Unknown properties are collapsed to zero. --> + + + @@ -4156,6 +4263,7 @@ Unknown properties are collapsed to zero. --> + @@ -4371,6 +4479,192 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4624,6 +4918,17 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + @@ -4886,6 +5191,19 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + + + @@ -5234,6 +5552,13 @@ Unknown properties are collapsed to zero. --> + + + + + + + @@ -5375,6 +5700,8 @@ Unknown properties are collapsed to zero. --> + @@ -5544,6 +5871,7 @@ Unknown properties are collapsed to zero. --> + @@ -5825,6 +6153,7 @@ Unknown properties are collapsed to zero. --> + @@ -6321,6 +6650,25 @@ Unknown properties are collapsed to zero. --> + + + + + + + + + + + + + + + + + + + @@ -7300,6 +7648,11 @@ Unknown properties are collapsed to zero. --> + + + + + @@ -7846,14 +8199,19 @@ Unknown properties are collapsed to zero. --> + + + + + Removed in March 2016. -
+ See include/openssl/ssl.h at the corresponding BoringSSL revision for the corresponding values. -
+
@@ -7983,6 +8341,9 @@ Unknown properties are collapsed to zero. --> + + + @@ -8650,6 +9011,8 @@ histogram as enum --> + + @@ -9022,8 +9385,6 @@ histogram as enum --> - - @@ -9103,6 +9464,10 @@ histogram as enum --> + + + + @@ -9833,6 +10198,7 @@ histogram as enum --> + @@ -9846,10 +10212,12 @@ histogram as enum --> + + @@ -9860,6 +10228,7 @@ histogram as enum --> + @@ -9898,6 +10267,7 @@ histogram as enum --> + @@ -9988,6 +10358,7 @@ histogram as enum --> + @@ -10027,6 +10398,28 @@ histogram as enum --> + + + + + + + + + + + + + + + + + + + + + + @@ -10138,6 +10531,7 @@ histogram as enum --> Called by update_net_error_codes.py.--> + @@ -10168,6 +10562,8 @@ Called by update_net_error_codes.py.--> + + @@ -10254,6 +10650,8 @@ Called by update_net_error_codes.py.--> + + @@ -11171,6 +11569,9 @@ Called by update_net_error_codes.py.--> + + + @@ -11245,7 +11646,7 @@ Called by update_net_error_codes.py.--> Whether lens is supported and if not the reason why. - + @@ -11253,6 +11654,8 @@ Called by update_net_error_codes.py.--> + + @@ -11418,7 +11821,7 @@ Called by update_net_error_codes.py.--> - + @@ -11566,6 +11969,11 @@ Called by update_net_error_codes.py.--> + + + + + @@ -11727,6 +12135,7 @@ Called by update_net_error_codes.py.--> + @@ -12098,6 +12507,47 @@ Called by update_net_error_codes.py.--> + + Thread types used for CPU time metric breakdowns. + + CPU time consumed by the process that could not be attributed to a specific + thread. + + + Thread whose name was not known to the instrumentation, e.g. a new/unknown + type of thread or a Java thread not registered with + base::ThreadIdNameManager. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12496,6 +12946,19 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + List of results(success or error code) of setting up a SCO connection for + Bluetooth Hands-free profile. This list should be aligned with CRAS: + https://chromium.googlesource.com/chromiumos/third_party/adhd/+/master/cras/src/server/cras_server_metrics.h + + + + + + + + @@ -12772,6 +13235,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + @@ -13050,6 +13514,9 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + Removed as of 05/2020 (crbug/1072514). + @@ -13108,6 +13575,15 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + + + @@ -13122,6 +13598,11 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + @@ -13163,6 +13644,16 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + + + + + + @@ -13170,6 +13661,14 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + + + + @@ -13220,6 +13719,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + @@ -14179,6 +14679,19 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + + + + + + + + + @@ -14509,6 +15022,18 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + @@ -14878,6 +15403,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + @@ -15300,6 +15826,8 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + @@ -15311,6 +15839,12 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + + @@ -15319,6 +15853,11 @@ to ensure that the crash string is shown properly on the user-facing crash UI. + + + + + @@ -16696,6 +17235,11 @@ Called by update_document_policy_enum.py.--> + + + + + @@ -16939,6 +17483,8 @@ Called by update_document_policy_enum.py.--> + + @@ -17402,6 +17948,40 @@ Called by update_document_policy_enum.py.--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17793,6 +18373,13 @@ Called by update_document_policy_enum.py.--> + + + + + + + @@ -20302,7 +20889,7 @@ Called by update_document_policy_enum.py.--> - + @@ -20312,8 +20899,8 @@ Called by update_document_policy_enum.py.--> - - + + @@ -20336,7 +20923,26 @@ Called by update_document_policy_enum.py.--> + + + + + + + + + + + + + + + + + + + @@ -20764,6 +21370,36 @@ Called by update_document_policy_enum.py.--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20788,6 +21424,11 @@ Called by update_document_policy_enum.py.--> + + + + + Deprecated 06/2017. @@ -20935,6 +21576,13 @@ Called by update_document_policy_enum.py.--> + + + + + + + @@ -21079,9 +21727,9 @@ Called by update_extension_histograms.py.--> - - - + + + @@ -21496,6 +22144,8 @@ Called by update_extension_histograms.py.--> label="PASSWORDS_PRIVATE_ON_COMPROMISED_CREDENTIALS_INFO_CHANGED"/> + + @@ -22864,7 +23514,8 @@ Called by update_extension_histograms.py.--> - + @@ -23037,6 +23688,17 @@ Called by update_extension_histograms.py.--> + + + + + + + + + + + @@ -23048,6 +23710,25 @@ Called by update_extension_histograms.py.--> + + + + + + + + + + + + + + + + + + @@ -23082,6 +23763,7 @@ Called by update_extension_histograms.py.--> + @@ -23247,6 +23929,14 @@ Called by update_extension_histograms.py.--> + + + + + + + + @@ -23599,6 +24289,7 @@ Called by update_extension_histograms.py.--> + @@ -26547,7 +27238,7 @@ Called by update_use_counter_feature_enum.py.--> label="V8ExtendableCookieChangeEvent_Deleted_AttributeGetter"/> - + @@ -27455,6 +28146,42 @@ Called by update_use_counter_feature_enum.py.--> label="WebBluetoothRemoteCharacteristicWriteValueWithoutResponse"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27543,13 +28270,14 @@ Called by update_feature_policy_enum.py.--> - + + @@ -27646,6 +28374,9 @@ Called by update_feature_policy_enum.py.--> + + @@ -28946,6 +29677,15 @@ Called by update_feature_policy_enum.py.--> + + Actions which happen on the screen. + + + + + + + @@ -29292,6 +30032,7 @@ Called by update_feature_policy_enum.py.--> + @@ -29400,6 +30141,15 @@ Called by update_feature_policy_enum.py.--> + + + + + + + + + @@ -31364,8 +32114,7 @@ Called by update_feature_policy_enum.py.--> - - + Generic enums where the label is just the raw number @@ -31523,6 +32272,37 @@ Called by update_feature_policy_enum.py.--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -31971,6 +32751,11 @@ Called by update_feature_policy_enum.py.--> + + + + + @@ -32672,6 +33457,9 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + Removed 06/2020. Both LUMINANCE_F16 and R16_EXT must be supported for now. + Keeps track of how many users have R16_EXT or/and LUMINANCE_F16, and also how many have none of the two. @@ -32842,6 +33630,18 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + List of the possible qualification status of a component. This is defined in + https://chromium.googlesource.com/chromiumos/platform2/+/refs/heads/master/hardware_verifier/proto/hardware_verifier.proto + (enum QualificationStatus). + + Unqualified + Rejected + Qualified + No_Match + + @@ -33312,7 +34112,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + label="custom error for abort setting badge for non app window"/> + + + + + + newly connected socket @@ -33642,6 +34448,35 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> previously used (keep-alive?) socket + + + Tracks the result of querying for an INTEGRITY or HTTPSSVC record. This enum + can represent each of Chrome's supported RCODE values as well as any + unrecognized RCODE values. It also has the TimedOut value to represent + queries that timed out. + + IANA registry: + https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml + + + + + + + + + + + + + + + Represents the result of checking the INTEGRITY record's integrity. + + + + + @@ -34174,6 +35009,9 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + @@ -34489,6 +35327,9 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + @@ -35721,6 +36562,11 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + @@ -35737,6 +36583,13 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + + + @@ -35784,6 +36637,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + + The tab owning the dialog was closed @@ -35855,6 +36714,26 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + + + + + + + + + + + + + + + + @@ -36102,6 +36981,47 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> The navigation off of the Google SRP was to a url that was not on the SRP. + + The url was prefetched and No State Prerendered and committed without a + probe to the origin. + + + The url was prefetched and No State Prerendered and committed with a + successful probe to the origin. + + + The url was prefetched and No State Prerendered but the origin probe failed + and the prefetch was not used. + + + The url was prefetched but was not No State Prerendered despite attempting + to do so and committed without a probe to the origin. + + + The url was prefetched but was not No State Prerendered despite attempting + to do so and committed with a successful probe to the origin. + + + The url was prefetched but was not No State Prerendered despite attempting + to do so, and the origin probe failed and the prefetch was not used. + + + The url was prefetched and eligible for NoStatePrerender but wasn't started + and committed without a probe to the origin. + + + The url was prefetched and eligible for NoStatePrerender but wasn't started + and committed with a successful probe to the origin. + + + The url was prefetched and eligible for NoStatePrerender but wasn't started + and the origin probe failed and the prefetch was not used. + @@ -37281,6 +38201,17 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> iOS only. + + + The state of the largest contentful paint algorithm at the time of + reporting. + + + + + + + Whether the LargestContentfulPaint results from image or text. These are the @@ -38040,6 +38971,27 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + + + + + + + + + + + + + + + + + @@ -38115,6 +39067,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + @@ -38151,6 +39104,18 @@ Called by update_gpu_driver_bug_workaround_entries.py.--> + + + + + + + + + + + + @@ -38357,6 +39322,7 @@ from previous Chrome versions. + @@ -38461,13 +39427,16 @@ from previous Chrome versions. + + + @@ -38476,6 +39445,7 @@ from previous Chrome versions. + @@ -38583,7 +39553,6 @@ from previous Chrome versions. - + @@ -38631,6 +39601,7 @@ from previous Chrome versions. + @@ -38645,6 +39616,7 @@ from previous Chrome versions. + @@ -38663,11 +39635,14 @@ from previous Chrome versions. + + @@ -38676,6 +39651,7 @@ from previous Chrome versions. label="OmniboxSpeculativeServiceWorkerStartOnQueryInput:enabled"/> + @@ -38743,7 +39719,10 @@ from previous Chrome versions. + + @@ -38806,6 +39785,7 @@ from previous Chrome versions. + @@ -38816,6 +39796,7 @@ from previous Chrome versions. label="AndroidPartnerCustomizationPhenotype:enabled"/> + @@ -38844,6 +39825,7 @@ from previous Chrome versions. + @@ -38884,8 +39866,11 @@ from previous Chrome versions. + + @@ -38897,6 +39882,7 @@ from previous Chrome versions. + + + @@ -38978,6 +39966,7 @@ from previous Chrome versions. + @@ -39053,6 +40042,7 @@ from previous Chrome versions. + - + @@ -39160,7 +40150,6 @@ from previous Chrome versions. - @@ -39178,6 +40167,8 @@ from previous Chrome versions. + @@ -39227,6 +40218,8 @@ from previous Chrome versions. + + @@ -39318,6 +40312,8 @@ from previous Chrome versions. + @@ -39350,6 +40346,7 @@ from previous Chrome versions. + @@ -39368,6 +40365,7 @@ from previous Chrome versions. + @@ -39378,6 +40376,8 @@ from previous Chrome versions. + @@ -39403,6 +40403,7 @@ from previous Chrome versions. label="OmniboxSpeculativeServiceWorkerStartOnQueryInput:disabled"/> + @@ -39428,6 +40429,7 @@ from previous Chrome versions. + @@ -39447,6 +40449,7 @@ from previous Chrome versions. + @@ -39481,6 +40484,8 @@ from previous Chrome versions. + @@ -39512,7 +40517,6 @@ from previous Chrome versions. - @@ -39584,6 +40588,7 @@ from previous Chrome versions. + @@ -39669,6 +40674,7 @@ from previous Chrome versions. + @@ -39754,7 +40760,9 @@ from previous Chrome versions. + + @@ -39838,6 +40846,7 @@ from previous Chrome versions. + @@ -39864,6 +40873,8 @@ from previous Chrome versions. label="AutofillUpstreamEditableExpirationDate:enabled"/> + + @@ -39880,6 +40891,7 @@ from previous Chrome versions. + @@ -39905,6 +40917,7 @@ from previous Chrome versions. + + @@ -39943,6 +40958,7 @@ from previous Chrome versions. + @@ -39957,6 +40973,7 @@ from previous Chrome versions. + @@ -39988,12 +41005,14 @@ from previous Chrome versions. + + @@ -40013,6 +41032,7 @@ from previous Chrome versions. + @@ -40023,6 +41043,8 @@ from previous Chrome versions. + @@ -40117,6 +41139,7 @@ from previous Chrome versions. + @@ -40146,6 +41169,7 @@ from previous Chrome versions. + @@ -40165,6 +41189,7 @@ from previous Chrome versions. + @@ -40226,6 +41251,7 @@ from previous Chrome versions. + @@ -40323,6 +41349,7 @@ from previous Chrome versions. + @@ -40339,6 +41366,7 @@ from previous Chrome versions. + @@ -40378,7 +41406,9 @@ from previous Chrome versions. + + @@ -40426,6 +41456,7 @@ from previous Chrome versions. + @@ -40462,6 +41493,7 @@ from previous Chrome versions. label="HappinessTrackingSurveysForDesktopDemo:disabled"/> + @@ -40543,6 +41575,7 @@ from previous Chrome versions. + @@ -40608,7 +41641,6 @@ from previous Chrome versions. - @@ -40634,6 +41666,7 @@ from previous Chrome versions. + @@ -40660,11 +41693,13 @@ from previous Chrome versions. + + @@ -40677,6 +41712,7 @@ from previous Chrome versions. + @@ -40733,6 +41769,7 @@ from previous Chrome versions. + @@ -40809,6 +41846,8 @@ from previous Chrome versions. + @@ -40836,6 +41875,7 @@ from previous Chrome versions. + @@ -40866,10 +41906,14 @@ from previous Chrome versions. + + + @@ -40883,6 +41927,8 @@ from previous Chrome versions. + @@ -40905,12 +41951,14 @@ from previous Chrome versions. + + @@ -40944,10 +41992,12 @@ from previous Chrome versions. + + @@ -40959,6 +42009,7 @@ from previous Chrome versions. + @@ -40972,6 +42023,7 @@ from previous Chrome versions. + @@ -40998,6 +42050,7 @@ from previous Chrome versions. + @@ -41013,6 +42066,7 @@ from previous Chrome versions. + @@ -41036,8 +42090,10 @@ from previous Chrome versions. + + @@ -41076,6 +42132,7 @@ from previous Chrome versions. + @@ -41137,6 +42194,7 @@ from previous Chrome versions. + @@ -41195,6 +42253,8 @@ from previous Chrome versions. + + @@ -41209,6 +42269,7 @@ from previous Chrome versions. label="PrefetchMainResourceNetworkIsolationKey:enabled"/> + @@ -41227,6 +42288,7 @@ from previous Chrome versions. + @@ -41247,10 +42309,13 @@ from previous Chrome versions. + + @@ -41266,12 +42331,14 @@ from previous Chrome versions. + + @@ -41279,6 +42346,7 @@ from previous Chrome versions. + @@ -41322,6 +42390,7 @@ from previous Chrome versions. + @@ -41453,6 +42522,7 @@ from previous Chrome versions. + @@ -41498,6 +42568,7 @@ from previous Chrome versions. + @@ -41513,7 +42584,6 @@ from previous Chrome versions. - @@ -41585,6 +42655,7 @@ from previous Chrome versions. + @@ -41597,10 +42668,10 @@ from previous Chrome versions. - + @@ -41614,12 +42685,14 @@ from previous Chrome versions. label="OmniboxOnDeviceHeadProviderNonIncognito:disabled"/> + + @@ -41638,8 +42711,10 @@ from previous Chrome versions. + + @@ -41671,6 +42746,7 @@ from previous Chrome versions. + - @@ -41730,6 +42805,8 @@ from previous Chrome versions. + + @@ -41812,6 +42889,7 @@ from previous Chrome versions. + @@ -41821,7 +42899,6 @@ from previous Chrome versions. - @@ -41836,6 +42913,7 @@ from previous Chrome versions. + @@ -41855,6 +42933,8 @@ from previous Chrome versions. + + @@ -41870,6 +42950,7 @@ from previous Chrome versions. label="enable-message-center-always-scroll-up-upon-notification-removal"/> + @@ -41951,6 +43032,7 @@ from previous Chrome versions. + @@ -41979,6 +43061,7 @@ from previous Chrome versions. + @@ -42007,6 +43090,7 @@ from previous Chrome versions. + + - + - + - + @@ -42877,6 +43962,12 @@ from previous Chrome versions. + + + + + + @@ -43545,6 +44636,13 @@ Called by update_use_counter_css.py.--> + + + + + + + @@ -43923,6 +45021,7 @@ Called by update_use_counter_css.py.--> + @@ -43932,6 +45031,7 @@ Called by update_use_counter_css.py.--> + @@ -44320,6 +45420,12 @@ Called by update_use_counter_css.py.--> + + + + + + @@ -45290,6 +46396,12 @@ Called by update_use_counter_css.py.--> + + A non-Google application (more precisely an app that doesn't share an app + group with Chrome) launched Chrome with an http or https URL. This can + happen on iOS 14+ when Chrome is set as the default browser and a system app + (f.e. Messages) or an app from a 3rd party developer opens a URL. + @@ -45303,13 +46415,31 @@ Called by update_use_counter_css.py.--> - - + + Logged when an application passes an http URL to Chrome using the custom + registered scheme (f.e. googlechrome). + + + Logged when an application passes an https URL to Chrome using the custom + registered scheme (f.e. googlechromes). + + + Logged when any application passes an http URL to Chrome using the standard + "http" scheme. This can happen when Chrome is set as the default + browser on iOS 14+ as http openURL calls will be directed to Chrome by the + system from all other apps. + + + Logged when any application passes an https URL to Chrome using the standard + "https" scheme. This can happen when Chrome is set as the default + browser on iOS 14+ as http openURL calls will be directed to Chrome by the + system from all other apps. + @@ -46062,13 +47192,20 @@ Called by update_use_counter_css.py.--> engaged site"/> + a top 500 domain or an engaged site"/> + + @@ -46329,6 +47466,8 @@ Called by update_net_error_codes.py.--> + + @@ -46416,6 +47555,8 @@ Called by update_net_error_codes.py.--> + + @@ -46446,6 +47587,7 @@ Called by update_net_error_codes.py.--> + @@ -46635,6 +47777,9 @@ Called by update_net_error_codes.py.--> + + Removed from code June 2020. + @@ -46696,6 +47841,9 @@ Called by update_net_error_codes.py.--> + + Removed from code, June 2020. + @@ -46710,6 +47858,9 @@ Called by update_net_error_codes.py.--> + + Removed from code, June 2020. + @@ -46725,6 +47876,9 @@ Called by update_net_error_codes.py.--> + + Removed from code, June 2020. + @@ -46748,6 +47902,9 @@ Called by update_net_error_codes.py.--> + + Removed from code June 2020. + @@ -48172,10 +49329,7 @@ Called by update_net_trust_anchors.py.--> - - The security types come from the connman_service_security enum in - flimflam/include/service.h - + Shill's WiFi security types. @@ -48183,6 +49337,7 @@ Called by update_net_trust_anchors.py.--> + @@ -48636,6 +49791,10 @@ Called by update_net_trust_anchors.py.--> + + + + @@ -48775,6 +49934,9 @@ Called by update_net_trust_anchors.py.--> + + Removed 2020-06. + @@ -49463,10 +50625,10 @@ Called by update_net_trust_anchors.py.--> - This state was never reported. + Deprecated: This state was never reported. No prefetched offline pages + were downloaded nor opened by the user in a day but there are some + available locally. - Deprecated: No prefetched offline pages were downloaded nor opened by the - user in a day but there are some available locally. Prefetched offline pages were downloaded in a day but none were opened by @@ -50095,6 +51257,27 @@ Called by update_net_trust_anchors.py.--> + + + OnServiceConnected is already called. Everything worked as expected. + + + OnServiceConnected is not called and connection is not needed. Could for + example indicate the user closed the tab before timeout. + + + Timed out and perform fallback operation. + + + + + + + + + + + @@ -50108,10 +51291,19 @@ Called by update_net_trust_anchors.py.--> + + Obsolete as of 06/2020. + + + + + + + @@ -50205,21 +51397,20 @@ Called by update_net_trust_anchors.py.--> - - Found configuration data for a server blacklist. + + Found configuration data for a server filter. - - Successfully created a server blacklist. + + Successfully created a server filter. - Failed to create a server blacklist per bad configuration. + Failed to create a server filter per bad configuration. - Failed to create a server blacklist because it would use too much RAM. + Failed to create a server filter because it would use too much RAM. - Failed to create a server blacklist because it has more than one - configuration. + Failed to create a server filter because it has more than one configuration. There was an invalid RE2 in the regexps field. @@ -50453,6 +51644,200 @@ Called by update_net_trust_anchors.py.--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -50462,6 +51847,90 @@ Called by update_net_trust_anchors.py.--> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -50933,6 +52402,9 @@ Called by update_net_trust_anchors.py.--> Unknown reason; page load may have finished without comitting + + Page became hidden, but is still active. + @@ -51363,6 +52835,13 @@ Called by update_net_trust_anchors.py.--> + + + + + + + @@ -51392,6 +52871,14 @@ Called by update_net_trust_anchors.py.--> + + + + + + + + @@ -51429,6 +52916,9 @@ Called by update_net_trust_anchors.py.--> + + + @@ -51441,6 +52931,12 @@ Called by update_net_trust_anchors.py.--> + + + + + + @@ -51473,6 +52969,12 @@ Called by update_net_trust_anchors.py.--> + + + + + + Deprecated as of 2020-04. @@ -51519,12 +53021,31 @@ Called by update_net_trust_anchors.py.--> + + + Triggers that will cause Chrome to offer to move a password from the profile + store to the account store. + + + The user successfully logged in with a password from the profile store. + + + The user explicitly asked to move a password listed in Settings. + + + + + + + + + Deprecated as of Chrome 32. See PasswordManagerActionsTakenWithPsl @@ -52017,12 +53538,14 @@ Called by update_net_trust_anchors.py.--> - - - + + + + label="Filled from both in the profile-scoped and the account-scoped + store"/> @@ -53037,11 +54560,18 @@ Called by update_net_trust_anchors.py.--> - + + + + + + + + @@ -53665,7 +55195,7 @@ Called by update_net_trust_anchors.py.--> - + @@ -54473,6 +56003,7 @@ Called by update_net_trust_anchors.py.--> + @@ -54533,9 +56064,7 @@ Called by update_net_trust_anchors.py.--> Currently Chrome simply ignores the download if the dialog is already presented. - - - + The dialog cannot be presented, because another PKAddPassesViewController is already presented. @@ -54626,10 +56155,7 @@ Called by update_net_trust_anchors.py.--> - - Response header had Cache-Control:no-transform directive (developer - opt-out). - + @@ -54881,6 +56407,17 @@ Called by update_net_trust_anchors.py.--> + + + + + + + + + @@ -55011,6 +56548,12 @@ Called by update_net_trust_anchors.py.--> + + + + + + @@ -56181,6 +57724,11 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + @@ -56497,6 +58045,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + @@ -56524,10 +58075,17 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + - - - + + + @@ -56743,6 +58301,25 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + + + + + + + + + + + + + @@ -56756,7 +58333,36 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -56807,6 +58413,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf Hardcoded in rar2fs ERAR_BAD_ARCHIVE from libunrar ERAR_UNKNOWN_FORMAT from libunrar + ERAR_EOPEN from libunrar ERAR_EREAD from libunrar ERAR_MISSING_PASSWORD from libunrar @@ -56883,6 +58490,12 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf auto-click"/> + + + + + + @@ -58546,6 +60159,17 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + + + + + @@ -58879,6 +60503,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + @@ -58896,6 +60523,26 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + + + + + + @@ -60486,7 +62133,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf - + @@ -60524,12 +62171,18 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + Removed 05/2020. + + + Removed 05/2020. + @@ -60540,12 +62193,15 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf - + - + + + Removed 05/2020. + @@ -60558,6 +62214,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + Removed 05/2020. + @@ -60781,6 +62440,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + Removed on June 2019 @@ -61821,6 +63487,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + @@ -61970,11 +63637,30 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf label="Signin primary account with force-sign-in policy enabled"/> + + + + + + + + + + + + + + + + + + + @@ -62970,6 +64656,29 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + + + + + + + + + + + + + + + + + + Operation succeeded Operation suceeded partially @@ -64661,6 +66370,12 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf + + + + + + @@ -65379,6 +67094,7 @@ would be helpful to identify which type is being sent. + @@ -65500,6 +67216,29 @@ would be helpful to identify which type is being sent. + + + Behavior of the out-of-box experience (OOBE) sync consent screen. + + + + + + + + + + + + + + Which button the user clicked in the out-of-box experience (OOBE) sync + consent screen. + + + + + @@ -65588,6 +67327,32 @@ would be helpful to identify which type is being sent. + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -65725,6 +67490,17 @@ would be helpful to identify which type is being sent. + + + + + + + + @@ -65900,8 +67676,10 @@ would be helpful to identify which type is being sent. - + + + @@ -66420,6 +68198,13 @@ would be helpful to identify which type is being sent. + + + + + + + @@ -67246,10 +69031,10 @@ Full version information for the fingerprint enum values: - + - + @@ -67258,7 +69043,7 @@ Full version information for the fingerprint enum values: - + @@ -67269,6 +69054,8 @@ Full version information for the fingerprint enum values: + + @@ -67453,6 +69240,25 @@ Full version information for the fingerprint enum values: + + + + Error when getting location from client app. + + + + No Trusted Web Activity service, or the service does not handle the command. + Note: this is included in the "Location Error" bracket. + + + + + + + + + + Removed in Chrome 76. @@ -67463,6 +69269,11 @@ Full version information for the fingerprint enum values: + + + + + @@ -67517,6 +69328,14 @@ Full version information for the fingerprint enum values: + + + Placeholder enum. The values are UKM event name hashes truncated to 31 bits. + This gets populated by the GetEnumsNodes function in merge_xml.py when + producing the merged XML file. + + + @@ -68686,6 +70505,14 @@ Full version information for the fingerprint enum values: + + + + + + + + @@ -68694,6 +70521,28 @@ Full version information for the fingerprint enum values: + + + + + + + + + + + + @@ -69543,6 +71392,13 @@ Full version information for the fingerprint enum values: + + + + + + + @@ -69593,6 +71449,9 @@ Full version information for the fingerprint enum values: + + Removed 06/2020. + + + Removed 06/2020. + + + Removed 06/2020. + + + As of 5/18/2020 this enum is no longer in code. + @@ -69640,6 +71508,9 @@ Full version information for the fingerprint enum values: + + Removed as of 06/2020. + A catch all for presentation sources that are unknown or cannot be specified for other reasons. @@ -69663,6 +71534,9 @@ Full version information for the fingerprint enum values: + + Removed as of 06/2020. + The user activated a headset. For example, inserted phone in Daydream, or put on an Occulus or Vive. @@ -69681,6 +71555,9 @@ Full version information for the fingerprint enum values: + + Removed as of 06/2020. + @@ -69688,6 +71565,9 @@ Full version information for the fingerprint enum values: + + Removed 06/2020. + @@ -69713,6 +71593,9 @@ Full version information for the fingerprint enum values: + + Removed 06/2020. + @@ -69741,6 +71624,9 @@ Full version information for the fingerprint enum values: + + Removed 06/2020. + @@ -70116,6 +72002,7 @@ Full version information for the fingerprint enum values: + @@ -70145,6 +72032,7 @@ Full version information for the fingerprint enum values: + @@ -70190,6 +72078,15 @@ Full version information for the fingerprint enum values: + + + + + + + + + + + @@ -70862,6 +72761,12 @@ Called by update_scheduler_enums.py.--> + + + + + + @@ -71061,18 +72966,19 @@ Called by update_scheduler_enums.py.--> + - + @@ -71147,14 +73053,12 @@ Called by update_scheduler_enums.py.--> - - @@ -71182,8 +73086,11 @@ Called by update_scheduler_enums.py.--> - + + + @@ -71541,6 +73448,17 @@ Called by update_scheduler_enums.py.--> + + + + + + + + + + + @@ -71571,10 +73489,13 @@ Called by update_scheduler_enums.py.--> - - - - + + + + + @@ -71831,6 +73752,17 @@ Called by update_scheduler_enums.py.--> + + + + + + + + + + + @@ -72029,7 +73961,7 @@ Called by update_scheduler_enums.py.--> - + @@ -72751,6 +74683,8 @@ Called by update_scheduler_enums.py.--> + + @@ -72786,6 +74720,8 @@ Called by update_scheduler_enums.py.--> + + @@ -72808,6 +74744,9 @@ Called by update_scheduler_enums.py.--> + + + @@ -72817,6 +74756,9 @@ Called by update_scheduler_enums.py.--> + + + @@ -72824,6 +74766,7 @@ Called by update_scheduler_enums.py.--> + @@ -72862,6 +74805,7 @@ Called by update_scheduler_enums.py.--> + @@ -73703,6 +75647,9 @@ Called by update_scheduler_enums.py.--> + + Removed as of 06/2020. + diff --git a/chromium/tools/metrics/histograms/histogram_paths.py b/chromium/tools/metrics/histograms/histogram_paths.py index 64721052a2c..4c65c102cfe 100644 --- a/chromium/tools/metrics/histograms/histogram_paths.py +++ b/chromium/tools/metrics/histograms/histogram_paths.py @@ -10,10 +10,17 @@ import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import path_util -HISTOGRAMS_XML = path_util.GetInputFile( - 'tools/metrics/histograms/histograms.xml') +ALL_XMLS_RELATIVE = [ + 'tools/metrics/histograms/enums.xml', + 'tools/metrics/histograms/histograms.xml' +] +ALL_XMLS = [path_util.GetInputFile(f) for f in ALL_XMLS_RELATIVE] +ENUMS_XML, HISTOGRAMS_XML = ALL_XMLS -ENUMS_XML = path_util.GetInputFile( - 'tools/metrics/histograms/enums.xml') - -ALL_XMLS = [HISTOGRAMS_XML, ENUMS_XML] +ALL_TEST_XMLS_RELATIVE = [ + 'tools/metrics/histograms/test_data/enums.xml', + 'tools/metrics/histograms/test_data/histograms.xml', + 'tools/metrics/histograms/test_data/ukm.xml', +] +ALL_TEST_XMLS = [path_util.GetInputFile(f) for f in ALL_TEST_XMLS_RELATIVE] +TEST_ENUMS_XML, TEST_HISTOGRAMS_XML, TEST_UKM_XML = ALL_TEST_XMLS \ No newline at end of file diff --git a/chromium/tools/metrics/histograms/histograms.xml b/chromium/tools/metrics/histograms/histograms.xml index befef0d7b45..eb2f41324d4 100644 --- a/chromium/tools/metrics/histograms/histograms.xml +++ b/chromium/tools/metrics/histograms/histograms.xml @@ -103,8 +103,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dmazzoni@chromium.org + jkim@igalia.com + chrome-a11y-core@google.com + + Tracks usage of ATK APIs on Linux Desktop. Recorded when ATK APIs that were + supposed to trigger AX mode enabled is called. The feature to turn on AX + mode through ATK APIs is disabled for now; see http://crbug.com/1086506. + + + + enum="BooleanEnabled" expires_after="2020-12-01"> evliu@google.com media-dev@chromium.org @@ -114,7 +126,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanEnabled" expires_after="2020-12-01"> evliu@google.com media-dev@chromium.org @@ -124,7 +136,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org kenjibaheux@google.com chrome-a11y-core@google.com @@ -135,7 +147,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> dmazzoni@chromium.org kenjibaheux@google.com dtseng@chromium.org @@ -160,6 +172,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as it is no longer needed for analysis. + dmazzoni@chromium.org kenjibaheux@google.com katie@chromium.org @@ -171,7 +186,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org chrome-a11y-core@google.com @@ -182,6 +197,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed M85 when no longer needed, as there is no longer a restriction on + having both features enabled. + anastasi@google.com dtseng@chromium.org chrome-a11y-core@google.com @@ -191,7 +210,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org chrome-a11y-core@google.com @@ -203,7 +222,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dmazzoni@chromium.org chrome-a11y-core@google.com @@ -213,7 +232,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> anastasi@google.com dtseng@chromium.org chrome-a11y-core@google.com @@ -224,7 +243,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CrosDictationToggleDictationMethod" expires_after="M90"> anastasi@google.com dtseng@chromium.org chrome-a11y-core@google.com @@ -232,7 +251,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dmazzoni@chromium.org katie@chromium.org chrome-a11y-core@google.com @@ -243,7 +262,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org chrome-a11y-core@google.com @@ -253,7 +272,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dmazzoni@chromium.org kenjibaheux@google.com chrome-a11y-core@google.com @@ -264,7 +283,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org kenjibaheux@google.com chrome-a11y-core@google.com @@ -275,7 +294,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> yawano@chromium.org lpalmaro@chromium.org chrome-a11y-core@google.com @@ -286,7 +305,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org kenjibaheux@google.com chrome-a11y-core@google.com @@ -297,7 +316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> dmazzoni@chromium.org katie@chromium.org chrome-a11y-core@google.com @@ -307,6 +326,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + katie@chromium.org + chrome-a11y-core@google.com + + Whether Select-to-Speak had background shading enabled when activated. + + + @@ -336,8 +364,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CrosSelectToSpeakStartSpeechMethod" expires_after="M90"> katie@chromium.org + chrome-a11y-core@google.com A user may activate Select-to-Speak by holding down 'search' and clicking or dragging a region with the mouse, or by highlighting an area and using @@ -346,8 +375,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CrosSelectToSpeakStateChangeEvent" expires_after="M90"> katie@chromium.org + chrome-a11y-core@google.com A user has tapped a button in the tray to change Select-to-Speak's state. The tap was interpreted by Select-to-Speak as a request to start selection, @@ -359,6 +389,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as it is no longer needed for analysis. + katie@chromium.org Whether Select-to-Speak had per-word highlighting enabled when activated. @@ -407,7 +440,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org kenjibaheux@google.com tengs@chromium.org @@ -419,8 +452,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> dmazzoni@chromium.org + anastasi@google.com chrome-a11y-core@google.com Whether the Chrome OS switch access is on (logged once 45 secs after @@ -430,6 +464,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed M85 when no longer needed, as there is no longer a restriction on + having both features enabled. + anastasi@google.com dtseng@chromium.org @@ -438,7 +476,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dmazzoni@chromium.org kenjibaheux@google.com chrome-a11y-core@google.com @@ -461,6 +499,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 because we don't need to keep tracking this. + katie@chromium.org dmazzoni@chromium.org @@ -474,6 +515,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 because we don't need to keep tracking this. + katie@chromium.org dmazzoni@chromium.org @@ -767,6 +811,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as this is stable and doesn't need to be tracked closely. + @@ -781,6 +828,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as this is stable and doesn't need to be tracked closely. + @@ -848,7 +898,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> evliu@google.com media-dev@chromium.org @@ -901,7 +951,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AccessibilityHighContrastColorScheme" expires_after="M88"> almaher@microsoft.com weblayoutdev@microsoft.com @@ -1446,7 +1496,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> johnidel@chromium.org jkarlin@chromium.org @@ -2076,7 +2126,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> peter@chromium.org Records whether notifications are enabled for Chrome, as the Android app, @@ -2335,6 +2385,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + boliu@chromium.org + src/base/android/OWNERS + + When ChildProcessConnection fallback is enabled (Android 10+ for sandboxed + services), this is recorded after the timeout (10s) of every + ChildProcessConnection launch. Record whether fallback operation is + performed. + + + @@ -2634,7 +2696,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ContactsPickerDialogAction" expires_after="2020-11-29"> finnur@chromium.org twellington@chromium.org @@ -2644,7 +2706,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ContactsPickerProperties" expires_after="2020-11-29"> finnur@chromium.org twellington@chromium.org @@ -2654,7 +2716,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> finnur@chromium.org twellington@chromium.org @@ -2699,6 +2761,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + wylieb@chromium.org + twellington@chromium.org + chrome-android-app@chromium.org + + Records if Chrome altered a google homepage/search request to include the + dark theme. Recorded only when navigating to google or google search. + Histogram total count will be the total number of requests to the google + hompage or google search. + + + twellington@chromium.org @@ -2729,8 +2804,91 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + Records the current default browser state when the primer dialog prompting + users to change their default browser is shown. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + Records the current default browser state if the activity receives an intent + through the disambiguation sheet that is displayed in response to the + default browser promo. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + The final default browser state (outcome) after the user has been prompted + to set Chrome as the default when no browser is set as the default + initially. Recorded when the system UI prompting the user to change their + default is dismissed. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + The final default browser state (outcome) after the user has been prompted + to set Chrome as the default when another browser is set as the default + initially. Recorded when the system UI prompting the user to change their + default is dismissed. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + Records the default browser state when the Android Q+ role manager dialog is + shown. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + Records which button click led to the default browser promo dialog being + dismissed for dialogs shown when there is currently no default browser set. + + + + + lazzzis@google.org + twellington@chromium.org + pavely@chromium.org + + Records which button click led to the default browser promo dialog being + dismissed for dialogs shown when another browser is set as the default. + + + + expires_after="2020-11-29"> twellington@chromium.org tedchoc@chromium.org chrome-android-app@chromium.org @@ -2742,7 +2900,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> twellington@chromium.org tedchoc@chromium.org chrome-android-app@chromium.org @@ -2898,7 +3056,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="Android.DownloadManager.Menu.Actions" expires_after="2020-11-22"> dtrainor@chromium.org clank-downloads@google.com The count of Download Home top level menu actions taken. @@ -3087,7 +3245,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> twellington@chromium.org ianwen@chromium.org clank-downloads@google.com @@ -3177,12 +3335,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeatureModuleAvailabilityStatus" expires_after="2021-01-31"> - tiborg@chromium.org agrieve@chromium.org + fredmello@chromium.org + tiborg@chromium.org + wnwen@chromium.org Availability status for each dynamic feature module. Reported once per Chrome start. This metric's purpose is to measure a feature module's install @@ -3191,13 +3351,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-01-31"> + agrieve@chromium.org + fredmello@chromium.org tiborg@chromium.org wnwen@chromium.org - agrieve@chromium.org Duration of successful installs for each dynamic feature module. Only contains install durations for modules first requested *before* Chrome @@ -3207,7 +3368,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-01-31"> Removed 2019-09 in favour of Android.FeatureModules.CachedAwakeInstallDuration. @@ -3215,9 +3376,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + agrieve@chromium.org + fredmello@chromium.org tiborg@chromium.org wnwen@chromium.org - agrieve@chromium.org Duration of successful installs for each dynamic feature module. Only contains install durations for modules first requested *before* Chrome @@ -3226,13 +3388,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeatureModuleInstallingStatus" expires_after="2021-01-31"> - tiborg@chromium.org agrieve@chromium.org fredmello@chromium.org + tiborg@chromium.org + wnwen@chromium.org Install status counter for each dynamic feature module. Recorded during on-demand and deferred installs. @@ -3240,12 +3403,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeatureModuleInstallStatus" expires_after="2021-01-31"> - tiborg@chromium.org agrieve@chromium.org + fredmello@chromium.org + tiborg@chromium.org + wnwen@chromium.org Install status for each dynamic feature module. Recorded after the installation has finished. @@ -3253,10 +3418,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wnwen@chromium.org + expires_after="2021-01-31"> + agrieve@chromium.org fredmello@chromium.org tiborg@chromium.org + wnwen@chromium.org Length of time during startup used by module framework code. This is our metric to improve and used to guard against regressions. @@ -3265,13 +3431,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-31"> + agrieve@chromium.org + fredmello@chromium.org tiborg@chromium.org wnwen@chromium.org - agrieve@chromium.org Duration of successful installs for each dynamic feature module. Only contains install durations of modules first requested *after* Chrome started @@ -3281,7 +3448,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-01-31"> Removed 2019-09 in favour of Android.FeatureModules.UncachedAwakeInstallDuration. @@ -3289,9 +3456,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + agrieve@chromium.org + fredmello@chromium.org tiborg@chromium.org wnwen@chromium.org - agrieve@chromium.org Duration of successful installs for each dynamic feature module. Only contains install durations of modules first requested *after* Chrome started @@ -3483,7 +3651,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> + chrome-language@google.com perrier@chromium.org megjablon@chromium.org @@ -3493,7 +3662,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> + chrome-language@google.com tiborg@chromium.org heamy@chromium.org @@ -3727,7 +3897,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3740,7 +3910,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3752,7 +3922,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3765,7 +3935,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3778,7 +3948,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3789,7 +3959,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundTaskId" expires_after="2021-06-15"> mheikal@chromium.org hanxi@chromium.org hnakashima@chromium.org @@ -3824,7 +3994,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanRequested" expires_after="2021-06-01"> mheikal@chromium.org hnakashima@chromium.org hanxi@chromium.org @@ -3835,7 +4005,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> finkm@chromium.org Counts impressions of the NTP on Android. It also counts potential @@ -4345,7 +4515,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OmniboxSearchEngineType" expires_after="2020-10-01"> fgorski@chromium.org lzbylut@chromium.org @@ -4355,20 +4525,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AndroidSearchEngineChoiceEvents" expires_after="2020-10-01"> + wylieb@chromium.org fgorski@chromium.org - lzbylut@chromium.org Counts occurences of various events related to Search Engine Choice feature. - fgorski@chromium.org - pavely@chromium.org + enum="AndroidSearchEngineChoiceEventsV2" expires_after="2020-10-01"> wylieb@chromium.org - lzbylut@chromium.org + pavely@chromium.org + fgorski@chromium.org Counts occurences of various events related to Search Engine Choice V2 feature. @@ -4376,9 +4545,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OmniboxSearchEngineType" expires_after="2020-10-01"> + wylieb@chromium.org fgorski@chromium.org - lzbylut@chromium.org The type of the search engine used before Search Engine Choice flow was presented. @@ -4386,7 +4555,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AndroidSeccompSandboxStatus" expires_after="M99"> peter@chromium.org rsesek@chromium.org @@ -4409,7 +4578,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AndroidSeccompSandboxStatus" expires_after="2021-06-01"> rsesek@chromium.org Reports the status of the seccomp-bpf sandbox in renderer processes. @@ -4419,7 +4588,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M99"> rsesek@chromium.org Reports the level of kernel support for the seccomp-bpf sandbox using the @@ -4793,7 +4962,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-09"> michaelbai@chromium.org boliu@chromium.org @@ -4803,7 +4972,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-09"> michaelbai@chromium.org boliu@chromium.org @@ -4813,7 +4982,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-09"> michaelbai@chromium.org boliu@chromium.org @@ -4823,7 +4992,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-09"> michaelbai@chromium.org boliu@chromium.org @@ -4834,7 +5003,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-14"> timvolodine@chromium.org ntfschr@chromium.org Records the invocation count of WebView callbacks. @@ -4899,6 +5068,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ntfschr@chromium.org + hazems@chromium.org + src/android_webview/OWNERS + + Records the user's interaction with crashes in the developer UI's crash + list. Specifically, this tracks how the user interacts with the "upload + this crash report" or the "file bug report" buttons and + possible subsequent dialogs. Since these two buttons are connected (the user + must upload a crash before they can file a bug report), we track interaction + with both in the same histogram. This is recorded for each button press in + the crash list and is not recorded if the user does not interact with any + crashes. + + + ntfschr@chromium.org @@ -4994,6 +5180,24 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed May 2020 because this only captures sessions up to 10 seconds long. + Use Android.WebView.DevUi.SessionDuration2 instead, which captures sessions + up to an hour. + + + + ntfschr@chromium.org + hazems@chromium.org + src/android_webview/OWNERS + + Records the time spent using a specific tool, from creation to destruction. + + + + @@ -5020,7 +5224,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-09"> michaelbai@chromium.org boliu@chromium.org @@ -5053,6 +5257,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + vasilyt@chromium.org + boliu@chromium.org + + Tracks invalidate and frame submission status for WebView hardware draw. + Result is enum that represent three flags: did we called invalidate this + frame, did renderer submitted compositor frame and whether DrawParams from + Android HWUI changed. This is logged once per WebView draw functor call. + + + ntfschr@chromium.org @@ -5136,6 +5352,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + hazems@chromium.org + ntfschr@chromium.org + src/android_webview/OWNERS + + Records the time interval between when a histogram is recorded in a + non-embedded WebView process and when it's actually sent to the UMA API in + an embedded WebView. This is recorded during WebView startup for each + histogram retrieved and replayed successfully from WebView non-embedded + metrics service. + + + ntfschr@chromium.org @@ -5148,6 +5378,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + hazems@chromium.org + ntfschr@chromium.org + src/android_webview/OWNERS + + Records whether metrics parsing from file in non-embedded histogram service + was successful. It's recorded during service startup by adding it to records + list. It captures the most recent file parsing result for the last service + launch before the client connects to the service. + + + + + hazems@chromium.org + ntfschr@chromium.org + src/android_webview/OWNERS + + Recorded by the non-embedded histogram service if it's unable to return + histograms. This is always recorded when a client connects to retrieve + histograms. + + + ntfschr@chromium.org @@ -5161,7 +5418,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebViewClientErrorCode" expires_after="2021-04-11"> timvolodine@chromium.org tobiasjs@chromium.org ntfschr@chromium.org @@ -5173,7 +5430,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="HttpResponseCode" expires_after="2021-04-11"> timvolodine@chromium.org tobiasjs@chromium.org ntfschr@chromium.org @@ -5326,7 +5583,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-10"> torne@chromium.org src/android_webview/OWNERS @@ -5337,7 +5594,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-10"> torne@chromium.org src/android_webview/OWNERS @@ -5539,6 +5796,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 06/2020. Mostly tracked with Snackbar.Shown. + dtrainor@chromium.org When a user closes a tab an undo toast will popup on certain devices giving @@ -5637,6 +5897,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + brandm@microsoft.com + mkwst@chromium.org + + Records if various requests to access storage are allowed or not and if the + Storage Access API unblocked the request or not. Recorded whenever a + decision to access storage like getting/setting cookies or opening an + indexeddb connection is made in CookieSettings. + + + + + brandm@microsoft.com + mkwst@chromium.org + + Records if a generated grant was implicit or explicit at the time it was + created. + + + + + brandm@microsoft.com + mkwst@chromium.org + + Records requests to use document.requestStorageAccess and reasons the + request may be approved or rejected. + + + dominickn@chromium.org @@ -6170,7 +6462,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + tapted@chromium.org benwells@chromium.org @@ -6268,6 +6560,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + anasalazar@chromium.org + tbarzic@chromium.org + + Relative smoothness of animations of entering or exiting the cardified state + in the apps grid. 100% represents ideally smooth 60 frames per second. 50% + represents only 30 frames per second is achieved during the animations. 0% + should not happen. This metric is recorded one time per apps grid page each + time we enter or exit cardified state in the apps grid. + + + tby@chromium.org @@ -6280,7 +6588,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanEmpty" expires_after="2020-12-06"> tby@chromium.org wrong@chromium.org jiameng@chromium.org @@ -6292,7 +6600,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="Boolean" expires_after="2020-12-06"> tby@chromium.org wrong@chromium.org jiameng@chromium.org @@ -6303,7 +6611,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="DriveFileError" expires_after="2020-12-06"> tby@chromium.org wrong@chromium.org jiameng@chromium.org @@ -6402,6 +6710,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jiameng@chromium.org + tby@chromium.org + + The latency of a search in the OsSettingsProvider. Recorded each time a + search is completed, even if it returns no results. Not recorded if the + query is too short to perform a search at all. Chrome OS only. + + + thanhdng@chromium.org @@ -6421,6 +6740,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + wrong@chromium.org + jiameng@chromium.org + + Whether or not the user has enabled Suggested Content in the launcher. This + is logged once per UMA upload, and only for any user that has the Suggested + Content toggle feature flag enabled. + + + tby@chromium.org @@ -6487,7 +6817,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Emitted after an impression, if the user then closes the launcher or moves to a different view without launching any search result. This is emitted once per abandon, per displayed result. Records the displayed result's type. - See Apps.AppList.UserEvent.Impression for more details. + See Apps.AppList.UserEvent.TypeImpression for more details. This metric is completed by a histogram suffix describing which UI surface the results are recorded from. @@ -6525,7 +6855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. jiameng@chromium.org Emitted after an impression, if the user launches a result. Records the type - of the launched result. See Apps.AppList.UserEvent.Impression for more + of the launched result. See Apps.AppList.UserEvent.TypeImpression for more details. This metric is completed by a histogram suffix describing which UI surface @@ -6534,7 +6864,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6545,7 +6875,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2020-12-06"> tby@chromium.org edimitriadis@chromium.org @@ -6555,7 +6885,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ZeroStateResultType" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6565,7 +6895,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="score" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6577,7 +6907,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="score" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6589,7 +6919,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="score" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6601,7 +6931,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanClicked" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6613,7 +6943,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="Boolean" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6624,7 +6954,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AppListSearchResult" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6650,7 +6980,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="position" expires_after="2020-12-06"> wrong@chromium.org tby@chromium.org jiameng@chromium.org @@ -6756,7 +7086,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> mmourgos@chromium.org @@ -6797,7 +7127,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> calamity@chromium.org The amount of time it takes to build the app list UI. This is logged each @@ -6854,7 +7184,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> wutao@chromium.org Relative smoothness of animations of showing and hiding app list folder. @@ -6956,7 +7286,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AppListPageSwitcherSource" expires_after="2020-12-13"> newcomer@chromium.org @@ -7052,7 +7382,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tby@chromium.org jiameng@chromium.org @@ -7120,7 +7450,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> calamity@chromium.org @@ -7132,6 +7462,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-05. Not needed any longer. + calamity@chromium.org The minimum number of arrow keys a user would need to press to navigate to @@ -7140,7 +7473,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AppListInternalAppName" expires_after="2020-12-13"> wutao@chromium.org The app list search result of an internal app that was opened by the user. @@ -7149,7 +7482,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AppListInternalAppName" expires_after="2020-12-13"> wutao@chromium.org The app list search result of an internal app that was shown to the user. @@ -7204,7 +7537,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> newcomer@chromium.org mmourgos@chromium.org @@ -7251,7 +7584,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> newcomer@chromium.org @@ -7377,7 +7710,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebAppCreateShortcutIconLinuxResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7386,7 +7719,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebAppCreateShortcutLinuxResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7395,7 +7728,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebAppCreateShortcutMacResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7404,7 +7737,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dominickn@chromium.org @@ -7417,7 +7750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7427,7 +7760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FileHandlerRegistrationLinuxResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7436,7 +7769,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FileHandlerRegistrationMacResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7445,7 +7778,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FileHandlerRegistrationWinResult" expires_after="M90"> phillis@chromium.org cmumford@chromium.org @@ -7470,7 +7803,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7483,7 +7816,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="BooleanSuccess" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7495,7 +7828,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7506,7 +7839,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7517,7 +7850,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7527,7 +7860,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7537,7 +7870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenDataItemOperationResult" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7547,7 +7880,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7558,7 +7891,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenNoteAppStatusOnLaunch" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7570,10 +7903,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org - tbuckley@chromium.org The amount of time a lock screen enabled app window spent in a certain state during the app window activity. The state to which the histogram refers to @@ -7583,7 +7915,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenActionAvailability" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7593,7 +7925,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenAppSessionState" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7603,7 +7935,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7614,7 +7946,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7626,7 +7958,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NewLockScreenNoteRequestType" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7635,7 +7967,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenAppUnloadStatus" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7649,7 +7981,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7659,7 +7991,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockScreenNoteTakingExitReason" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7669,7 +8001,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7681,7 +8013,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7692,7 +8024,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7716,7 +8048,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AppListSearchResultDisplayType" expires_after="2020-11-22"> jiameng@chromium.org thanhdng@chromium.org tby@chromium.org @@ -7727,7 +8059,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NoteTakingAppLaunchResult" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7737,7 +8069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NoteTakingAppLaunchResult" expires_after="2021-06-01"> dstockwell@chromium.org tbuckley@chromium.org @@ -7795,7 +8127,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> @@ -7923,7 +8255,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-06"> @@ -7948,6 +8280,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + There was only one valid value starting in M69 and code to record the values + was removed in M85. + stevenjb@chromium.org The type of app window opened (through the chrome.app.window API). @@ -7963,13 +8299,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + elijahtaylor@google.com shihuis@google.com The time elapsed for booting up the ARC instance. - + elijahtaylor@google.com shihuis@google.com @@ -7991,7 +8327,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> robsc@chromium.org napper@chromium.org @@ -8102,7 +8438,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CompanionLibraryApisList" expires_after="M88"> sstan@google.com bartfab@chromium.org giovax@google.com @@ -8249,7 +8585,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> maajid@google.com shaochuan@google.com shihuis@google.com @@ -8263,7 +8599,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> maajid@google.com shaochuan@google.com shihuis@google.com @@ -8275,7 +8611,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> maajid@google.com shaochuan@google.com shihuis@google.com @@ -8286,7 +8622,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> maajid@google.com shaochuan@google.com shihuis@google.com @@ -8403,7 +8739,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + yhanada@chromium.org tetsui@chromium.org @@ -8465,14 +8801,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> elijahtaylor@google.com shihuis@google.com The memory size freed by each low memory kill event. + expires_after="2020-12-20"> elijahtaylor@google.com shihuis@google.com The elapsed time to last low memory kill event. @@ -8499,7 +8835,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> elijahtaylor@google.com shihuis@google.com @@ -8514,28 +8850,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> elijahtaylor@google.com shihuis@google.com Arc OptIn action taken by user. + expires_after="2020-11-15"> elijahtaylor@google.com shihuis@google.com Arc OptIn cancelation reason. + expires_after="2020-12-13"> elijahtaylor@google.com khmel@google.com Arc OptIn flow result. + expires_after="2020-12-20"> elijahtaylor@google.com Arc Silent Auth Code status. This status is set during the ARC OptIn flow. @@ -8552,7 +8888,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcOptInSilentAuthCode" expires_after="2020-11-29"> khmel@google.com Arc Silent Auth Code status. This status is set during the minting of an @@ -8603,7 +8939,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> hejq@chromium.org Time between sending an Play Store app discovery request and the storing @@ -8621,7 +8957,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> hejq@chromium.org The total number of returned apps of a Play Store app discovery query. @@ -8657,7 +8993,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> bmgordon@chromium.org jschettler@chromium.org @@ -8667,7 +9003,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> bmgordon@chromium.org jschettler@chromium.org @@ -8678,7 +9014,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-01-01"> bmgordon@chromium.org jschettler@chromium.org @@ -8689,7 +9025,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> bmgordon@chromium.org jschettler@chromium.org @@ -8699,14 +9035,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> bmgordon@chromium.org jschettler@chromium.org Time taken for ARC to render a PDF for print preview. + enum="ArcProvisioningResult" expires_after="2020-12-13"> alexchau@google.com @@ -8741,7 +9077,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> khmel@google.com @@ -8778,7 +9114,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> niwa@google.com yusukes@google.com @@ -8875,10 +9211,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - menegola@google.com - escordeiro@google.com - unichromeos-eng@google.com + enum="ArcSupervisionTransitionResult" expires_after="2021-06-02"> + giovax@chromium.org + arc-commercial@google.com The result (success or the type of failure) of ARC supervision transition events. @@ -8886,11 +9221,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - brunoad@google.com - menegola@google.com - escordeiro@google.com - unichromeos-eng@google.com + units="ms" expires_after="2021-06-02"> + giovax@chromium.org + arc-commercial@google.com Elapsed time for a successful supervision transition, during which the supervision transition screen was displayed. @@ -8898,11 +9231,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - brunoad@google.com - menegola@google.com - escordeiro@google.com - unichromeos-eng@google.com + enum="BooleanSuccess" expires_after="2021-06-02"> + giovax@chromium.org + arc-commercial@google.com Whether supervision transition screen exited due to a successful transition. @@ -8952,7 +9283,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> jhorwich@chromium.org elijahtaylor@chromium.org shihuis@google.com @@ -9261,7 +9592,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + afakhry@chromium.org tclaiborne@chromium.org @@ -9272,8 +9604,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org Emitted when the active desk is changed to specify the source of this action, i.e. whether due to new-desk shortcut, desk removed, window @@ -9282,8 +9615,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="DesksMoveWindowFromActiveDeskSource" expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org Emitted when a window is moved from the current active desk to another desk. Specifies the source of this action, i.e. whether to window drag-and-drop, @@ -9306,7 +9640,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org tclaiborne@chromium.org @@ -9317,8 +9651,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org The number of windows on the first desk. Emitted when a desk is removed, or a window is moved to another desk. @@ -9326,8 +9661,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org The number of windows on the second desk. Emitted when a desk is removed, or a window is moved to another desk. @@ -9335,8 +9671,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org The number of windows on the third desk. Emitted when a desk is removed, or a window is moved to another desk. @@ -9344,8 +9681,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org + tclaiborne@chromium.org The number of windows on the fourth desk. Emitted when a desk is removed, or a window is moved to another desk. @@ -9355,6 +9693,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. afakhry@chromium.org + tclaiborne@chromium.org Emitted when a virtual desk is removed to specify the source of this remove operation, i.e. whether from the close-desk button, or keyboard shortcut. @@ -9362,8 +9701,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-01"> tbuckley@chromium.org + tclaiborne@chromium.org The number of seconds between task window activations triggered by users clicking or tapping on a window, as recorded by the Desktop_SwitchTask user @@ -9581,7 +9921,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> andrewxu@chromium.org tbarzic@chromium.org Gestures supported by the in-app hotseat. @@ -9603,7 +9943,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> anasalazar@chromium.org newcomer@chromium.org @@ -9702,8 +10042,34 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + tellier@google.com + cros-oac@google.com + + The number of incorrect passwords entered in Chrome OS login/lock screen + until the user gives up (user signs out the current session or shuts down + the device). + + + + + tellier@google.com + cros-oac@google.com + + The number of incorrect passwords entered in Chrome OS login/lock screen + until a successful attempt. + + + + expires_after="2020-05-27"> + + Removed 27/05/2020, the histogram has been revised as we do not count pod + switching anymore and the metric was not recorded on shutdown. New + histogram: Ash.Login.Lock.NbPasswordAttempts.UntilFailure + kerrnel@google.com The number of incorrect password entered in ChromeOS login/lock screen until @@ -9713,7 +10079,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-05-27"> + + Removed 27/05/2020, the histogram has been revised as we did not count + successful authentification on login screen and successful authentification + on lock screen wasn't recorded due to a bug. New histogram: + Ash.Login.Lock.NbPasswordAttempts.UntilSuccess + kerrnel@google.com The number of incorrect password entered in ChromeOS login/lock screen until @@ -9751,8 +10123,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + raleksandrov@google.com + cros-oac@google.com + What shelf buttons or trays are clicked in the OOBE. + + + units="%" expires_after="2021-05-31"> @@ -9800,7 +10179,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org The selected Night Light schedule type. Emitted when the user changes the @@ -9809,7 +10188,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AshNightLightTemperatureRanges" expires_after="2020-12-06"> afakhry@chromium.org The ranges in which the selected values of the Night Light color temperature @@ -9819,7 +10198,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jamescook@chromium.org An upper bound on the number of windows visible to the user on the primary @@ -9871,7 +10250,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-12-31"> sammiequon@chromium.org tclaiborne@chromium.org @@ -9881,7 +10260,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-12-31"> sammiequon@chromium.org tclaiborne@chromium.org @@ -9937,44 +10316,52 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - edcourtney@chromium.org + takise@chromium.org + linben@chromium.org How long Android PIP was used for, upon ending the session. - - edcourtney@chromium.org + + takise@chromium.org + linben@chromium.org Various individiual Picture-in-picture related events. See AshPipEvents. - - edcourtney@chromium.org + + takise@chromium.org + linben@chromium.org Area of a Picture-in-picture window when ending a free-resize, as a percentage of the area it takes up on the display it is on. - - edcourtney@chromium.org + + takise@chromium.org + linben@chromium.org Initial area of a Picture-in-picture window when beginning a free-resize, as a percentage of the area it takes up on the display it is on. - - edcourtney@chromium.org + + takise@chromium.org + linben@chromium.org The position that a Picture-in-picture window was moved to by a user drag. + units="ms" expires_after="2020-11-15"> zentaro@chromium.org baileyberro@chromium.org @@ -9998,7 +10385,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-26"> + oshima@chromium.org wutao@chromium.org Relative smoothness of animations when rotating screen. 100% represents @@ -10043,7 +10431,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> anasalazar@google.com mmourgos@google.com @@ -10053,7 +10441,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> anasalazar@google.com mmourgos@google.com @@ -10063,7 +10451,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> anasalazar@google.com mmourgos@google.com @@ -10247,7 +10635,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> kuscher@google.com The current state of the shelf (alignment) tracked over time by logging on a @@ -10259,8 +10647,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + kuscher@google.com + tbarzic@chromium.org The current state of the shelf (alignment) when the shelf launcher is used to launch an app/window/etc, this is used instead of log in to give data on @@ -10300,6 +10691,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + sammiequon@chromium.org + xdai@chromium.org + + Relative smoothness of animation when releasing the split view divider, + recorded when the animation completes. 100% represents ideally smooth 60 + frames per second. + + + @@ -10371,7 +10773,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SwipeHomeToOverviewResult" expires_after="2020-11-29"> andrewxu@chromium.org tbarzic@chromium.org @@ -10420,7 +10822,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> oshima@chromium.org sammiequon@chromium.org @@ -10431,7 +10833,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> oshima@chromium.org sammiequon@chromium.org @@ -10559,7 +10961,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> girard@chromium.org The length of time that TouchView is active, for each activation. @@ -10567,13 +10969,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> girard@chromium.org The proportion of time spent in TouchView during a session. + expires_after="2020-11-29"> girard@chromium.org The total time that TouchView is active during a session. @@ -10585,7 +10987,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> girard@chromium.org The total time that TouchView is not active during a session. @@ -10719,7 +11121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> wutao@chromium.org Relative smoothness of cross fade animation when setting window bounds. 100% @@ -10730,6 +11132,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + sammiequon@chromium.org + xdai@chromium.org + + When dragging a maximized window, the window will shrink to restore bounds. + Dragging the window back to the top of the screen will expand the window. + This histogram will be recorded to measure the smoothenss of the expand + animation. 100% represents ideally smooth 60 frames per second. 50% + represents when only 30 frames per second is achieved during the animations. + 0% should not happen. + + + + + sammiequon@chromium.org + xdai@chromium.org + + When dragging a maximized window, the window will shrink to restore bounds. + This histogram will be recorded to measure the smoothness of the shrink + animation. 100% represents ideally smooth 60 frames per second. 50% + represents when only 30 frames per second is achieved during the animations. + 0% should not happen. + + + wutao@chromium.org @@ -10770,7 +11199,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> afakhry@chromium.org tclaiborne@chromium.org @@ -11060,6 +11489,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yichenz@chromium.org + chromeos-wmp@google.com + + Presentation time in ms when a tab is dragged in clamshell mode. Each time + the tab is dragged within a display, the time it takes to present the new + frame on screen is recorded. + + + + + yichenz@chromium.org + chromeos-wmp@google.com + + Maximum presentation time recorded during the tab dragging session. + + + xiaohuic@chromium.org @@ -11106,7 +11557,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> xiaohuic@chromium.org meilinw@chromium.org @@ -11124,8 +11575,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> updowndota@chromium.org + croissant-eng@chromium.org Counts the number of times user click the hotword enable notification to open Assistant settings. @@ -11162,7 +11614,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanClicked" expires_after="2020-11-15"> xiaohuic@chromium.org dmblack@google.com croissant-eng@chromium.org @@ -11175,7 +11627,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ProactiveSuggestionsCategory" expires_after="2020-11-15"> xiaohuic@chromium.org dmblack@google.com croissant-eng@chromium.org @@ -11186,7 +11638,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="index" expires_after="2020-11-15"> xiaohuic@chromium.org dmblack@google.com croissant-eng@chromium.org @@ -11197,7 +11649,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ProactiveSuggestionsVeId" expires_after="2020-11-15"> xiaohuic@chromium.org dmblack@google.com croissant-eng@chromium.org @@ -11305,7 +11757,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ProactiveSuggestionsShowAttempt" expires_after="2020-11-15"> xiaohuic@chromium.org dmblack@google.com croissant-eng@chromium.org @@ -11539,21 +11991,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> xiaohuic@chromium.org meilinw@chromium.org Number of queries fired for each entry point. + expires_after="2020-12-06"> xiaohuic@chromium.org meilinw@chromium.org The Assistant query response type. + expires_after="2020-11-29"> xiaohuic@chromium.org meilinw@chromium.org @@ -11591,7 +12043,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-14"> meilinw@chromium.org xiaohuic@chromium.org @@ -11601,7 +12053,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> wylieb@chromium.org fgorski@chromium.org @@ -11801,6 +12253,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -12115,7 +12570,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + pauljensen@chromium.org mef@chromium.org @@ -12496,7 +12951,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> pauljensen@chromium.org mef@chromium.org @@ -12524,7 +12979,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AuthPolicyErrorType" expires_after="2020-12-13"> fsandrade@chromium.org tomdobro@chromium.org @@ -12540,7 +12995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AuthPolicyErrorType" expires_after="M88"> fsandrade@chromium.org tomdobro@chromium.org @@ -12549,7 +13004,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AuthPolicyErrorType" expires_after="2020-12-13"> fsandrade@chromium.org tomdobro@chromium.org @@ -12559,7 +13014,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AuthPolicyErrorType" expires_after="M88"> fsandrade@chromium.org tomdobro@chromium.org @@ -12569,7 +13024,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> fsandrade@chromium.org tomdobro@chromium.org @@ -12653,7 +13108,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> fsandrade@chromium.org tomdobro@chromium.org @@ -12663,7 +13118,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> fsandrade@chromium.org tomdobro@chromium.org @@ -12683,8 +13138,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + fsandrade@chromium.org tomdobro@chromium.org @@ -12695,7 +13149,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> fsandrade@chromium.org tomdobro@chromium.org @@ -12706,7 +13160,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> fsandrade@chromium.org tomdobro@chromium.org @@ -13256,8 +13710,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wuandy@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of unverified autofill addresses deleted because they have not been used for a long time, and are not used as billing addresses of valid @@ -13266,8 +13721,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of address suggestions not shown in the Autofill popup because they have not been used recently enough. Note that suppression only applies @@ -13277,11 +13733,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + koerber@google.com + battre@chromium.org + + Logs the overall status of a profile import attempt on form submission time. + + + koerber@google.com - battre@google.com + battre@chromium.org Each country can require different fields (ZIP code, state, city) to exist for an address to be valid. This histogram logs which mandatory fields were @@ -13292,7 +13757,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. koerber@google.com - battre@google.com + battre@chromium.org Logs whether the individual requirements for importing an address profile are met at form submission time. @@ -13300,7 +13765,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -13308,6 +13773,53 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + schwering@google.com + chrome-autofill@google.com + + Records at submission time for each autofilled field with autocomplete != + off whether the user edited the autofilled field value or not. + + + + + schwering@google.com + chrome-autofill@google.com + + Records for each submitted form whether the user accepted the suggestion to + fill values and the triggering field has autocomplete != off. This is + counted as 'yes' if the user accepted such a suggestion at any time, + regardless whether other suggestions were ignored or whether the accepted + suggestion was reverted afterwards. + + + + + schwering@google.com + chrome-autofill@google.com + + Records at submission time for each autofilled field with autocomplete = off + whether the user edited the autofilled field value or not. + + + + + schwering@google.com + chrome-autofill@google.com + + Records for each submitted form whether the user accepted the suggestion to + fill values and the triggering field has autocomplete = off. This is counted + as 'yes' if the user accepted such a suggestion at any time, regardless + whether other suggestions were ignored or whether the accepted suggestion + was reverted afterwards. + + + michaelbai@chromium.org @@ -13610,7 +14122,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillCardUploadDecisionMetric" expires_after="2021-05-31"> jsaul@google.com siyua@chromium.org payments-autofill-team@google.com @@ -13670,8 +14182,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + enum="AutofillCreditCardInfoBar" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The relative frequency with which users accept, deny, or ignore the Autofill credit card assisted filling infobar prompt. @@ -13679,7 +14192,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillCreditCardInfoBar" expires_after="M95"> battre@chromium.org jsaul@google.com chrome-autofill@google.com @@ -13690,8 +14203,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wuandy@chromium.org + expires_after="M95"> + battre@chromium.org + jsaul@google.com + chrome-autofill@google.com The number of credit card deleted during a major version upgrade because they have not been used recently enough and are expired. @@ -13699,8 +14214,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wuandy@chromium.org + expires_after="M95"> + battre@chromium.org + jsaul@google.com + chrome-autofill@google.com The number of credit card suggestions not shown in the Autofill popup because they have not been used recently enough and are expired. Note that @@ -13724,16 +14241,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillCreditCardUploadFeedback" expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Records when credit card upload provides feedback on its status to the user. - sebsg@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Logs the number of days that have passed since the credit card was last used. @@ -13741,8 +14260,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Logged at the time of autofill address use, this histogram captures the number of days that have passed since the address was last used. I.e., the @@ -13751,8 +14271,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com @@ -13763,8 +14284,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com This histogram captures the number of days that have passed since each stored address profile belonging to a given Chrome Profile was last used. @@ -13787,7 +14309,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillDeveloperEngagement" expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -13819,17 +14341,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + kolos@chromium.org - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Number of fields in a form that Autofill encounters. - + - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Predicted and actual form field type. This is a computed sparse histogram where the value is ((predicted << 16)| actual). Predicted and actual @@ -13838,11 +14362,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillFieldPredictionQuality" expires_after="M95"> - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Aggregate Autofill field-type prediction outcomes. See https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the @@ -13851,11 +14376,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillFieldPredictionQualityByFieldType" expires_after="M95"> - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Autofill field-type prediction outcomes, broken down by field type. See https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the @@ -13864,7 +14390,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -13874,7 +14400,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -13884,7 +14410,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -13893,16 +14419,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - isherman@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Time elapsed between form load and form submission, for a non-autofilled form. + + schwering@google.com + chrome-autofill@google.com + + Records how forms change dynamically: whether the form signature changed, a + field's signature changed, or a field was newly created. The reference + period starts when Autofill parses the form for the first time, and ends + when a navigation is committed or the frame is destructed. + +
+ Every form is observed for dynamic changes from the time it was first parsed + by Autofill until either a navigation has been committed or the frame is + destructed or the form's observation had to be flushed prematurely (the form + observations are managed in an LRU cache of maximum size 32, with least + recently parsed forms being discarded first). At the end of the lifetime, a + three-bit number is sent: the lowest bit is 1 iff a field was changed during + the form's lifetime (its signature changed); the second bit is 1 iff a field + was added (its renderer ID is new to the form); the highest bit is 1 iff the + form was changed (its signature changed). +
+
+ + expires_after="M95"> battre@chromium.org jsaul@google.com @@ -13923,7 +14473,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> jsaul@google.com battre@chromium.org @@ -14022,13 +14572,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The autofill state related to a submitted form. + enum="BooleanAutofillFillAfterSuggestion" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14046,7 +14597,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14067,7 +14618,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillParsedAsType" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14082,7 +14633,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillSubmissionAfterFill" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14095,7 +14646,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillSuggestionAfterInteraction" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14135,8 +14686,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - parastoog@chromium.org + enum="BooleanHiddenPresentationalAutofilled" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Logs when a hidden or presentational field is autofilled. The hidden or presentational fields are only autofilled for 'select' fields to support @@ -14146,6 +14698,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed after M77. + mathp@chromium.org Tracks whether Autofill was able to create the ICU collator successfully. @@ -14153,8 +14708,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Tracks whether or not autofill suppressed sending votes or calculating quality metrics because the profile data was marked as invalid. Logged @@ -14164,8 +14720,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Tracks whether or not autofill suppressed offering an autofill suggestion because the profile data was marked as invalid. Logged during autofill @@ -14204,6 +14761,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete after M77. + mahmadi@chromium.org [iOS] Measures the frequency of button presses on the iOS Autofill keyboard @@ -14213,6 +14773,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete after M85. + mahmadi@chromium.org [iOS] Measures the frequency of button presses on the iOS Autofill keyboard @@ -14221,7 +14784,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillFillingAcceptance" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14234,7 +14797,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillFillingAssistance" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14250,7 +14813,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillFillingCorrectness" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14261,7 +14824,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillFillingReadiness" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14276,7 +14839,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillSubmission" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14292,7 +14855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAutofillSubmission" expires_after="2021-07-01"> battre@chromium.org kolos@chromium.org nepper@chromium.org @@ -14309,8 +14872,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillLocalCardMigrationBubbleOffer" expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record events related to bubble showing. Logged when bubble is requested or is actually shown to users. @@ -14328,13 +14892,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillLocalCardMigrationBubbleUserInteraction" + expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record how bubble is closed by different user interactions. + enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2021-05-01"> sujiezhu@google.com siyua@chromium.org jsaul@google.com @@ -14345,39 +14911,44 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record duration of the local card migration dialog being visible to users. + enum="AutofillLocalCardMigrationDialogOffer" expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record events related to showing the local card migration dialog. + enum="AutofillLocalCardMigrationDialogUserInteraction" + expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record user interactions related to local card migration dialog. + units="%" expires_after="2021-05-01"> siyua@chromium.org + jsaul@google.com Record the percentage of cards selected by the user in the migration dialog. + enum="LocalCardMigrationPrompt" expires_after="2021-05-01"> siyua@chromium.org jsaul@google.com @@ -14540,8 +15111,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + units="fields" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of autofilled fields that were subsequently edited prior to the form being submitted. @@ -14549,24 +15121,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of Autofill profiles that have been considered for deduplication. - mathp@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of Autofill profiles that have been removed during deduplication. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Records whether the number of fillable form elements matches the number of fields in the form's description. Instances where this is recorded as False, @@ -14626,8 +15201,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + enum="AutofillProfileAction" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The profile action that took place when a form was submitted. @@ -14744,24 +15320,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com For credit card forms that are queried for Autofill, a ratio of how many are within secure contexts (which includes mixed passive content). - - rogerm@chromium.org + + battre@chromium.org + chrome-autofill@google.com The delay of a network request for a query due to exponential backoff. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of bytes that were sent in a query that subsequently failed. This is to help determine the appropriate threshold at which autofill queries @@ -14780,35 +15359,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + enum="CombinedHttpResponseAndNetErrorCode" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The http response code or net error code returned on a query. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The HTTP method used to query the autofill server. - - rogerm@chromium.org + + battre@chromium.org + chrome-autofill@google.com The duration of a network request for a query. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Was the autofill query response retrieved from the HTTP cache. - wuandy@chromium.org + enum="AutofillRationalizationQualityMetric" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The quality of fields rationalization, putting rationalization result into good/ok/bad categories. @@ -14871,8 +15455,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-31"> jsaul@google.com + payments-autofill-team@google.com If the cardholder name fix flow is shown when credit card upload is offered, records if the cardholder name textfield was prefilled with the name from @@ -14881,8 +15466,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-31"> jsaul@google.com + payments-autofill-team@google.com If the cardholder name fix flow is shown during credit card upload and the user accepts upload, logs whether the final cardholder name was changed from @@ -14907,9 +15493,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - hozhng@google.com + enum="AutofillSaveCardRequestExpirationDateReason" + expires_after="2021-05-31"> jsaul@google.com + payments-autofill-team@google.com Records the reason expiration date was explicitly requested from the user during credit card save. @@ -14918,7 +15505,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + + Deprecated after M85. + + battre@chromium.org @@ -14928,7 +15518,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + + Deprecated after M85. + + battre@chromium.org @@ -14938,29 +15531,55 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - jdonnelly@chromium.org + enum="AutofillSaveCreditCardPrompt" expires_after="2021-05-01"> + jsaul@google.com + siyua@chromium.org The relative frequency with which users accept or deny the Autofill save credit card prompt. + + jsaul@google.com + siyua@chromium.org + + The relative frequency with which the Autofill save credit card prompt is + shown or not. Logged when the flow is triggered and the prompt should be + shown. + + + + + jsaul@google.com + siyua@chromium.org + + The relative frequency with which users accept or deny the Autofill save + credit card prompt. Logged when users interacted with the prompt. + + + - rouslan@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Whether a credit card scan was completed or cancelled. - rouslan@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com How long a credit card took to scan. - estade@chromium.org + enum="AutofillScanCreditCardPrompt" expires_after="M95"> + battre@chromium.org + jsaul@chromium.org + chrome-autofill@google.com Usage of the "Scan card" control item. @@ -14968,6 +15587,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. expires_after="2021-01-31"> jsaul@google.com battre@chromium.org + chrome-autofill@google.com Logged when the user clicks on the server credit card link in the settings page. @@ -15017,15 +15637,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> battre@chromium.org chrome-autofill@google.com The usefulness of Autofill server information. - mathp@chromium.org + enum="BooleanHadPredictions" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Tracks whether Autofill server had at least some prediction data for a given form at query response time. @@ -15033,8 +15654,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com @@ -15044,8 +15666,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com @@ -15067,7 +15690,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + battre@chromium.org chrome-autofill@google.com @@ -15076,8 +15699,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + units="units" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of Autofill addresses a user has stored, measured when an autofillable form is submitted. @@ -15085,8 +15709,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The number of stored Autofill address profiles which have not been used in a sufficiently long time for autofill to consider them disused. Measured once @@ -15203,7 +15828,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-31"> jsaul@google.com payments-autofill-team@google.com @@ -15213,8 +15838,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AutofillSubmittedServerCardExpirationStatus" + expires_after="2021-05-31"> jsaul@google.com + payments-autofill-team@google.com Metric to measure if a submitted card's expiration date matches the same server card's expiration date (unmasked or not). Cards are considered to be @@ -15236,7 +15863,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -15246,8 +15873,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The index of the accepted Autofill suggestion in the popup. Due to crbug.com/966411, the iOS data is incorrect. @@ -15255,8 +15883,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mathp@chromium.org + units="position" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com The index of the accepted Autocomplete suggestion in the popup. Due to crbug.com/966411, the iOS data is incorrect. @@ -15264,7 +15893,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -15273,16 +15902,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> kenjitoyama@chromium.org + battre@chromium.org + chrome-autofill@google.com Number of milliseconds passed between the start and end of FormStructure::DetermineHeuristicTypes(). - + kenjitoyama@chromium.org + battre@chromium.org + chrome-autofill@google.com Number of milliseconds passed between the start and end of parsing a single form. @@ -15420,7 +16053,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Records incidents where an implicit (formless) form has elements filtered out of it. This happens to unowned fields (directly embedded in the page @@ -15433,7 +16067,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com The delay of a network request for an upload due to exponential backoff. @@ -15441,7 +16076,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com The number of bytes that were sent in an upload that subsequently failed. This is to help determine if there are certain upload sizes which are prone @@ -15462,7 +16098,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. enum="CombinedHttpResponseAndNetErrorCode" expires_after="never"> - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com The http response code or net error code returned on an upload. @@ -15470,7 +16107,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Tracks whether or not the configuration fo metadata upload encoding is valid or invalid. Note that if the configuration is invalid, the client will fall @@ -15481,7 +16119,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com The metadata encoding scheme used by the client to encode rich uploads. @@ -15491,7 +16130,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. expires_after="never"> - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com The duration of a network request for an upload. @@ -15506,10 +16146,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + - rogerm@chromium.org + battre@chromium.org + chrome-autofill@google.com Whether or not an upload was sent after having been triggered by a form submission or proxy-form-submission. @@ -15539,8 +16180,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + koerber@google.com + battre@google.com + + Total number of fields at submission time that where autofilled and have or + have not been editing by the user afterwards. + + + + + koerber@google.com + battre@google.com + + Total number of fields at submission time of a specific type that where + autofilled and have or have not been editing by the user afterwards. + + + + expires_after="M95"> battre@chromium.org chrome-autofill@google.com @@ -15551,8 +16213,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sebsg@chromium.org + enum="AutofillWalletAddressConversionType" expires_after="M95"> + battre@chromium.org + chrome-autofill@google.com Tracks how the different wallet addresses are converted to local autofill profiles. @@ -15786,40 +16449,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS Records the state of an autofill session. + enum="BooleanEnabled" expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS Whether the autofill is created by activity context. + expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS Whether the autofill service is enabled in Android platform. + enum="AutofillSubmissionSource" expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS Records the source of form submission. + expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS The time taken to display suggestion. + enum="BooleanEnabled" expires_after="2021-06-08"> michaelbai@chromium.org + src/android_webview/OWNERS Whether the user changed autofilled field. @@ -16142,6 +16811,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Whether the global curve is reset at initialization. + + jiameng@chromium.org + wrong@chromium.org + tby@chromium.org + thanhdng@chromium.org + + A monotone cubic spline curve may be invalid from input that used to + generate it. This metric records why it's invalid. Chrome OS only. + + + jiameng@chromium.org @@ -16377,7 +17058,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16386,7 +17067,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16396,7 +17077,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16406,7 +17087,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16417,7 +17098,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16428,7 +17109,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16439,7 +17120,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="HttpResponseCode" expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16462,7 +17143,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16485,7 +17166,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> robertogden@chromium.org tbansal@chromium.org @@ -16511,7 +17192,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2020-12-13"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16525,7 +17206,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebSchedulerTrackedFeature" expires_after="2020-12-20"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16542,7 +17223,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16580,7 +17261,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackForwardCacheNotRestoredReason" expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16596,7 +17277,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16636,7 +17317,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WebSchedulerTrackedFeature" expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16654,7 +17335,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16671,7 +17352,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> carlscab@chromium.org hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16693,7 +17374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackForwardCacheNotRestoredReason" expires_after="2020-12-06"> hajimehoshi@chromium.org bfcache-dev@chromium.org @@ -16752,7 +17433,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> sreejakshetty@chromium.org altimin@chromium.org bfcache-dev@chromium.org @@ -16822,7 +17503,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org peter@chromium.org @@ -16856,7 +17537,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ScopeMatchCalledFrom" expires_after="2020-11-30"> nator@chromium.org rayankans@chromium.org peter@chromium.org @@ -16867,7 +17548,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FetchStatusWhenMatchCalled" expires_after="2020-11-30"> nator@chromium.org rayankans@chromium.org peter@chromium.org @@ -16879,7 +17560,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="%" expires_after="2020-11-30"> nator@chromium.org rayankans@chromium.org peter@chromium.org @@ -16999,7 +17680,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -17032,7 +17713,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundSyncResultPattern" expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -17046,7 +17727,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanInForeground" expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -17091,7 +17772,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + nator@chromium.org rayankans@chromium.org @@ -17141,7 +17823,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -17209,7 +17891,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanRegistrationIsDuplicate" expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -17230,7 +17912,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BackgroundSyncStatus" expires_after="2020-12-13"> nator@chromium.org rayankans@chromium.org @@ -17326,7 +18008,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UpdateAppBadgeMacResult" expires_after="M88"> phillis@chromium.org cmumford@chromium.org The result from updating the app badge on macOS. @@ -17334,6 +18016,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 6/3/2020. No longer needed. + phillis@chromium.org cmumford@chromium.org The result from updating the app badge on Windows. @@ -17452,6 +18137,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Records whenever a Blimp tab toggles visibility. + + aboxhall@chromium.org + chrome-a11y-core@chromium.org + + Records how many tree updates were queued at the time updates are being + processed after layout. If we are trying to process too many updates at + once, we should investigate how we might be able to merge similar updates + without losing important information. + + + @@ -17471,7 +18168,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CompositorAnimationsFailureReason" expires_after="2020-12-13"> animations-dev@chromium.org Reasons an Animation is not suitable for running on the compositor thread. @@ -17677,7 +18374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanContentChangeMode" expires_after="2020-12-31"> yiyix@chromium.org fserb@chromium.org @@ -18524,7 +19221,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="0.01 bits per pixel" expires_after="2020-12-13"> deymo@google.com compression-dev@google.com @@ -18544,7 +19241,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> mcasas@chromium.org andrescj@chromium.org @@ -18584,7 +19281,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> urvang@chromium.org Image codec inferred during decode. @@ -18707,6 +19404,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + oyiptong@chromium.org + layout-dev@chromium.org + storage-dev@chromium.org + + Counts success or failure in attempting to obtain font bytes as stream with + base address from Skia. + + + oyiptong@chromium.org @@ -18849,7 +19557,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-01"> schenney@chromium.org @@ -18863,7 +19571,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-01"> schenney@chromium.org @@ -18997,7 +19705,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="IncrementalDecodeNeeded" expires_after="2020-11-29"> mbarowsky@chromium.org andrescj@chromium.org @@ -19026,7 +19734,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="2020-12-06"> mbarowsky@chromium.org andrescj@chromium.org @@ -19057,7 +19765,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> andrescj@chromium.org mcasas@chromium.org @@ -19163,7 +19871,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-12-20"> sclittle@chromium.org Records the effective connection type whenever a lazily-loaded iframe that @@ -19177,7 +19885,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-12-20"> sclittle@chromium.org Records the effective connection type whenever a lazily-loaded iframe that @@ -19325,15 +20033,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Replaced with separate ImplCompositorCommit and WaitForCommit metrics and + removed in M84. + schenney@chromium.org paint-dev@chromium.org The percentage of time between a BeginMainFrame and paint results commit in - Blink that is used for committing the layer tree to the impl thread. To be - removed in M-84 once we confirm separate wait and commit metrics have the - same net time. + Blink that is used for committing the layer tree to the impl thread. @@ -19390,7 +20100,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> @@ -19610,7 +20320,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> @@ -19641,7 +20351,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> @@ -19662,6 +20372,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Replaced with separate ImplCompositorCommit and WaitForCommit metrics and + removed in M84. + @@ -19672,8 +20386,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. paint-dev@chromium.org Time spent commiting the layer tree to the impl thread in a main frame - update. To be removed in M-84 in favor of separate WaitForCommit and - ImplCompositorCommit metrics. + update. Note: This histogram does not record metrics on machines with low-resolution clocks. @@ -19879,6 +20592,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dom@chromium.org + chrome-loading@google.com + + The total number of async scripts associated with a document at the time + parsing has finished. + + + dougarnett@chromium.org @@ -20036,7 +20759,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SmsReceiverDestroyedReason" expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20046,7 +20769,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20057,7 +20780,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20080,7 +20803,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20091,7 +20814,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org juncai@chromium.org @@ -20103,7 +20826,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20114,7 +20837,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20125,7 +20848,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20135,7 +20858,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + goto@chromium.org reillyg@chromium.org ayui@chromium.org @@ -20356,7 +21079,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> chasej@chromium.org feature-control@chromium.org @@ -20692,7 +21415,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-12-20"> sclittle@chromium.org Records the effective connection type whenever a lazyload-eligible (i.e. @@ -20702,7 +21425,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-11-15"> sclittle@chromium.org rajendrant@chromium.org @@ -20712,7 +21435,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-12-20"> sclittle@chromium.org rajendrant@chromium.org @@ -20722,7 +21445,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-20"> sclittle@chromium.org Milliseconds spent waiting for an above the fold iframe to load. Only fires @@ -20732,7 +21455,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-20"> sclittle@chromium.org Milliseconds spent waiting for a below the fold iframe to load. Only fires @@ -20742,7 +21465,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-20"> rajendrant@chromium.org bengr@chromium.org @@ -20754,7 +21477,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-20"> rajendrant@chromium.org bengr@chromium.org @@ -22066,6 +22789,32 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + mmandlik@google.com + chromeos-bt-platform-sw-core@google.com + + Records the outcome of bluetooth profile connection request to a remote + device. This helps to understand the percentage of successful profile + connections against failures and the causes of failures. + + + + + + + mmandlik@google.com + chromeos-bt-platform-sw-core@google.com + + Records the outcome of bluetooth profile probing while pairing with a remote + device. This helps to understand the percentage of successful profile + probing against failures and the causes of failures. + + + mcchou@chromium.org @@ -22097,7 +22846,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> mcchou@chromium.org This is specific to Chrome OS. Records the outcomes of pairing with remote @@ -22201,6 +22950,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of May 2020. + calamity@chromium.org johntlee@chromium.org @@ -22261,7 +23013,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -22270,7 +23022,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -22280,7 +23032,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -22299,7 +23051,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> supertri@chromium.org isherman@chromium.org aidanday@google.com @@ -22313,7 +23065,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -22326,6 +23078,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 05/2020. + mamir@chromium.org mastiz@chromium.org @@ -22368,12 +23123,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ianwen@chromium.org How users add a new bookmark. + + Removed as of 05/2020. + mamir@chromium.org The size of the file used to persist bookmarks. It's recorded every time the @@ -22395,7 +23153,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> ianwen@chromium.org Logs a UI location from which a bookmark is launched. @@ -22427,7 +23185,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> wychen@chromium.org Logs whether the bookmark entry is a user bookmark or a partner bookmark @@ -22436,7 +23194,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -22454,14 +23212,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Time from power on to login panel ready (Chrome OS). - + bccheng@chromium.org semenzato@chromium.org Time from power on to login panel ready (Chrome OS). + expires_after="2020-12-06"> eustas@chromium.org Compressed/Decompressed size ratio. @@ -22493,7 +23251,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> lgrey@chromium.org robliao@chromium.org @@ -22503,7 +23261,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-05-18"> + + Removed 05/2020. Was not substantially different from results in the GPU + process. + ccameron@chromium.org graphics-dev@chromium.org @@ -22516,7 +23278,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-05-18"> + + Removed 05/2020. Did not reveal interesting results. + ccameron@chromium.org graphics-dev@chromium.org @@ -22529,8 +23294,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records the size of a compressed on-disk capture for the paint preview after + a proto is written to disk if compressed. + + + + units="units" expires_after="2020-12-20"> ckitagawa@chromium.org mahmoudi@chromium.org fredmello@chromium.org @@ -22540,7 +23316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ckitagawa@chromium.org mahmoudi@chromium.org fredmello@chromium.org @@ -22550,7 +23326,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ckitagawa@chromium.org mahmoudi@chromium.org fredmello@chromium.org @@ -22560,18 +23336,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - ckitagawa@chromium.org mahmoudi@chromium.org fredmello@chromium.org - Records the compressed on-disk size of the capture if it succeeded. + Records the size of an uncompressed on-disk capture for the paint preview + after a proto is written to disk if not compressed. + + + + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records the compressed on-disk size of the capture if it succeeded for the + capture experiment. + enum="BooleanSuccess" expires_after="2020-12-20"> ckitagawa@chromium.org mahmoudi@chromium.org fredmello@chromium.org @@ -22581,8 +23369,58 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records if the paint preview compositor process started correctly. + + + + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records the time it took to start the paint preview compositor process. + + + + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + Records when a link is clicked in the paint preview player. + + + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records the time taken to from the request to start the compositor process + to the first bitmap being loaded. + + + + + ckitagawa@chromium.org + mahmoudi@chromium.org + fredmello@chromium.org + + Records the total disk usage by the Paint Preview Tab Service at startup of + the profile keyed service. + + + + expires_after="2020-11-29"> gab@chromium.org olivierli@chromium.org @@ -22596,7 +23434,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="janks" expires_after="2020-11-29"> gab@chromium.org olivierli@chromium.org @@ -22689,7 +23527,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> sadrul@chromium.org sky@chromium.org @@ -22734,7 +23572,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + rhalavati@chromium.org chrome-privacy-core@google.com @@ -22746,7 +23585,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -22782,7 +23621,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="HandleStateType" expires_after="2020-12-06"> dominickn@chromium.org meacer@chromium.org @@ -22882,7 +23721,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FramePrioritiesSeen" expires_after="2020-12-06"> ericrobinson@chromium.org csharrison@chromium.org @@ -22979,7 +23818,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SpareProcessMaybeTakeAction" expires_after="2020-12-20"> alexmos@chromium.org lukasza@chromium.org @@ -22989,7 +23828,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ericrobinson@chromium.org johnidel@chromium.org @@ -23203,7 +24042,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> nicolaso@chromium.org pastarmovj@chromium.org @@ -23213,7 +24052,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> nicolaso@chromium.org pastarmovj@chromium.org @@ -23789,7 +24628,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CaptivePortalStatus" expires_after="2020-12-20"> rsorokin@chromium.org michaeldo@chromium.org cros-oac@google.com @@ -23894,6 +24733,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org Records the number of times the cast button was shown to the user. The value @@ -23905,6 +24747,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org Records the number of times the cast button was shown to the user when the @@ -23948,8 +24793,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> mfoltz@chromium.org + openscreen-eng@google.com Records the percentage of the video left at the time the remote playback is stopped. This will be recorded when the playback is stopped by the user, or @@ -23958,7 +24804,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -23969,7 +24815,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaCommand" expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -23979,7 +24825,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaCommand" expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -23989,7 +24835,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanPresent" expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -24012,7 +24858,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="%" expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -24024,7 +24870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RemotePlaybackUrlResolveResult" expires_after="2021-06-01"> tguilbert@google.com media-dev@chromium.org @@ -24236,7 +25082,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UtilityProcessNameHash" expires_after="2020-12-06"> wfh@chromium.org chrome-stability-core@google.com @@ -24397,7 +25243,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanForeground" expires_after="2020-12-13"> cduvall@chromium.org cmumford@chromium.org @@ -24489,7 +25335,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UtilityProcessNameHash" expires_after="2020-11-29"> wfh@chromium.org Count of child utility process launches, bucketed by the hash of their @@ -24792,6 +25638,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yichenz@chromium.org + chromeos-wmp@google.com + + Tracks the animation smoothness for the fade-in animation of tab hover card. + + + + + yichenz@chromium.org + chromeos-wmp@google.com + + Tracks the animation smoothness for the fade-out animation of tab hover + card. + + + @@ -24961,7 +25826,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcIntentHandlerAction" expires_after="M88"> dominickn@chromium.org melzhang@chromium.org mxcai@chromium.org @@ -24972,7 +25837,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcExternalProtocolAction" expires_after="M88"> dominickn@chromium.org melzhang@chromium.org mxcai@chromium.org @@ -24984,7 +25849,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcExternalProtocolAction" expires_after="M88"> dominickn@chromium.org melzhang@chromium.org mxcai@chromium.org @@ -24995,7 +25860,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcIntentHandlerAction" expires_after="2020-12-06"> elijahtaylor@google.com dominickn@chromium.org shihuis@google.com @@ -25006,7 +25871,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-11-15"> elijahtaylor@google.com dominickn@chromium.org shihuis@google.com @@ -25018,6 +25883,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dominickn@chromium.org + nancylingwang@chromium.org + + Records whether a notification matches multiple apps, when there is one or + multiple web apps matching a web page nonpersistent notification. + + + ajlinker@chromium.org @@ -25224,7 +26099,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ChromeOSParseCPUFrequencyStatus" expires_after="2020-11-22"> gmx@chromium.org cwp-team@google.com @@ -25249,7 +26124,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> aalexand@google.com gmx@chromium.org @@ -25313,6 +26188,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2020/06 as the histogram is no longer in use. The instrumentation + code is long gone. The iframe flow is not used since 2015. + achuith@chromium.org Whether a user signed in using the new WebView-based GAIA flow. This value @@ -25320,6 +26199,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + itspeter@chromium.org + stimim@chromium.org + chromeos-hw-checker@google.com + + Qualification status of each component types. This entry is generated by + hardware_verifier.conf at boot time. + + + + + itspeter@chromium.org + stimim@chromium.org + chromeos-hw-checker@google.com + Aggregated result of hardware verifier check. + + itspeter@chromium.org @@ -25338,6 +26238,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. The amount of time it takes to probe hardware components. + + + + jamescook@chromium.org + lacros-team@google.com + + Recorded as part of the metrics session data to identify the lacros-chrome + browser binary. + + + zeuthen@chromium.org @@ -25358,7 +26269,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> xdai@chromium.org The memory pressure level in Chrome OS, which is recorded periodically (once @@ -25413,6 +26324,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + tengs@chromium.org + gzadina@google.com + + Record when the user toggles the integrated privacy screen on/off. See the + PrivacyScreenToggleUISurface enum for all UI surfaces for toggling the + feature. + + + mslus@chromium.org @@ -25507,6 +26429,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 05/2020 (crbug/1072514). + jamescook@chromium.org cros-system-services@google.com @@ -25537,6 +26462,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The number of characters for queries used to fetch results from the Settings + Search Mojo API. + + + @@ -25564,8 +26500,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. The number of searches before changing a setting. + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The number of search results fetched each time a successful search request + is made to the Settings Search Mojo API. + + + + enum="CrosSettingsOsBannerInteraction" expires_after="2020-12-20"> jamescook@chromium.org cros-system-services@google.com @@ -25585,6 +26532,82 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The time fetching search results from the Settings Search Mojo API. Recorded + when getSearchHandler().search() completes. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The number of search requests made to the Settings Search Mojo API. For + search requests that succeeded with a response, the number of search + requests that had results which were discarded, and the number of search + requests that were shown to the user. Recorded when + getSearchHandler().search() completes. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The number of search requests made to the Settings Search Mojo API in one + session of the settings app. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + Section search results clicked by user in the OS settings search box. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + Setting search results clicked by user in the OS settings search box. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + Subpage search results clicked by user in the OS settings search box. + + + + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + Type of search results clicked by user in the OS settings search box. + + + @@ -25596,6 +26619,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + khorimoto@chromium.org + hsuregan@chromium.org + cros-customization@google.com + + The user action taken when search results exist and are displayed. + + + khorimoto@chromium.org @@ -25629,8 +26662,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + tengs@chromium.org + gzadina@google.com + + Tracks the number of blocked notifiers in the system tray after the user + blocks one or multiple notifiers. Note that this metric records the number + of blocked notifiers *after* the update. + + + + + tengs@chromium.org + gzadina@google.com + + Tracks the number of blocked notifiers in the system tray when it is opened. + + + + expires_after="2020-12-06"> tengs@chromium.org amehfooz@chromium.org @@ -25642,9 +26695,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + tengs@chromium.org + gzadina@google.com + + Records the first interaction the user has with the system tray, which can + be a click/tap on the quick settings or message center bubble. Note that + this interaction could be at any time after the user opens the tray (e.g. 30 + seconds later before the first click). + + + + enum="CrosSystemTrayInteraction" expires_after="2021-05-10"> tengs@chromium.org + gzadina@google.com An enum value how system tray bubble is interacted e.g. by tap (touch screen), or click (mouse, trackpad, etc.) Reported every time the region @@ -25653,14 +26719,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-10"> tengs@chromium.org + gzadina@google.com If the value is true, SystemTray is expanded when it's opened. Otherwise, it's closed when it's opened. + + tengs@chromium.org + gzadina@google.com + + Records the number of notifications that are removed in a single clear all + action by the user. + + + yamaguchi@chromium.org @@ -25671,7 +26748,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-10"> tengs@chromium.org amehfooz@chromium.org @@ -25683,8 +26760,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-10"> tengs@chromium.org + gzadina@google.com The amount of time a user took from clicking on the button in status area, to clicking on an item in the system tray bubble. @@ -25692,8 +26770,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CrosSystemTrayToggleExpanded" expires_after="2021-05-10"> tengs@chromium.org + gzadina@google.com An enum value how system tray bubble is expanded or collapsed. It can be toggled by the button and touch gesture. @@ -25711,7 +26790,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ChromeOSUsbEventTiming" expires_after="2020-12-06"> allenwebb@chromium.org jorgelo@chromium.org mnissler@chromium.org @@ -26053,7 +27132,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> yoavweiss@chromium.org tbansal@chromium.org mkwst@chromium.org @@ -26063,7 +27142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + yoavweiss@chromium.org tbansal@chromium.org mkwst@chromium.org @@ -26074,7 +27153,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> yoavweiss@chromium.org tbansal@chromium.org mkwst@chromium.org @@ -26084,7 +27163,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + yoavweiss@chromium.org tbansal@chromium.org mkwst@chromium.org @@ -26107,6 +27186,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + huangdarwin@chromium.org + src/ui/base/clipboard/OWNERS + + Counts how often each Clipboard format is read by the platform clipboard. + These reads generally imply that an application requested this format after + checking that the format is available, but there are some cases where Chrome + reads a format to check for existence (outside the + ui::Clipboard::ReadAvailableTypes() function). Please prefer interpreting + these numbers as relative use changes, as opposed to absolute user usage. + + + + + huangdarwin@chromium.org + src/ui/base/clipboard/OWNERS + + Counts how often each Clipboard format is written by the platform clipboard. + These writes all imply that an application had this format available, and + therefore wrote this format. + + + @@ -26367,7 +27471,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> sorin@chromium.org The number of times the component updater called UpdateClient::Install or @@ -26518,14 +27622,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-01"> yigu@chromium.org + animations-dev@chromium.org Time spent finding the closest matching layer to a given point whenever we do hit testing on LayerTreeImpl (in a browser process). - Team: animations-dev@chromium.org. - Warning: This metric may include reports from clients with low-resolution clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports will cause this metric to have an abnormal distribution. When considering @@ -26535,7 +27638,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> animations-dev@chromium.org Time spent updating layers, in microseconds. Recorded when layers are @@ -26550,7 +27653,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-20"> paint-dev@chromium.org Time spent updating layer draw properties, in microseconds. Recorded when a @@ -26746,7 +27849,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> weiliangc@chromium.org Time spent drawing of composited layers by GLRenderer, in microseconds. This @@ -26761,7 +27864,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> vasilyt@chromium.org backer@chromium.org @@ -26790,7 +27893,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> vasilyt@chromium.org backer@chromium.org @@ -26802,7 +27905,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> vasilyt@chromium.org backer@chromium.org @@ -26829,7 +27932,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-11-29"> penghuang@chromium.org backer@chromium.org @@ -27299,14 +28402,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-01"> yigu@chromium.org + animations-dev@chromium.org Time spent finding the closest matching layer to a given point whenever we do hit testing on LayerTreeImpl (in a renderer process). - Team: animations-dev@chromium.org. - Warning: This metric may include reports from clients with low-resolution clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports will cause this metric to have an abnormal distribution. When considering @@ -27328,8 +28430,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - animations-dev@chromium.org + expires_after="2021-06-01"> + schenney@chromium.org + paint-dev@chromium.org Time spent updating layers, in microseconds. Recorded when layers are updated (in a renderer process). @@ -27676,6 +28779,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + vikassoni@chromium.org + khushalsagar@chromium.org + + Whether an aggregated frame contains video or not. This metric will be used + to analyze the percentage of displayed frame with video. This metric will be + extended in future to specify whether the video is inline or fullscreen. + + + @@ -27871,6 +28985,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + behdadb@chromium.org + sadrul@chromium.org + + For the compositor pipeline, measures how far the presentation time of a + compositor frame is from the frame deadline (i.e. vsync time). + + + sadrul@chromium.org @@ -28374,13 +29499,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> mlamouri@chromium.org The default autoplay setting at profile open. + expires_after="2020-12-06"> toyoshim@chromium.org The default cookies setting at profile open. @@ -28464,7 +29589,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ContentSetting" expires_after="2020-12-06"> toyoshim@chromium.org The default notification setting at profile open. @@ -28893,7 +30018,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="StrongPopupBlockerAction" expires_after="2020-12-06"> csharrison@chromium.org Counts of various events related to the strong popup blocker (aka abusive @@ -29017,7 +30142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ContentSuggestionsDisplayStatus" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29052,7 +30177,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeedSpinnerType" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29135,7 +30260,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="index" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29146,7 +30271,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="index" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29157,7 +30282,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeedInternalError" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29266,7 +30391,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29277,7 +30402,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="KB" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29288,7 +30413,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29321,7 +30446,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29331,7 +30456,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="GoogleServiceAuthError" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29408,7 +30533,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29467,7 +30592,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeedHostMismatch" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29496,7 +30621,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RefreshTrigger" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29508,7 +30633,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RequestBehavior" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29520,7 +30645,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeedSchedulerRefreshStatus" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29583,6 +30708,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + carlosk@chromium.org + harringtond@chromium.org + feed@chromium.org + + How long a user used the Feed in one day (local time midnight to midnight). + Reported at most once per day. Usage reported is typically from the previous + day, but could be from several days ago if the user is not active. Time is + calculated starting with the first Feed interaction, until the Feed surface + is closed, or the user is idle (no scrolling or other actions) for 30 + seconds. + + + @@ -29620,7 +30760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29642,6 +30782,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + iwells@chromium.org + harringtond@chromium.org + feed@chromium.org + + Result of attempting to upload a batch of one or more actions. + + + + + iwells@chromium.org + harringtond@chromium.org + feed@chromium.org + + Result of an UploadActionsTask run in which zero or more batches of user + actions are uploaded. See ContentSuggestions.Feed.UploadActionsBatchStatus + for the status of a particular batch upload. + + + harringtond@chromium.org @@ -29750,7 +30912,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29804,7 +30966,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FeedZeroStateShowReason" expires_after="2020-12-06"> carlosk@chromium.org harringtond@chromium.org feed@chromium.org @@ -29999,7 +31161,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> mpearson@chromium.org Recorded when a context menu is shown, sliced by whether a web contents was @@ -30025,7 +31187,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> twellington@chromium.org chrome-android-app@chromium.org @@ -30038,7 +31200,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> twellington@chromium.org chrome-android-app@chromium.org @@ -30063,7 +31225,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> twellington@chromium.org chrome-android-app@chromium.org Logged when the URL is clicked. Android only. @@ -30366,7 +31528,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> morlovich@chromium.org Recorded when a problem occurs trying to commit changes to the cookie store @@ -30406,7 +31568,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> estark@chromium.org Number of times a cookie was set with a name prefixed by @@ -30441,7 +31603,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> estark@chromium.org For each cookie added to the store, record whether its source URL has a @@ -30450,7 +31612,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-25"> + chlily@chromium.org tnagel@chromium.org Records the detection of a corrupted meta table. See http://crbug.com/111376 @@ -30459,7 +31622,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-25"> + chlily@chromium.org morlovich@chromium.org Records a failure to recover a corrupted meta table. See @@ -30467,7 +31631,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + battre@chromium.org Number of cookies in the store (recorded every 10 minutes of active browsing @@ -30603,6 +31767,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020. No longer needed because results are expected to be + stable. + chlily@chromium.org morlovich@chromium.org @@ -30615,7 +31783,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> morlovich@chromium.org Recorded when a problem is recorded when loading the persistent cookie @@ -30650,6 +31818,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + chlily@chromium.org + kaustubhag@chromium.org + + Records the number of distinct keys (eTLD+1's) that have experienced + eviction of a non-expired cookie due to reaching the max number of cookies + per key. This is not persisted across network service restarts, so it + represents the number of such eTLD+1's that have relatively recently added + new cookies that went over the limit (since the last browser restart, crash, + etc). Recorded every 10 minutes of active browsing time. + + + + + chlily@chromium.org + kaustubhag@chromium.org + + Records the number of distinct keys (eTLD+1's) that have any stored cookies + (which may or may not be expired). Recorded every 10 minutes of active + browsing time. + + + @@ -30809,6 +32001,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020. No longer needed because results are expected to be + stable. + chlily@chromium.org morlovich@chromium.org @@ -31069,7 +32265,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + mkwst@chromium.org For each cookie added to the store, record it's type(s). @@ -31136,6 +32332,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yuhsuan@chromium.org + chromeos-audio@google.com + + When each busyloop stops, records the length of it. The lengths exceeding + 1000 are recorded as 1000. + + + yuhsuan@chromium.org @@ -31179,6 +32384,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + enshuo@chromium.org + chromeos-audio@google.com + + For each SCO connection record the returned event. The event indicates if + the setup of the connection is successful or not. + + + enshuo@chromium.org @@ -32017,6 +33232,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + 06/2020: Removed in favor of + CrashReport.DumpWithoutCrashingResult.FromInitSharedMemoryIfNeeded2. + + iby@chromium.org + cros-telemetry@google.com + + Did the attempt to dump without crashing in + ProducerClient::InitSharedMemoryIfNeeded() succeed or fail? Investigating + why Breakpad never seems to generate InitSharedMemoryIfNeeded reports on + some ChromeOS devices. + + + + iby@chromium.org cros-telemetry@google.com @@ -32127,7 +33359,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> austinct@chromium.org Time taken for the Chrome OS cros-disks daemon to perform a format @@ -32145,7 +33377,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CrosDisksMountTypeError" expires_after="2020-12-13"> amistry@chromium.org The {mount type}x{mount error code} received from the Chrome OS cros-disks @@ -32423,6 +33655,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + clumptini@google.com + davidmunro@google.com + + Records the type (e.g. sparse qcow2) of the user's disk. Emitted often, you + probably want to look at the unique user numbers of this metric. Certain + disk types are vulnerable to disk corruption in certain scenarios so this + metric tracks our progress in moving people off them and tells us if we need + to do additional work to migrate users off. + + + clumptini@google.com @@ -32522,6 +33767,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + clumptini@google.com + tbuckley@chromium.org + + A record of post-startup failures in crostini components. Buckets are + recorded to whenever we become aware that the corresponding component has + failed. + + + joelhockey@chromium.org @@ -32638,6 +33894,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + nohle@chromium.org + better-together-dev@google.com + + Indicates whether or not the device manufacturer name returned in the + hardware info is empty. Recored during the construction of a + ClientAppMetadata proto. + + + + + nohle@chromium.org + better-together-dev@google.com + + Indicates whether or not the device model name returned in the hardware info + is empty. Recored during the construction of a ClientAppMetadata proto. + + + khorimoto@chromium.org @@ -33703,7 +34980,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> zuan@chromium.org cros-hwsec+uma@chromium.org @@ -33893,6 +35170,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Cryptohome errors. + + enlightened@chromium.org + tnagel@chromium.org + + Indicates whether Encrypted Vault Keyset Key (EVKK) is TPM wrapped. This is + reported when the Derive function inside scrypt auth block or TPM auth block + is called, which happends during cryptohome mount phase. + + + @@ -33954,7 +35242,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> dspaid@chromium.org The encryption type used for a user's cryptohome directory. This is logged @@ -33964,6 +35252,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Retired in M81. + vsavu@google.com igorcov@chromium.org @@ -33974,6 +35265,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Retired in M81. + vsavu@google.com igorcov@chromium.org @@ -34029,7 +35323,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MigrationUIMigrationResult" expires_after="2020-11-15"> fukino@chromium.org The result of encryption migration from eCryptfs to Ext4 dircrypto. The @@ -34111,6 +35405,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + kerrnel@chromium.org + mnissler@chromium.org + + The amount of time (ms) for Chrome OS cryptohome daemon to verify the user's + password during an unlock operation. + + + dspaid@chromium.org @@ -34134,7 +35438,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> apronin@chromium.org cros-hwsec+uma@chromium.org @@ -34156,6 +35460,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jorgelo@chromium.org + cros-hwsec+uma@chromium.org + + The amount of time for Chrome OS cryptohome to mount the encrypted home + directory. + + + apronin@chromium.org @@ -34166,8 +35480,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jorgelo@chromium.org + cros-hwsec+uma@chromium.org + + The amount of time for Chrome OS cryptohome to mount the encrypted guest + home directory. + + + + + Removed 06/2020 as it is not used since crrev.com/c/1183895 (8/2018). + apronin@chromium.org cros-hwsec+uma@chromium.org @@ -34177,6 +35504,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as it hasn't been reported since around crrev.com/185598 + (~2014) and has been completely removed in crrev.com/c/1183895 (6/2020). + apronin@chromium.org cros-hwsec+uma@chromium.org @@ -34185,6 +35516,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jorgelo@chromium.org + cros-hwsec+uma@chromium.org + + The amount of time cryptohome spends actively performing mounts when + creating an ephemeral user data directory. Does not include any process or + async dispatch overhead. + + + jorgelo@chromium.org @@ -34217,7 +35559,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> afakhry@chromium.org The errors resulting from interacting with the Trusted Platform Module (TPM) @@ -34302,7 +35644,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M87"> lizeb@chromium.org cct-team@google.com @@ -34313,7 +35655,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorCodes" expires_after="M87"> lizeb@chromium.org cct-team@google.com @@ -34325,7 +35667,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="redirects" expires_after="M87"> lizeb@chromium.org cct-team@google.com @@ -34641,7 +35983,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SpareWebContentsStatus2" expires_after="2020-12-20"> lizeb@chromium.org mthiesse@chromium.org @@ -34666,7 +36008,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CustomTabsSpeculationStatusOnStart" expires_after="2020-12-13"> lizeb@chromium.org Recorded only for Android. How a speculation was started or why it was @@ -34726,6 +36068,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + grt@chromium.org + sky@chromium.org + Errors when trying to load DataPack files. + + @@ -37261,6 +38609,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yangguo@chromium.org + soxia@microsoft.com + leo.lee@microsoft.com + + Records the usage of dual screen device emulation: a dual screen or fold + device is selected for emulation; the span button is hit; or the platform + support of dual screen is utilized. + + + alph@chromium.org yangguo@chromium.org @@ -37280,10 +38640,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yangguo@chromium.org + jalyn@microsoft.com + leo.lee@microsoft.com + + Recorded when the user changes which keyboard shortcut presets they are + using in the DevTools. + + + + yangguo@microsoft.com jalyn@microsoft.com - edgedevtoolseng@microsoft.com + leo.lee@microsoft.com Recorded when a DevTools keyboard shortcut has been processed and successfully executed its action. @@ -40734,7 +42106,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -40743,7 +42118,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M84"> + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41326,6 +42704,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41337,6 +42718,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41348,6 +42732,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41358,6 +42745,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41368,6 +42758,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41378,6 +42771,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 + pauljensen@chromium.org mef@chromium.org @@ -41457,10 +42853,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - pauljensen@chromium.org - mef@chromium.org - Status of DNS probe updates sent to a DNS error page. + expires_after="2021-06-04"> + ericorth@chromium.org + src/net/OWNERS + + Status of DNS diagnostic probe updates sent to a Chrome net error page. + @@ -41607,17 +43005,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Wall time between starting and finishing DNS probe. - - pauljensen@chromium.org - mef@chromium.org - Time ticks between starting and finishing DNS probe. + + ericorth@chromium.org + src/net/OWNERS + + Time ticks between starting and finishing a DNS diagnostics probe. + - pauljensen@chromium.org - mef@chromium.org - Result of DNS probes sent by the probe service. + expires_after="2021-06-04"> + ericorth@chromium.org + src/net/OWNERS + Result of DNS diagnostics probes sent by the probe service. + expires_after="M90"> fletcherw@chromium.org bmgordon@chromium.org @@ -42662,6 +44062,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + grt@chromium.org + ydago@chromium.org + + Indicates the id of an item that failed to be copied when taking a user data + snapshot. + + + grt@chromium.org @@ -42862,6 +44272,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + xingliu@chromium.org + clank-downloads@google.com + Records why the download is canceled. + + @@ -42922,7 +44339,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> xingliu@chromium.org Types of audio files that are downloaded. @@ -43281,6 +44698,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + dtrainor@chromium.org Whether the user enables dangerous download feedback reporting after viewing @@ -43348,6 +44768,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 04/2020. + dtrainor@chromium.org The number of items in the History database, at the time a new download is @@ -43429,6 +44852,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Checked on 06/2020 and no longer logged. + dtrainor@chromium.org Positive net error code that caused a download to be interrupted at the @@ -43467,6 +44893,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Checked on 06/2020 and no longer logged. + dtrainor@chromium.org Positive net error code that caused a download to be interrupted. @@ -43551,7 +44980,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="DownloadARModelState" expires_after="2020-11-29"> mahmadi@chromium.org Logged at different stages of downloading a USDZ MIME type AR model on iOS. @@ -43598,7 +45027,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-26"> eugenebut@chromium.org Result when a user attempts to download a file on iOS. @@ -43638,7 +45067,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> eugenebut@chromium.org MIME type of a download response. Logged when the download UI was offered by @@ -43681,6 +45110,37 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + xingliu@chromium.org + clank-downloads@google.com + + Records events for download later feature in download core code. + + + + + + + xingliu@chromium.org + clank-downloads@google.com + + The user selection in the download later dialog. Recorded when the user + starts a download, or clicking the change button on download infobar and + download home UI. + + + + + xingliu@chromium.org + clank-downloads@google.com + + Records events for download later feature in download Android UI. + + + @@ -43924,7 +45384,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ParallelDownloadCreationEvent" expires_after="2020-12-06"> xingliu@chromium.org When parallel downloading feature is enabled, a download may be created as @@ -44003,7 +45463,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes/second" expires_after="2020-12-13"> qinmin@chromium.org For parallelizable download, average disk bandwidth seen for different @@ -44185,6 +45645,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Deprecated 05/2020. + @@ -44245,8 +45708,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="Download.Service.EntryEvent" expires_after="M88"> dtrainor@chromium.org + xingliu@chromium.org An action the download service took on an active download. @@ -44264,8 +45728,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> dtrainor@chromium.org + xingliu@chromium.org Records how many attempts have taken place at the time of a retry for a download in the Download Service. This differs from @@ -44350,7 +45815,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> xingliu@chromium.org The percentage of free disk space to total disk space. Recorded during @@ -45343,7 +46808,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> andrescj@chromium.org mcasas@chromium.org chromeos-gfx@google.com @@ -45830,8 +47295,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-23"> + + Removed as of June 2020. If you find it's useful and add the metric again, + please consider using an enum of StartSituation instead of a boolean. + falken@chromium.org + chrome-worker@google.com Whether a new renderer process was created for the EmbeddedWorkerInstance or existing one was used. Only recorded for installed workers. @@ -46197,6 +47667,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. URL fetcher status for auto-enrollment requests. + + anthonyvd@google.com + chrome-enterprise-team-core@google.com + + Events for counting CBCM policy invalidations received with and without + payloads. Invalidations indicate that a policy has been updated and should + be refreshed. Payloads provide context about the policy update, but may be + absent if dropped by the invalidation service. + + + + + anthonyvd@google.com + chrome-enterprise-team-core@google.com + + Events measuring effectiveness of refreshing CBCM policy when invalidations + are received from a service. For each refresh, indicates whether the policy + changed, and whether the policy was invalidated at the time of the refresh. + + + zmin@chromium.org @@ -46464,7 +47957,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="BooleanSuccess" expires_after="2020-11-29"> poromov@chromium.org managed-devices@google.com @@ -46475,7 +47968,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="DeviceSettingsStatus" expires_after="2020-11-29"> poromov@chromium.org managed-devices@google.com @@ -46486,8 +47979,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseDMServerRequestSuccess" expires_after="2020-11-29"> poromov@chromium.org + managed-devices@google.com Number of retries the client did to execute a DeviceManagementServer request. It's recorded after the request has been completed, either @@ -46561,8 +48055,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mnissler@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to device enrollment on new installs of Chrome OS devices. @@ -46570,8 +48064,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to attestation-based enrollment (Zero-Touch) of Chrome OS @@ -46580,8 +48074,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> antrim@chromium.org + raleksandrov@google.com cros-oac@google.com Events related to Chrome OS enterprise enrollment automated by OOBE @@ -46590,8 +48085,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to forced re-enrollment (FRE) of Chrome OS devices. @@ -46599,8 +48094,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to attestation-based re-enrollment (Auto RE) of Chrome OS @@ -46609,7 +48104,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com pmarko@chromium.org cros-oac@google.com @@ -46619,7 +48115,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com pmarko@chromium.org cros-oac@google.com @@ -46629,7 +48126,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com pmarko@chromium.org cros-oac@google.com @@ -46639,8 +48137,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + enum="EnterpriseEnrollmentType" expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to manual fallback from attestation-based re-enrollment (Auto @@ -46649,8 +48147,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Events related to Chrome OS enterprise enrollment recovery. Note that this @@ -46660,8 +48158,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Elapsed time from *after* GAIA login until enrollment was cancelled. @@ -46669,16 +48167,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - rsorokin@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com + cros-oac@google.com Elapsed time from *after* GAIA login until enrollment failed. - rsorokin@chromium.org + expires_after="2021-01-01"> + raleksandrov@google.com cros-oac@google.com Elapsed time from *after* GAIA login until enrollment succeeded. @@ -46697,6 +48196,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + anthonyvd@google.com + chrome-enterprise-team-core@google.com + + Events for counting CBCM policy invalidations received with and without + payloads. Invalidations indicate that a policy has been updated and should + be refreshed. Payloads provide context about the policy update, but may be + absent if dropped by the invalidation service. Subset of + "Enterprise.CBCMPolicyInvalidations". Gets recorded only when + FCMInvalidationService is used as InvalidationService. + + + + + anthonyvd@google.com + chrome-enterprise-team-core@google.com + + Events measuring effectiveness of refreshing CBCM policy when invalidations + are received from a service. For each refresh, indicates whether the policy + changed, and whether the policy was invalidated at the time of the refresh. + Subset of "Enterprise.CBCMPolicyRefresh". Gets recorded only when + FCMInvalidationService is used as InvalidationService. + + + @@ -46887,6 +48413,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + wenyufu@chromium.org + twellington@chromium.org + + Records the time it takes to retrieve applicaton restrictions from the + system using an AsyncTask. Recording during first run experience on Android + only. + + + igorcov@chromium.org @@ -46927,7 +48464,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InvalidDevicePolicyFilesStatus" expires_after="2021-05-02"> emaxx@chromium.org igorcov@chromium.org vsavu@chromium.org @@ -46946,12 +48483,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LockToSingleUserResult" expires_after="M86"> emaxx@chromium.org igorcov@chromium.org Chrome OS only. The result of D-Bus call to lock device to single user. - Estimated that till version M82 we should get enough stats to understand if + Estimated that till version M86 we should get enough stats to understand if there are big problems with the D-Bus call. @@ -47042,7 +48579,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> mnissler@chromium.org A set of enterprise policy rules that are in use. This is recorded every 24 @@ -47165,20 +48702,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - antrim@chromium.org + expires_after="M90"> + rbock@google.com + igorcov@chromium.org Time since last device policy fetch. + expires_after="M88"> zmin@chromium.org + pastarmovj@chromium.org Time since last machine level user policy fetch. - antrim@chromium.org + expires_after="M90"> + rbock@google.com + igorcov@chromium.org Time since last user policy fetch. @@ -47202,9 +48742,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - xiyuan@chromium.org - sduraisamy@chromium.org + expires_after="2021-01-01"> + marcgrimme@chromium.org + managed-devices@google.com A public session starts when a user signs in using the policy configured public account. It stops when the user signs out. Session length is the @@ -47227,9 +48767,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - xiyuan@chromium.org - sduraisamy@chromium.org + expires_after="2021-01-01"> + marcgrimme@chromium.org + managed-devices@google.com A regular user session starts when a user signs in using his/her user account. It stops when the user signs out. Session length is the duration @@ -47333,7 +48873,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="EnterpriseSystemLogUploadResult" expires_after="2020-12-13"> poromov@chromium.org Result of a single attempt to upload system logs. @@ -47443,8 +48983,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - poromov@chromium.org + expires_after="M87"> + bmalcolm@chromium.org + managed-devices@google.com Number of retries the client did to execute an UploadJob. It's recorded after the request has been completed, either successfully after 0 or more @@ -47720,9 +49261,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mnissler@chromium.org + expires_after="2021-05-31"> pastarmovj@chromium.org + rogerta@chromium.org Whether the machine is part of an AD domain. This check is performed once at start-up on Windows. @@ -47761,7 +49302,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> mad@chromium.org Whether the machine is joined to an AD domain. This check is performed once @@ -47781,11 +49322,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed M85, obsoleted by IsFullyManaged2 because recording frequency + changed from once per session to once per app start. Note that the summary + of this histogram incorrectly stated otherwise. + + twellington@google.com + tedchcoc@chromium.org + + On Android (OS version M+): Whether the device has a "device + owner" app installed. This check is performed once at start-up. + + + + twellington@google.com tedchcoc@chromium.org - On Android (with version M and higher): Whether the device has a - "device owner" app installed. This check is performed once at + On Android (OS version Lollipop+): Whether the device has a "device + owner" app installed. This check is performed once on application start-up. @@ -47811,13 +49367,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed M85, obsoleted by IsManaged2 because recording frequency changed on + Android from once per session to once per app start. + + rogerta@chromium.org + pastarmovj@chromium.org + + On Windows: Whether the machine is managed via MDM. On macOS: Whether Chrome + found a file of managed policies to follow. On Android (up to M84: OS + version M+, M85+: OS version Lollipop+): Whether the device has a profile + owner app. This check is performed once at start-up. Note that this data is + bogus before M81 on the Mac. + + + + rogerta@chromium.org pastarmovj@chromium.org On Windows: Whether the machine is managed via MDM. On macOS: Whether Chrome - found a file of managed policies to follow. On Android (with version M and - higher): Whether the device has a profile owner app. This check is performed - once at start-up. Note that this data is bogus before M81 on the Mac. + found a file of managed policies to follow. On Android (OS version + Lollipop+): Whether the device has a profile owner app. This check is + performed once on application start-up. @@ -47915,8 +49488,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. donnd@chromium.org jinsukkim@chromium.org - Records whether the user opened the Ephemeral Tab panel when it was shown. - Recorded when the UX is hidden. Implemented for Android. + Records whether the user fully opened the Ephemeral Tab panel when it was + shown. Recorded when the UX is hidden. Implemented for Android. + + + + + donnd@chromium.org + jinsukkim@chromium.org + + Records whether the user opened the Ephemeral Tab panel beyond peeking + state. Recorded when the UX is hidden. Implemented for Android. @@ -47969,7 +49551,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tdresser@chromium.org Time between initiation of any input event and the renderer receiving and @@ -48058,14 +49640,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org - Team: input-dev@chromium.org. + input-dev@chromium.org Number of Mouse events coalesced. + + Removed in 06/2020. + tdresser@chromium.org - Team: input-dev@chromium.org. + input-dev@chromium.org Number of Touch events coalesced. @@ -48255,6 +49843,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as being expired. + dcheng@chromium.org sadrul@chromium.org @@ -48268,6 +49859,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as being expired. + nzolghadr@chromium.org Counts the number of times the user cancelled a drag and drop operation. @@ -48276,6 +49870,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as being expired. + nzolghadr@chromium.org Counts the number of times the user completed a drag and drop operation. @@ -48284,6 +49881,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as being expired. + nzolghadr@chromium.org Counts the number of times a drag and drop operation originating outside of @@ -48293,6 +49893,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as being expired. + nzolghadr@chromium.org Counts the number of times the user started a drag and drop operation. @@ -48300,7 +49903,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-16"> tdresser@chromium.org speed-metrics-dev@chromium.org @@ -48583,6 +50186,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org input-dev@chromium.org @@ -48594,6 +50200,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org input-dev@chromium.org @@ -48604,6 +50213,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchend event and acking @@ -48615,6 +50227,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchend event and acking @@ -48626,6 +50241,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchmove event and acking @@ -48637,6 +50255,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchmove event and acking @@ -48648,6 +50269,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchstart event and @@ -48659,6 +50283,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between the renderer main thread receiving a touchstart event and @@ -49280,7 +50907,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> input-dev@chromium.org Time between the OS receiving a touchpad pinch event and the resulting GPU @@ -49337,7 +50964,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. tdresser@chromium.org - Team: input-dev@chromium.org. + input-dev@chromium.org Time between input event received by OS and sent to Chrome. @@ -49351,6 +50978,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + This histogram never has negative values, so it was removed 06/2020. + sullivan@chromium.org input-dev@chromium.org @@ -49379,6 +51009,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org input-dev@chromium.org @@ -49392,6 +51025,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a keyboard event to the renderer main thread and when @@ -49404,6 +51040,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchend event to the renderer main thread and when @@ -49416,6 +51055,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchend event to the renderer main thread and when @@ -49428,6 +51070,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchmove event to the renderer main thread and when @@ -49440,6 +51085,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchmove event to the renderer main thread and when @@ -49452,6 +51100,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchstart event to the renderer main thread and when @@ -49464,6 +51115,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020. + tdresser@chromium.org Time between sending a touchstart event to the renderer main thread and when @@ -49553,8 +51207,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> tdresser@chromium.org + input-dev@chromium.org Time between initial creation of a wheel event and the generated ScrollUpdate gesture event is handled on main/impl thread (specified by @@ -49594,9 +51249,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the display compositor receives the notification of the first ScrollUpdate gesture event in a given scroll gesture event sequence with @@ -49610,9 +51265,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between gpu starts to swap the first ScrollUpdate gesture event in a given scroll gesture event sequence with scrollbar source induced frame and @@ -49629,9 +51284,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the first ScrollUpdate gesture event in a given scroll gesture event sequence with scrollbar source, is handled on main/impl thread @@ -49649,9 +51304,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the renderer starts to swap a frame (generates compositor frame) induced by the first ScrollUpdate gesture event in a given scroll @@ -49665,9 +51320,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between initial creation of a scrollbar event and the first generated ScrollUpdate gesture event in a given scroll gesture event sequence is @@ -49686,10 +51341,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-01"> + dlibby@microsoft.com input-dev@chromium.org speed-metrics-dev@chromium.org - dlibby@microsoft.com Time between initial creation of an input event that resulted in a scrollbar scroll and the start of the frame swap on the GPU service caused by the @@ -49740,7 +51395,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> sadrul@chromium.org chrome-gpu-metrics@google.com @@ -49765,7 +51420,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> tdresser@chromium.org Time between the browser receives the notification of the first ScrollUpdate @@ -49794,7 +51449,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tdresser@chromium.org Time between gpu starts to swap the first ScrollUpdate gesture event in a @@ -49812,10 +51467,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> tdresser@chromium.org + input-dev@chromium.org - Time between the first ScrollUpdate gesture event in a given scroll gesture + Time between the first ScrollBegin gesture event in a given scroll gesture event sequence with touch source, is handled on main/impl thread (specified by suffix) and before renderer starts to swap. @@ -49848,8 +51504,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> tdresser@chromium.org + input-dev@chromium.org Time between the renderer starts to swap a frame induced by the first ScrollUpdate gesture event in a given scroll gesture event sequence with @@ -49860,11 +51517,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-04-19"> tdresser@chromium.org + input-dev@chromium.org Time between initial creation of a touch event and the first generated - ScrollUpdate gesture event in a given scroll gesture event sequence is + ScrollBegin gesture event in a given scroll gesture event sequence is handled on main/impl thread (specified by suffix). If no swap was induced by the ScrollUpdate gesture event, no recording is made. @@ -49926,7 +51584,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> tdresser@chromium.org input-dev@chromium.org speed-metrics-dev@chromium.org @@ -49949,7 +51607,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-11-29"> tdresser@chromium.org Time between the browser receives the notification of the first ScrollUpdate @@ -49961,8 +51619,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-16"> tdresser@chromium.org + input-dev@chromium.org Time between gpu starts to swap the first ScrollUpdate gesture event in a given scroll gesture event sequence with wheel source induced frame and the @@ -49998,8 +51657,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-07-13"> tdresser@chromium.org + input-dev@chromium.org Time between the renderer starts to swap a frame induced by the first ScrollUpdate gesture event in a given scroll gesture event sequence with @@ -50076,7 +51736,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-20"> tdresser@chromium.org Time between initial creation of a wheel event and the start of the frame @@ -50108,8 +51768,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> nzolghadr@chromium.org + input-dev@chromium.org Time between gpu starts to swap a ScrollUpdate gesture event generated from a touchscreen fling induced frame and the swap finishes. @@ -50132,8 +51793,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> nzolghadr@chromium.org + input-dev@chromium.org Time between the renderer starts to swap a frame induced by a ScrollUpdate gesture event generated from a touchscreen fling, and browser receives the @@ -50193,7 +51855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-11-22"> nozlghadr@chromium.org Time between initial creation of a ScrollUpdate gesture event generated from @@ -50264,9 +51926,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the display compositor receives the notification of the first ScrollUpdate gesture event in a given scroll gesture event sequence with @@ -50280,9 +51942,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between gpu starts to swap a ScrollUpdate gesture event with scrollbar source induced frame and the swap finishes. @@ -50298,9 +51960,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the ScrollUpdate gesture event with scrollbar source, is handled on main/impl thread (specified by suffix) and before renderer starts @@ -50318,9 +51980,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between the renderer starts to swap a frame (generates compositor frame) induced by the first ScrollUpdate gesture event in a given scroll @@ -50334,9 +51996,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - input-dev@chromium.org + units="microseconds" expires_after="2020-12-01"> dlibby@microsoft.com + input-dev@chromium.org Time between initial creation of an input event that results in a scrollbar scroll and the generated ScrollUpdate gesture event is handled on main/impl @@ -50355,10 +52017,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-01"> + dlibby@microsoft.com input-dev@chromium.org speed-metrics-dev@chromium.org - dlibby@microsoft.com Time between initial creation of a scrollbar event and start of the frame swap on the GPU service caused by the generated ScrollUpdate gesture event. @@ -50393,7 +52055,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-11-29"> nzolghadr@chromium.org Time between initial creation of a wheel/touch event and start of the frame @@ -50417,7 +52079,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> eirage@chromium.org nzolghadr@chromium.org @@ -50501,8 +52163,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-04-05"> tdresser@chromium.org + input-dev@chromium.org Time between gpu starts to swap a ScrollUpdate gesture event with touch source induced frame and the swap finishes. @@ -50518,7 +52181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> tdresser@chromium.org Time between the ScrollUpdate gesture event with touch source, is handled on @@ -50553,8 +52216,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-04-19"> tdresser@chromium.org + input-dev@chromium.org Time between the renderer starts to swap a frame induced by ScrollUpdate gesture event with touch source, and browser receives the swap notification. @@ -50585,7 +52249,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> tdresser@chromium.org Time between initial creation of a touch event and the generated @@ -50691,7 +52355,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-06"> tdresser@chromium.org Time between the browser receives the notification of a ScrollUpdate gesture @@ -50702,8 +52366,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-16"> tdresser@chromium.org + input-dev@chromium.org Time between gpu starts to swap a ScrollUpdate gesture event with wheel source induced frame and the swap finishes. @@ -50737,8 +52402,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-07-13"> tdresser@chromium.org + input@chromium.org Time between the renderer starts to swap a frame induced by ScrollUpdate gesture event with wheel source, and browser receives the swap notification. @@ -50769,7 +52435,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-11-15"> tdresser@chromium.org Time between initial creation of a wheel event and the generated @@ -50835,7 +52501,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2020-12-20"> tdresser@chromium.org Time between initial creation of a wheel event and start of the frame swap @@ -51074,7 +52740,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dtapuska@chromium.org The result of handling of MouseWheel, TouchStart, TouchMove, TouchEnd events @@ -51378,8 +53044,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-15"> tdresser@chromium.org + input-dev@chromium.org On non-mobile-optimized (desktop) sites, whether the ack response from the renderer for any event in a contiguous touch sequence exceeds the @@ -51390,8 +53057,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-15"> tdresser@chromium.org + input-dev@chromium.org On mobile-optimized sites, whether the ack response from the renderer for any event in a contiguous touch sequence exceeds the mobile-specific timeout @@ -51990,7 +53658,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> dimich@chromium.org Number of unique hosts visited by the user during the last 30 days. Reported @@ -52023,7 +53691,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> dimich@chromium.org freedjm@chromium.org @@ -52048,7 +53716,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> dewittj@chromium.org petewil@chromium.org @@ -52426,7 +54094,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionLocation" expires_after="M86"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -52437,7 +54105,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -52448,7 +54116,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -52461,7 +54129,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionLocation" expires_after="M86"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -52779,9 +54447,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rdevlin.cronin@chromium.org + extensions-core@chromium.org + + The cause for the failure in the setIcon() extension API function. This is + temporary logging to help track down the cause of a crash. + + + + units="Extension Count" expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of extensions on a page that wanted to execute a script, required explicit user consent, and were denied permission. @@ -52789,8 +54468,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Extension Count" expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of extensions on a page that wanted to execute a script, required explicit user consent, and were granted permission. @@ -52799,6 +54479,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2015-10. + rdevlin.cronin@chromium.org The number of extensions per page that injected an ad and could have been @@ -52822,6 +54505,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2015-10. + rdevlin.cronin@chromium.org The number of extensions per page that injected an ad and that could not @@ -52833,6 +54519,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2015-08. + felt@chromium.org rdevlin.cronin@chromium.org The type of ad that was injected. @@ -52840,6 +54529,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed long ago. + felt@chromium.org rdevlin.cronin@chromium.org @@ -52849,8 +54541,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The amount of time it takes to generate the JavaScript API bindings for a particular extension API. This includes the time from when a JavaScript @@ -52861,8 +54554,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The amount of time it takes to create the JavaScript binding object using the binding.js module. This is a strict subset of @@ -52910,7 +54604,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2022-06-30"> benwells@chromium.org dominickn@chromium.org tapted@chromium.org @@ -52934,7 +54628,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2022-06-30"> benwells@chromium.org cylee@chromium.org @@ -52954,7 +54648,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2022-06-30"> benwells@chromium.org tapted@chromium.org @@ -52963,7 +54657,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2022-06-30"> benwells@chromium.org tapted@chromium.org @@ -52973,7 +54667,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2022-06-30"> benwells@chromium.org tapted@chromium.org @@ -52982,8 +54676,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionLocation" expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The extension install location of an extension that Chrome attempted to add, but failed because it would downgrade the version. Tracking for @@ -52992,8 +54687,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionType" expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The extension item type of an extension that Chrome attempted to add, but failed because it would downgrade the version. Tracking for @@ -53045,8 +54741,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of times each Extension function call sends a bad message, killing the renderer. This may indicate a bug in that API's implementation @@ -53056,8 +54755,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org The reason a valid ExtensionSyncData could not be parsed from a SyncData received from sync. @@ -53422,7 +55124,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2020-11-30"> burunduk@chromium.org lazyboy@chromium.org rdevlin.cronin@chromium.org @@ -53438,7 +55140,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-11-30"> burunduk@chromium.org lazyboy@chromium.org rdevlin.cronin@chromium.org @@ -53582,7 +55284,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionPolicyReinstallReason" expires_after="2020-11-30"> burunduk@chromium.org lazyboy@chromium.org poromov@chromium.org @@ -53629,6 +55331,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 06/2020. + waffles@chromium.org extensions-core@chromium.org Net error results from URLFetcher. @@ -54384,8 +56089,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of extensions with event pages that have no registered event listeners at profile startup. (This may indicate something has gone wrong; @@ -54451,8 +56157,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org Recorded every time an event is dispatched to a *component* extension. Otherwise identical to Extensions.Events.Dispatched. @@ -54949,6 +56656,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + swapnilgupta@google.com + burunduk@chromium.org + poromov@chromium.org + + Status of cache entry about enterprise policy forced extension. Recorded for + each forced extension. + + + burunduk@chromium.org @@ -55005,6 +56724,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + snijhara@google.com + swapnilgupta@google.com + burunduk@chromium.org + managed-devices@google.com + + The info field in the update manifest fetched from the server for enterprise + policy forced extensions. Recorded for each forced extension for which the + server responds with no updates and an empty CRX fetch url. Recorded for + each forced extension that failed to install after 5 minutes with + Extensions.{OffStore,WebStore}_ForceInstalledFailureReason3 equal to + CRX_FETCH_URL_EMPTY. + + + @@ -55364,8 +57099,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org The amount of time it takes to handle a response for an extension API request. Recorded on the renderer side once we receive the response IPC from @@ -55375,8 +57113,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org The amount of time it takes to start an extension API request. Recorded on the renderer side after we perform JS pre-processing, but includes all @@ -55487,7 +57228,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -55579,7 +57320,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -55594,6 +57335,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2020-06. + rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -55607,7 +57351,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="Boolean" expires_after="2021-06-01"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -55620,7 +57364,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org kelvinjiang@chromium.org @@ -55749,8 +57493,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + rdevlin.cronin@chromium.org + extensions-core@chromium.org The amount of time for a CSS file to be injected into a page. @@ -55788,8 +57535,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Number of scripts injected at document end by extensions. - + + + rdevlin.cronin@chromium.org + extensions-core@chromium.org Time taken to inject all scripts at document end by extensions. Not reported if scripts are executed asynchronously. @@ -55814,8 +57564,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Number of scripts injected at document idle by extensions. - + + + rdevlin.cronin@chromium.org + extensions-core@chromium.org Time taken to inject all scripts at document idle by extensions. Not reported if scripts are executed asynchronously. @@ -55832,8 +57585,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org Number of blocking scripts injected at document start by extensions. @@ -55848,8 +57604,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org Number of scripts injected at document start by extensions. @@ -55877,7 +57636,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> kelvinjiang@chromium.org extensions-core@chromium.org @@ -55888,7 +57647,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> kelvinjiang@chromium.org extensions-core@chromium.org @@ -55911,7 +57670,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionInstallPromptType" expires_after="2021-06-01"> meacer@chromium.org rdevlin.cronin@chromium.org @@ -56091,10 +57850,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of user-installed extensions loaded at profile open. @@ -56130,8 +57890,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The number of enabled extensions or apps the user has installed that do not update from the Chrome Web Store. Recorded during profile initialization. @@ -56461,7 +58222,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org kelvinjiang@chromium.org @@ -56814,7 +58575,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -56893,7 +58654,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExtensionPermission3" expires_after="2021-06-01"> rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -57306,7 +59067,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org kelvinjiang@chromium.org @@ -57468,7 +59229,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org kelvinjiang@chromium.org @@ -57498,8 +59259,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rdevlin.cronin@chromium.org + extensions-core@chromium.org The duration by which a network request was delayed while waiting for extension user script load. Recorded once per request that is delayed, at @@ -57581,6 +59343,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Replaced by Extensions.Toolbar.PinnedExtensionPercentage3 in 2020/05. + + rdevlin.cronin@chromium.org + extensions-core@chromium.org + + The percentage of extensions that the user has pinned to the toolbar (i.e., + this will be 100 if the user has every extension pinned). Recorded once per + profile during initialization if the user has at least one extension with an + action in the toolbar. + + + + rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -57690,8 +59467,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + rdevlin.cronin@chromium.org + extensions-core@chromium.org Uninstalls grouped by Extension::HistogramType. @@ -57709,6 +59489,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2020-06. + rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -57730,6 +59513,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed 2020-06. + rdevlin.cronin@chromium.org extensions-core@chromium.org @@ -57927,6 +59713,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yhirano@chromium.org + kinuko@chromium.org + + Whether and how keepalive requests are blocked. There is a similar histgoram + Net.KeepaliveRequest.BlockStatus. See there for the difference between the + two histograms. + + + @@ -58524,7 +60321,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-19"> victorvianna@google.com jkrcal@chromium.org @@ -58680,7 +60477,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -60114,7 +61911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NuxNtpBackgroundInteractions" expires_after="2020-11-15"> hcarmona@chromium.org johntlee@chromium.org @@ -60389,8 +62186,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - msarda@chromium.com - droger@chromium.com + msarda@chromium.org + droger@chromium.org chrome-signin-team@google.com Detailed error type in bad requests for OAuth2 refresh tokens. @@ -60399,8 +62196,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - msarda@chromium.com - droger@chromium.com + msarda@chromium.org + droger@chromium.org chrome-signin-team@google.com URLFetcher response codes for OAuth2AccessToken. Positive values are HTTP @@ -60410,8 +62207,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - msarda@chromium.com - droger@chromium.com + msarda@chromium.org + droger@chromium.org chrome-signin-team@google.com Number of successful requests preceding a bad request for an OAuth2 refresh @@ -60775,6 +62572,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2020-06. + tschumann@chromium.org @@ -60905,7 +62705,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> peter@chromium.org platform-capabilities@chromium.org @@ -61028,7 +62828,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> alexchau@chromium.org peter@chromium.org @@ -61038,7 +62838,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-13"> alexchau@chromium.org peter@chromium.org @@ -61383,8 +63183,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - benwells@chromium.org + enum="GeolocationSettingsDialogBackOff" expires_after="M87"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Records the backoff level when the Location Settings Dialog is accepted by the user. @@ -61392,8 +63193,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - benwells@chromium.org + enum="GeolocationSettingsDialogBackOff" expires_after="M87"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Records the backoff level when the Location Settings Dialog is rejected by the user. @@ -61401,8 +63203,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - benwells@chromium.org + enum="GeolocationSettingsDialogBackOff" expires_after="M87"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Records the backoff level when the Location Settings Dialog is shown to the user. @@ -61410,8 +63213,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - benwells@chromium.org + enum="GeolocationSettingsDialogBackOff" expires_after="M87"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Records the backoff level when the Location Settings Dialog is suppressed due to backoff. @@ -61660,6 +63464,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in r454917 03/2017. + robliao@chromium.org skare@chromium.org Types of cards which received an index 0 button click. @@ -61667,6 +63474,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in r454917 03/2017. + robliao@chromium.org skare@chromium.org Types of cards which received an index 1 button click. @@ -61674,12 +63484,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in r454917 03/2017. + robliao@chromium.org skare@chromium.org Types of cards which received a notification click. + + Removed in r454917 03/2017. + robliao@chromium.org skare@chromium.org Events in Google Now component extension. @@ -61687,6 +63503,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in r455117 03/2017. + robliao@chromium.org skare@chromium.org @@ -61800,7 +63619,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InlineUpdateInstallStatus" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61810,7 +63629,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InlineUpdateAvailability" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61820,7 +63639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InlineUpdateCallFailure" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61829,7 +63648,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InlineUpdateErrorCodes" expires_after="2020-10-15"> dtrainor@chromium.org @@ -61842,7 +63661,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UpdateInteractionSource" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61852,7 +63671,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UpdateInteractionSource" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61861,7 +63680,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="UpdateInteractionSource" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61919,7 +63738,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-15"> dtrainor@chromium.org @@ -61931,7 +63750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-15"> dtrainor@chromium.org @@ -61947,7 +63766,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAlreadyUpdating" expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -61957,7 +63776,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-15"> dtrainor@chromium.org nyquist@chromium.org @@ -62053,8 +63872,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - jmadill@chromium.org + expires_after="2020-11-30"> + jonahr@google.com + angle-team@google.com The result from initializing a D3D11 device in ANGLE. Can be success, or one of several error codes which indicate different reasons for failing. @@ -62070,7 +63890,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + jonahr@google.com angle-team@google.com @@ -62079,7 +63899,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + jonahr@google.com angle-team@google.com @@ -62126,7 +63947,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2020-11-30"> jonahr@google.com angle-team@google.com @@ -62262,7 +64083,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="GPUBlacklistFeatureTestResults" expires_after="2020-11-15"> vmiura@chromium.org Counts number of browser invocations for which a GPU feature is @@ -62360,7 +64181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> sievers@chromium.org The reason a GPU command buffer context of a given type was lost. @@ -62496,6 +64317,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + magchen@chromium.org + zmo@chromium.org + + HRESULT return value of ID3D11VideoDevice::CreateVideoProcessorEnumerator in + Direct Composition InitializeVideoProcessor. + + + @@ -62545,6 +64376,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + magchen@chromium.org + zmo@chromium.org + + HRESULT return value of IDCompositionDevice2::CreateSurface. + + + sunnyps@chromium.org @@ -62619,7 +64459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="frames" expires_after="2021-06-15"> sunnyps@chromium.org zmo@chromium.org @@ -62720,7 +64560,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanOverlaySupported" expires_after="2021-05-31"> sunnyps@chromium.org zmo@chromium.org True if Chrome will try to use DirectComposition overlays. @@ -62756,7 +64596,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-31"> sunnyps@chromium.org zmo@chromium.org Whether or not a frame displays an overlay. @@ -62874,6 +64714,36 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + magchen@chromium.org + zmo@chromium.org + + HRESULT return value of ID3D11Device::CreateTexture2D in Direct Composition + UploadVideoImages for creating a copy texture. + + + + + magchen@chromium.org + zmo@chromium.org + + HRESULT return value of ID3D11Device::CreateTexture2D in Direct Composition + UploadVideoImages for creating a staging texture. + + + + + magchen@chromium.org + zmo@chromium.org + + HRESULT return value of ID3D11VideoDevice::CreateVideoProcessor in Direct + Composition InitializeVideoProcessor. + + + sunnyps@chromium.org @@ -62910,9 +64780,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - jmadill@chromium.org - jonahr@chromium.org + + jonahr@google.org + angle-team@google.com The time we spend in GLES2DecoderImpl::DoLinkProgram. Related to how much time we spend compiling shaders during startup. @@ -63045,7 +64915,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> magchen@chromium.org zmo@chromium.org @@ -63187,7 +65057,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> vmiura@chromium.org Counts for each time the GPU Process Host detects the process dies. @@ -63225,8 +65095,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - jmadill@chromium.org + + jonahr@google.com + angle-team@google.com The time that the GPU process spends in initializing the GL surface, and collecting graphics information. Records times up to three minutes. @@ -63275,7 +65147,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> ccameron@chromium.org The time that it took for a call to IOSurfaceCreate to complete. @@ -63291,7 +65163,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-22"> ccameron@chromium.org The time that it took for a call to CGLTexImageIOSurface2D to complete. @@ -63332,7 +65204,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M85"> ccameron@chromium.org graphics-dev@chromium.org @@ -63344,7 +65216,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + ccameron@chromium.org + graphics-dev@chromium.org + + Linking a MTLRenderPipelineState will sometimes hang forever. When + initializing the GPU process, a test shader is compiled to see if the + MTLCompilerService is responding or not. This records the time that it took + for the compile to succeeded, up to 1 minute. After 1 minute, a timeout + sentinel value of 3 minutes is reported. + + + + + + Removed 05/2020. Did not reveal interesting results. + ccameron@chromium.org graphics-dev@chromium.org @@ -63409,7 +65297,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OopRasterGlyphCacheMissType" expires_after="2020-12-06"> khushalsagar@chromium.org During OutOfProcess(Oop) raster, the renderer generates and sends the @@ -63466,9 +65354,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - jmadill@chromium.org + expires_after="2020-11-30"> jonahr@google.com + angle-team@google.com The time we spend in GLES2DecoderPassthroughImpl::DoLinkProgram. Related to how much time we spend compiling shaders during startup. @@ -63537,7 +65425,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-30"> jonahr@google.com angle-team@google.com @@ -63746,7 +65634,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> penghuang@chromium.org backer@chromium.org @@ -63811,7 +65699,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-22"> + + Removed 06/2020. Data has been collected on Windows. + vmiura@chromium.org magchen@chromium.org @@ -63843,7 +65734,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> vasilyt@chromium.org backer@chromium.org @@ -63867,6 +65758,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. Both LUMINANCE_F16 and R16_EXT must be supported for now. + hubbe@chromium.org rijubrata.bhaumik@intel.com media-dev@chromium.org @@ -63905,7 +65799,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSupported" expires_after="2020-06-22"> + + Removed 06/2020. Data has been collected on Windows. + vmiura@chromium.org magchen@chromium.org @@ -63915,7 +65812,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSupported" expires_after="2020-06-22"> + + Removed 06/2020. Data has been collected on Windows. + vmiura@chromium.org magchen@chromium.org @@ -63925,7 +65825,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSupported" expires_after="2020-06-22"> + + Removed 06/2020. Data has been collected on Windows. + vmiura@chromium.org magchen@chromium.org @@ -63935,7 +65838,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-22"> + + Removed 06/2020. Data has been collected on Windows. + vmiura@chromium.org magchen@chromium.org @@ -63965,7 +65871,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-08"> + + No longer used after GPU watchdog V2 is enabled by default in M82. It's the + same as the default histogram GPU.WatchdogThread.Event. + magchen@chromium.org zmo@chromium.org @@ -63974,7 +65884,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> magchen@chromium.org @@ -63986,7 +65896,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="# timeouts" expires_after="2020-11-15"> magchen@chromium.org zmo@chromium.org @@ -64009,7 +65919,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-08"> + + GPU watchdog V1 is disabled in M82. Please see + GPU.WatchdogThread.ExtraThreadTime for the result of V2. + magchen@chromium.org zmo@chromium.org @@ -64019,7 +65933,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-08"> + + GPU watchdog V1 is disabled in M82. Please see GPU.WatchdogThread.Timeout + for the result of V2. + magchen@chromium.org zmo@chromium.org @@ -64028,7 +65946,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-06-08"> + + GPU watchdog V1 is disabled in M82. Please see GPU.WatchdogThread.WaitTime + for the result of V2. + magchen@chromium.org zmo@chromium.org @@ -64050,7 +65972,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> magchen@chromium.org zmo@chromium.org @@ -64062,7 +65984,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> magchen@chromium.org zmo@chromium.org @@ -64221,7 +66143,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> sadrul@chromium.org graphics-dev@chromium.org @@ -64314,26 +66236,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - sadrul@chromium.org - graphics-dev@chromium.org - + As of 2020-02-12, this is deprecated in favor of Graphics.Smoothness.PercentDroppedFrames. - + + sadrul@chromium.org + graphics-dev@chromium.org - sadrul@chromium.org - ericrk@chromium.org - + As of 2020-02-12, this is deprecated in favor of Graphics.Smoothness.PercentDroppedFrames.AllAnimations. - + + sadrul@chromium.org + ericrk@chromium.org + + As of 2020-02-12, this is deprecated in favor of + Graphics.Smoothness.PercentDroppedFrames.AllInteractions. + sadrul@chromium.org ericrk@chromium.org @@ -64344,13 +66270,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + As of 2020-02-12, this is deprecated in favor of + Graphics.Smoothness.PercentDroppedFrames.AllSequence. + sadrul@chromium.org - As of 2020-02-12, this is deprecated in favor of - Graphics.Smoothness.PercentDroppedFrames.AllSequence. ericrk@chromium.org - - - + expires_after="2020-11-15"> yusufo@chromium.org wychen@chromium.org @@ -64391,7 +66316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> yusufo@chromium.org wychen@chromium.org @@ -64411,7 +66336,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2020-11-29"> yusufo@chromium.org wychen@chromium.org @@ -66234,7 +68159,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + ericrobinson@chromium.org shivanisha@chromium.org @@ -66289,7 +68214,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> morlovich@chromium.org jkarlin@chromium.org For each http cache transaction, the recorded pattern. @@ -66445,7 +68370,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ftang@chromium.org intl-libs-team@google.com @@ -66456,7 +68381,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> ftang@chromium.org intl-libs-team@google.com @@ -67186,8 +69111,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + rkaplow@chromium.org + src/components/infobars/OWNERS Records how many times a particular infobar was shown to the user. On Android, the infobar may be partially hidden due to stacking. On desktop, a @@ -67197,7 +69125,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mdjones@chromium.org dominickn@chromium.org @@ -67211,7 +69141,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mdjones@chromium.org dominickn@chromium.org @@ -67221,7 +69153,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mdjones@chromium.org dominickn@chromium.org @@ -67343,6 +69277,42 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jiwan@google.com + essential-inputs-team@google.com + + The number of times each assistive action could be triggered according to + the surrounding text but was not triggered because the user turned off the + feature. Recorded when the surrounding text could trigger assistive actions + but the corresponding feature was disabled. + + + + + myy@google.com + essential-inputs-team@google.com + + The number of times an emoji suggest addition is accepted at a given index. + Recorded when an user accepts an emoji suggestion appeared after typing an + emoji-triggered word. + + + + + jiwan@google.com + essential-inputs-team@google.com + + The number of times each assistive action could be triggered according to + the surrounding text. This includes cases in InputMethod.Assistive.Coverage, + and also includes cases when the feature is turned off or there is + insufficient data. Recorded when the surrounding text could trigger + assistive actions. + + + jiwan@google.com @@ -67353,6 +69323,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + myy@google.com + essential-inputs-team@google.com + + The user's preference for emoji suggestions. Recorded when + AssistiveSuggester is initialised. "Enabled" is logged as the + default value if the user didn't explicitly set it. + + + + + myy@google.com + essential-inputs-team@google.com + + The user's preference for personal information suggestions. Recorded when + AssistiveSuggester is initialised. "Enabled" is logged as the + default value if the user didn't explicitly set it. + + + essential-inputs-team@google.com @@ -67497,7 +69489,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> shend@chromium.org essential-inputs-team@google.com Time taken by the engine to handle a key event. @@ -67657,6 +69649,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. How long the virtual keyboard was visible. + + shend@chromium.org + essential-inputs-team@google.com + How emojis were inserted. + + essential-inputs-team@google.com @@ -68221,6 +70220,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2020-06. + tschumann@chromium.org treib@chromium.org @@ -69702,6 +71704,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rkgibson@google.com + gambard@chromium.org + + When the content rule list provider updates its lists, this can succeed or + fail. Failure occurs when the rule lists are updated again before the first + update finishes. + + + mrefaat@chromium.org @@ -69808,6 +71821,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + javierrobles@chromium.org + djean@chromium.org + + Recorded when a request to replace identities in ASCredentialIdentityStore + fails. + + + javierrobles@chromium.org @@ -69952,6 +71977,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rkgibson@google.com + gambard@chromium.org + + IOS Content Blocking uses special injected Javascript to block access to + things like cookies and local storage. Future changes to iOS/WebKit could + cause these blocks to break. This logs that occurrence. + + + @@ -69975,6 +72011,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + marq@chromium.org + djean@chromium.org + + The source of "Open in new Window" user requests. Recorded when a + newly created window is added to a session. + + + gambard@chromium.org @@ -69994,13 +72040,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="IOSPageLoadCountNavigationType" expires_after="2020-12-06"> danyao@chromium.org The number of navigation started events by navigation type. + expires_after="2020-12-20"> danyao@chromium.org The "true" value of this boolean histogram counts the number of @@ -70196,7 +72242,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="IOSITunesURLsStoreKitHandlingResult" expires_after="2021-06-23"> mrefaat@chromium.org eugenebut@chromium.org @@ -70337,6 +72383,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records the amount of time that the navigation to a previously prefetched + page was delayed because cookies had to be copied from the isolated cookie + jar. + + + + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records whether a previously prefetched subresource from an Isolated + Prerender was served from cache when its page was later navigated to. + + + robertogden@chromium.org @@ -70361,6 +72430,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records the number of cookies that needed to be copied from the prefetch + navigation to the user's profile after a prefetched link is navigated to. + + + robertogden@chromium.org @@ -70409,6 +72489,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records the net error encountered when prefetching a single subresource + during Isolated Prerenders. + + + + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records the number of subresources that were NoStatePrefetch'd during an + Isolated Prerender. Recorded once for each page that is NoStatePrefetch'd + during Isolated Prerenders. + + + + + robertogden@chromium.org + ryansturm@chromium.org + tbansal@chromium.org + + Records the HTTP response code encountered when prefetching a single + subresource during Isolated Prerenders. + + + @@ -70559,7 +72673,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-15"> avi@chromium.org carlosil@chromium.org meacer@chromium.org @@ -70835,7 +72949,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> jamescook@chromium.org msw@chromium.org wutao@chromium.org @@ -70847,7 +72961,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AccessoryAction" expires_after="2020-12-06"> fhorschig@chromium.org Android only. Records whenever users faces an action in the accessory bar or @@ -70856,7 +72970,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AccessoryAction" expires_after="2020-12-06"> fhorschig@chromium.org Android only. Records whenever users select an action in the accessory bar @@ -70893,6 +73007,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ioanap@chromium.org + fhorschig@chromium.org + + Android only. Records how often the user clicks on a certain toggle when + opening an accessory sheet together with the state the toggle was in before + clicking. + + + + + ioanap@chromium.org + fhorschig@chromium.org + + Android only. Records how often the user sees a certain toggle when opening + an accessory sheet together with the state the toggle was in. + + + fhorschig@chromium.org @@ -70903,6 +73038,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ioanap@chromium.org + fhorschig@chromium.org + + Android only. Records the number of times that the keyboard accessory was + shown on a form for which saving is disabled (with a crossed-out key icon). + Recorded when the user focuses the password field. + + Note: Only the "Shown" bucket should contain samples. + + + @@ -71035,7 +73183,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> + chrome-language@google.com googleo@chromium.org The actions taken on languages settings, recorded every time they happen. @@ -71044,37 +73193,51 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="LanguageSettingsPageType" expires_after="2020-11-01"> + chrome-language@google.com googleo@chromium.org The type of panes which language settings loads. + expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org frechette@chromium.org Accept languages. + + chrome-language@google.com + dvallet@chromium.org + The number of accepted languages in the user preferences. + + + expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org frechette@chromium.org Application languages used for UI. + expires_after="2020-11-29"> asvitkine@chromium.org + ntfschr@chromium.org Logs which Chrome flags from about:flags were active on start up. Note that this flag is not really used on Chrome OS; on that platform, look at - Login.CustomFlags instead. + Login.CustomFlags instead. Android WebView supports flags differently than + most platforms, see + https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/developer-ui.md + for details. + expires_after="2020-12-06"> dominickn@chromium.org hartmanng@chromium.org peconn@chromium.org @@ -71084,7 +73247,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> dominickn@chromium.org hartmanng@chromium.org peconn@chromium.org @@ -71714,7 +73877,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> thestig@chromium.org The version of glibc used. (Linux only) Logged on each start up. @@ -71763,9 +73926,73 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + mcrouse@chromium.org + rajendrant@chromium.org + + Whether the LiteVideo hint cache contains hint for the host of the + navigation being considered for the LiteVideo optimization. Recorded for + every HTTP/HTTPS navigation. + + + + + mcrouse@chromium.org + rajendrant@chromium.org + + When determining whether the LiteVideo should be attempted on a navigation, + the host could be blocklisted for various reasons. This reports the reason + the host of the navigation was blocklisted, or was allowed. Recorded for + every HTTP/HTTPS navigation. + + + + + rajendrant@chromium.org + mcrouse@chromium.org + + Records the total count of media responses that were currently being + throttled. Recorded whenever a new response gets throttled. + + + + + rajendrant@chromium.org + mcrouse@chromium.org + + Records whether the LiteVideo hint agent in the renderer process received + hints. + + + + + mcrouse@chromium.org + rajendrant@chromium.org + + Indicates whether the hints for configuring LiteVideo throttling provided + via Finch were successfully parsed and loaded for use. Android only, + recorded once per browser startup. + + + + + rajendrant@chromium.org + mcrouse@chromium.org + + Records how much a media response was throttled by LiteVideo. Recorded once + for each throttled response. + + + + expires_after="2020-12-06"> sophiechang@chromium.org tbansal@chromium.org @@ -71776,7 +74003,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> alexilin@chromium.org The number of origins that were preconnected for a page load. It includes @@ -71786,7 +74013,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> alexilin@chromium.org The percentage of origins that were preconnected and requested by a page @@ -71797,7 +74024,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="origins" expires_after="2020-12-06"> alexilin@chromium.org tbansal@chromium.org @@ -71807,7 +74034,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="%" expires_after="2020-12-06"> alexilin@chromium.org tbansal@chromium.org @@ -71819,7 +74046,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="%" expires_after="2020-12-13"> alexilin@chromium.org tbansal@chromium.org @@ -71842,7 +74069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> alexilin@chromium.org The number of hosts that were preresolved for a page load. It includes only @@ -71965,6 +74192,75 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + jiameng@chromium.org + tby@chromium.org + thanhdng@chromium.org + wrong@chromium.org + + Type of backend requested from the Local Search Service. It is reported once + at the initialization of an Index. Chrome OS only. + + + + + + + jiameng@chromium.org + tby@chromium.org + thanhdng@chromium.org + wrong@chromium.org + + Number of times the local search service has been requested to perform a + search on a device. Reported daily. The count is accumulated through the + day, spanning reboots, and sent once the system clock indicates that a full + day or more has passed since the last report. If the system is suspended or + off for more than a day, the current count will be reported the next time + the system boots, but the skipped days will not be reported. Chrome OS only. + + + + + jiameng@chromium.org + tby@chromium.org + thanhdng@chromium.org + wrong@chromium.org + + Reasons why local search daily metrics were reported. Chrome OS only. + + + + + + + jiameng@chromium.org + tby@chromium.org + thanhdng@chromium.org + wrong@chromium.org + + Number of results for each successful search. Chrome OS only. + + + + + + + jiameng@chromium.org + tby@chromium.org + thanhdng@chromium.org + wrong@chromium.org + + Search request response status for Cros Settings. Chrome OS only. + + + ssid@chromium.org @@ -72267,7 +74563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> achuith@chromium.org Chrome OS login failure reason. @@ -72281,6 +74577,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + betuls@chromium.org + jorgelo@chromium.org + chromeos-security-core@google.com + + Mount Namespace creation success status. Reported every time user signs in. + + + alemate@chromium.org @@ -72312,8 +74618,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rsorokin@chromium.org + cros-oac@google.com + + Tracks the reason why a user was sent through the GAIA re-auth flow which + caused the local password change. + + + + expires_after="2020-11-29"> xiyuan@chromium.org omrilio@chromium.org @@ -72321,6 +74637,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rsorokin@chromium.org + cros-oac@google.com + + Tracks the reason why a user was sent through the GAIA re-auth flow which + did not cause the local password change. + + + cmasone@chromium.org @@ -72328,17 +74654,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> + rsorokin@chromium.org achuith@chromium.org + cros-oac@google.com Time from first display of the login prompt until the user completes signing in. - + elijahtaylor@google.com yusukes@chromium.org + rsorokin@chromium.org + cros-oac@google.com Time from first display of the login prompt until the existing user completes signing in. @@ -72347,6 +74677,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85. Splitted in two: Login.PasswordChanged.ReauthReason and + Login.PasswordNotChanged.ReauthReason. + achuith@chromium.org Tracks the reason why a user was sent through the GAIA re-auth flow. @@ -72354,7 +74688,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> iby@chromium.org Tracks whether a ChromeOS user was logged out because Chrome repeatedly @@ -72369,7 +74703,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> achuith@chromium.org Chrome OS login success reason. @@ -72437,7 +74771,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> cmasone@chromium.org Chrome OS histogram that keeps track of the way a user logs in and whether @@ -72478,7 +74812,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="1/1000ths of %" expires_after="2020-12-13"> alanlxl@chromium.org amoylan@chromium.org @@ -72569,7 +74903,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> alanlxl@chromium.org amoylan@chromium.org honglinyu@chromium.org @@ -72622,7 +74956,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> alanlxl@chromium.org amoylan@chromium.org honglinyu@chromium.org @@ -72662,10 +74996,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - treib@chromium.org - escordeiro@chromium.org - menegola@chromium.org + enum="SupervisedUserSafetyFilterResult" expires_after="2021-06-02"> + agawronska@chromium.org + cros-families@google.com The counts of results from supervised user URL filtering. Each entry includes the outcome of the filter (i.e. allowed, blocked, or unknown) and @@ -72743,10 +75076,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - treib@chromium.org - escordeiro@chromium.org - menegola@chromium.org + expires_after="2021-06-02"> + agawronska@chromium.org + cros-families@google.com The number of whitelists installed for a supervised user. Recorded at every profile startup. @@ -72755,6 +75087,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85. + treib@chromium.org escordeiro@chromium.org menegola@chromium.org @@ -72766,6 +75101,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85. + treib@chromium.org escordeiro@chromium.org menegola@chromium.org @@ -72776,6 +75114,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85. + treib@chromium.org escordeiro@chromium.org menegola@chromium.org @@ -72786,7 +75127,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> mgiuca@chromium.org mlamouri@chromium.org @@ -72827,8 +75168,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Credentials" expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of credentials presented to the user in the "Use other password..." view in Manual Fallback. This is logged everytime @@ -72837,8 +75179,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of cards presented to the user in Manual Fallback. This is logged everytime the user opens this view. @@ -72846,8 +75189,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of credentials presented to the user in the Passwords Manual Fallback view. This is logged everytime the user opens this view. @@ -72855,8 +75199,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of profiles presented to the user in Manual Fallback. This is logged everytime the user opens this view. @@ -72864,8 +75209,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Suggestions" expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of autofill suggestions present when the user taps on the credit card button in manual fallback. @@ -72873,8 +75219,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Suggestions" expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of password suggestions present when the user taps on the password button in manual fallback. @@ -72882,8 +75229,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Suggestions" expires_after="2021-01-15"> javierrobles@chromium.org + gambard@chromium.org Tracks the number of autofill suggestions present when the user taps on the profiles (address) button in manual fallback. @@ -73042,7 +75390,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> henrika@chromium.org media-dev@chromium.org @@ -73054,7 +75402,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanEverWorked" expires_after="2021-07-01"> henrika@chromium.org media-dev@chromium.org @@ -73315,6 +75663,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020. + maxmorin@chromium.org olka@chromium.org @@ -73424,8 +75775,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-01"> tommi@chromium.org + guidou@chromium.org + olka@chromium.org Error codes from IAudioClient::Initialize() in WASAPIAudioInputStream::InitializeAudioEngine on Windows. @@ -73433,8 +75786,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - grunell@chromium.org + enum="AudioStreamFormatRelatedInitError" expires_after="2021-01-01"> + guidou@chromium.org + olka@chromium.org Errors from IAudioClient::Initialize() in WASAPIAudioInputStream::InitializeAudioEngine on Windows that are related to @@ -73556,8 +75910,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> henrika@chromium.org + webrtc-audio@google.com Indicates if audio capturing did start after stream startup was requested. Sampled once, a few seconds after a stream has been asked to start. @@ -73615,7 +75970,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> henrika@chromium.org media-dev@chromium.org @@ -73689,8 +76044,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> henrika@chromium.org + webrtc-audio@google.com The number of physical processors/cores available on the Mac OSX device. Only sampled when Media.Audio.InputStartupSuccessMac reports 'Failure'. @@ -73765,7 +76121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - Removed on April 2020. + Removed in June 2020. guidou@chromium.org olka@chromium.org @@ -73780,6 +76136,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in June 2020. + olka@chromium.org Number of simultaneous inputs coming to the AudioRendererMixer which renders @@ -73792,6 +76151,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in June 2020. + olka@chromium.org Number of simultaneous inputs coming to the AudioRendererMixer which renders @@ -73804,6 +76166,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in June 2020. + olka@chromium.org Number of simultaneous inputs coming to the AudioRendererMixer which renders @@ -74153,7 +76518,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanChanged" expires_after="2021-07-01"> henrika@chromium.org media-dev@chromium.org @@ -74165,7 +76530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> henrika@chromium.org media-dev@chromium.org @@ -74286,8 +76651,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - grunell@chromium.org + expires_after="2021-06-01"> + gudou@chromium.org + olka@chromium.org The percentage of input audio data blocks that had to be buffered because there was not room in the shared memory ring buffer on the browser/renderer @@ -74362,8 +76728,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - grunell@chromium.org + enum="AudioInputSilenceReport" expires_after="2021-06-01"> + guidou@chromium.org + olka@chromium.org Every 15 seconds during the lifetime of an audio input stream, the sound level is measured, see AudioInputController::CheckAudioPower(). If the level @@ -74379,11 +76746,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. No longer needed. + dalecurtis@chromium.org Measures the time taken for AudioInputDeviceManager:: + + Removed 06/2020. No longer needed. + dalecurtis@chromium.org Measures the time taken for AudioOutputController:: @@ -74538,7 +76911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AudioOutputProxyStreamFormat" expires_after="2021-01-01"> olka@chromium.org Records format used by AudioManager to create audio output stream proxy. If @@ -74613,8 +76986,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> dalecurtis@chromium.org + olka@chromium.org Percentage of AudioSyncReader::Read() calls where the renderer missed its realtime deadline. @@ -74866,8 +77240,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-09-05"> liberato@chromium.org + videostack-eng@chromium.org Record a count for each frame sent to the client by AVDA, separated by what type of frame it is: Non Overlay, secure overlay, etc. @@ -74875,8 +77250,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> liberato@chromium.org + videostack-eng@chromium.org Record a count for each frame sent to the client by AVDA. True counts indicate that the frame was an overlay (SurfaceView). False counts are for @@ -74991,6 +77367,43 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + chcunningham@chromium.org + mlamouri@google.com + media-dev@chromium.org + + Time spent between receiving a decodingInfo() call and resolving it. It only + record successful calls and ignores audio-only. + + + + + chcunningham@chromium.org + mlamouri@google.com + media-dev@chromium.org + + Time spent between receiving a decodingInfo() call and resolving it. It only + record successful calls and ignores audio-only. This is a subset of + Media.Capabilities.DecodingInfo.RequestTime.Video that only takes into + account clear content. + + + + + chcunningham@chromium.org + mlamouri@google.com + media-dev@chromium.org + + Time spent between receiving a decodingInfo() call and resolving it. It only + record successful calls and ignores audio-only. This is a subset of + Media.Capabilities.DecodingInfo.RequestTime.Video that only takes into + account encrypted content. + + + @@ -75006,6 +77419,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org The average number of delayed and dropped frames for the ChromeCast @@ -75027,6 +77443,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org Time needed to pre-buffer A/V data before the actual playback for the @@ -75036,6 +77455,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org Time needed to buffer A/V data after an abort for the ChromeCast @@ -75045,6 +77467,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Not collected as of M83. + mfoltz@chromium.org Time needed to buffer A/V data after an underrun for the ChromeCast @@ -75053,7 +77478,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanTimedOut" expires_after="M86"> vikassoni@chromium.org liberato@chromium.org @@ -75063,7 +77488,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M86"> vikassoni@chromium.org liberato@chromium.org @@ -75235,7 +77660,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="D3D11LifetimeProgression" expires_after="2020-09-07"> liberato@chromium.org tmathmeyer@chromium.org @@ -75246,7 +77671,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="D3D11VideoNotSupportedReason" expires_after="2020-09-07"> liberato@chromium.org sandersd@chromium.org tmathmeyer@chromium.org @@ -75588,13 +78013,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> xhwang@chromium.org media-dev@chromium.org The result from an attempt to load a library CDM. - + xhwang@chromium.org media-dev@chromium.org The time spent to load a library CDM. @@ -75832,7 +78257,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RequestMediaKeySystemAccessStatus" expires_after="2020-12-13"> sandersd@chromium.org media-dev@chromium.org @@ -75867,7 +78292,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanEmpty" expires_after="2020-12-13"> xhwang@chromium.org media-dev@chromium.org @@ -76380,7 +78805,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> steimel@chromium.org media-dev@chromium.org @@ -76481,8 +78906,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + tommi@chromium.org + webrtc-audio@google.com Error codes that we encounter while setting up an AUAudioInputStream on Mac. @@ -76499,8 +78926,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + henrika@chromium.org + webrtc-audio@google.com Duration in milliseconds of low-latency audio input streams. Sampled when the stream is closed by the AudioInputController. @@ -76640,7 +79069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> dalecurtis@chromium.org Audio IO layer used by the Linux OS, sampled once at startup of the browser. @@ -76719,7 +79148,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> dalecurtis@chromium.org The total watch time (see Media.WatchTime) of a given playback divided by @@ -76892,7 +79321,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="instances" expires_after="2020-12-13"> eugene@chromium.org liberato@chromium.org @@ -76903,7 +79332,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="instances" expires_after="2020-12-13"> eugene@chromium.org liberato@chromium.org @@ -76942,7 +79371,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> wolenetz@chromium.org sandersd@chromium.org media-dev@chromium.org @@ -76954,7 +79383,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> wolenetz@chromium.org media-dev@chromium.org @@ -76964,7 +79393,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> dalecurtis@chromium.org media-dev@chromium.org @@ -77016,7 +79445,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> wolenetz@chromium.org media-dev@chromium.org @@ -77091,7 +79520,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> wolenetz@chromium.org sandersd@chromium.org @@ -77275,7 +79704,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> beccahughes@chromium.org media-dev@chromium.org @@ -77342,7 +79771,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> beccahughes@chromium.org media-dev@chromium.org @@ -77353,7 +79782,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaNotificationMetadata" expires_after="2020-12-13"> beccahughes@chromium.org media-dev@chromium.org @@ -77364,7 +79793,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> beccahughes@chromium.org media-dev@chromium.org @@ -77375,7 +79804,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> beccahughes@chromium.org media-dev@chromium.org @@ -77385,8 +79814,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - maxmorin@chromium.org + expires_after="2021-06-01"> + guidou@chromium.org + olka@chromium.org Duration of an audio output stream. Measured in AudioOutputController from when a stream is started until it is stopped. A stream is stopped when it is @@ -77445,7 +79875,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> prabhur@chromium.org dalecurtis@chromium.org @@ -77478,7 +79908,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaPlaybackPowerTypes" expires_after="2020-07-31"> liberato@chromium.org videostack-eng@chromium.org @@ -77496,7 +79926,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaPlaybackPowerTypes" expires_after="2020-07-31"> liberato@chromium.org videostack-eng@chromium.org @@ -77554,39 +79984,52 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Tracks whether a web page allows content to be remoted. - + miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measured audio content transfer bitrate while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Audio channel layout used while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Audio codec used while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Audio sampling rate while remoting audio content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Audio sampling rate while remoting audio content (atypical values, in Hz). @@ -77640,28 +80083,37 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measures the duration of each remoting session. + enum="RemotingStartTrigger" expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Tracks the trigger for starting a remoting session. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Tracks the trigger for stopping a remoting session. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measures the duration of each remoting session shorter than 15 seconds. @@ -77680,8 +80132,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measures how long, from the start of a remoting session, until content began playing out on the remote device. @@ -77689,8 +80143,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measures how long, from the start of a remoting session, until a message was received from the remote device indicating initialization succeeded. @@ -77698,8 +80154,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RemotingTrackConfiguration" expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Tracks whether audio or video or both are remoted. @@ -77714,33 +80172,45 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Aspect ratio of video while remoting content. - + miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Measured video content transfer bitrate while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Video codec used while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Video codec profile used while remoting content. + expires_after="2021-07-01"> miu@chromium.org + jophba@chromium.org + openscreen-eng@google.com Video width while remoting content. @@ -77772,6 +80242,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + kron@chromium.org + webrtc-video@google.com + + Initialization latency of the hardware video decoder that is used in the RTC + pipeline. + + + @@ -77782,6 +80262,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Video codec profile used in RTC video decoder. + + kron@chromium.org + webrtc-video@google.com + + Reinitialization latency of the hardware video decoder that is used in the + RTC pipeline. + + + @@ -77815,7 +80305,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + mlamouri@chromium.org media-dev@chromium.org @@ -77871,7 +80362,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> mlamouri@chromium.org media-dev@chromium.org @@ -77881,7 +80372,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> mlamouri@chromium.org media-dev@chromium.org @@ -77891,7 +80382,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> mlamouri@chromium.org media-dev@chromium.org @@ -77900,7 +80391,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> mlamouri@chromium.org media-dev@chromium.org @@ -77910,7 +80401,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> mlamouri@chromium.org media-dev@chromium.org @@ -78206,7 +80697,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + dalecurtis@chromium.org @@ -78283,7 +80776,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> kamesan@chromium.org chromeos-gfx@chromium.org @@ -78558,6 +81051,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed from code as of 06/2020. + mlamouri@chromium.org Status of the metadata when attempting to lock the screen orientation for a @@ -79315,7 +81811,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dalecurtis@chromium.org Watch time is defined as the amount of elapsed media time for audio+video @@ -79350,7 +81846,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> sandersd@chromium.org tguilbert@chromium.org @@ -79362,7 +81858,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> sandersd@chromium.org tguilbert@chromium.org @@ -79374,7 +81870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> sandersd@chromium.org tguilbert@chromium.org @@ -79548,6 +82044,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Various usage counts for media galleries. + + steimel@chromium.org + media-dev@chromium.org + + True if the MediaLauncherActivity was successfully able to open the file. + Recorded when the MediaLauncherActivity starts the CustomTabActivity. + + + steimel@chromium.org @@ -79571,7 +82077,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79581,7 +82087,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaRouterCastChannelError" expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79592,7 +82098,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="devices" expires_after="2021-07-01"> btolsch@chromium.org openscreen-eng@google.com @@ -79602,7 +82108,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="devices" expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79612,7 +82118,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79622,14 +82128,34 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="MediaRouterCastSinkSource" expires_after="2021-07-01"> btolsch@chromium.org openscreen-eng@google.com The source of discovery for a newly-created Cast sink. + + muyaoxu@google.com + openscreen-eng@google.com + + The types of apps supported by the sender page. Recorded when requesting the + receiver to launch a new session. + + + + + muyaoxu@google.com + openscreen-eng@google.com + + The type of app that the receiver device choose to launch. Recorded when + receiving a receiver status response to the launch request. + + + + expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79639,7 +82165,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-01"> mfoltz@chromium.org openscreen-eng@google.com @@ -79648,6 +82174,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + takumif@chromium.org + muyaoxu@google.com + openscreen-eng@google.com + + Records whether audio is played on the receiver device. If not, then on the + sender side. Recorded when a new site-initiated mirroring session is + started. + + + takumif@chromium.org @@ -79694,6 +82232,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + rwkeane@chromium.org + openscreen-eng@google.com + + Whenever a resource is loaded from the Media Router Component Extension, + this metric gets logged. The value for this metric is always true. + + + takumif@chromium.org @@ -80182,10 +82730,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> olka@chromium.org guidou@chromium.org - armax@chromium.org An amount of private memory of the audio service process placed in swap (VmSwap). Available only on Android and Linux. @@ -80207,10 +82754,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> olka@chromium.org guidou@chromium.org - armax@chromium.org A rough estimate of the shared memory footprint of the audio service process. Recorded once per UMA ping. @@ -80431,7 +82977,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org ssid@chromium.org @@ -80454,7 +83000,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org A rough estimate of the shared memory footprint of the browser process. @@ -80516,6 +83062,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Available free memory until the system will be in a critical state. Critical @@ -80768,7 +83317,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> erikchen@chromium.org @@ -80792,7 +83341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> erikchen@chromium.org @@ -80886,7 +83435,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-11"> mmenke@chromium.org @@ -80910,7 +83459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="KiB" expires_after="2020-10-11"> mmenke@chromium.org @@ -80990,6 +83539,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Records the time elapsed between a near-OOM detection and when a navigation @@ -81012,6 +83564,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Records the time elapsed between a near-OOM detection and when an OOM @@ -81199,6 +83754,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Records the time elapsed between a near-OOM detection and when a foreground @@ -81334,6 +83892,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Records user decisions on near-OOM intervention. @@ -81367,7 +83928,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> keishi@chromium.org @@ -81439,6 +84000,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org Amount of reclaimed memory (in terms of @@ -81448,7 +84012,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> keishi@chromium.org The uptime of a render process in time ticks (excludes extensions). Emitted @@ -81468,7 +84032,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org @@ -81492,7 +84056,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org @@ -81557,7 +84121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org ssid@chromium.org @@ -81578,7 +84142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="MB" expires_after="2020-12-13"> keishi@chromium.org tasak@chromium.org @@ -81797,6 +84361,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. No direct replacement. For similar histograms see + Memory.RenderProcessHost.Count.*, Memory.RendererProcessCount and + Memory.ProcessCount. Old data has been preserved at (Google-internal) + https://docs.google.com/document/d/1QleZ5KhAbFZkv0In61sw7e2rWCaJ05dUCdV9DncJZ2E + creis@chromium.org nasko@chromium.org @@ -81838,7 +84408,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> @@ -81856,7 +84426,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> graphics-dev@chromium.org @@ -81908,7 +84478,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org ssid@chromium.org @@ -82029,7 +84599,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="KB" expires_after="2020-12-13"> msalama@google.com lizeb@chromium.org @@ -82040,8 +84610,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + lizeb@chromium.org + pasko@chromium.org + + Result of an attempt to read /proc/self/pagemap when determining the amount + of resident memory mapped by the current process. Reading the file is + performed as part of computing the + Memory.NativeLibrary.MappedAndResidentMemoryFootprint2 histogram. Recorded + once per UMA ping. Available only on Android. + + + + units="KB" expires_after="2020-12-13"> lizeb@chromium.org The size of the native library code which was ordered, yet is not resident @@ -82065,7 +84649,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> mmenke@chromium.org morlovich@chromium.org @@ -82323,6 +84907,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + lizeb@chromium.org + pasko@chromium.org + + Whether the disk allocator is usable. Recorded at the same time as + "Memory.ParkableString.TotalSizeKb.5min". The disk may not be + usable for several reasons, including the profile being an Incognito one, + permssions error, or disk write error. + + + + + lizeb@chromium.org + pasko@chromium.org + + Total main thread time used by ParkableStrings for reading over the first 5 + minutes of a renderer lifetime. Starting time is from the first + ParkableString being added. + + + + + lizeb@chromium.org + pasko@chromium.org + + Total time used by ParkableStrings for writing to disk over the first 5 + minutes of a renderer lifetime. Starting time is from the first + ParkableString being added. + + + lizeb@chromium.org @@ -82334,6 +84952,41 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + lizeb@chromium.org + pasko@chromium.org + + Sum of memory saved by compression and disk discarding, in KB. Recorded at + the same time as "Memory.ParkableString.TotalSizeKb.5min", when + disk discarding is enabled. + + + + + lizeb@chromium.org + pasko@chromium.org + + Total disk footprint used by ParkableStrings including allocator waste, in + KB. Recorded once, 5 minutes after the first ParkableString is added to a + renderer, at the same time as + "Memory.ParkableString.MemorySavings.5min". + + + + + lizeb@chromium.org + pasko@chromium.org + + Total size of ParkableStrings discarded to disk, excluding allocator waste, + in KB. Recorded once, 5 minutes after the first ParkableString is added to a + renderer, at the same time as + "Memory.ParkableString.MemorySavings.5min". + + + lizeb@chromium.org @@ -82443,6 +85096,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Deprecated and removed from the code 06/2020. + lizeb@chromium.org pasko@chromium.org @@ -82545,7 +85201,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> chrisha@chromium.org The memory pressure level, which is recorded periodically. This shows the @@ -82564,7 +85220,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> sebmarchand@chromium.org @@ -82577,7 +85233,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> creis@chromium.org nasko@chromium.org @@ -82686,7 +85342,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org ssid@chromium.org @@ -82750,7 +85406,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> creis@chromium.org nasko@chromium.org @@ -82787,7 +85443,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> alexmos@chromium.org creis@chromium.org lukasza@chromium.org @@ -82805,7 +85461,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="processes" expires_after="2020-12-13"> alexmos@chromium.org creis@chromium.org lukasza@chromium.org @@ -83356,7 +86012,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> tommckee@chromium.org A rough estimate of the private memory footprint of all renderer processes. @@ -83383,7 +86039,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> erikchen@chromium.org ssid@chromium.org @@ -83599,6 +86255,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Obsolete as of 06/2020. + bashi@chromium.org The amount of reclaimed memory after a tab became inactive. @@ -83837,7 +86496,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> sczs@chromium.org thegreenfrog@chromium.org @@ -84018,6 +86677,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + seblalancette@chromium.org + chrome-sharing-core@google.com + Tracks which sharing entry point was triggered. + + + + seblalancette@chromium.org + chrome-sharing-core@google.com + + Tracks the sharing actions executed when the sharing scenario was initiated + for the generated QR code image. + + + + + seblalancette@chromium.org + chrome-sharing-core@google.com + + Tracks the sharing actions executed when the sharing scenario was initiated + from the tab's share button. + + + peconn@chromium.org @@ -84211,7 +86897,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> qinmin@chromium.org xingliu@chromium.org @@ -84272,6 +86958,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + xingliu@chromium.org + clank-downloads@google.com + + Android: Records whether download later dialog will be shown to the user. + Recorded when the download later preference is initialized in native. + + + xingliu@chromium.org @@ -84513,7 +87209,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> bsazonov@chromium.org msarda@chromium.org droger@chromium.org @@ -84622,7 +87318,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> gangwu@chromium.org jdonnelly@chromium.org @@ -84645,7 +87341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> jdonnelly@chromium.org mpearson@chromium.org @@ -84867,6 +87563,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + No longer useful, deprecated in M82. + yusufo@chromium.org Android: The time it takes from launch to the completion of first draw for @@ -84876,6 +87575,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + No longer useful, deprecated in M82 (see https://crbug.com/1053190). + mheikal@chromium.org Android: The state of chrome startup at the first time the user focuses the @@ -84900,6 +87602,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + No longer useful, deprecated in M82. + pasko@chromium.org Android: The time it takes from launch to the first time the user focuses @@ -85027,7 +87732,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> siggi@chromium.org rockot@chromium.org @@ -85375,7 +88080,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> ppi@chromium.org The time it takes to spawn the first child subprocess (including sandbox @@ -85384,7 +88089,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> ppi@chromium.org The time it takes to spawn child sub processes not counting the first one. @@ -85925,7 +88630,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> skuhne@chromium.org The number of users simultaneously signed into a multiprofile session on @@ -85968,7 +88673,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -85987,7 +88693,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NaClHttpStatusCodeClass" expires_after="2020-12-31"> dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -86178,7 +88884,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -86375,7 +89081,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="milliseconds/MB" expires_after="2020-12-31"> dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -86398,7 +89104,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="milliseconds/MB" expires_after="2020-12-31"> dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -86408,7 +89114,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschuff@chromium.org adamk@chromium.org bbudge@chromium.org @@ -87083,9 +89790,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NavigationNeedsReloadType" expires_after="never"> + + boliu@chromium.org alexmos@chromium.org + src/base/android/OWNERS The type of the source of a load from LoadIfNecessary. Recorded when LoadIfNecessary starts a page load. For example, on Android, @@ -87149,7 +89859,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> + + Removed from code June 2020. Replaced with + Navigation.MainFrameHasRTLDomain2. Navigation.MainFrameHasRTLDomain was + logged differently for iOS and Navigation.MainFrameHasRTLDomain2 does not + have this discrepancy. + + cthomp@chromium.org + security-enamel@chromium.org + + Whether the main-frame navigation was to a URL with an RTL domain name. This + is only recorded for finished navigations and not attempts. + + + + cthomp@chromium.org security-enamel@chromium.org @@ -87159,7 +89885,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M88"> + + Removed from code June 2020. Replaced with + Navigation.MainFrameHasRTLDomainDifferentPage2. + Navigation.MainFrameHasRTLDomainDifferentPage was logged differently for iOS + and Navigation.MainFrameHasRTLDomainDifferentPage2 does not have this + discrepancy. + + cthomp@chromium.org + security-enamel@chromium.org + + Whether the main-frame navigation was to a URL with an RTL domain name, + recorded for each main-frame avigation that replaces a document object. This + is not reported for reference fragment navigations, pushState/replaceState + or same page history navigation. This is only recorded for finished + navigations and not attempts. + + + + cthomp@chromium.org security-enamel@chromium.org @@ -87172,7 +89918,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> + + Removed from code June 2020. Replaced with Navigation.MainFrameProfileType2. + Navigation.MainFrameProfileType was logged differently for iOS and + Navigation.MainFrameProfileType2 does not have this discrepancy. + + rhalavati@chromium.org + chrome-privacy-core@google.com + + The browser profile type for each main-frame navigation, recorded after + navigation completion, including NTP. + + + + rhalavati@chromium.org chrome-privacy-core@google.com @@ -87183,6 +89944,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed from code June 2020. Replaced with Navigation.MainFrameScheme2. + Navigation.MainFrameScheme was logged differently for iOS and + Navigation.MainFrameScheme2 does not have this discrepancy. + elawrence@chromium.org estark@chromium.org @@ -87204,8 +89970,36 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + elawrence@chromium.org + estark@chromium.org + + The scheme of the URL for each main-frame navigation. This is only recorded + for finished navigations and not attempts. + + + + + Removed from code June 2020. Replaced with + Navigation.MainFrameSchemeDifferentPage2. + Navigation.MainFrameSchemeDifferentPage was logged differently for iOS and + Navigation.MainFrameSchemeDifferentPage2 does not have this discrepancy. + + elawrence@chromium.org + estark@chromium.org + + The scheme of the URL for each main-frame navigation that replaces a + document object. This is not reported for reference fragment navigations, + pushState/replaceState or same page history navigation. This is only + recorded for finished navigations and not attempts. + + + + elawrence@chromium.org estark@chromium.org @@ -87218,6 +90012,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed from code June 2020. Replaced with + Navigation.MainFrameSchemeDifferentPageOTR2. + Navigation.MainFrameSchemeDifferentPageOTR was logged differently for iOS + and Navigation.MainFrameSchemeDifferentPageOTR2 does not have this + discrepancy. + + elawrence@chromium.org + estark@chromium.org + + The scheme of the URL for each main-frame navigation that replaces a + document object while in incognito. This is not reported for reference + fragment navigations, pushState/replaceState or same page history + navigation. This is only recorded for finished navigations and not attempts. + + + + elawrence@chromium.org estark@chromium.org @@ -87230,6 +90043,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed from code June 2020. Replaced with Navigation.MainFrameSchemeOTR2. + Navigation.MainFrameSchemeOTR was logged differently for iOS and + Navigation.MainFrameSchemeOTR2 does not have this discrepancy. + + elawrence@chromium.org + estark@chromium.org + + The scheme of the URL for each main-frame navigation while in incognito. + This is only recorded for finished navigations and not attempts. + + + + elawrence@chromium.org estark@chromium.org @@ -87688,7 +90516,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="M89"> tbansal@chromium.org ryansturm@chromium.org @@ -88420,6 +91248,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Code removed long ago. + pauljensen@chromium.org How long does each call to NetworkChangeNotifier::GetConnectionType() take. @@ -88525,7 +91356,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbansal@chromium.org bengr@google.com @@ -88617,7 +91448,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BrokenAlternateProtocolLocation" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -88626,7 +91457,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -88663,9 +91494,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dschinazi@chromium.org + src/net/OWNERS + + Breakdown of how requests which could potentially make use of an alternate + protocol use or don't use the protocol, for connections to Google servers. + + + + expires_after="2021-05-11"> tbansal@chromium.org + dschinazi@chromium.org src/net/OWNERS Positive net error codes that failed alternative protocol requests end with. @@ -88722,7 +91564,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="AlternativeServiceType" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -89030,6 +91872,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Fallback code removed 2018-01-23. + rsleevi@chromium.org Whether the certificate common name was used for matching the hostname, @@ -89041,6 +91886,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Fallback code removed 2018-01-23. + rsleevi@chromium.org Whether the certificate common name was used for matching the hostname, @@ -89174,7 +92022,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanOutOfDate" expires_after="never"> + + rsleevi@chromium.org This histogram is recorded every time Chrome successfully validates a @@ -89822,7 +92672,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -89833,7 +92683,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -90113,7 +92963,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> toyoshim@chromium.org yhirano@chromium.org @@ -90124,7 +92974,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> toyoshim@chromium.org yhirano@chromium.org @@ -90189,7 +93039,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> toyoshim@chromium.org yhirano@chromium.org @@ -90199,7 +93049,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> toyoshim@chromium.org yhirano@chromium.org @@ -90250,7 +93100,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> toyoshim@chromium.org yhirano@chromium.org @@ -90286,8 +93136,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wangyix@chromium.org + expires_after="2021-05-11"> + dschinazi@chromium.org + src/net/OWNERS The number of broken alternative services loaded from the prefs file on startup. Alternative services allow an origin server to specify additional @@ -90311,16 +93162,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org + dschinazi@chromium.org + src/net/quic/OWNERS This counts the number of server configs persisted in prefs file. - wangyix@chromium.org + expires_after="2021-05-11"> + dschinazi@chromium.org + src/net/OWNERS The number of recently broken alternative services loaded from the prefs file on startup. Alternative services allow an origin server to specify @@ -90393,6 +93247,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2018-06-29 in crrev.com/571588. + dschinazi@chromium.org src/net/OWNERS @@ -90403,6 +93260,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2018-06-29 in crrev.com/571588. + dschinazi@chromium.org src/net/OWNERS @@ -90880,6 +93740,50 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yhirano@chromium.org + kinuko@chromium.org + src/net/OWNERS + + The maximum number of data pipes used for network::URLLoader in the network + service in every 20 minutes. + + + + + yhirano@chromium.org + kinuko@chromium.org + src/net/OWNERS + + The minimum number of data pipes used for network::URLLoader in the network + service in every 20 minutes. + + + + + yhirano@chromium.org + kinuko@chromium.org + src/net/OWNERS + + The maximum number of data pipes used for network::WebSocket in the network + service in every 20 minutes. + + + + + yhirano@chromium.org + kinuko@chromium.org + src/net/OWNERS + + The minimum number of data pipes used for network::WebSocket in the network + service in every 20 minutes. + + + @@ -91102,11 +94006,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - pauljensen@chromium.org - mef@chromium.org + + ericorth@chromium.org + src/net/OWNERS - Duration of time taken by DnsTask in resolutions that succeeded. + Duration of time taken by DnsTask (the grouping of all individual DNS + queries for a single instance of resolving a name) in resolutions that + succeeded. @@ -91328,6 +94235,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ericorth@chromium.org + src/net/OWNERS + + Ratio (scaled up by 10) between the time taken by a successful secure + DnsTransaction attempt and the current dynamically-determined base timeout + in use for the DoH server that accomplished the resolve. Only recorded when + the DoH server is already known to be "available" (successful + probe request and failure thresholds not exceeded). + + + ericorth@chromium.org @@ -91372,6 +94292,114 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + dmcardle@chromium.org + ericorth@chromium.org + + Records which RCODE the DNS server specified when it responded to our + INTEGRITY query. If the query timed out before getting a response, + "TimedOut" is recorded instead of an RCODE value. Histograms are + emitted at the completion of a DnsTask's final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Indicates whether the result of an INTEGRITY query was intact (true) or + mangled (false). Only recorded when DnsRcode indicates NoError. Histograms + are emitted at the completion of a DnsTask's final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Records a sample of one when we receive an INTEGRITY record and an error + RCODE at the same time. Histograms are emitted at the completion of a + DnsTask's final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Counts the number of records received when we get any INTEGRITY record + (Intact or Mangled) for a non-experimental domain. Any INTEGRITY record in + the response would be a surprise! Histograms are emitted at the completion + of a DnsTask's final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Records how many ms the DNS server took to respond to an INTEGRITY query. + Histograms are emitted at the completion of a DnsTask's final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Records how many ms the DNS server took to respond to any query other than + an INTEGRITY query. Histograms are emitted at the completion of a DnsTask's + final transaction. + + + + + + + dmcardle@chromium.org + ericorth@chromium.org + + Records a ratio indicating the relative INTEGRITY resolve time compared to + the slower A or AAAA resolve time, where A/AAAA/INTEGRITY belong to the same + DnsTask. Multiply this value by 10 to obtain a percentage P. The INTEGRITY + query completed in roughly P% of the slower A/AAAA resolve time. Values + smaller than 10 indicate that INTEGRITY query was faster than A/AAAA. Values + larger than 10 indicate that the INTEGRITY query was slower than A/AAAA. + Histograms are emitted at the completion of a DnsTask's final transaction. + + + dalyk@google.com @@ -91518,20 +94546,50 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + ericorth@chromium.org + src/net/OWNERS + + Duration of HostResolver requests from Start() until completion. Includes + requests resolved synchronously using fast local sources, e.g. from cache, + recorded as 0. Excludes speculative requests. + + + + + + + ericorth@chromium.org + src/net/OWNERS + + Duration of HostResolver requests from Start() until completion. Excludes + speculative requests and requests resolved using fast local sources, e.g. + from cache. + + + - pauljensen@chromium.org - mef@chromium.org + expires_after="never"> + + + ericorth@chromium.org + src/net/OWNERS - Whether a DNS resolution (single HostResolverImpl::Job) succeeded or failed, - and whether it was speculative. + Whether a HostResolverManager::Job (the basic internal unit of work for + non-local host resolutions, potentially merging redundant requests from + Chrome) succeeded or failed, and whether it was speculative. - pauljensen@chromium.org - mef@chromium.org + expires_after="never"> + + + ericorth@chromium.org + src/net/OWNERS For DNS resolutions that failed after less than 10 ms, which are probably local failures, what error code the jobs failed with. @@ -91539,9 +94597,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - pauljensen@chromium.org - mef@chromium.org + expires_after="never"> + + + ericorth@chromium.org + src/net/OWNERS For DNS resolutions that failed after at least 10 ms, which are probably remote failures or connectivity problems, what error code the jobs failed @@ -91549,23 +94609,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - pauljensen@chromium.org - mef@chromium.org + + + + ericorth@chromium.org + src/net/OWNERS - Duration of time taken by HostResolverImpl::Job in resolutions that failed. - This is the time to resolve a hostname from start to finish. The main - histogram and by-priority versions exclude speculative requests. + Duration of time taken by HostResolverManager::Job (the basic internal unit + of work for non-local host resolutions, potentially merging redundant + requests from Chrome) in resolutions that failed. This is the time to + resolve a hostname from start to finish. Excludes jobs where all requests + are speculative. - - pauljensen@chromium.org - mef@chromium.org + + + + ericorth@chromium.org + src/net/OWNERS - Duration of time taken by HostResolverImpl::Job in resolutions that - succeeded. This is the time to resolve a hostname from start to finish. The - main histogram and by-priority versions exclude speculative requests. + Duration of time taken by HostResolverManager::Job (the basic internal unit + of work for non-local host resolutions, potentially merging redundant + requests from Chrome) in resolutions that succeeded. This is the time to + resolve a hostname from start to finish. Excludes jobs where all requests + are speculative. @@ -91583,8 +94651,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ericorth@chromium.org + doh-core@google.com + + Duration of time taken by HostResolverManager::Job (the basic internal unit + of work for non-local host resolutions, potentially merging redundant + requests from Chrome) in resolutions for in AUTOMATIC secure DNS mode. + Excludes jobs where all requests are speculative. + + + + expires_after="M84"> + + Replaced 2020-06 by Net.DNS.SecureDnsMode.Automatic.ResolveTime + dalyk@google.com doh-core@google.com @@ -91595,8 +94678,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ericorth@chromium.org + doh-core@google.com + + Duration of time taken by HostResolverManager::Job (the basic internal unit + of work for non-local host resolutions, potentially merging redundant + requests from Chrome) in resolutions for in OFF secure DNS mode. Excludes + jobs where all requests are speculative. + + + + expires_after="M84"> + + Replaced 2020-06 by Net.DNS.SecureDnsMode.Off.ResolveTime + dalyk@google.com doh-core@google.com @@ -91607,8 +94705,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + ericorth@chromium.org + doh-core@google.com + + Duration of time taken by HostResolverManager::Job (the basic internal unit + of work for non-local host resolutions, potentially merging redundant + requests from Chrome) in resolutions for in SECURE secure DNS mode. Excludes + jobs where all requests are speculative. + + + + expires_after="M84"> + + Replaced 2020-06 by Net.DNS.SecureDnsMode.Secure.ResolveTime + dalyk@google.com doh-core@google.com @@ -91661,7 +94774,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + Replaced 2020-06 by Net.DNS.Request.TotalTime + pauljensen@chromium.org mef@chromium.org @@ -91671,7 +94787,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + Replaced 2020-06 by Net.DNS.Request.TotalTimeAsync + pauljensen@chromium.org mef@chromium.org @@ -91960,7 +95079,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mmenke@chromium.org Positive net error codes that requests for pages end with, including net::OK @@ -92043,7 +95164,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mmenke@chromium.org Positive net error codes that requests for pages end with, including net::OK @@ -92082,7 +95205,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + mmenke@chromium.org Net error codes that requests for "subresources" end with, @@ -92147,8 +95272,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mmenke@chromium.org + expires_after="2021-06-01"> + edwardjung@chromium.org + src/net/OWNERS Counts of various events that can occur on the network error page. Note that this histogram enum buckets are not mutually exclusive and so a single error @@ -92158,8 +95284,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorNavigationCorrectionTypes" expires_after="2021-06-01"> edwardjung@chromium.org + security-enamel@chromium.org Counts of the type of navigation correction suggestions shown on the network error page. Multiple suggestions can be shown at the same time. @@ -92167,17 +95294,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorNavigationCorrectionTypes" expires_after="2021-06-01"> edwardjung@chromium.org + security-enamel@chromium.org Usage of navigation correction suggestions shown on the network error page. - carlosk@chromium.org - harringtond@chromium.org + enum="NetErrorOfflineSuggestionType" expires_after="2021-05-31"> + sclittle@chromium.org offline-dev@chromium.org Counts of the type of offline content suggestions clicked on the network @@ -92186,9 +95313,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - carlosk@chromium.org - harringtond@chromium.org + enum="NetErrorOfflineSuggestionType" expires_after="2021-05-31"> + sclittle@chromium.org offline-dev@chromium.org Counts of the type of offline content suggestions shown on the network error @@ -92223,6 +95349,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + mmenke@chromium.org + estark@chromium.org + + The number of entries loaded from the Expect-CT database when Chrome starts + up. + + + estark@chromium.org @@ -92275,6 +95411,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + yoichio@chromium.org + ricea@chromium.org + yhirano@chromium.org + + Protocol used to fetch upload streaming with allowHTTP1ForStreamingUpload: + true property. This is recorded per fetch attempt regardless of result. + + + + + yoichio@chromium.org + ricea@chromium.org + yhirano@chromium.org + + Protocol used to fetch upload streaming with allowHTTP1ForStreamingUpload: + false property. This is recorded per fetch attempt regardless of result. + + + Removed 04/2016 as doesn't have data nor owner. @@ -92687,7 +95845,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + davidben@chromium.org Records, on startup, for ARM devices running Android, whether the CPU is @@ -92695,7 +95854,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + Removed 2020-05. + davidben@chromium.org src/net/OWNERS @@ -92813,7 +95975,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + asanka@chromium.org mmenke@chromium.org @@ -92852,7 +96015,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + asanka@chromium.org mmenke@chromium.org @@ -93009,7 +96173,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org Time it takes to complete an HttpJob, from starting the transaction until we @@ -93017,7 +96183,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org Time it takes to complete an HttpJob, from starting the transaction until we @@ -93025,7 +96193,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org Time it takes to complete an HttpJob, from starting the transaction until @@ -93034,7 +96204,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org Time it takes to complete an HttpJob, from starting the transaction until we @@ -93042,7 +96215,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org Time it takes to complete an HttpJob, from starting the transaction until we @@ -93151,7 +96326,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + + + mmenke@chromium.org The count of HTTP Response codes encountered. @@ -93304,7 +96481,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Time it takes for OnStreamReadyCallback to be called. - + + + mmenke@chromium.org Time from when an HTTP request is issued to when the first byte is @@ -93537,7 +96716,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. enum="KeepaliveRequestBlockStatus" expires_after="2020-06-30"> yhirano@chromium.org kinuko@chromium.org - Whether and how keepalive requests are blocked. + + Whether and how keepalive requests are blocked. There is a similar histgoram + "Extensions.WebRequest.KeepaliveRequestState": This histogram + supports platforms where extensions are not supported. + "Extensions.WebRequest.KeepaliveRequestState" includes requests + rejected by WebRequest.onBeforeRequest() which are not counted in this + histogram. + + expires_after="2022-06-01"> davidben@chromium.org Records, on startup, for ARM devices running Android, whether the kernel is @@ -93754,6 +96940,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 for cleanup. https://crbug.com/1089011. Not actively used, + large size, and information is not actionable. + chlily@chromium.org When Network Error Logging receives a "NEL:" header, what happens @@ -93867,7 +97057,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -94295,7 +97485,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M52"> + + Removed in M52. + sclittle@chromium.org Records how many *.googlezip.net Data Reduction Proxies were removed from @@ -94400,6 +97593,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85. + eroman@chromium.org The breakdown of URL schemes seen for explicitly configured ProxyAutoConfig @@ -94833,7 +98029,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PushedStreamVaryResponseHeaderValues" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -94842,7 +98038,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -94865,8 +98062,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wangyix@chromium.org + expires_after="2021-05-11"> + dschinazi@chromium.org + src/net/quic/OWNERS Tracks the number of QUIC alt-svc advertisements parsed by Chrome in Google format vs in IETF format. @@ -94902,7 +98100,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -94925,6 +98123,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2018. + dschinazi@chromium.org src/net/quic/OWNERS @@ -94960,8 +98161,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> wub@chromium.org + src/net/quic/OWNERS The write result returned by the packet writer when the connection attempts to write a packet. @@ -94970,6 +98172,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2018. + dschinazi@chromium.org src/net/quic/OWNERS @@ -95005,7 +98210,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicDiskCacheFailureReason" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95015,7 +98220,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95035,7 +98240,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95045,7 +98250,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95055,7 +98260,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95065,7 +98270,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95077,7 +98282,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95087,7 +98292,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95113,6 +98318,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2018. + dschinazi@chromium.org src/net/quic/OWNERS @@ -95122,7 +98330,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95132,7 +98340,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95142,7 +98350,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95152,7 +98360,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95161,7 +98369,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS The number of client hello messages sent. @@ -95181,14 +98390,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanIgnored" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS The number of times ServerConfigUpdateMessages ignored. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95197,7 +98406,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95239,7 +98448,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicServerConfigState" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95342,7 +98551,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="stream requests" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95353,15 +98562,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Streams" expires_after="2021-05-11"> renjietang@chromium.org + src/net/quic/OWNERS The number of active streams when the quic session decides to go away on path degrading. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -95371,7 +98582,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95381,7 +98592,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95391,7 +98602,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95401,7 +98612,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Milliseconds" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95411,7 +98622,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95421,7 +98632,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95430,8 +98641,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> wub@chromium.org + src/net/quic/OWNERS For a QUIC session that is closed by a public reset, this boolean shows whether it is a public reset sent from a Google server or not. @@ -95439,9 +98651,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="packets" expires_after="2021-05-11"> wub@chromium.org fayang@chromium.org + src/net/quic/OWNERS For a QUIC session that is closed by QUIC_TOO_MANY_RTOS at client, this is the number of packets it received before it is closed. @@ -95449,9 +98662,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="packets" expires_after="2021-05-11"> wub@chromium.org fayang@chromium.org + src/net/quic/OWNERS For a QUIC session that is closed by QUIC_TOO_MANY_RTOS at client, this is the number of packets it sent before it is closed. @@ -95459,7 +98673,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95469,7 +98683,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95478,7 +98692,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanCoalesced" expires_after="2021-05-11"> renjietang@chromium.org src/net/quic/OWNERS @@ -95487,7 +98701,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -95497,7 +98712,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95509,7 +98724,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95523,7 +98738,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95536,7 +98751,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicHandshakeFailureReason" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS The reason a QUIC handshake failed. @@ -95544,7 +98759,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95553,7 +98768,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS The number of streams open when a QUIC session timed out. @@ -95561,7 +98776,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95644,6 +98859,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dschinazi@chromium.org + src/net/quic/OWNERS + + The QUIC application transport error code in a CONNECTION_CLOSE frame + received from the server, when the GQUIC error was missing. + + + + + dschinazi@chromium.org + src/net/quic/OWNERS + + The QUIC application transport error code in a CONNECTION_CLOSE frame + received from the server with a name ending in .google.com, when the GQUIC + error was missing. + + + dschinazi@chromium.org @@ -95665,8 +98903,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dschinazi@chromium.org + src/net/quic/OWNERS + + The QUIC transport error code in a CONNECTION_CLOSE frame received from the + server, when the GQUIC error was missing. + + + + + dschinazi@chromium.org + src/net/quic/OWNERS + + The QUIC application transport error code in a CONNECTION_CLOSE frame + received from the server with a name ending in .google.com, when the GQUIC + error was missing. + + + + enum="BooleanBlocked" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95676,7 +98937,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> renjietang@chromium.org src/net/quic/OWNERS @@ -95685,7 +98946,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicConnectionMigrationStatus" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95695,9 +98956,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2021-05-11"> fayang@chromium.org zhongyi@chromium.org + src/net/quic/OWNERS The result of connectivity probing according to different migration causes. Recorded for every connectivity probing when attempting connection @@ -95706,9 +98968,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ConnectionStateAfterDNS" expires_after="2021-05-11"> renjietang@chromium.org zhongyi@chromium.org + src/net/quic/OWNERS Logs the state of the connection from stale host when fresh dns resolution is completed. This histogram is only valid when race_stale_dns_on_connection @@ -95717,7 +98980,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95726,14 +98989,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS The IP Address family of this connection, as seen locally. + units="RTTs" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95758,7 +99021,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95768,7 +99031,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> fayang@chromium.org src/net/quic/OWNERS @@ -95777,7 +99040,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> fayang@chromium.org src/net/quic/OWNERS @@ -95786,8 +99049,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Streams" expires_after="2021-05-11"> renjietang@chromium.org + src/net/quic/OWNERS The number of draining streams when the quic session decides to go away on path degrading. @@ -95795,7 +99059,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95805,7 +99069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95814,9 +99078,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> renjietang@chromium.org zhongyi@chromium.org + src/net/quic/OWNERS The time for a fresh DNS resolution from DoResolveHost to having a fresh DNS result. @@ -95824,7 +99089,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95834,7 +99099,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanReceived" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95845,7 +99110,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95868,7 +99133,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanConfirmed" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95878,7 +99143,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanConfirmed" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95888,7 +99153,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanDetected" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -95898,7 +99163,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95907,7 +99172,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95916,7 +99181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95925,7 +99190,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95960,7 +99225,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Milliseconds" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95983,7 +99248,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -95993,7 +99258,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="InitialRttEstimateSource" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96017,7 +99282,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96028,8 +99293,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + fayang@chromium.org + src/net/quic/OWNERS + + Max consecutive retransmission timeout before making forward progress. + + + + + fayang@chromium.org + src/net/quic/OWNERS + + Max consecutive retransmission timeout before making forward progress when + blackhole has been detected. + + + + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96038,7 +99323,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96047,7 +99332,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96056,7 +99341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -96065,7 +99350,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96075,7 +99360,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="migrations" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96085,7 +99370,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96094,7 +99379,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="stream requests" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96110,6 +99395,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Removed 04/2020, no longer needed. zhongyi@chromium.org + src/net/quic/OWNERS The number of queued packets when a connection is closed due to writing an out of order packet. @@ -96118,7 +99404,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 2018. + zhongyi@chromium.org + src/net/quic/OWNERS The number of queued packets when a connection starts to write queued packets. @@ -96126,7 +99416,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96136,7 +99426,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96148,7 +99438,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96159,7 +99449,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96169,7 +99459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96179,8 +99469,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS The number of missing packets between the last received packet before a PING frame sent and the first packet received after PING sent. @@ -96188,7 +99479,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96199,7 +99490,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96224,7 +99515,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96234,7 +99525,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96245,7 +99536,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96256,7 +99547,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicPlatformNotification" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96265,14 +99556,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicConnectionMigrationStatus" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS The result of a QUIC port migration attempt. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96281,7 +99572,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96291,7 +99582,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96306,6 +99597,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Removed 02/2018. Use Net.QuicSession.PublicResetAddressMismatch2. wtc@google.com + src/net/quic/OWNERS When a public reset packet is received, whether the client IP address and port number in it differ from the client IP address and port number in the @@ -96317,8 +99609,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - wtc@google.com + enum="QuicAddressMismatch" expires_after="2021-05-11"> + dschinazi@chromium.org + src/net/quic/OWNERS When a public reset packet is received, whether the client IP address and port number in it differ from the client IP address and port number in the @@ -96327,7 +99620,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -96336,7 +99630,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96345,7 +99639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96353,7 +99647,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + zhongyi@chromium.org src/net/quic/OWNERS @@ -96362,7 +99657,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96373,7 +99668,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96383,7 +99678,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96394,7 +99689,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="count" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96404,14 +99699,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS Version of the QUIC protocol used for this connection. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96421,7 +99717,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorCodes" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96431,7 +99727,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96441,7 +99737,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96465,7 +99761,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96488,7 +99784,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96498,7 +99794,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96515,7 +99811,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96524,7 +99820,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96545,7 +99841,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96555,7 +99851,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicRstStreamErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96564,7 +99860,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicRstStreamErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96573,7 +99869,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96583,7 +99879,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicAddressMismatch" expires_after="2021-05-11"> zhongyi@google.com src/net/quic/OWNERS @@ -96595,7 +99891,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96616,7 +99912,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96639,7 +99935,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/quic/OWNERS @@ -96648,17 +99945,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> renjietang@chromium.org + src/net/quic/OWNERS True if fresh host lists contains stale host used in racing connection. + expires_after="2021-05-11"> renjietang@chromium.org zhongyi@chromium.org + src/net/quic/OWNERS The time a QUIC connection from invalid stale dns result takes to do Crypto handshake. This starts on DoConnect and ends when the connection finishes. @@ -96666,8 +99965,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> renjietang@chromium.org + src/net/quic/OWNERS True if the stale host is used in racing connection. @@ -96685,8 +99985,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + renjietang@chromium.org + src/net/quic/OWNERS + + Records when a STATELESS_RESET is received after a connectivity probing is + cancelled. + + + + + renjietang@chromium.org + src/net/quic/OWNERS + + When probing is cancelled, records whether a STATELESS_RESET is received. + + + + enum="QuicErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96696,7 +100015,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96706,7 +100025,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanBlocked" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96716,7 +100035,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="1/10th Percent" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96727,7 +100046,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96737,7 +100056,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96747,7 +100066,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="1/10th Percent" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96758,7 +100077,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96768,7 +100087,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96778,7 +100097,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96788,7 +100107,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96798,8 +100117,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="Milliseconds" expires_after="2021-05-11"> renjietang@chromium.org + src/net/quic/OWNERS The time a QuicStreamFactory Job takes from host rersolution to connection confirmation. @@ -96819,7 +100139,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96828,7 +100148,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96859,7 +100179,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96869,7 +100189,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicSessionLocations" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96879,7 +100199,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicSessionLocations" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96889,7 +100209,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicSessionLocations" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96899,9 +100219,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> renjietang@chromium.org zhongyi@chromium.org + src/net/quic/OWNERS The time a QUIC connection that will be confirmed takes for Crypto handshake. The event starts on DoConnect, and ends when the connection @@ -96910,7 +100231,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96921,7 +100242,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96931,7 +100252,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorCodes" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96941,7 +100262,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorCodes" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -96964,7 +100285,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicNotReusableReason" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -96974,8 +100295,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAttempted" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Records if a new connection on the alternate network is attempted when a connection fails before handshake is confirmed. @@ -96984,8 +100306,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetworkConnectionType" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Connection type of the default network when the connection fails with handshake not confirmed. @@ -96993,7 +100316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicBadPacketLossEvents" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -97004,8 +100327,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Status of the connection on the non-default network when it finishes. A connection may stay on the non-default network during the initial setup when @@ -97014,7 +100338,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanMatched" expires_after="2021-05-11"> zhongyi@chromium.org src/net/quic/OWNERS @@ -97024,7 +100348,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="QuicDisabledReason" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -97049,8 +100373,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetworkConnectionType" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Connection type of the alternate network when a connection is about to be attempted when the original connection fails on the default network with @@ -97059,8 +100384,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Status of the connection which is created for migration before handshake is confirmed. @@ -97068,8 +100394,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetErrorCodes" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS The network error code returned when the retried connection on the alternate network before handshake fails. @@ -97078,16 +100405,37 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanChanged" expires_after="2021-05-11"> zhongyi@chromium.org + src/net/quic/OWNERS Captures whether the default network has been changed when the new connection succeeds on the "alternate" network. + + zhongyi@chromium.org + src/net/quic/OWNERS + + The number number of sessions that are degrading on network change. The + suffix specifies the network change. + + + + + zhongyi@chromium.org + src/net/quic/OWNERS + + Of all the exisiting sessions, the percentage of sessions that detects + degrading on network change. The suffix specifies the network change. + + + + units="resets" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -97099,7 +100447,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -97110,7 +100458,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="timeouts" expires_after="2021-05-11"> dschinazi@chromium.org src/net/quic/OWNERS @@ -97145,8 +100493,66 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + vasilvv@chromium.org + src/net/quic/OWNERS + + The Google QUIC error code which resulted in the QuicTransport connection + being closed by the client. + + + + + vasilvv@chromium.org + src/net/quic/OWNERS + + The Google QUIC error code which resulted in the QuicTransport connection + being closed by the server. + + + + + vasilvv@chromium.org + src/net/quic/OWNERS + + The error code for cases when QuicTransport failed to establish a + connection. + + + + + vasilvv@chromium.org + src/net/quic/OWNERS + The code for QuicTransport errors. + + + + vasilvv@chromium.org + src/net/quic/OWNERS + + The state at which establishing a QuicTransport connection has failed. + + + + + vasilvv@chromium.org + src/net/quic/OWNERS + + The state at which the QuicTransportClient has been marked as failed. + + + + + Removed in 2018. + dschinazi@chromium.org src/net/quic/OWNERS @@ -97188,6 +100594,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. No longer tracked. + juliatuttle@chromium.org The outcome of Reporting trying to process a single endpoint group in a @@ -97197,6 +100606,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. No longer tracked. + juliatuttle@chromium.org The outcome of Reporting trying to process a single endpoint in a Report-To @@ -97206,6 +100618,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. No longer tracked. + juliatuttle@chromium.org The outcome of Reporting trying to process a Report-To header. Once it is @@ -97216,6 +100631,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020 for cleanup. https://crbug.com/1089017 + juliatuttle@chromium.org When Reporting successfully delivers a report, the number of unsuccessful @@ -97225,6 +100643,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020 for cleanup. https://crbug.com/1089017 + juliatuttle@chromium.org The delivery latency of reports successfully delivered by Reporting. Starts @@ -97234,7 +100655,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-25"> + chlily@chromium.org juliatuttle@chromium.org The outcome of Reporting trying to deliver a report, recorded when the @@ -97244,6 +100666,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020 for cleanup. https://crbug.com/1089017 + juliatuttle@chromium.org The error (net or HTTP) encountered by Reporting trying to upload one or @@ -97256,6 +100681,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020 for cleanup. https://crbug.com/1089017 + juliatuttle@chromium.org The outcome of Reporting trying to upload one or more reports to a single @@ -97556,7 +100984,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M87"> morlovich@chromium.org chlily@chromium.org @@ -97566,7 +100994,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M87"> morlovich@chromium.org chlily@chromium.org @@ -97638,6 +101066,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 06/2020. + mmenke@chromium.org Number of idle sockets when one of them was reused. @@ -97828,7 +101259,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -97838,7 +101269,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -97920,7 +101351,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SpdyFrameFlowControlState" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -97944,7 +101375,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -97964,7 +101395,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -97988,7 +101419,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98019,7 +101450,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98034,12 +101465,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dschinazi@chromium.org src/net/OWNERS - obsolete The number of bytes recevied per stream. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98085,7 +101515,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98094,14 +101524,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS Socket connected status in SpdySession::CreateStream. + expires_after="2021-05-11"> zhongyi@chromium.org src/net/OWNERS @@ -98109,8 +101539,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + zhongyi@chromium.org + dschinazi@chromium.org src/net/OWNERS The number of bytes that is pushed when the session is closed. @@ -98118,7 +101550,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98142,7 +101574,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS The type of SPDY Protocol error encountered. @@ -98162,7 +101594,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SpdyProtocolErrorDetails2" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98174,14 +101606,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/OWNERS The type of SPDY Session used when looking up a session. + enum="BooleanSuccess" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98318,7 +101751,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98326,14 +101759,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + dschinazi@chromium.org src/net/OWNERS The number of streams issued over a single session. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -98342,7 +101776,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS The number of push streams received over a single session. @@ -98820,13 +102254,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + rsleevi@chromium.org Time to complete a certificate verification (success case). + expires_after="M89"> rsleevi@chromium.org Time to complete a certificate verification (error case). @@ -98873,8 +102307,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> davidben@chromium.org + src/net/OWNERS For each successful TLS handshake, what kind of handshake was used. This metric distinguishes TLS 1.2 (or earlier) and TLS 1.3 as they have very @@ -98884,11 +102319,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - + enum="SSLHandshakeEarlyDataReason" expires_after="2021-06-01"> davidben@chromium.org svaldez@chromium.org + src/net/OWNERS Indicates whether a TLS 1.3 connection with 0-RTT enabled ended up using 0-RTT or not, and why; this includes reasons such as the server declining to @@ -98952,7 +102386,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SSLNegotiatedAlpnProtocol" expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -99016,6 +102450,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06. + davidben@chromium.org For each TLS connection which uses a known root, an RSA key, and TLS 1.2 or @@ -99024,7 +102461,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> davidben@chromium.org For each TLS connection which uses a unknown root, an RSA key, and TLS 1.2 @@ -99083,8 +102520,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="never"> + + davidben@chromium.org + src/net/OWNERS For each SSL connection with a full handshake using a DHE- or ECDHE-based key exchange, the signature algorithm used to authenticate the peer. In TLS @@ -99094,7 +102534,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-30"> svaldez@chromium.org davidben@chromium.org @@ -99105,7 +102545,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-30"> svaldez@chromium.org davidben@chromium.org @@ -99117,7 +102557,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-10-30"> svaldez@chromium.org davidben@chromium.org @@ -99127,7 +102567,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="TLS13DowngradeType" expires_after="2020-10-30"> svaldez@chromium.org davidben@chromium.org @@ -99279,7 +102719,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Number of idle sockets when the Connect() succeeded. - + + + mmenke@chromium.org Time from when the Connect() starts until it completes. Only times under 10 @@ -99743,14 +103185,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. Chromium error code from call to RandomBind() UDP socket. - + dschinazi@chromium.org src/net/OWNERS The time spent in closesocket call in UDPSocketWin::Close. + enum="BooleanPathIsInformative" expires_after="2020-12-30"> davidvc@chromium.org @@ -99764,7 +103206,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="URLRequestReferrerPolicy" expires_after="2020-12-30"> davidvc@chromium.org @@ -99833,7 +103275,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> ricea@chromium.org yhirano@chromium.org yoichio@chromium.org @@ -100863,8 +104305,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetworkCellularActivationState" expires_after="2021-06-30"> azeemarshad@chromium.org + cros-system-services-networking@google.com Tracks the Cellular network activation state when the primary user logs-in to the device. @@ -100872,8 +104315,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NetworkCellularConnectionState" expires_after="2021-06-30"> azeemarshad@chromium.org + cros-system-services-networking@google.com Tracks when cellular network is connected and when cellular network is disconnected without explicit user action. @@ -100881,8 +104325,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> azeemarshad@chromium.org + cros-system-services-networking@google.com Tracks the amount fo time taken between when cellular device starts and finishes connecting. @@ -100939,8 +104384,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> azeemarshad@chromium.org + cros-system-services-networking@google.com Tracks the number of times a cellular network is connected as the only network, or with other network or not connected at all. @@ -101819,6 +105265,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed March 2019. + mortonm@chromium.org Chrome OS metric signifying whether a system is running shill in a sandbox @@ -102071,7 +105520,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> matthewmwang@chromium.org cros-network-metrics@google.com @@ -102199,7 +105648,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WiFiBSSTransitionManagementSupport" expires_after="2020-12-31"> matthewmwang@chromium.org cros-network-metrics@google.com @@ -102354,7 +105803,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - kirtika@chromium.org + + Removed 06/2020. + + briannorris@chromium.org cros-network-metrics@google.com Chrome OS metric sampling the number of different frequencies (i.e. @@ -102553,7 +106005,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WiFiRoamComplete" expires_after="2020-12-31"> matthewmwang@chromium.org @@ -102566,7 +106018,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> matthewmwang@chromium.org @@ -102609,7 +106061,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> matthewmwang@chromium.org @@ -103476,10 +106928,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RequestInitiatorOriginLockCompatibility" expires_after="2020-12-30"> + lukasza@chromium.org creis@chromium.org jam@chromium.org - lukasza@chromium.org Whether the request origin (i.e. network::ResourceRequest::request_initiator) matches the origin that the @@ -103644,8 +107096,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-10"> justincohen@chromium.org + gambard@chromium.org Actions taken by users from the new tab page on iOS. These actions may navigate away from the NTP (e.g. searching in the omnibox or opening a @@ -104753,6 +108206,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 2020-06 because it was no longer being monitored. + mvanouwerkerk@chromium.org Android: the type of load for the NTP, such as cold or warm start. It's a @@ -105351,8 +108807,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mvanouwerkerk@chromium.org + expires_after="2021-06-08"> + fgorski@chromium.org + ender@google.com + yyushkina@chromium.org The time until the search box became available on the NTP in a cold start. It's a cold start if the native library is not already loaded and @@ -105361,8 +108819,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mvanouwerkerk@chromium.org + expires_after="2021-06-08"> + fgorski@chromium.org + ender@google.com + yyushkina@chromium.org The time until the search box became available on the NTP in a warm start. It's a warm start if the native library is already loaded and initialized at @@ -106198,9 +109658,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - dbeam@chromium.org + expires_after="2021-01-01"> + tiborg@chromium.org yyushkina@chromium.org + chrome-desktop-ntp@google.com Actions taken by users of Voice Search on the local New Tab Page on Desktop. These actions may navigate away from the NTP (e.g. submitting a speech @@ -106210,9 +109671,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - dbeam@chromium.org + expires_after="2021-01-01"> + tiborg@chromium.org yyushkina@chromium.org + chrome-desktop-ntp@google.com Errors that occur during Voice Search use on the local New Tab Page on Desktop. These may be user-induced (e.g. the user's utterance could not be @@ -107200,7 +110662,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="WindowsNotificationOnDismissedStatus" expires_after="2020-06-23"> + + Obsolete 06/2020 as we no long record this metric. + chengx@chromium.org peter@chromium.org @@ -107462,7 +110927,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanAvailable" expires_after="2020-11-29"> tbansal@chromium.org bengr@chromium.org @@ -107608,7 +111073,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2020-12-06"> tbansal@chromium.org src/net/nqe/OWNERS @@ -107992,7 +111457,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> tbansal@chromium.org bengr@chromium.org @@ -108107,7 +111572,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> bengr@chromium.org tbansal@chromium.org @@ -108273,6 +111738,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Long removed. + tbarzic@chromium.org Failure reason of final OAuth2 access token retrieval call during Chrome OS @@ -108282,6 +111750,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Long removed. + tbarzic@chromium.org Retry reason of failed OAuth2 access token retrieval call during Chrome OS @@ -108314,8 +111785,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - tbarzic@chromium.org + expires_after="2020-11-29"> + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com Failure reason of MergeSession call during Chrome OS login, Chrome Signin or account addition. On all OSes as of M44 (previously CrOS only). @@ -108323,8 +111796,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - tbarzic@chromium.org + expires_after="2020-11-29"> + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com Retry reason of failed MergeSession call during Chrome OS login, Chrome Signin or account addition. On all OSes as of M44 (previously CrOS only). @@ -108333,6 +111808,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Long removed. + tbarzic@chromium.org Failure reason of final OAuthLogin (with SID+LSID) call during Chrome OS @@ -108342,6 +111820,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Long removed. + tbarzic@chromium.org Retry reason of failed OAuthLogin (with SID+LSID) call during Chrome OS @@ -108374,8 +111855,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - tbarzic@chromium.org + enum="PostMergeVerificationOutcome" expires_after="M85"> + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com Outcome of Chrome OS GAIA cookie post-merge session verification process. It measures how often /MergeSession request collided with browser session @@ -108384,8 +111867,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - tbarzic@chromium.org + enum="PostMergeVerificationOutcome" expires_after="M85"> + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com Outcome of Chrome OS GAIA cookie pre-merge session verification process. It measures how often we need to perform /MergeSession request to @@ -108407,19 +111892,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - tbarzic@chromium.org + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com Outcome of Chrome OS GAIA cookie session restore process. - tbarzic@chromium.org + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com How long it takes for the session restore to fail. - tbarzic@chromium.org + droger@chromium.org + msarda@chromium.org + chrome-signin-team@google.com How long it takes for the session restore to finish succeessfully. @@ -108489,16 +111980,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OfflinePagesAccessEntryPoint" expires_after="2021-06-25"> jianli@chromium.org + offline-dev@chromium.org Logs the UI location from which an offline page was launched. + enum="OfflinePagesNamespaceEnumeration" expires_after="2021-06-25"> dimich@chromium.org + offline-dev@chromium.org Counts the number of times an offline page is accessed. Events are reported per offline pages namespace. @@ -108538,8 +112031,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PlatformFileError" expires_after="2021-06-25"> dimich@chromium.org + offline-dev@chromium.org This is recorded every time the archive directory is being created. It doesn't include the case which the archive directory exists. It has suffixes @@ -108592,8 +112086,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2021-06-25"> petewil@chromium.org + offline-dev@chromium.org Effective connection type at the start of an offlining attempt for an attempt that eventually failed. @@ -108603,8 +112098,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2021-06-25"> dougarnett@chromium.org + offline-dev@chromium.org Effective connection type when pausing one or more background loads is requested. @@ -108615,8 +112111,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2021-06-25"> dougarnett@chromium.org + offline-dev@chromium.org Effective connection type when removing one or more background loads is requested. @@ -108627,8 +112124,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2021-06-25"> dougarnett@chromium.org + offline-dev@chromium.org Effective connection type when resuming one or more background loads is requested. @@ -108638,8 +112136,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="NQEEffectiveConnectionType" expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Effective connection type when a background load is requested. @@ -108658,6 +112157,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests available for processing when processing starts immediately (vs. scheduled). This is for non-svelte @@ -108669,6 +112169,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ImmediateStart.AvailableRequestCount.Svelte" units="units" expires_after="M85"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests available for processing when processing starts immediately (vs. scheduled). This is for svelte devices @@ -108680,6 +112181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount" units="units" expires_after="M78"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests unavailable for processing when processing starts immediately (vs. scheduled). This is for non-svelte @@ -108691,6 +112193,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount.Svelte" units="units" expires_after="M85"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests unavailable for processing when processing starts immediately (vs. scheduled). This is for svelte devices @@ -108701,6 +112204,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Status of attempt to immediately start offlining a page in the background while application is still concurrently using the foreground. This may be @@ -108717,8 +112221,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OfflinePagesBackgroundOfflinerRequestStatus" + expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Status code of background offlining (loading and saving) requests. @@ -108736,6 +112242,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Number of started attempts by failed background load requests. @@ -108744,6 +112251,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Number of started attempts by successful background load requests. @@ -108791,6 +112299,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests available for processing when background scheduled processing starts. This is for non-svelte devices @@ -108802,6 +112311,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ScheduledStart.AvailableRequestCount.Svelte" units="units" expires_after="M78"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests available for processing when background scheduled processing starts. This is for svelte devices (where @@ -108813,6 +112323,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount" units="units" expires_after="M78"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests unavailable for processing when background scheduled processing starts. This is for non-svelte devices @@ -108824,6 +112335,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount.Svelte" units="units" expires_after="M78"> dougarnett@chromium.org + offline-dev@chromium.org Number of queued background load requests unavailable for processing when background scheduled processing starts. This is for svelte devices (where @@ -108832,22 +112344,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Time from background request until it was canceled. + expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Time from background request until it was successfully saved. + expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Time from background request until processing it was first started. This is for non-svelte devices. @@ -108855,8 +112370,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-01"> dougarnett@chromium.org + offline-dev@chromium.org Time from background request until processing it was first started on svelte device. Svelte is determined by base::SysInfo::IsLowEnd(). @@ -108866,6 +112382,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. dougarnett@chromium.org + offline-dev@chromium.org Connection type when prerenderer reports Unsupported Scheme error. @@ -109477,9 +112994,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - iwells@chromium.org - carlosk@chromium.org + enum="MhtmlLoadResult" expires_after="2021-05-31"> + sclittle@chromium.org + offline-dev@chromium.org Result of an attempt to load an MHTML archive to display a trusted offline page, recorded per offline namespace by OfflinePageTabHelper after renderer @@ -109488,9 +113005,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - iwells@chromium.org - carlosk@chromium.org + expires_after="2021-05-31"> + sclittle@chromium.org + offline-dev@chromium.org Result of an attempt to load an MHTML archive to display an untrusted offline page, recorded by OfflinePageTabHelper after the renderer attempts @@ -109843,8 +113360,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - carlosk@chromium.org + enum="OfflinePagesStoreEvent" expires_after="2021-05-31"> + sclittle@chromium.org offline-dev@chromium.org Counts when the offline pages prefetch store is opened or closed. @@ -110051,8 +113568,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - carlosk@chromium.org + expires_after="2021-05-31"> + sclittle@chromium.org + offline-dev@chromium.org Total number of saved offline pages recorded when they are all queried from the store. This value is more meaningful when filtered by unique users as @@ -110638,8 +114156,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mpearson@chromium.org + expires_after="M93"> + gangwu@chromium.org jdonnelly@chromium.org Recorded every time the omnibox is focussed and recent content from the @@ -110656,8 +114174,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mpearson@chromium.org + expires_after="M93"> + gangwu@chromium.org jdonnelly@chromium.org Recorded every time the omnibox is focussed and a recent content from the @@ -110686,8 +114204,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - mpearson@chromium.org + enum="BooleanPresent" expires_after="M93"> + gangwu@chromium.org jdonnelly@chromium.org Recorded every time the omnibox is focussed and a recent content from the @@ -111126,7 +114644,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-09"> cch@chromium.org suggest-2g@google.com @@ -111136,7 +114654,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-09"> cch@chromium.org suggest-2g@google.com @@ -111164,7 +114682,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + mpearson@chromium.org jdonnelly@chromium.org @@ -111374,7 +114892,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -111768,9 +115286,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-09"> mpearson@chromium.org jdonnelly@chromium.org + cch@chromium.org The time elapsed between the sending of a suggest request to Google until the time the request was returned with status==failed. Ignores requests that @@ -111779,9 +115298,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-09"> mpearson@chromium.org jdonnelly@chromium.org + cch@chromium.org The time elapsed between the sending of a suggest request to Google until the time the request was returned with status==success. Ignores requests @@ -111790,9 +115310,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-03-09"> mpearson@chromium.org jdonnelly@chromium.org + cch@chromium.org Counts about the number of suggest requests the omnibox sent, invalidated, and replies received. @@ -111856,6 +115377,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in 06/2020 for M-85. + mpearson@chromium.org jdonnelly@chromium.org cthomp@chromium.org @@ -111939,7 +115463,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ZeroSuggestEligibleOnFocus" expires_after="2020-12-01"> mpearson@chromium.org jdonnelly@chromium.org @@ -111972,7 +115496,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSupported" expires_after="2020-12-01"> mpearson@chromium.org jdonnelly@chromium.org @@ -112000,7 +115524,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> ender@chromium.org mpearson@chromium.org jdonnelly@chromium.org @@ -112019,7 +115543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-01"> ender@chromium.org mpearson@chromium.org jdonnelly@chromium.org @@ -112072,7 +115596,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanChecked" expires_after="2020-12-06"> raleksandrov@google.com cros-oac@google.com @@ -112099,7 +115623,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> raleksandrov@google.com cros-oac@google.com Time spent on error screens during signin. @@ -112115,7 +115639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> raleksandrov@google.com cros-oac@google.com Time spent on error screens during update. @@ -112125,7 +115649,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. expires_after="2021-02-02"> raleksandrov@google.com cros-oac@google.com - Counts all user actions on the EulaScreen. + + Tracks all user actions on the EULA screen. Recorded when user clicks on + buttons on the EULA screen. + @@ -112140,6 +115667,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + raleksandrov@google.com + cros-oac@google.com + + Tracks all user actions on the fingerprint screen. Recorded when user clicks + on buttons on the fingerprint screen. + + + @@ -117636,7 +121535,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> speed-metrics-dev@chromium.org Measures the time from navigation timing's navigation start to the time the @@ -117646,7 +121545,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> ksakamoto@chromium.org speed-metrics-dev@chromium.org @@ -117658,6 +121557,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + altimin@chromium.org + hajimehoshi@chromium.org + bfcache-dev@chromium.org + speed-metrics-dev@chromium.org + + Measures the time from back-forward navigation timing's navigation start to + the time the first paint is performed, for main frame documents. Recorded + only when the page is restored from back-forward cache. + + Do not modify this metric in any way without contacting + speed-metrics-dev@chromium.org. + + + @@ -117671,7 +121587,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-11-29"> maxlg@chromium.org speed-metrics-dev@chromium.org @@ -117689,7 +121605,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-11-29"> maxlg@chromium.org speed-metrics-dev@chromium.org @@ -117702,7 +121618,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-11-29"> bmcquade@chromium.org csharrison@chromium.org speed-metrics-dev@chromium.org @@ -117713,7 +121629,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> bmcquade@chromium.org csharrison@chromium.org @@ -117745,7 +121661,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> bmcquade@chromium.org csharrison@chromium.org @@ -118559,7 +122475,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordBubbleDisplayDisposition" expires_after="2020-11-29"> vasilii@chromium.org When the password management bubble opened, what state was it in? @@ -118567,7 +122483,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jdoerrie@chromium.org kolos@chromium.org vasilii@chromium.org @@ -118614,7 +122530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordSubmissionEvent" expires_after="M90"> jdoerrie@chromium.org kolos@chromium.org @@ -118636,7 +122552,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> jdoerrie@chromium.org kolos@chromium.org vasilii@chromium.org @@ -118681,11 +122597,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="M90"> vasilii@chromium.org + src/components/password_manager/OWNERS Records attempts to prompt user to save a password when password store is - not ready for saving passwords. Recorded once per form submission. + not ready for saving passwords due to an initialization error. Recorded once + per form submission. @@ -118704,7 +122622,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SubmissionIndicatorEvent" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -118795,7 +122713,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2020-10-26"> jdoerrie@chromium.org vasilii@chromium.org @@ -118833,18 +122751,87 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + mamir@chromium.org + treib@chromium.org + + Recorded whenever the opt-in for the account-scoped password storage is + cleared for all Google Accounts. This typically happens because the signin + cookies were cleared. The recorded value is the number of opt-ins that were + cleared. + + + + + treib@chromium.org + victorvianna@google.com + + When the user accepts to move a password from the profile store to the + account store, this records what user action caused the moving flow to be + offered. If the flow is offered but rejected by the user, the histogram is + not recorded. Recorded only in Win/Mac/Linux. + + + + + treib@chromium.org + victorvianna@google.com + + When the user is offered to move a password from the profile store to the + account store, this records what user action caused the moving flow to be + offered. Recorded only in Win/Mac/Linux. + + + + + mamir@chromium.org + treib@chromium.org + + Recorded whenever a user opts in to the account-scoped password storage. The + recorded value is the total number of opted-in accounts in this profile, + including the new opt-in. + + + + + mamir@chromium.org + treib@chromium.org + + Recorded whenever a user opts out of the account-scoped password storage. + The recorded value is the total number of opted-in accounts remaining in + this profile after the current opt-out. + + + - treib@google.com - victorvianna@chromium.org + treib@chromium.org + victorvianna@google.com Records whether a signed-in account was still found by the time Chrome attempted to opt out the user of passwords account storage and clear the associated settings. If no signed-in account is found, the opt-out and clean - up won't happen. Recorded only in Win/Mac/Linux, when opting out of - passwords account storage. One example would be when the user clicks the - opt-out button in chrome://settings/passwords. + up won't happen. Recorded only in Win/Mac/Linux, when opting out of the + account-scoped passwords storage. One example would be when the user clicks + the opt-out button in chrome://settings/passwords. + + + + + treib@chromium.org + victorvianna@google.com + + Records how many passwords in the account store were unsynced when the user + signed out of their Google Account. Recorded only in Win/Mac/Linux when a + user of the account-scoped password storage signs out. @@ -118905,6 +122892,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + vasilii@chromium.org + jdoerrie@chromium.org + mamir@chromium.org + treib@chromium.org + + Number of password forms with empty username in the account-scoped Login + Database. This is recorded on startup. + + + + + vasilii@chromium.org + mamir@chromium.org + treib@chromium.org + + The number of saved passwords in the account-scoped store that could not be + decrypted. Recorded once for the profile on startup. + + + battre@chromium.org @@ -118935,6 +122945,67 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + battre@chromium.org + mamir@chromium.org + treib@chromium.org + vasilii@chromium.org + + The number of accounts stored in the password manager's account-scoped store + (across all sites) for origins with the scheme (e.g., HTTP, HTTPS, FTP) as + given in the histogram suffix. For each scheme, the count is recorded once + per browser start-up. (In case of multiple profiles, the counts are for the + profile that first has a WebContents created.) + + + + + mamir@chromium.org + treib@chromium.org + + The number of accounts stored in the password manager's account-scoped store + that don't exist in the profile-scoped store. Recorded once per run of + Chrome, soon after startup. + + + + + mamir@chromium.org + treib@chromium.org + + The number of accounts stored in the password manager with a conflicting + password between the account-scoped store and profile-scoped store (i.e. the + signon realm and username match, but the password does not). Recorded once + per run of Chrome, soon after startup. + + + + + mamir@chromium.org + treib@chromium.org + + The number of accounts stored in both the password manager's account-scoped + store and profile-scoped store. Recorded once per run of Chrome, soon after + startup. + + + + + mamir@chromium.org + treib@chromium.org + + The number of accounts stored in the password manager's profile-scoped store + that don't exist in the account-scoped store. Recorded once per run of + Chrome, soon after startup. + + + @@ -119091,7 +123162,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidPasswordEntryActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119101,7 +123172,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidPasswordActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119111,7 +123182,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidUsernameActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119121,7 +123192,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidWebsiteActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119131,7 +123202,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidPasswordEntryActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119141,7 +123212,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerAndroidWebsiteActions" expires_after="M88"> fhorschig@chromium.org ioanap@chromium.org @@ -119163,7 +123234,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordAddLoginSyncError" expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -119174,7 +123245,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordUpdateLoginSyncError" expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -119185,7 +123256,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordApplySyncChangesState" expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -119440,9 +123511,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordCertificateError" expires_after="M95"> battre@chromium.org jdoerrie@chromium.org + chrome-password-manager-team@google.com When the password manager sees new forms on the page, it records in this histogram whether there were any SSL certificate errors. The presence of SSL @@ -119465,8 +123537,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> vasilii@chromium.org + src/components/password_manager/OWNERS Collects positive number of undecryptable passwords that were successfully deleted when syncing was enabled. Called for sync user for each profile if @@ -119517,8 +123590,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + fhorschig@chromium.org + mamir@chromium.org + + Records how many credentials from the account store are available to a user + right after they unlocked the account store. If a credential is an exact + duplicate with a local credential, it still counts into this metric. + + + + expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119533,7 +123617,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119547,8 +123631,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + mamir@chromium.org + treib@chromium.org + + The default store for newly-saved passwords (profile-scoped store or + account-scoped store), recorded whenever it is set explicitly. + + + + + Removed as of 06/2020. + vasilii@chromium.org Records the result of removing passwords that cannot be decrypted when @@ -119569,7 +123666,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -119579,7 +123676,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M86"> battre@chromium.org jdoerrie@chromium.org @@ -119607,8 +123704,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. vasilii@chromium.org jdoerrie@chromium.org - Number of password forms with empty username in the Login Database. This is - recorded on startup. + Number of password forms with empty username in the profile-scoped Login + Database. This is recorded on startup. @@ -119696,7 +123793,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119738,7 +123835,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerFilledAndroidCredentials" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119783,7 +123880,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerOfferedAndroidCredentials" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119819,7 +123916,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="FormDataDeserializationStatus" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -119830,7 +123927,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanFormManager" expires_after="M90"> jdoerrie@chromium.org kolos@chromium.org @@ -119987,14 +124084,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> vasilii@chromium.org + src/components/password_manager/OWNERS The number of passwords imported in CSV format per user + enum="PasswordImportFromCSVResult" expires_after="M90"> vasilii@chromium.org + src/components/password_manager/OWNERS The response code of successful or failed password import attempt from a CSV file. @@ -120006,8 +124105,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. vasilii@chromium.org mamir@chromium.org - The number of saved passwords in the store that could not be decrypted. - Recorded once for the profile on startup. + The number of saved passwords in the profile-scoped store that could not be + decrypted. Recorded once for the profile on startup. @@ -120060,7 +124159,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -120460,7 +124559,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordAddLoginSyncError" expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -120471,7 +124570,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordUpdateLoginSyncError" expires_after="2020-11-29"> mamir@chromium.org mastiz@chromium.org @@ -120481,6 +124580,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + + mamir@chromium.org + treib@chromium.org + + Why was the "move password to account?" bubble closed? Recorded + whenever the bubble is closed, either because the user clicked one of the + buttons or it went away automatically (lost focus). + + + @@ -120493,7 +124605,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2020-11-29"> nepper@chromium.org battre@chromium.org kolos@chromium.org @@ -120515,7 +124627,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jdoerrie@chromium.org kazinova@google.com @@ -120571,7 +124683,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -120648,7 +124760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="OtherPossibleUsernamesUsage" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -120658,7 +124770,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordDropdownSelectedOption" expires_after="2020-11-29"> jdoerrie@chromium.org vasilii@chromium.org @@ -120667,7 +124779,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordDropdownState" expires_after="2020-11-29"> jdoerrie@chromium.org vasilii@chromium.org Logs the state of the password dropdown when it's shown. @@ -120692,7 +124804,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="credentials" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120708,7 +124820,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordReusePasswordFieldDetected" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120718,13 +124830,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. A "password reuse" is when the user typed a string that is equal to a saved password on another domain or is equal to the sync password on a non google-login domain. - - + units="characters" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120737,13 +124847,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. A "password reuse" is when the user typed a string that is equal to a saved password on another domain or is equal to the sync password on a non google-login domain. - - + units="credentials" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120769,9 +124877,24 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + dullweber@chromium.org + treib@chromium.org + mamir@chromium.org + + Records how often browsing data succeeds to delete account store passwords + from the Sync server. False is emitted in the rare situations when the + operation times out or the user disables Sync before the deletions are fully + propagated to the Sync server. True is emitted when the password deletion is + successfully propagated to the server. + + + + expires_after="M90"> vasilii@chromium.org + src/components/password_manager/OWNERS Success rate of initialization of password store. Recorded for every user once on the Chrome profile startup. @@ -120779,7 +124902,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jdoerrie@chromium.org vasilii@chromium.org @@ -120801,8 +124924,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - ioanap@chromium.org + enum="PrefilledUsernameFillOutcome" expires_after="M86"> + koerber@google.com Records successful fills of prefilled username values known as placeholders and unsuccessful fills that were blocked because the prefilled value was not @@ -120866,9 +124989,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - vasilii@chromium.org + enum="PasswordManager.ReauthResult" expires_after="M90"> jdoerrie@chromium.org + vasilii@chromium.org Recorded whenever the user interacts with reauthentication in order to access the passwords in settings, or when such reauthentication is skipped @@ -120898,6 +125021,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of 06/2020. + vasilii@chromium.org Collects positive number of inaccessible passwords that were successfully @@ -120943,7 +125069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120954,7 +125080,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -120965,7 +125091,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121007,11 +125133,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29"> + + vasilii@chromium.org + treib@chromium.org + mamir@chromium.org Why was the save password UI (bubble or infobar) closed? + + ioanap@chromium.org + vasilii@chromium.org + + Why was the save password UI (bubble or infobar) closed? This is currently + recorded only for Android and only after the user has unblacklisted an + origin for saving from the accessory sheet. + + + jdoerrie@chromium.org @@ -121305,6 +125446,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + mamir@chromium.org + treib@chromium.org + + Which of the password manager's stores (the profile-scoped one and/or the + account-scoped one) were used within the last 28 days for filling passwords. + Recorded whenever a password form is successfully submitted. This should + typically only be used with "Count unique clients". + + + + + mamir@chromium.org + treib@chromium.org + + Which of the password manager's stores (the profile-scoped one and/or the + account-scoped one) were used within the last 7 days for filling passwords. + Recorded whenever a password form is successfully submitted. This should + typically only be used with "Count unique clients". + + + @@ -121318,7 +125483,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SubmittedPasswordFormFrame" expires_after="M90"> jdoerrie@chromium.org vasilii@chromium.org @@ -121328,7 +125493,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> jdoerrie@chromium.org kolos@chromium.org @@ -121361,9 +125526,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SubmissionIndicatorEvent" expires_after="M90"> jdoerrie@chromium.org - engedy@chromium.org + vasilii@chromium.org The type of event that the Password Manager used for detecting a password form submission. Recorded for each successful password form submission. @@ -121430,9 +125595,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - battre@chromium.org + enum="PasswordManagerSyncingAccountState" expires_after="M95"> + jdoerrie@chromium.org vasilii@chromium.org + chrome-password-manager-team@google.com Information about the user's current sync status crossed with whether their synced password is saved. @@ -121540,11 +125706,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. battre@chromium.org vasilii@chromium.org - The number of accounts stored in the password manager (across all sites) for - origins with the scheme (e.g., HTTP, HTTPS, FTP) as given in the histogram - suffix. For each scheme, the count is recorded once per browser start-up. - (In case of multiple profiles, the counts are for the profile that first has - a WebContents created.) + The number of accounts stored in the password manager's profile-scoped store + (across all sites) for origins with the scheme (e.g., HTTP, HTTPS, FTP) as + given in the histogram suffix. For each scheme, the count is recorded once + per browser start-up. (In case of multiple profiles, the counts are for the + profile that first has a WebContents created.) @@ -121559,7 +125725,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BottomSheet.StateChangeReason" expires_after="2020-11-29"> jdoerrie@chromium.org fhorschig@chromium.org @@ -121585,7 +125751,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29"> vasilii@chromium.org Why was the password manager's UI (bubble or infobar) closed? Save and @@ -121613,7 +125779,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29"> vasilii@chromium.org Why was the update password UI (bubble or infobar) closed? @@ -121686,7 +125852,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> drubery@chromium.org chrome-safebrowsing-alerts@google.com @@ -121711,7 +125877,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="reuses" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121736,7 +125902,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionWarningAction" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121760,7 +125926,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionInterstitialStringType" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121770,7 +125936,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionWarningAction" expires_after="2020-11-29"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121820,7 +125986,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionWarningAction" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121832,7 +125998,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121842,7 +126008,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionRequestOutcome" expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121852,7 +126018,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-11-29"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121909,7 +126075,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121919,7 +126085,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PasswordProtectionRequestOutcome" expires_after="2020-11-29"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -121930,7 +126096,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-10"> bdea@chromium.org chrome-safebrowsing-alerts@google.com @@ -121966,7 +126132,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -122129,7 +126295,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> danyao@chromium.org web-payments-team@google.com @@ -122139,7 +126305,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> sahel@chromium.org web-payments-team@google.com @@ -122231,6 +126397,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + sahel@chromium.org + web-payments-team@google.com + + True when chrome crawls to refetch the missing icon of an already installed + payment app. + + + @@ -122256,14 +126432,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-24"> sahel@chromium.org web-payments-team@google.com True when a service worker times out 5 mins after request. + expires_after="2020-11-29"> sahel@chromium.org web-payments-team@google.com @@ -122284,7 +126460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-11-29"> sahel@chromium.org @@ -122296,7 +126472,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> sahel@chromium.org web-payments-team@google.com @@ -122306,7 +126482,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> sahel@chromium.org @@ -122328,7 +126504,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PaymentRequestTransactionSize" expires_after="2020-11-29"> sahel@chromium.org web-payments-team@google.com @@ -122415,7 +126591,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> hnakashima@chromium.org Tracks user actions in the PDF viewer. Logged when the document is opened @@ -122460,14 +126636,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. rharrison@chromium.org + thestig@chromium.org Tracks what types of forms are present in PDF document, logged when the document finishes loading. - + hnakashima@chromium.org + thestig@chromium.org Measures if PDFs opened in the PDF viewer have attachments. This is logged whenever a document is opened in the PDF viewer. @@ -122509,6 +126687,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. expires_after="2020-12-01"> ankk@microsoft.com mohitb@microsoft.com + thestig@chromium.org virens@microsoft.com Records the number of overlapping link and highlight annotations in a PDF @@ -122531,6 +126710,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. hnakashima@chromium.org + thestig@chromium.org Tracks the number of pages in PDF documents opened in the PDF viewer. @@ -122562,7 +126742,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-31"> bbudge@chromium.org raymes@chromium.org @@ -122638,7 +126818,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PerformanceHintsObserverHintForURLResult" expires_after="2020-10-01"> jds@chromium.org src/chrome/browser/performance_hints/OWNERS @@ -122649,7 +126829,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PerformanceHintsPerformanceClass" expires_after="2020-10-01"> jds@chromium.org src/chrome/browser/performance_hints/OWNERS @@ -122659,6 +126839,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jds@chromium.org + src/chrome/browser/performance_hints/OWNERS + + Records the result of a hint lookup in a single source (e.g. link hints of + the current page, the page's OptimizationMetadata, etc). See the + PerformanceHintsSource suffix for name completions. All source suffix + histograms should have the same total count. + + + bokan@chromium.org @@ -122864,16 +127057,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-03"> lgrey@chromium.org + markchang@chromium.org The average CPU idle wakeups per second, sampled every two minutes. + units="WakeupsPerSecond" expires_after="2021-07-03"> lgrey@chromium.org + markchang@chromium.org (Mac only) The average package exit idle wakeups per second, sampled every two minutes. This is a subset of wakeups that indicate that the processor @@ -122940,11 +127135,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - dominickn@chromium.org + expires_after="never"> + + engedy@chromium.org - hkamila@chromium.org - mlamouri@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks whether a permission was granted, rejected, etc. The suffix of the histogram indicates which particular permission. @@ -122953,6 +127148,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed on 2020-06-19 as most permissions are no longer exposed to insecure + origins to begin with, and even those few that are recorded no useful data + any longer. + dominickn@chromium.org engedy@chromium.org hkamila@chromium.org @@ -122965,6 +127165,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed on 2020-06-19 as most permissions are no longer exposed to insecure + origins to begin with, and even those few that are recorded no useful data + any longer. + dominickn@chromium.org engedy@chromium.org hkamila@chromium.org @@ -123090,6 +127295,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + bsep@chromium.org + engedy@chromium.org + olesiamarukhno@google.com + + Records how long it takes for the user to click on the permission chip after + it was shown. + + + andypaicu@chromium.org @@ -123153,39 +127369,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - dominickn@chromium.org - kcarattini@chromium.org - timloh@chromium.org + + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks the engagement score for sites where permission prompts are accepted. - - dominickn@chromium.org - kcarattini@chromium.org - timloh@chromium.org + + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks the engagement score for sites where permission prompts are denied. - dominickn@chromium.org - kcarattini@chromium.org - timloh@chromium.org + expires_after="2021-06-19"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks the engagement score for sites where permission prompts are dismissed. - - dominickn@chromium.org - kcarattini@chromium.org - timloh@chromium.org + + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks the engagement score for sites where permission prompts are ignored. @@ -123593,14 +127808,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - dominickn@chromium.org - kcarattini@chromium.org + expires_after="2021-06-19"> + engedy@chromium.org + src/components/permissions/PERMISSIONS_OWNERS Tracks how many times permission prompts are shown to users. + + bsep@chromium.org + engedy@chromium.org + olesiamarukhno@google.com + + Records how long it takes for the user to make a decision about permission + request, from when permission prompt is shown until when the user clicks on + one of the buttons in the prompt (accept, block or close). + + + @@ -123917,7 +128144,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -123929,7 +128156,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -123989,7 +128216,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-performance@google.com @@ -123999,7 +128226,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-performance@google.com @@ -124052,7 +128279,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -124061,7 +128288,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-performance@google.com @@ -124073,7 +128300,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + sonnyrao@chromium.org cast-analytics@google.com @@ -124103,7 +128330,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-30"> apronin@chromium.org vbendeb@chromium.org cros-hwsec+uma@chromium.org @@ -124137,9 +128364,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - semenzato@chromium.org - jwerner@chromium.org + + + + + + iby@chromium.org + mutexlox@chromium.org vapier@chromium.org Generic event of interest from Chrome OS. Intended mainly to help assess the @@ -124148,8 +128380,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-02"> drinkcat@chromium.org + dnschneid@chromium.org Detects presence of /run/crouton, indicating that crouton has been started since the previous boot. Value 0/"Total count" is reported on @@ -124188,8 +128421,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - kitching@google.com + expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com Ratio of time a detachable base keyboard is active, i.e. when the USB interface is not auto-suspended. Reported every 30 seconds when the base is @@ -124198,8 +128433,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - kitching@google.com + expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com For devices with a detachable base: whether or not the base is connected on boot. Recorded by upstart task on boot. @@ -124207,14 +128444,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - kitching@google.com + enum="DetachableBasePairResult" expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com Result of a detachable base pair operation. - kitching@google.com + enum="DetachableBasePendingRWUpdate" expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com Detachable base firmware updates can be configured to only occur on boot. In this mode, any update will be considered "pending" until the @@ -124230,14 +128471,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - kitching@google.com + enum="DetachableBaseROUpdateResult" expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com Result of a detachable base RO firmware update. - kitching@google.com + enum="DetachableBaseRWUpdateResult" expires_after="2021-06-02"> + drinkcat@chromium.org + fshao@chromium.org + chromeos-kukui@google.com Result of a detachable base RW firmware update. @@ -124420,7 +128665,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124431,7 +128676,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124443,7 +128688,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124454,7 +128699,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124464,7 +128709,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124476,7 +128721,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> grundler@chromium.org groeck@chromium.org sonnyrao@chromium.org @@ -124504,7 +128749,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-performance@google.com @@ -124525,7 +128770,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + hajimehoshi@chromium.org kouhei@chromium.org sonnyrao@chromium.org @@ -124536,7 +128781,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + hajimehoshi@chromium.org kouhei@chromium.org sonnyrao@chromium.org @@ -124668,6 +128913,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 6/2020 due to lack of usage. + gwendal@chromium.org sarthakkukreti@chromium.org @@ -124700,7 +128948,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -124709,7 +128957,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -124835,6 +129083,32 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + asavery@chromium.org + gwendal@chromium.org + + The amount of time in hours since the last trim when chromeos-trim triggers + a trim for the stateful partition. The chromeos-trim script is run daily, + but a trim is only triggered if the previous run was interrupted, the amount + of writes since the last trim is greater than X% of the remaining space in + stateful or we have not trimmed in 7 days. Reported at most once a day. + + + + + asavery@chromium.org + gwendal@chromium.org + + The amount of data in the stateful partition that is erased when + chromeos-trim triggers a trim. The chromeos-trim script is run daily, but a + trim is only triggered if the previous run was interrupted, the amount of + writes since the last trim is greater than X% of the remaining space in + stateful or we have not trimmed in 7 days. Reported at most once a day. + + + achuith@chromium.org omrilio@chromium.org @@ -124850,6 +129124,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + asavery@chromium.org + gwendal@chromium.org + + Chrome OS stateful partition KiB writes per day. Sampled once daily. + + + dehrenberg@chromium.org @@ -124892,7 +129175,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -124901,7 +129184,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -125685,7 +129968,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -125694,7 +129977,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -125929,9 +130212,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - apronin@chromium.org - cros-hwsec+uma@chromium.org + expires_after="2020-10-07"> + cylai@chromium.org + cros-hwsec-userland-eng+uma@chromium.org Each sample is the value of the TPM dictionary attack counter reported at boot and hourly while running. Any non-zero value is unexpected. @@ -125939,9 +130222,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - apronin@chromium.org - cros-hwsec+uma@chromium.org + enum="CrosTPMDictionaryAttackResetStatusEnum" expires_after="2020-10-07"> + cylai@chromium.org + cros-hwsec-userland-eng+uma@chromium.org Each sample is the status of an hourly attempt to reset the TPM dictionary attack counter. @@ -126000,6 +130283,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 as there is no data and no mention of it in the codebase. + apronin@chromium.org cros-hwsec+uma@chromium.org @@ -126032,16 +130318,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - louiscollard@chromium.org - cros-hwsec+uma@chromium.org + expires_after="2020-10-07"> + cylai@chromium.org + cros-hwsec-userland-eng+uma@chromium.org Records occurrences of U2F commands sent to cr50. - louiscollard@chromium.org - cros-hwsec+uma@chromium.org + expires_after="2020-10-07"> + cylai@chromium.org + cros-hwsec-userland-eng+uma@chromium.org Records occurrences of legacy U2F commands sent to cr50. @@ -126127,7 +130413,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -126137,7 +130423,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@chromium.org chromeos-memory@google.com @@ -126184,7 +130470,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + sonnyrao@google.com chromeos-memory@google.com @@ -126195,7 +130481,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@google.com chromeos-memory@google.com @@ -126205,7 +130491,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-07-02"> sonnyrao@google.com chromeos-memory@google.com @@ -126876,6 +131162,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Experiment has ended 2020-06. + djean@chromium.org eugenebut@chromium.org @@ -126899,6 +131188,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Experiment has ended 2020-06. + djean@chromium.org eugenebut@chromium.org @@ -127740,7 +132032,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> yzshen@chromium.org thestig@chromium.org Collects Flash usage data. @@ -127916,15 +132208,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + timloh@google.com + joelhockey@google.com + + Records the number of Plugin VM apps in the registry at login time. This + only logs if Plugin VM has already benn enabled for the current user. + + + + expires_after="2020-12-13"> kimjae@google.com timloh@google.com Recorded at each time PluginVM DLC is installed. + expires_after="2020-12-13"> timloh@google.com joelhockey@google.com @@ -127935,7 +132237,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> timloh@google.com joelhockey@google.com @@ -127945,7 +132247,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> timloh@google.com joelhockey@google.com @@ -127956,7 +132258,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> timloh@google.com joelhockey@google.com @@ -128022,7 +132324,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + tbroch@chromium.org The level of the backlight as a percentage when the user is on AC. Sampled @@ -128040,7 +132342,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Chrome OS battery charge health percentage. Sampled once when device starts @@ -128138,7 +132440,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Chrome OS battery discharge rate in mW while the system was suspended, @@ -128150,7 +132452,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Counts the number of times we have read the battery status from sysfs and if @@ -128158,7 +132460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + ryansturm@chromium.org tbansal@chromium.org @@ -128183,7 +132485,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Chrome OS remaining battery charge as percent of the maximum battery charge, @@ -128192,7 +132494,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> tbroch@chromium.org Chrome OS remaining battery charge as percent of the maximum battery charge, @@ -128222,7 +132524,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Chrome OS remaining battery charge as percent of the maximum battery charge, @@ -128302,7 +132604,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerConnectedChargingPorts" expires_after="2020-11-29"> bleung@chromium.org tbroch@chromium.org @@ -128317,6 +132619,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + eseckler@chromium.org + skyostil@chromium.org + + Total seconds of CPU time consumed by Chrome, split by process type. + Currently only implemented on Android. For every second of CPU time consumed + by one process, a sample is recorded into the bucket for the process's type. + The histogram thus shows the total sum of CPU time seconds spent per process + type across all users. + + For a histogram of daily per-user values, select "Per-Client + Aggregation Mode". + + + + + eseckler@chromium.org + skyostil@chromium.org + + Total seconds of CPU time consumed by Chrome, split by process type and + thread type. Currently only implemented on Android. For every second of CPU + time consumed by one thread, a sample is recorded into the bucket for the + thread's type. CPU time consumed by a process that cannot be attributed to a + specific thread is recorded into the "UnattributedThread" bucket. + The histogram thus shows the total sum of CPU time seconds spent per thread + type (within processes of a specific type) across all users. + + For a histogram of daily per-user values, select "Per-Client + Aggregation Mode". + + + chirantan@chromium.org abhishekbh@chromium.org @@ -128414,7 +132750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ExternalDisplayOpenResult" expires_after="2020-11-22"> tbroch@chromium.org The result of attempting to open an I2C device to control an external @@ -128424,7 +132760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> tbroch@chromium.org The time that the firmware took to resume the Chrome OS device from @@ -128433,7 +132769,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> tbroch@chromium.org The time that the firmware took to resume the Chrome OS device from @@ -128472,7 +132808,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org jiameng@chromium.org @@ -128534,7 +132870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + tbroch@chromium.org jiameng@chromium.org @@ -128544,7 +132880,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> tbroch@chromium.org The time that the kernel took to resume the Chrome OS device from @@ -128571,7 +132907,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> tbroch@chromium.org The time that the kernel took to suspend-to-RAM the Chrome OS device when @@ -128589,7 +132925,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> tbroch@chromium.org The length of time, in seconds, that a user spent in a single session. @@ -128599,7 +132935,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Number of times that that the system has suspended in response to its lid @@ -128612,8 +132948,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + lgrey@chromium.org + markchang@chromium.org Instantaneous power consution in milliwatts, for the system as a whole and broken down by component. Only recorded on macOS. NB: The collection method @@ -128622,7 +132959,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> lgrey@chromium.org When metrics collection started, records true if a handle to the System @@ -128633,8 +132970,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + olivierli@chromium.org + lgrey@chromium.org + + Every minute after startup a measure of the remaining and maximum battery + capacity is taken. Then a ratio of the remaining capacity over the maximum + capicity is calculated and scaled by 10000. (For example: 13 / 2000 = 0.0065 + ; 0.0065 * 10000 = 65). Power.Mac.BatteryDischarge is the the delta in this + relative capacity measure compaired to the measurement that was taken a + minute before. This metric is only recorded when on battery power. Only + recorded on macOS. + + + + expires_after="2020-12-20"> lgrey@chromium.org Whether the user's machine is on battery power. Sampled once per minute. @@ -128736,7 +133088,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> tbroch@chromium.org The number of user sessions that occured since the last time that the device @@ -128770,7 +133122,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerButtonPressType" expires_after="2020-12-06"> minch@chromium.org Press power button in laptop mode will result in different scenarios @@ -128790,7 +133142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> bleung@chromium.org tbroch@chromium.org @@ -128811,7 +133163,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> bleung@chromium.org tbroch@chromium.org @@ -128850,7 +133202,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org The number of suspend attempts on Chrome OS. Samples are reported before @@ -128860,7 +133212,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org The number of suspend attempts performed for a single suspend request (e.g. @@ -128871,7 +133223,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org The number of suspend attempts performed for a single suspend request (e.g. @@ -128881,7 +133233,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org The results of suspend attempts on Chrome OS. Samples are reported after @@ -128934,7 +133286,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> tbroch@chromium.org Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume. @@ -128953,7 +133305,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="units" expires_after="2020-12-13"> tbroch@chromium.org jiameng@chromium.org @@ -128964,7 +133316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> jiameng@chromium.org What happens when UserActivityManager receives a screen dim imminent @@ -128973,7 +133325,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> jiameng@chromium.org What happens after screen is dimmed following model instruction. Only @@ -128982,7 +133334,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> jiameng@chromium.org What happens after screen dim is deferred following model instruction. Only @@ -129000,7 +133352,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerMLPreviousEventLoggingResult" expires_after="2020-12-13"> jiameng@chromium.org Status of logging previous idle event after a screen dim imminent signal is @@ -129010,7 +133362,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> alanlxl@chromium.org amoylan@chromium.org jiameng@chromium.org @@ -129021,7 +133373,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerMLSmartDimComponentVersionType" expires_after="2020-12-20"> alanlxl@chromium.org amoylan@chromium.org jiameng@chromium.org @@ -129032,7 +133384,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerMLSmartDimComponentWorkerType" expires_after="2020-12-20"> alanlxl@chromium.org amoylan@chromium.org jiameng@chromium.org @@ -129043,7 +133395,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> amoylan@chromium.org jiameng@chromium.org napper@chromium.org @@ -129055,7 +133407,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> amoylan@chromium.org jiameng@chromium.org napper@chromium.org @@ -129067,7 +133419,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerMLSmartDimModelResult" expires_after="2020-12-06"> jiameng@chromium.org This is the status code returned by the model when calculating a user @@ -129079,7 +133431,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PowerMLSmartDimParameterResult" expires_after="2020-12-13"> jiameng@chromium.org The result of parsing the dim threshold parameter value. Only applicable to @@ -129499,7 +133851,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-09-30"> horo@chromium.org webpackage-dev@chromium.org @@ -129510,7 +133862,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-09-30"> horo@chromium.org webpackage-dev@chromium.org @@ -129522,7 +133874,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-09-30"> horo@chromium.org webpackage-dev@chromium.org @@ -129534,7 +133886,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-09-30"> horo@chromium.org webpackage-dev@chromium.org @@ -131183,7 +135535,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> robertogden@chromium.org User interactions with the Previews Android Omnibox UI. @@ -131349,7 +135701,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> robertogden@chromium.org Records why the page load ended on a given preview type. @@ -131640,6 +135992,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2017 as part of crbug.com/734161. + thestig@chromium.org Count of events in PrinterService on Chrome OS related to USB printers. @@ -131769,6 +136124,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020 because it is not longer needed (Issue 1046125). + luum@chromium.org skau@chromium.org @@ -131828,8 +136186,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> jschettler@chromium.org + project-bolton@google.com Records the print job duration of a cancelled print job. Includes time spent in a suspended or error state. Only recorded on Chrome OS. @@ -131837,8 +136196,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> jschettler@chromium.org + project-bolton@google.com Records the print job duration of a done/completed print job. Includes time spent in a suspended or error state. Only recorded on Chrome OS. @@ -131865,6 +136225,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + skau@chromium.org + project-bolton@google.com + + The number of detected network printers that have not been saved. Recorded + when the user navigates to the OS Settings Printing page to set up printers. + Only recorded on Chrome OS. + + + Most users do not provide their own PPDs. @@ -131878,8 +136249,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> jschettler@chromium.org + project-bolton@google.com Records the total size of the printed document (PDF) sent to CUPS. Only recorded on Chrome OS. @@ -131980,6 +136352,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + jimmyxgong@chromium.com + cros-peripherals@google.com + + Records the entry point of where the Print Management App was launched from + in Chrome OS. Used to track the relative entry points of the app. + + + skau@chromium.org @@ -132004,6 +136386,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + skau@chromium.org + project-bolton@google.com + + The total number of detected network printers. Recorded when the user + navigates to the OS Settings Printing page to set up printers. Only recorded + on Chrome OS. + + + dhoss@chromium.org @@ -132070,7 +136463,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PrintPreviewPrintDestinationBuckets" expires_after="2021-07-01"> + rbpotter@chromium.org thestig@chromium.org Actions performed by the user when the print destination search widget is @@ -132080,6 +136474,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 01/2015 as part of crbug.com/278148. + thestig@chromium.org Count of font file formats embeeded in print preview PDFs. These numbers are @@ -132295,21 +136692,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. + thestig@chromium.org Print preview events. + expires_after="2020-12-31"> thestig@chromium.org + dmazzoni@chromium.org The average size of a page in the printed document when the source is HTML. + expires_after="2020-12-31"> thestig@chromium.org + dhoss@chromium.org The average size of a page in the printed document when the source is PDF. @@ -132334,7 +136736,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="PrintPreviewPrintSettingsUiBuckets" expires_after="2021-07-01"> + rbpotter@chromium.org thestig@chromium.org Actions performed by the user interacting with print settings UI elements. @@ -132399,13 +136802,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> thestig@chromium.org Time taken to render each PDF page for print preview. + expires_after="2020-11-22"> thestig@chromium.org Time taken to render to PDF for print preview. @@ -132446,7 +136849,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> thestig@chromium.org Action taken by the user in the preview tab such as print, cancel, print to @@ -132608,6 +137011,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Policy size reduced, metric no longer required. Removed 2020-06. + ajgo@chromium.org src/services/service_manager/sandbox/win/OWNERS @@ -132892,6 +137298,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. There are no recordings of this event since M83. + msarda@chromium.org alexilin@chromium.org @@ -132909,7 +137318,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-01"> rhalavati@chromium.org chrome-privacy-core@google.com @@ -132920,6 +137329,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 06/2020. There are no recordings of this event since M83. + msarda@chromium.org alexilin@chromium.org @@ -132957,9 +137369,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ProfileMenuActionableItem" expires_after="2021-06-30"> + droger@chromium.org msarda@chromium.org - tangltom@chromium.org + chrome-signin-team@google.com Recorded when an actionable item(e.g. button, link) in the profile menu is clicked. @@ -133047,7 +137460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> msarda@chromium.org droger@chromium.org @@ -133516,6 +137929,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed 6/3/2020. No longer needed. + phillis@chromium.org cmumford@chromium.org @@ -133598,7 +138014,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> vasilii@chromium.org ewald@chromium.org @@ -133705,7 +138121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> nyquist@chromium.org ssid@chromium.org The LevelDB Status from a ProtoDatabase Init call. @@ -133735,7 +138151,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-13"> ssid@chromium.org salg@chromium.org @@ -133765,7 +138181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ProximityAuth_BleWeaveConnectionResult" expires_after="2020-12-06"> hansberry@chromium.org Provides a breakdown of how often each BLE weave connection result occurs. @@ -133774,7 +138190,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-06"> hansberry@chromium.org Provides a breakdown of how many times each possible Bluetooth GATT @@ -134012,7 +138428,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-12-20"> peter@chromium.org knollr@chromium.org @@ -134198,6 +138614,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + llin@google.com + croissant-eng@chromium.org + + For quick answer fetch, records the intent generated on-device. ChromeOS + only. + + + llin@google.com @@ -134454,8 +138880,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + jarrydg@chromium.org + chrome-owp-storage@google.com How many kilobytes are how old. Similar to |AgeOfOrigin| except a sample is added for each kilobyte of an origin's data. Logged hourly for all origins @@ -134473,7 +138900,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jarrydg@chromium.org Amount of free disk space for the storage directory. Logged at irregular @@ -134492,7 +138919,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jarrydg@chromium.org The number of days since an origin was last chosen to be evicted from the @@ -134512,7 +138939,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + jarrydg@chromium.org Difference between acceptable lower limit of diskspace and actual free @@ -134618,7 +139045,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jarrydg@chromium.org Global usage of temporary storage. @@ -134643,7 +139070,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-05-18"> jarrydg@chromium.org Number of evicted origins per round. @@ -134713,7 +139140,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jarrydg@chromium.org Percentage of the storage device that is free. Logged at irregular @@ -134752,7 +139179,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2020-11-29"> jarrydg@chromium.org Percentage of the storage device that is being use for temporary storage. @@ -134836,7 +139263,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - + jarrydg@chromium.org Total disk space for the storage directory. Logged at irregular intervals. @@ -135012,7 +139439,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RecurrenceRankerInitializationStatus" expires_after="2021-02-01"> @@ -135025,7 +139452,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanSuccess" expires_after="2021-02-01"> @@ -135065,7 +139492,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RecurrenceRankerSerializationStatus" expires_after="2021-02-01"> @@ -135077,7 +139504,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="RecurrenceRankerUsage" expires_after="2021-02-01"> @@ -135665,12 +140092,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-01"> khushalsagar@chromium.org + chrome-gpu@google.com Time spent completing all work for a compositor rasterization task. This includes the time in the renderer process for sending GL or paint commands to the GPU process and the time for flushing these commands to the driver. + + WARNING: This metric is only reported for clients with high resolution + clocks, which means this will be biased to a portion of the population on + windows. @@ -135852,7 +140284,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-06"> + cblume@chromium.org vmpstr@chromium.org Gpu image decode usage statistics. Images are decoded and locked prior to @@ -135872,7 +140305,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanWasted" expires_after="2021-06-06"> + cblume@chromium.org vmpstr@chromium.org Indication whether the first lock of an image decode was wasted (image was @@ -135927,7 +140361,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M95"> ericrk@chromium.org enne@chromium.org @@ -136024,13 +140458,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-08"> + cblume@chromium.org vmpstr@chromium.org sashamcintosh@chromium.org @@ -136140,6 +140575,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removes as of 6/2020. We now get enough cache hit information from + Renderer4.SoftwareImageDecodeState* and don't need to divide it into tile + bins. + + cblume@chromium.org vmpstr@chromium.org For each attempted lock of a cached image, records whether it was @@ -136317,12 +140758,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="microseconds" expires_after="2021-06-01"> khushalsagar@chromium.org + chrome-gpu@google.com Time spent completing all work for a compositor rasterization task. This includes the time in the renderer process for sending GL or paint commands to the GPU process and the time for flushing these commands to the driver. + + WARNING: This metric is only reported for clients with high resolution + clocks, which means this will be biased to a portion of the population on + windows. @@ -136364,6 +140810,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed in M85 as no longer being needed. + bbudge@chromium.org The size of the contiguous memory block reserved in the renderer so that @@ -136427,7 +140876,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SoftwareImageDecodeState" expires_after="2021-06-08"> + cblume@chromium.org vmpstr@chromium.org Software image decode usage statistics. Images are decoded and locked prior @@ -136436,7 +140886,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanWasted" expires_after="2021-06-08"> + cblume@chromium.org vmpstr@chromium.org Indication whether the first lock of an image decode was wasted (image was @@ -136760,6 +141211,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020. + tdresser@chromium.org The estimated queueing duration which would be observed for additional high @@ -136785,6 +141239,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed June 2020. + tdresser@chromium.org npm@chromium.org speed-metrics-dev@chromium.org @@ -136926,7 +141383,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="2020-12-01"> kdillon@chromium.org @@ -137914,6 +142371,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of June 2020. + jochen@chromium.org State of the profile that is activated via the "Open Link as User" @@ -137924,6 +142384,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of June 2020. + jochen@chromium.org Whether or not other profiles are active when the "Open Link as @@ -137933,6 +142396,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + Removed as of June 2020. + jochen@chromium.org Count of the profiles shown for the "Open Link as User" context @@ -138051,7 +142517,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-25"> chlily@chromium.org sburnett@chromium.org @@ -138062,7 +142528,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-06-25"> chlily@chromium.org sburnett@chromium.org @@ -140047,7 +144513,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="BooleanMatched" expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -140058,7 +144524,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -140096,7 +144562,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140108,7 +144574,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140119,7 +144585,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140129,7 +144595,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140140,7 +144606,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140151,7 +144617,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> rogerta@chromium.org webprotect-team@google.com @@ -140162,7 +144628,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140173,7 +144639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140183,7 +144649,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140193,7 +144659,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140203,7 +144669,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140214,7 +144680,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="bytes" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140226,7 +144692,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140238,7 +144704,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140248,7 +144714,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140259,7 +144725,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140270,7 +144736,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> rogerta@chromium.org webprotect-team@google.com @@ -140281,7 +144747,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140292,7 +144758,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140303,7 +144769,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140314,7 +144780,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140326,7 +144792,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140337,7 +144803,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140348,7 +144814,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140359,7 +144825,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140369,7 +144835,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140380,7 +144846,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140391,7 +144857,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140402,7 +144868,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140412,7 +144878,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140422,7 +144888,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140432,7 +144898,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140443,7 +144909,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140454,7 +144920,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140465,7 +144931,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140475,7 +144941,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140486,7 +144952,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140497,7 +144963,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> rogerta@chromium.org webprotect-team@google.com @@ -140508,7 +144974,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140519,7 +144985,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140529,7 +144995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140539,7 +145005,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140549,7 +145015,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + units="ms" expires_after="M90"> domfc@chromium.org webprotect-team@google.com @@ -140759,6 +145225,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + No longer used. Removed 2020-06. + csharp@chromium.org proberge@google.com @@ -140823,7 +145292,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> bdea@chromium.org chrome-safebrowsing-alerts@google.com @@ -140833,7 +145302,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -140843,7 +145312,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -140853,8 +145322,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> lpz@chromium.org + chrome-safebrowsing-alerts@google.com Whether the current user has ever seen a security interstitial. Recorded for all non-Incognito profiles on profile startup. @@ -140862,8 +145332,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> lpz@chromium.org + chrome-safebrowsing-alerts@google.com Tracks the Extended Reporting preference transition. Suffixes track which opt-in text users are viewing and the values of each Extended Reporting @@ -140873,6 +145344,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + This is unused due to it being part of SBER1. Deprecated 06/01/2020. + lpz@chromium.org Tracks user decisions about the Extended Reporting opt-in on security @@ -140883,8 +145357,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-01-30"> lpz@chromium.org + chrome-safebrowsing-alerts@google.com Tracks the Extended Reporting preference being changed. Suffixes track which Extended Reporting preference was changed, and the specific UI that the @@ -140893,8 +145368,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ScoutTransitionReason" expires_after="2021-01-30"> lpz@chromium.org + chrome-safebrowsing-alerts@google.com Tracks reasons for the Extended Reporting preference transition, such as a user entering an experiment group or seeing a security interstitial for the @@ -140945,6 +145421,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + xinghuilu@chromium.org + chrome-safebrowsing-alerts@google.com + + Records the number of real time URL verdicts stored for this profile. Logged + each time a new real time url verdict is cached. + + + xinghuilu@chromium.org @@ -141036,7 +145522,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="SafeBrowsingAllowlistAsyncMatch" expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -141047,7 +145533,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -141057,7 +145543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -141079,7 +145565,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ContentResourceType2" expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -141089,7 +145575,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + enum="ContentResourceType2" expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -141910,7 +146396,7 @@ and applied correctly. --> + expires_after="2021-08-05"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -142093,6 +146579,9 @@ failing to fetch the updates which puts users' security at risk. --> + + Removed in June 2020. + ricea@chromium.org Time spent on SafeBrowsing lookup. Since this includes any time spent on the @@ -142162,6 +146651,18 @@ failing to fetch the updates which puts users' security at risk. --> + + drubery@chromium.org + chrome-safebrowsing-alerts@google.com + + This records the verdict of deep scanning for Advanced Protection users. It + can be used to determine how often we warn the user about malware after they + upload a file for deep scanning. It is recorded after every Advanced + Protection deep scan. + + + drubery@chromium.org @@ -142195,6 +146696,18 @@ failing to fetch the updates which puts users' security at risk. --> + + drubery@chromium.org + chrome-safebrowsing-alerts@google.com + + This records the verdict of deep scanning for enterprise users. It can be + used to determine how often we warn the user about malware after they upload + a file for deep scanning. It is recorded after every enterprise malware deep + scan. + + + drubery@chromium.org @@ -142206,8 +146719,22 @@ failing to fetch the updates which puts users' security at risk. --> + + drubery@chromium.org + chrome-safebrowsing-alerts@google.com + + This record how long it took for the request to get the FCM token. It is + logged every time a deep scanning request successfully gets a token. + + + + + Removed 06/2020 as SafeBrowsingBinaryUploadRequest.TimeToGetFCMToken + provides the same information with a better range of durations. + drubery@chromium.org chrome-safebrowsing-alerts@google.com @@ -143734,7 +148261,7 @@ Safe Browsing lookups, which is critical for security. --> + enum="SBClientDownloadCheckDownloadStats" expires_after="2020-12-06"> vakh@chromium.org chrome-safebrowsing-alerts@google.com mattm@chromium.org @@ -143867,7 +148394,7 @@ Safe Browsing lookups, which is critical for security. --> + enum="SBClientDownloadExtensions" expires_after="2020-12-06"> vakh@chromium.org chrome-safebrowsing-alerts@google.com mattm@chromium.org @@ -144594,7 +149121,7 @@ Safe Browsing lookups, which is critical for security. --> + enum="SBClientPhishingClientModelStatus" expires_after="2020-12-20"> drubery@chromium.org chrome-safebrowsing-alerts@google.com @@ -144757,7 +149284,7 @@ Safe Browsing lookups, which is critical for security. --> + enum="ClientSidePhishingResult" expires_after="2020-11-29"> drubery@chromium.org chrome-safebrowsing-alerts@google.com The result enum received from the renderer-side classifier @@ -144887,7 +149414,7 @@ Safe Browsing lookups, which is critical for security. --> + expires_after="M87"> vakh@chromium.org chrome-safebrowsing-alerts@google.com @@ -144933,6 +149460,9 @@ Safe Browsing lookups, which is critical for security. --> + + Removed in M85, since the histogram is not being used. + vakh@chromium.org chrome-safebrowsing-alerts@google.com mattm@chromium.org @@ -146495,6 +151025,9 @@ should be kept until we remove incident reporting. --> + + Removed in 06/2020. + xidachen@chromium.org flackr@chromium.org @@ -146532,6 +151065,9 @@ should be kept until we remove incident reporting. --> + + Removed in 06/2020. + xidachen@chromium.org flackr@chromium.org @@ -147636,6 +152172,40 @@ should be kept until we remove incident reporting. --> + + donnd@chromium.org + twellington@chromium.org + + Records that a resolve response was received from the server, and whether + that was due to a Tap gesture or not (vs longpress). Recorded when the user + triggers the feature and the server responds. Implemented for Android. + + + + + donnd@chromium.org + twellington@chromium.org + + Records that a resolve request was sent to the server, and whether that was + due to a Tap or not (vs longpress). Recorded when the user triggers the + feature. Implemented for Android. + + + + + donnd@chromium.org + twellington@chromium.org + + Records that a resolve request from the server caused the selection to be + expanded, and whether that original selection was due to a Tap or not (vs + longpress). Recorded when the qualifying server response is received. + Implemented for Android. + + + donnd@chromium.org @@ -147659,6 +152229,19 @@ should be kept until we remove incident reporting. --> + + donnd@chromium.org + twellington@chromium.org + + Records that a translation is needed for the current Contextual Search, and + whether the selection was originally created by a Tap gesture. This is + recorded regardless of whether the user will actually be shown a translation + or not. Recorded any time a selection is established or changed with the + Contextual Search Translations feature enabled. Implemented for Android. + + + donnd@chromium.org @@ -148934,6 +153517,23 @@ should be kept until we remove incident reporting. --> + + hesen@chromium.org + chrome-upboarding-eng@google.com + + Records duration from time when first task scheduled to time the fetch task + completed. + + + + + hesen@chromium.org + chrome-upboarding-eng@google.com + Records the hour (0-23) when the TileFetcher task starts. + + hesen@chromium.org @@ -148948,6 +153548,15 @@ should be kept until we remove incident reporting. --> Records the net error code get from TileFetcher. + + hesen@chromium.org + chrome-upboarding-eng@google.com + + Records the reasons caused the tile group pruned in TileManager. + + + hesen@chromium.org @@ -149239,8 +153848,9 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> cthomp@chromium.org + security-enamel@chromium.org Records whether the page would have a legacy TLS warning (if the user were in the appropriate field trial) when a download is initiated from the page @@ -149252,8 +153862,9 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> cthomp@chromium.org + security-enamel@chromium.org Records whether the page would have a legacy TLS warning (if the user were in the appropriate field trial) when submitting a form. This is recorded @@ -149263,9 +153874,10 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> cthomp@chromium.org estark@chromium.org + security-enamel@chromium.org Records whether the page would have a legacy TLS warning (if the user were in the appropriate field trial) when the navigation to the page commits. @@ -149273,8 +153885,9 @@ should be kept until we remove incident reporting. --> + enum="WebsiteSettingsAction" expires_after="M88"> cthomp@chromium.org + security-enamel@chromium.org Tracks Page Info bubble actions along with whether the page would have a legacy TLS warning (if the user were in the appropriate field trial). @@ -149416,7 +154029,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149429,7 +154042,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149442,7 +154055,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149454,7 +154067,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149465,7 +154078,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org livvielin@chromium.org @@ -149477,7 +154090,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org livvielin@chromium.org @@ -149489,7 +154102,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org livvielin@chromium.org @@ -149501,7 +154114,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149511,7 +154124,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org estark@chromium.org @@ -149521,7 +154134,7 @@ should be kept until we remove incident reporting. --> + enum="WebsiteSettingsAction" expires_after="M87"> estark@chromium.org jdeblasio@chromium.org @@ -149531,7 +154144,7 @@ should be kept until we remove incident reporting. --> + enum="SafetyTipStatus" expires_after="M87"> jdeblasio@chromium.org src/chrome/browser/reputation/OWNERS @@ -149542,7 +154155,7 @@ should be kept until we remove incident reporting. --> + enum="SafetyTipStatus" expires_after="M87"> jdeblasio@chromium.org livvielin@chromium.org @@ -149552,7 +154165,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> jdeblasio@chromium.org livvielin@chromium.org @@ -149562,7 +154175,7 @@ should be kept until we remove incident reporting. --> + enum="SafetyTipStatus" expires_after="M87"> jdeblasio@chromium.org src/chrome/browser/reputation/OWNERS @@ -149758,13 +154371,14 @@ should be kept until we remove incident reporting. --> + enum="SendTabToSelfClickResult" expires_after="M88"> + jeffreycohen@chromium.org tgupta@chromium.org Tracks the user flow for sending a tab for SendTabToSelf. + enum="SendTabToSelfClickResult" expires_after="M88"> jeffreycohen@chromium.org sebsg@chromium.org tgupta@chromium.org @@ -149775,6 +154389,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + jeffreycohen@chromium.org sebsg@chromium.org tgupta@chromium.org @@ -149786,6 +154403,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + sebsg@chromium.org jeffreycohen@chromium.org tgupta@chromium.org @@ -149800,6 +154420,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + jeffreycohen@chromium.org sebsg@chromium.org @@ -149809,6 +154432,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + jeffreycohen@chromium.org sebsg@chromium.org @@ -149819,6 +154445,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + tgupta@chromium.org Whether or not the SendTabToSelf model was loaded in time to perform the @@ -149828,6 +154457,9 @@ should be kept until we remove incident reporting. --> + + Removed 05/2020. + jeffreycohen@chromium.org tgupta@chromium.org @@ -150016,8 +154648,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> shimazu@chromium.org + chrome-worker@google.com Execution time of ServiceWorkerGlobalScope.onactivate. Includes the time for waitUntil() promise to settle. @@ -150052,7 +154685,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nator@chromium.org peter@chromium.org rayankans@chromium.org @@ -150064,7 +154697,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nator@chromium.org peter@chromium.org rayankans@chromium.org @@ -150090,7 +154723,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nator@chromium.org peter@chromium.org rayankans@chromium.org @@ -150102,7 +154735,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nator@chromium.org peter@chromium.org rayankans@chromium.org @@ -150115,7 +154748,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nator@chromium.org rayankans@chromium.org @@ -150126,7 +154759,7 @@ should be kept until we remove incident reporting. --> + units="bytes" expires_after="2021-06-08"> horo@chromium.org wanderview@chromium.org @@ -150137,7 +154770,7 @@ should be kept until we remove incident reporting. --> + units="bytes" expires_after="2021-06-08"> horo@chromium.org wanderview@chromium.org @@ -150147,7 +154780,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> horo@chromium.org wanderview@chromium.org @@ -150157,7 +154790,7 @@ should be kept until we remove incident reporting. --> + units="bytes" expires_after="2021-06-08"> horo@chromium.org wanderview@chromium.org @@ -150167,7 +154800,7 @@ should be kept until we remove incident reporting. --> + units="bytes" expires_after="2021-06-08"> horo@chromium.org wanderview@chromium.org @@ -150227,7 +154860,8 @@ should be kept until we remove incident reporting. --> + enum="ServiceWorkerDatabaseStatus" expires_after="2021-05-18"> + bashi@chromium.org nhiroki@chromium.org Records result of destroy database operations in ServiceWorkerDatabase. @@ -150245,13 +154879,15 @@ should be kept until we remove incident reporting. --> + enum="ServiceWorkerDatabaseStatus" expires_after="2021-05-18"> + bashi@chromium.org nhiroki@chromium.org Records result of read operations in ServiceWorkerDatabase. + enum="ServiceWorkerDatabaseStatus" expires_after="2021-05-18"> + bashi@chromium.org nhiroki@chromium.org Records result of write operations in ServiceWorkerDatabase. @@ -150259,7 +154895,8 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> + bashi@chromium.org nhiroki@chromium.org Records result of opening a disk cache for ServiceWorkerDiskCache. @@ -150267,7 +154904,8 @@ should be kept until we remove incident reporting. --> + enum="ServiceWorkerReadResponseResult" expires_after="2021-05-18"> + bashi@chromium.org nhiroki@chromium.org Records result of reading response from ServiceWorkerDiskCache. @@ -150275,7 +154913,7 @@ should be kept until we remove incident reporting. --> + enum="ServiceWorkerWriteResponseResult" expires_after="2021-05-18"> bashi@chromium.org nhiroki@chromium.org @@ -150379,8 +155017,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> nhiroki@chromium.org + chrome-worker@google.com The time taken between dispatching an ExtendableMessageEvent to a Service Worker and receiving a message that it finished handling the event. Includes @@ -150430,6 +155069,19 @@ should be kept until we remove incident reporting. --> + + asamidoi@chromium.org + shimazu@chromium.org + chrome-worker@google.com + + The time that a fetch event was queued. The start time is when the event is + created on the service worker thread and added to the + ServiceWorkerEventQueue. The end time is when the event is dequeued and the + event handler starts to execute. + + + falken@chromium.org @@ -150455,8 +155107,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-30"> shimazu@chromium.org + chrome-worker@google.com The time taken between dispatching a FetchEvent to a Service Worker and finishing the FetchEvent. Includes the time for the waitUntil() promise to @@ -150518,6 +155171,9 @@ should be kept until we remove incident reporting. --> + + Removed 2018 + mek@chromium.org The time taken between dispatching a ForeignFetchEvent to a Service Worker @@ -150528,6 +155184,9 @@ should be kept until we remove incident reporting. --> + + Removed 2018 + mek@chromium.org The time taken between dispatching a ForeignFetchEvent to a Service Worker @@ -150538,6 +155197,9 @@ should be kept until we remove incident reporting. --> + + Removed 2018 + shimazu@chromium.org The time taken between dispatching a ForeignFetchEvent to a Service Worker @@ -150547,6 +155209,15 @@ should be kept until we remove incident reporting. --> + + bashi@chromium.org + chrome-worker@google.com + + Execution time of ServiceWorkerContextWrapper::GetAllOriginsInfo(). + + + shimazu@chromium.org @@ -150968,6 +155639,9 @@ should be kept until we remove incident reporting. --> + + Expired June 2020. + horo@chromium.org The size of Service-Worker-Navigation-Preload header when the navigation @@ -151228,6 +155902,30 @@ should be kept until we remove incident reporting. --> + + nidhijaju@google.com + bashi@chromium.org + chrome-worker@google.com + + Number of service worker registrations to be added in + ServiceWorkerRegistry::DidGetAllRegistrations(). + + + + + nidhijaju@google.com + bashi@chromium.org + chrome-worker@google.com + + The length of the scope url in the ServiceWorkerRegistrationInfo is measured + for each service worker registration to give a better idea of the data + structure as a whole. This metric is collected in + ServiceWorkerRegistration::GetInfo(). + + + @@ -151250,8 +155948,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> falken@chromium.org + chrome-worker@google.com The length of cached metadata of Service Worker scripts. Logged on each load of Service Worker script only when the cached metadata is available. It @@ -151261,8 +155960,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> falken@chromium.org + chrome-worker@google.com The total length of cached metadata of Service Worker scripts. Logged on each start of Service Worker only when the cached metadata is available. It @@ -151272,8 +155972,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> falken@chromium.org + chrome-worker@google.com The counts of scripts per Service Worker. Logged on each start of Service Worker. It includes the main script and imported scripts. This histogram is @@ -151299,8 +156000,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> falken@chromium.org + chrome-worker@google.com The length of Service Worker scripts. Logged on each load of Service Worker script. It doesn't include the size of imported scripts. This histogram is @@ -151309,8 +156011,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-05-18"> falken@chromium.org + chrome-worker@google.com The total length of Service Worker scripts. Logged on each start of Service Worker. It includes the main script and imported scripts. This histogram is @@ -151829,6 +156532,32 @@ should be kept until we remove incident reporting. --> + + nidhijaju@google.com + bashi@chromium.org + chrome-worker@google.com + + Number of clients associated with each service worker version, for better + estimation of the size of ServiceWorkerRegistrationInfo. This metric is + collected in ServiceWorkerVersion::GetInfo(), and clients for all versions + (active, waiting, and installing) are counted for now. + + + + + nidhijaju@google.com + bashi@chromium.org + chrome-worker@google.com + + The length of the script url in ServiceWorkerVersionInfo is measured for + each service worker version to give a better idea of the memory size of + ServiceWorkerRegistrationInfo as a whole. This metric is collected in + ServiceWorkerVersion::GetInfo(). + + + falken@chromium.org @@ -151880,7 +156609,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> wanderview@chromium.org chrome-owp-storage@google.com @@ -151924,7 +156653,7 @@ should be kept until we remove incident reporting. --> + enum="Boolean" expires_after="2020-12-31"> wanderview@chromium.org chrome-owp-storage@google.com @@ -151937,6 +156666,9 @@ should be kept until we remove incident reporting. --> + + Expired 2020-04. + wanderview@chromium.org chrome-owp-storage@google.com @@ -151976,7 +156708,7 @@ should be kept until we remove incident reporting. --> + enum="CacheStorageIndexResult" expires_after="2021-06-08"> wanderview@chromium.org chrome-owp-storage@google.com @@ -152004,6 +156736,10 @@ should be kept until we remove incident reporting. --> + + Removed in M85 since the parallel operation trial launched already. Also, + this histogram did not provide very useful information. + wanderview@chromium.org chrome-owp-storage@google.com @@ -152029,6 +156765,10 @@ should be kept until we remove incident reporting. --> + + This histogram was removed in M85 in favor of the OperationDuration2 + histograms that provide full timing information for operations. + wanderview@chromium.org An operation is slow (true) if it takes at least 10 seconds to run. If an @@ -152049,8 +156789,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> wanderview@chromium.org + chrome-owp-storage@google.com The time in ms from when an operation is started until it completes. This histogram differs from the old OperationDuration in that it uses a different @@ -152071,8 +156812,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> wanderview@chromium.org + chrome-owp-storage@google.com The time in ms from when an operation was queued until its task is posted. This histogram differs from the old QueueDuration in that it uses a @@ -152081,8 +156823,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> wanderview@chromium.org + chrome-owp-storage@google.com The number of operations in the scheduling queue just before enqueuing a new operation. @@ -152090,7 +156833,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-08"> wanderview@chromium.org chrome-owp-storage@google.com @@ -152375,6 +157118,21 @@ should be kept until we remove incident reporting. --> + + collinbaker@chromium.org + chrome-desktop-ui-sea@google.com + + Time spent in touch mode in each session (as defined by + DesktopSessionDurationTracker). Samples correspond one-to-one with + Session.TotalDuration samples. + + This histogram should be analyzed with Session.TotalDuration. For example, + the sum of this histogram divided by the sum of Session.TotalDuration is the + total proportion of active browsing time spent in touch mode. + + + @@ -152477,7 +157235,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-10"> justincohen@chromium.org rohitrao@chromium.org @@ -152487,7 +157245,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-10"> justincohen@chromium.org rohitrao@chromium.org @@ -152498,7 +157256,7 @@ should be kept until we remove incident reporting. --> + expires_after="2021-06-10"> justincohen@chromium.org rohitrao@chromium.org @@ -152516,6 +157274,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org The actions that have occurred in a session restore timeline. These are to @@ -152525,6 +157286,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org catan-team@chromium.org @@ -152577,6 +157341,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org catan-team@chromium.org @@ -152823,6 +157590,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org The site engagement score associated with a tab restored by session restore, @@ -152897,6 +157667,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org A breakdown of key events that occur to individual tabs as they are @@ -152927,6 +157700,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org The number of tabs involved in a single session restore event. @@ -152935,6 +157711,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-05. Not actively used in current projects. + chrisha@chromium.org The boolean indicates whether the tab load was initiated because a previous @@ -153116,6 +157895,9 @@ should be kept until we remove incident reporting. --> + + Removed from the codebase in M85. This trial has long been obsolete. + gab@chromium.org Whether the SettingsEnforcement group was successfully determined from the @@ -153565,7 +158347,7 @@ should be kept until we remove incident reporting. --> + enum="BooleanEnabled" expires_after="M88"> twellington@chromium.org tedchoc@chromium.org @@ -153575,7 +158357,7 @@ should be kept until we remove incident reporting. --> + enum="HomeButtonPreferenceStateType" expires_after="M88"> twellington@chromium.org tedchoc@chromium.org @@ -154101,6 +158883,20 @@ should be kept until we remove incident reporting. --> + + Expired in M82, then replaced by Setup.Install.CumulativeDiskUsage2 on + 06/2020. + + etiennep@chromium.org + grt@chromium.org + + The cumulative disk usage in MB during install or uninstall attempt, + recorded right after the install/uninstall attempt on windows only. + + + + etiennep@chromium.org grt@chromium.org @@ -154198,8 +158994,9 @@ should be kept until we remove incident reporting. --> + expires_after="2021-03-22"> zmin@chromium.org + grt@chromium.org Record the status of unpacking the contents of a 7z file. @@ -154757,7 +159554,10 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> + + Removed 06/2020. Never launched. + gayane@chromium.org src/components/send_tab_to_self/OWNERS @@ -154766,7 +159566,10 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> + + Removed 06/2020. Never launched. + gayane@chromium.org src/components/send_tab_to_self/OWNERS @@ -155046,7 +159849,7 @@ should be kept until we remove incident reporting. --> + enum="SharingHubBottomRowIndex" expires_after="M87"> kmilka@chromium.org src/components/send_tab_to_self/OWNERS @@ -155056,7 +159859,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> kmilka@chromium.org src/components/send_tab_to_self/OWNERS @@ -155066,7 +159869,7 @@ should be kept until we remove incident reporting. --> + expires_after="M87"> kmilka@chromium.org src/components/send_tab_to_self/OWNERS @@ -155077,6 +159880,9 @@ should be kept until we remove incident reporting. --> + + Removed 2020-06 as the result is always successful. + alexchau@chromium.org peter@chromium.org @@ -155086,7 +159892,7 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155096,7 +159902,7 @@ should be kept until we remove incident reporting. --> + enum="SharingWebRtcConnectionErrorReason" expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155106,7 +159912,7 @@ should be kept until we remove incident reporting. --> + enum="SharingWebRtcConnectionType" expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155116,7 +159922,7 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155126,7 +159932,7 @@ should be kept until we remove incident reporting. --> + enum="SharingWebRtcOnMessageReceivedResult" expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155136,7 +159942,7 @@ should be kept until we remove incident reporting. --> + enum="SharingWebRtcSendMessageResult" expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155146,7 +159952,7 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> himanshujaju@chromium.org knollr@chromium.org @@ -155156,7 +159962,7 @@ should be kept until we remove incident reporting. --> + expires_after="M88"> @@ -155705,8 +160511,9 @@ prefs when the profile is loaded. --> + enum="AuthenticatedLaunchUserEvent" expires_after="M88"> zmin@chromium.org + pastarmovj@chromium.org Records the UI event when user clicks a locked profile on UserManager. Please note that if the local reauth failed, UserManager might show Gaia @@ -155870,8 +160677,30 @@ prefs when the profile is loaded. --> + + alexilin@chromium.org + droger@chromium.org + + Result of the browser remote consent flow, which is a part of the + chrome.identity.getAuthToken() extension API call. Desktop only. + + + + + + + alexilin@chromium.org + droger@chromium.org + + Result of the chrome.identity.getAuthToken() extension API call. Recorded + right before returning the result to an extension. Desktop only. + + + + expires_after="M88"> zmin@chromium.org pastarmovj@chromium.org @@ -155946,7 +160775,7 @@ prefs when the profile is loaded. --> + expires_after="M90"> treib@chromium.org mmoskvitin@google.com @@ -156435,7 +161264,7 @@ OAuth Multilogin call. --> - fernandex@chromium.org jlebel@chromium.org @@ -156630,7 +161459,7 @@ kept as long as profile signout is possible --> + enum="SyncErrorInfoBarAction" expires_after="M87"> triploblastic@chromium.org @@ -156700,6 +161529,54 @@ should be kept for as long as we store refresh tokens in an SQLite DB. --> + + alexilin@chromium.org + droger@chromium.org + + Records the time from when the user confirms transactional reauth to when + the backround navigation to the Gaia reauth endpoint completes. + + + + + alexilin@chromium.org + droger@chromium.org + + Records the time from when the user triggers transactional reauth to when + the background navigation to Gaia reauth endpoint completes. + + + + + + + alexilin@chromium.org + fhorschig@chromium.org + + Recorded whenever the user interacts with reauthentication to complete a + transaction (like interacting with the account store for passwords) and + whether the reauth challenge was cleared. + + + + + + + alexilin@chromium.org + droger@chromium.org + + Records user actions performed in the reauthentication dialog/tab. + + + + enum="SimpleCacheConsistencyResult" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org Record the outcome of the simple DiskCache consistency check. The consistency check is executed every time a simple DiskCache is initialized. @@ -156821,8 +161699,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheConsistencyResult" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org Record the final consistency check value after index files have been deleted from an empty simple DiskCache. This histogram will tell us how often the @@ -156852,8 +161731,9 @@ Chrome adds accounts to the Gaia cookies. --> + expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org Record if any simple DiskCache index files were deleted from an otherwise empty cache after the cache failed the initialization consistency check. @@ -156977,8 +161857,9 @@ Chrome adds accounts to the Gaia cookies. --> + units="bytes" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org The difference between EntryTrailerPrefetchSize and EntryTrailerSize in bytes within a single ReadAndValidateStream0AndMaybe1() method call. If the @@ -156988,8 +161869,9 @@ Chrome adds accounts to the Gaia cookies. --> + units="bytes" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org The number of bytes prefetched from the end of the entry file in an attempt read the EOF footer and the stream 0 data in a single file operation. @@ -156999,7 +161881,10 @@ Chrome adds accounts to the Gaia cookies. --> + expires_after="2020-05-27"> + + Removed 2020-05 due to excessive quantities of data. + wanderview@chromium.org The number of bytes read at the end of the entry file in order to process @@ -157230,24 +162115,34 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed in M85, but code was missing at that point already. + morlovich@chromium.org For each index load, whether the index file was corrupt. + expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The number of entries in a newly created index file. + + Removed in M85 + morlovich@chromium.org Number of entries loaded from the index file on start. + + Removed in M85 + morlovich@chromium.org Number of entries restored from disk when there was no index or the index @@ -157256,8 +162151,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleIndexState" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The state the index file is at when an attempt is made to load from it. @@ -157265,6 +162161,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed in M85 + morlovich@chromium.org At the time of index initialization, the number of enqueued jobs awaiting @@ -157273,13 +162172,17 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheIndexInitializeMethod" expires_after="2021-07-01"> + wanderview@chromium.org morlovich@chromium.org The method used to initialize the simple cache index. + + Removed in M85, but didn't actually work before that. + morlovich@chromium.org Time (as measured on the worker pool) spent loading the index file. @@ -157296,14 +162199,16 @@ Chrome adds accounts to the Gaia cookies. --> + expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The number of entries written to the index on a flush. + expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org Time (as measured on the worker pool) spent restoring the index file by iterating directory entries. @@ -157321,6 +162226,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org The interval between index saves, for apps in the background. @@ -157329,6 +162237,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org The interval between index saves, for apps in the foreground. @@ -157336,8 +162247,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheIndexWriteReason" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The reason an index was written to disk. Recorded every time an index is saved. @@ -157345,8 +162257,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheIndexWriteReason" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org Recorded immediately after loading a fresh index (INDEX_STATE_FRESH or INDEX_STATE_FRESH_CONCURRENT_UPDATES), the reason the loaded index was @@ -157371,6 +162284,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed in M85 + morlovich@chromium.org The amount of time spend writing the index file to disk, for apps in the @@ -157381,6 +162297,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed in M85 + morlovich@chromium.org The amount of time spend writing the index file to disk, for apps in the @@ -157438,6 +162357,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org Number of operations that were queued behind a particular doom operation @@ -157446,8 +162368,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheOpenEntryIndexState" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org At the time that an entry is opened, the state of that entry in the index. @@ -157455,8 +162378,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheConsistencyResult" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org Record the original consistency error produced by a simple DiskCache before a retry was attempted and succeeded. This histogram will tell us what kind @@ -157476,6 +162400,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org Delay between when the I/O portion of CreateEntry is enqueued and when its @@ -157485,6 +162412,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org Delay between when the I/O portion of OpenEntry is enqueued and when its @@ -157494,6 +162424,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org bingler@chromium.org @@ -157504,6 +162437,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org Delay between when an operation is deferred due to a pending doom for its @@ -157525,12 +162461,18 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org The outcome of Entry::ReadData in the simple cache. + + Removed pre-M85 + morlovich@chromium.org Whether a read from stream 1 (conventionally used for payload body) was @@ -157540,8 +162482,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheConsistencyResult" expires_after="2021-06-08"> wanderview@chromium.org + morlovich@chromium.org Record the outcome of the simple DiskCache consistency check after retrying initialization on an empty cache directory. The retry may occur after @@ -157553,8 +162496,9 @@ Chrome adds accounts to the Gaia cookies. --> + units="entries" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org Count of the number of entries recorded in the index, but not actually present in the cache. Recorded each time a stale index is found and a @@ -157563,8 +162507,9 @@ Chrome adds accounts to the Gaia cookies. --> + units="entries" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org Count of the number of entries present in a cache, but not recorded in the index. Recorded each time a stale index is found and a directory rescan is @@ -157573,8 +162518,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheStaleIndexQuality" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The quality of a "stale" index compared to a full directory rescan. Recorded immediately after every directory scan for stale indexes. @@ -157583,6 +162529,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org For each EOFRecord found with a valid magic number, indicates if the record @@ -157591,8 +162540,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheSyncCheckEOFResult" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The result, at the synchronous layer, of checking the EOF record of a cache entry. @@ -157600,16 +162550,18 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheSyncCloseResult" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The result, at the synchronous layer, of closing a cache entry. + enum="PlatformFileError" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The platform error reported when attempting to create a new cache entry at the synchronous layer. @@ -157618,6 +162570,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. Consider SyncCreatePlatformFileError + morlovich@chromium.org The result, at the synchronous layer, reported when attempting to create a @@ -157627,6 +162582,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org The result of the the key SHA256 check done when opening stream 0 for each @@ -157650,6 +162608,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. + morlovich@chromium.org The age of the entry (time since last modified), when opened at the @@ -157658,8 +162619,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="PlatformFileError" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The platform error reported when attempting to create a new cache entry at the synchronous layer. @@ -157667,8 +162629,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCachePrefetchMode" expires_after="2021-06-10"> wanderview@chromium.org + morlovich@chromium.org The kind of prefetching performed, if any, when executing SimpleSynchronousEntry::ReadAndValidateStream0AndMaybe1(). @@ -157676,8 +162639,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheSyncOpenResult" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The result, at the synchronous layer, reported when attempting to open a new cache entry. @@ -157685,8 +162649,9 @@ Chrome adds accounts to the Gaia cookies. --> + enum="SimpleCacheSyncWriteResult" expires_after="2021-07-01"> morlovich@chromium.org + wanderview@chromium.org The result, at the synchronous layer, of writing to a cache entry. @@ -157716,6 +162681,9 @@ Chrome adds accounts to the Gaia cookies. --> + + Removed pre-M85. SyncWriteResult may be of interest. + morlovich@chromium.org The outcome of Entry::WriteData in the simple cache. @@ -158559,6 +163527,9 @@ should be kept until we use this API. --> + + Code deleted in June 2020. + rsesek@chromium.org The number of times a render process transitions its main thread isolate @@ -160049,8 +165020,8 @@ should be kept until we use this API. --> - bdea@google.com + enum="SoftwareReporterConfigurationError" expires_after="2021-01-30"> + bdea@chromium.org chrome-safebrowsing-alerts@google.com Whether a configuration error prevented the experimental Software Reporter @@ -160406,6 +165377,18 @@ should be kept until we use this API. --> + + gujen@google.com + chrome-language@google.com + The percentage of misspelled words within checked words. + + + + gujen@google.com + chrome-language@google.com + The percentage of replaced words within misspelled words. + + groby@chromium.org @@ -160449,8 +165432,16 @@ should be kept until we use this API. --> + + gujen@google.com + chrome-language@google.com + + The percentage of replacement executions within suggestion occurrences. + + + + units="locales" expires_after="2020-12-01"> gujen@google.com chrome-language@google.com @@ -160466,13 +165457,11 @@ should be kept until we use this API. --> This is recorded once during spell check initialization, and then once each time the user changes their Chrome languages. - - + units="locales" expires_after="2020-06-01"> Reworked as Spellcheck.Windows.ChromeLocalesSupport.NoSupport and Spellcheck.Windows.ChromeLocalesSupport.NativeOnly in M80. @@ -160488,7 +165477,7 @@ should be kept until we use this API. --> + expires_after="2020-06-01"> Reworked as Spellcheck.Windows.SpellcheckLocalesSupport.HunspellOnly and Spellcheck.Windows.SpellcheckLocalesSupport.NoSupport in M80. @@ -160506,7 +165495,7 @@ should be kept until we use this API. --> + units="locales" expires_after="2020-12-01"> gujen@google.com chrome-language@google.com @@ -160518,13 +165507,11 @@ should be kept until we use this API. --> This is recorded once during spell check initialization, and then once each time the user changes their enabled spell check languages. - - + units="ms" expires_after="2020-12-01"> gujen@google.com chrome-language@google.com @@ -160534,13 +165521,11 @@ should be kept until we use this API. --> callback. This is recorded every time a spell check is performed. - - + units="ms" expires_after="2020-12-01"> gujen@google.com chrome-language@google.com @@ -160552,8 +165537,6 @@ should be kept until we use this API. --> This is recorded every time the user opens the context menu on a misspelled word, but only if the suggestions hadn't been pre-generated (which happens when all spell check locales are supported by the OS spell checker). - - @@ -160700,8 +165683,9 @@ should be kept until we use this API. --> - + costan@google.com + src/storage/OWNERS Error which prevented database open. @@ -161036,7 +166020,7 @@ should be kept until we use this API. --> + expires_after="2020-12-20"> boliu@chromium.org ssid@chromium.org @@ -161151,7 +166135,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> wnwen@chromium.org Counts renderer crashes including OOMs. Android only. Mirrors old stability @@ -161161,7 +166145,7 @@ should be kept until we use this API. --> + expires_after="2020-12-20"> boliu@chromium.org ssid@chromium.org @@ -161245,8 +166229,11 @@ should be kept until we use this API. --> + expires_after="never"> + + siggi@chromium.org + chrome-stability-core@google.com Records the exit code of the browser process (on Windows) from the previous launch. On crash, the exit code will indicate the exception code of the @@ -161443,6 +166430,19 @@ should be kept until we use this API. --> + + eugenebut@chromium.org + olivierrobin@chromium.org + sdefresne@chromium.org + + Recorded when app starts after Unexplained Termination Event (UTE) or + Explained Termination Event (XTE). UTEs/XTEs can be caused by large memory + allocations and this histogram provides information which memory heavy + operation has being performed before UTE/XTE. + + + eugenebut@chromium.org @@ -161922,6 +166922,34 @@ should be kept until we use this API. --> + + + + hanxi@chromium.org + spdonghao@chromium.org + wychen@chromium.org + + Records the time duration from a cold start till the Feeds articles are + first loaded on the StartSurface. This histogram is only recorded when + StartSurface is shown at launch due to "return to tab switcher" + feature. + + + + + hanxi@chromium.org + spdonghao@chromium.org + wychen@chromium.org + + Records the time duration from a cold start till the Feeds loading + placeholder is shown on the StartSurface. This placeholder is only shown + when the feature flag InstantStart is enabled and StartSurface is shown at + launch due to "return to tab switcher" feature. + + + mthiesse@chromium.org @@ -161932,6 +166960,21 @@ should be kept until we use this API. --> + + + + hanxi@chromium.org + spdonghao@chromium.org + wychen@chromium.org + + Records the time duration from a cold start till the title of the single Tab + is shown on the StartSurface. This histogram is only recorded when + StartSurface is shown at launch due to "return to tab switcher" + feature. + + + skyostil@chromium.org @@ -161968,7 +167011,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> yusufo@chromium.org yfriedman@chromium.org @@ -161981,7 +167024,7 @@ should be kept until we use this API. --> + expires_after="2020-12-20"> yusufo@chromium.org yfriedman@chromium.org @@ -161994,7 +167037,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> yusufo@chromium.org yfriedman@chromium.org @@ -162067,7 +167110,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> robliao@chromium.org The amount of time that elapsed during BrowserMainRunnerImpl::Initialize. @@ -162175,7 +167218,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162325,7 +167368,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162352,7 +167395,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> djean@chromium.org eugenebut@chromium.org @@ -162364,7 +167407,7 @@ should be kept until we use this API. --> + expires_after="2020-11-22"> jif@chromium.org The duration of all initializations in a cold start triggered by an external @@ -162382,7 +167425,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162494,7 +167537,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162523,7 +167566,7 @@ should be kept until we use this API. --> - Removed with M77. Startup.FirstWebContents.NonEmptyPaint2 is a better + Removed with M77. Startup.FirstWebContents.NonEmptyPaint3 is a better indicator of startup time as perceived by users. fdoray@chromium.org @@ -162538,7 +167581,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162555,7 +167598,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org gab@chromium.org @@ -162586,9 +167629,11 @@ should be kept until we use this API. --> - - + expires_after="2020-06-10"> + + Replaced with Startup.FirstWebContents.NonEmptyPaint3 on 06/2020, which uses + application start time instead of process creation time to reduce noise. + fdoray@chromium.org gab@chromium.org chrome-analysis-team@google.com @@ -162604,25 +167649,24 @@ should be kept until we use this API. --> + expires_after="never"> + + etiennep@chromium.org fdoray@chromium.org gab@chromium.org + chrome-analysis-team@google.com - [Desktop] Measure the elapsed time from the application start to the first - non empty paint of the first web contents. Only comprised of cases where the - initial foreground tab gets to complete its rendering task unimpeded (an - improvement over Startup.FirstWebContents.NonEmptyPaint). + Measure the elapsed time from the application start to the first non empty + paint of the first web contents. Only comprised of cases where the initial + foreground tab gets to complete its rendering task unimpeded (an improvement + over Startup.FirstWebContents.NonEmptyPaint). Application start is a time recorded as early as possible in the startup process. On Android, the application start is the time at which the Java - code starts. On Windows, application start is sampled from chrome.exe:main, - before chrome.dll is loaded. On other platforms, it is sampled when + code starts. On Windows, application start is when chrome.exe:main starts, + before chrome.dll is loaded. On other platforms, it is when ChromeMainDelegate is constructed. - - This is meant to replace Startup.FirstWebContents.NonEmptyPaint2, using - application start time instead of process creation time. TODO(etiennep): - Deprecate NonEmptyPaint2 in favor of this one once stable. @@ -162742,7 +167786,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org etiennep@chromium.org @@ -162783,7 +167827,7 @@ should be kept until we use this API. --> - + fdoray@chromium.org etiennep@chromium.org @@ -163807,7 +168851,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> futhark@chromium.org Microseconds spent in StyleEngine::InvalidateStyle. Only samples from high @@ -163831,7 +168875,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> futhark@chromium.org Microseconds spent in RebuildLayoutTree called from Document::UpdateStyle. @@ -163839,7 +168883,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> futhark@chromium.org Microseconds spent in RecalcStyle called from Document::UpdateStyle. @@ -163902,7 +168946,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> csharrison@chromium.org jkarlin@chromium.org @@ -164666,8 +169710,9 @@ should be kept until we use this API. --> - engedy@chromium.org + enum="SubresourceFilterWriteRulesetResult" expires_after="M88"> + ericrobinson@chromium.org + csharrison@chromium.org Whether indexing a version of the ruleset and writing it to disk succeeded, or failed at a particular step. Recorded every time the RulesetService kicks @@ -164675,6 +169720,19 @@ should be kept until we use this API. --> + + rajendrant@chromium.org + mcrouse@chromium.org + + Records the duration that the subresource redirect feature was stopped due + to fetch failure. When such a redirected fetch times out or fails with 503 + (loadshed failure), subresource redirect is disabled for subsequent + pageloads for a random duration or duration mentioned in the Retry-After + response header. Recorded for each fetch failure. + + + robertogden@chromium.org @@ -164698,6 +169756,16 @@ should be kept until we use this API. --> + + rajendrant@chromium.org + mcrouse@chromium.org + + Recorded whenever the subresource redirect times out, and leads to a random + bypass of 1-5 minutes. + + + robertogden@chromium.org @@ -164718,6 +169786,26 @@ should be kept until we use this API. --> + + rajendrant@chromium.org + src/components/data_reduction_proxy/OWNERS + + Records the user interaction with the HTTPS Image compression notification + InfoBar. Recorded when the one-time InfoBar is shown. + + + + + rajendrant@chromium.org + mcrouse@chromium.org + + Records whether the subresource redirect was bypassed or not for a pageload. + Recorded once per pageload. + + + mathp@chromium.org @@ -164907,6 +169995,27 @@ should be kept until we use this API. --> + + tobyhuang@chromium.org + cros-families@google.com + + Records the state of the "Permissions for sites, apps and + extensions" toggle. When parents/custodians have the toggle enabled, + supervised users may install extensions with parent/custodian approval, and + can approve permission updates by themselves. Otherwise, supervised users + cannot install extensions and cannot approve permission updates. If the + toggle is disabled and an extension has permissions updates, the extension + would remain force-disabled. The Disabled count increments when the parent + flips the toggle off, and increments twice if the supervised user logs in + while the toggle is in the off state. The Enabled count increments when the + parent flips the toggle on, and increments twice if the supervised user logs + in while the toggle is in the on state. While the double counting upon + logging in is less than ideal, at least the counts are balanced relative to + each other. + + + tobyhuang@chromium.org @@ -165148,6 +170257,9 @@ should be kept until we use this API. --> + + Removed in M85. + mastiz@chromium.org mmoskvitin@google.com @@ -165310,6 +170422,9 @@ should be kept until we use this API. --> + + Removed in M85. + mastiz@chromium.org mmoskvitin@google.com @@ -165319,7 +170434,7 @@ should be kept until we use this API. --> + expires_after="2020-11-15"> mastiz@chromium.org treib@chromium.org @@ -165418,7 +170533,7 @@ should be kept until we use this API. --> + enum="SyncBookmarkModelMetadataClientTagState" expires_after="M89"> mamir@chromium.org mastiz@chromium.org @@ -165463,7 +170578,7 @@ should be kept until we use this API. --> + enum="SyncBookmarkModelMetadataCorruptionReason" expires_after="M89"> mamir@chromium.org mastiz@chromium.org @@ -165535,6 +170650,26 @@ should be kept until we use this API. --> + + rushans@google.com + mastiz@chromiumg.org + + Number of remote bookmarks which don't have full title in specifics. + Recorded when processing an initial merge. + + + + + rushans@google.com + mastiz@chromiumg.org + + Number of remote bookmarks which don't have full title in specifics. + Recorded when processing a remote bookmark update. + + + @@ -165561,9 +170696,9 @@ should be kept until we use this API. --> - + mastiz@chromium.org - mamir@chromium.org + treib@chromium.org Records the time between the local model being changed until the commit response is completed and propagated to the model thread. Note: This is only @@ -165571,6 +170706,19 @@ should be kept until we use this API. --> + + + + rushans@google.com + treib@chromium.org + + Emitted per network Commit() request to the sync server and datatype. + Records the outcome of each commit attempt per data type (success or one of + various error codes). + + + treib@chromium.org @@ -165584,7 +170732,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> mastiz@chromium.org treib@chromium.org @@ -165791,7 +170939,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> vitaliii@chromium.org treib@chromium.org @@ -165805,7 +170953,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> vitaliii@chromium.org treib@chromium.org @@ -165819,7 +170967,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> vitaliii@chromium.org treib@chromium.org @@ -165829,7 +170977,7 @@ should be kept until we use this API. --> + units="ms" expires_after="2020-11-29"> vitaliii@chromium.org treib@chromium.org @@ -165840,7 +170988,7 @@ should be kept until we use this API. --> + enum="SyncCryptographerPendingKeysState" expires_after="2020-12-13"> mastiz@chromium.org treib@chromium.org @@ -165895,8 +171043,9 @@ should be kept until we use this API. --> - + treib@chromium.org + mastiz@chromium.org For users who have *not* selected the "Sync Everything" option, this records all the data types they have selected to sync. Samples are @@ -165935,7 +171084,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> jkrcal@chromium.org mastiz@chromium.org @@ -165961,7 +171110,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> jkrcal@chromium.org mastiz@chromium.org @@ -166032,6 +171181,9 @@ should be kept until we use this API. --> + + Removed in M85. + jkrcal@chromium.org Whether the Sync Directory encountered a catastrophic error. @@ -166218,6 +171370,9 @@ should be kept until we use this API. --> + + Removed as of M85. + mamir@chromium.org mastiz@chromium.org @@ -166229,7 +171384,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> mastiz@chromium.org treib@chromium.org A UI event occured. @@ -166602,8 +171757,11 @@ should be kept until we use this API. --> - + + Removed as of 06/2020. + mastiz@chromium.org treib@chromium.org @@ -166642,7 +171800,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> treib@chromium.org mastiz@chromium.org @@ -166678,7 +171836,7 @@ should be kept until we use this API. --> + enum="InvalidBookmarkSpecificsError" expires_after="2020-12-16"> mamir@chromium.org mastiz@chromium.org rushans@google.com @@ -166702,7 +171860,7 @@ should be kept until we use this API. --> + enum="SyncKeystoreDecryptionFailure" expires_after="2020-11-15"> mastiz@chromium.org treib@chromium.org @@ -166848,7 +172006,7 @@ should be kept until we use this API. --> + units="ms" expires_after="2020-12-20"> jkrcal@chromium.org mastiz@chromium.org @@ -166917,7 +172075,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> jkrcal@chromium.org mastiz@chromium.org @@ -166960,7 +172118,7 @@ should be kept until we use this API. --> + enum="SyncEntityChange" expires_after="2020-12-06"> jkrcal@chromium.org Recorded once for every sync entity change (whenever it is commited to the @@ -166970,6 +172128,19 @@ should be kept until we use this API. --> + + + + jkrcal@chromium.org + rushans@google.com + + Recorded whenever ClientTagBasedModelTypeProcessor triggers a data type + failure (recorded for both Start and Run failures). It distinguishes call + sites for triggering such failures. + + + mastiz@chromium.org @@ -167003,6 +172174,9 @@ should be kept until we use this API. --> + + Removed as of 05/2020. + mastiz@chromium.org Records the number of write batches committed to leveldb @@ -167076,6 +172250,9 @@ should be kept until we use this API. --> + + Removed in M85. + mastiz@chromium.org mmoskvitin@google.com Breakdown of sync's nigori node keystore migration state. @@ -167151,7 +172328,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> mastiz@chromium.org melandory@chromium.org @@ -167361,7 +172538,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> treib@chromium.org mastiz@chromium.org The active sync passphrase type at sync startup. @@ -167422,7 +172599,7 @@ should be kept until we use this API. --> + expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -167436,7 +172613,7 @@ should be kept until we use this API. --> + expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -167449,7 +172626,7 @@ should be kept until we use this API. --> + expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -167461,7 +172638,7 @@ should be kept until we use this API. --> + expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -167484,7 +172661,7 @@ should be kept until we use this API. --> + enum="SyncClientToServerMessageContents" expires_after="2020-11-29"> mastiz@chromium.org Number of network requests issued by sync to the sync server, grouped by @@ -167493,7 +172670,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> mastiz@chromium.org A sync error code received from the sync server as a result of a @@ -167572,7 +172749,7 @@ should be kept until we use this API. --> + units="BooleanHit" expires_after="M88"> tschumann@chromium.org treib@chromium.org @@ -167584,6 +172761,9 @@ should be kept until we use this API. --> + + Removed 2020-06. + tschumann@chromium.org treib@chromium.org @@ -167673,7 +172853,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> melandory@chromium.org treib@chromium.org @@ -167749,7 +172929,10 @@ should be kept until we use this API. --> + enum="SyncSimpleConflictResolutions" expires_after="2020-06-24"> + + Removed 06/2020. + mastiz@chromium.org treib@chromium.org Enumeration of types of simple conflict resolutions. @@ -167887,6 +173070,9 @@ should be kept until we use this API. --> + + Removed as of 2018-11. + mastiz@chromium.org treib@chromium.org @@ -167928,7 +173114,7 @@ should be kept until we use this API. --> - + mastiz@chromium.org treib@chromium.org @@ -167938,6 +173124,9 @@ should be kept until we use this API. --> + + Removed as of 2018-11. + mastiz@chromium.org treib@chromium.org @@ -168034,7 +173223,7 @@ should be kept until we use this API. --> + enum="SyncDeferredInitTrigger" expires_after="2020-11-29"> mastiz@chromium.org treib@chromium.org The type of event that triggered sync initialization. @@ -168053,7 +173242,7 @@ should be kept until we use this API. --> - + mastiz@chromium.org treib@chromium.org @@ -168063,7 +173252,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> mastiz@chromium.org treib@chromium.org Data type that first requests sync initialization. @@ -168103,7 +173292,7 @@ should be kept until we use this API. --> + enum="FaviconAvailabilityStatus" expires_after="2021-07-10"> victorvianna@google.com jkrcal@chromium.org @@ -168117,7 +173306,7 @@ should be kept until we use this API. --> + expires_after="2021-07-10"> jkrcal@chromium.org mastiz@chromium.org @@ -168179,8 +173368,9 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> treib@chromium.org + mastiz@chromium.org Boolean histogram for whether the "Sync Everything" option was selected by the user. Samples are taken every time the Sync data types are @@ -168367,6 +173557,9 @@ should be kept until we use this API. --> + + Removed as of 06/2020. + mastiz@chromium.org treib@chromium.org @@ -168394,7 +173587,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> mastiz@chromium.org treib@chromium.org @@ -168430,7 +173623,10 @@ should be kept until we use this API. --> + expires_after="2020-05-20"> + + Removed in M85. + mastiz@chromium.org Counts the number of sync entities per model type successfully migrated from @@ -168439,14 +173635,20 @@ should be kept until we use this API. --> + expires_after="2020-05-20"> + + Removed in M85. + treib@chromium.org mastiz@chromium.org Counts directory to USS migration failures per model type. + expires_after="2020-05-20"> + + Removed in M85. + treib@chromium.org mastiz@chromium.org Counts directory to USS migration successes per model type. @@ -168651,7 +173853,7 @@ should be kept until we use this API. --> + expires_after="M88"> dtrainor@chromium.org yfriedman@chromium.org @@ -168721,7 +173923,7 @@ should be kept until we use this API. --> - + rhalavati@chromium.org chrome-privacy-core@google.com @@ -168734,7 +173936,7 @@ should be kept until we use this API. --> - + rhalavati@chromium.org chrome-privacy-core@google.com @@ -168956,7 +174158,7 @@ should be kept until we use this API. --> - + dtrainor@chromium.org yfriedman@chromium.org @@ -169139,7 +174341,7 @@ should be kept until we use this API. --> - + dtrainor@chromium.org marq@chromium.org @@ -169148,7 +174350,7 @@ should be kept until we use this API. --> - + dtrainor@chromium.org marq@chromium.org [Android and iOS] Load time for a successful tab restore. @@ -169445,6 +174647,16 @@ should be kept until we use this API. --> + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + The number of tabs groups that are collapsed in all browsers (counting + app-mode windows) when a load completes. + + + yusufo@chromium.org @@ -169457,6 +174669,26 @@ should be kept until we use this API. --> + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + The time a tab group spends in the collapsed state before the group is + either expanded or closed. + + + + + cyan@chromium.org + chrome-desktop-ui-sea@google.com + + The time a tab group spends in the expanded state before the group is either + collapsed or closed. + + + connily@chromium.org @@ -170656,8 +175888,9 @@ should be kept until we use this API. --> + expires_after="M88"> dtrainor@chromium.org + yusufo@chromium.org [Android] Age (time since the last display in previous sessions) of the foreground tab being restored on the browser cold start. @@ -170666,6 +175899,9 @@ should be kept until we use this API. --> + + Removed 2020-06. + adityakeerthi@google.com @@ -170688,6 +175924,9 @@ should be kept until we use this API. --> + + Code removed long ago. + pauljensen@chromium.org Page load time (PLT) for iOS that does not include time spent following @@ -170761,7 +176000,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170775,7 +176014,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170799,7 +176038,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170815,7 +176054,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170830,7 +176069,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170843,7 +176082,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -170892,7 +176131,7 @@ should be kept until we use this API. --> + expires_after="2021-06-01"> sonnyrao@chromium.org jamescook@chromium.org @@ -171086,32 +176325,36 @@ should be kept until we use this API. --> - + dtrainor@chromium.org + yusufo@chromium.org [Android] Time between the event that closes a tab and the start of rendering. - + dtrainor@chromium.org + yusufo@chromium.org [Android] Time between the event that exits an app and the start of rendering. - + dtrainor@chromium.org + yusufo@chromium.org [Android] Time between the event that creates a tab and the start of rendering. - + dtrainor@chromium.org + yusufo@chromium.org [Android] Time between the event that selects a tab and the start of rendering. @@ -171129,7 +176372,9 @@ should be kept until we use this API. --> - + + + markchang@google.com The number of tabs open in the active window when a load completes. @@ -171188,7 +176433,7 @@ should be kept until we use this API. --> - + pkasting@chromium.org The number of tabs open per window (counting app-mode windows) when a load @@ -171823,6 +177068,17 @@ should be kept until we use this API. --> + + nburris@chromium.org + bokan@chromium.org + + Whether the match was within a list item. Only recorded for exact text + fragments and only if a match was found. Recorded when TextFragmentAnchor + finishes searching once the page is loaded. + + + nburris@chromium.org @@ -171887,6 +177143,17 @@ should be kept until we use this API. --> + + nburris@chromium.org + bokan@chromium.org + + Whether the match was within a table cell. Only recorded for exact text + fragments and only if a match was found. Recorded when TextFragmentAnchor + finishes searching once the page is loaded. + + + nburris@chromium.org @@ -171899,6 +177166,19 @@ should be kept until we use this API. --> + + nburris@chromium.org + bokan@chromium.org + + The time between scrolling a match into view and the user scrolling back to + the top of the page. Used as a signal for whether a match was useful. Only + recorded if a match is scrolled into view and the user subsequently scrolled + back to the top of the page. Recorded when TextFragmentAnchor finishes + searching once the page is loaded. + + + dmazzoni@chromium.org @@ -171909,6 +177189,9 @@ should be kept until we use this API. --> + + Removed 06/2020 as it is no longer needed for analysis. + katie@chromium.org dtseng@chromium.org dmazzoni@chromium.org @@ -171920,6 +177203,9 @@ should be kept until we use this API. --> + + Removed 06/2020 as it is no longer needed for analysis. + katie@chromium.org dtseng@chromium.org dmazzoni@chromium.org @@ -172315,7 +177601,7 @@ should be kept until we use this API. --> + expires_after="M86"> etiennep@chromium.org fdoray@chromium.org gab@chromium.org @@ -172379,7 +177665,7 @@ should be kept until we use this API. --> + expires_after="M86"> etiennep@chromium.org fdoray@chromium.org gab@chromium.org @@ -172400,7 +177686,8 @@ should be kept until we use this API. --> - + dschinazi@chromium.org src/net/OWNERS @@ -172410,7 +177697,7 @@ should be kept until we use this API. --> + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -172419,7 +177706,8 @@ should be kept until we use this API. --> - + dschinazi@chromium.org src/net/OWNERS @@ -172429,7 +177717,7 @@ should be kept until we use this API. --> + expires_after="2021-05-11"> dschinazi@chromium.org src/net/OWNERS @@ -172743,6 +178031,9 @@ should be kept until we use this API. --> + + Removed in 06/2020. + xidachen@chromium.org Tracks how often each touch action is allowed (AKA the frequency of each @@ -172752,6 +178043,9 @@ should be kept until we use this API. --> + + Removed in 06/2020. + xidachen@chromium.org Tracks how often the effective touch action computed by blink is or is not @@ -172762,6 +178056,9 @@ should be kept until we use this API. --> + + Removed in 06/2020. + xidachen@chromium.org Tracks how often a gesture event is or is not dropped due to the current @@ -172771,6 +178068,9 @@ should be kept until we use this API. --> + + Removed in 06/2020. + xidachen@chromium.org nzolghadr@chromium.org @@ -172972,7 +178272,7 @@ should be kept until we use this API. --> + enum="TracingFinalizationDisallowedReason" expires_after="2020-11-15"> ssid@chromium.org Reason why background tracing finalization was not allowed. Also see @@ -172982,7 +178282,7 @@ should be kept until we use this API. --> + expires_after="2020-11-15"> oysteine@chromium.org The size, in kilobytes, of a finalized trace ready to be uploaded. @@ -172990,7 +178290,7 @@ should be kept until we use this API. --> + enum="NetworkConnectionType" expires_after="2020-12-20"> ssid@chromium.org Connection type of the network used to determine the trace buffer size, when @@ -172999,7 +178299,7 @@ should be kept until we use this API. --> + enum="NetworkConnectionType" expires_after="2020-12-20"> ssid@chromium.org Connection type of the network used to determine the trace upload limit, @@ -173008,7 +178308,7 @@ should be kept until we use this API. --> + enum="BackgroundTracingState" expires_after="2020-12-06"> oysteine@chromium.org Records state of the Background Tracing system, from when scenarios are @@ -173112,6 +178412,7 @@ should be kept until we use this API. --> + chrome-language@google.com googleo@chromium.org Time taken for the TranslateAcceptLanguages to decide if a given language is @@ -173120,7 +178421,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the always translate option was selected in the @@ -173129,12 +178431,14 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com groby@google.com Tracks UI events related to the translate bubble. + chrome-language@google.com dougarnett@google.com megjablon@google.com @@ -173167,9 +178471,9 @@ should be kept until we use this API. --> - frechette@chromium.org + expires_after="2020-12-01"> chrome-language@google.com + frechette@chromium.org Language of the input page detected by CLD3. This information is logged on every page load. @@ -173177,9 +178481,9 @@ should be kept until we use this API. --> - frechette@chromium.org + expires_after="2020-12-01"> chrome-language@google.com + frechette@chromium.org Percentage of the bytes that are associated with the most popular language on the input page. Only recorded if the detection returned a @@ -173188,13 +178492,15 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Various user actions performed in the translate infobar. + enum="CLD3LanguageCode" expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Records the hashcode of the source language when always translate this @@ -173203,7 +178509,8 @@ should be kept until we use this API. --> + enum="CLD3LanguageCode" expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Records the hashcode of the language clicked on the more languages menu. @@ -173211,7 +178518,8 @@ should be kept until we use this API. --> + enum="CLD3LanguageCode" expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Records the hashcode of the source language when never translate this @@ -173220,7 +178528,8 @@ should be kept until we use this API. --> + enum="CLD3LanguageCode" expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Records the hashcode of the language clicked on the menu to indicate the @@ -173230,6 +178539,7 @@ should be kept until we use this API. --> + chrome-language@google.com anthonyvd@chromium.org Records the hashcode of the language clicked on the infobar. @@ -173237,7 +178547,8 @@ should be kept until we use this API. --> + units="translations" expires_after="2020-12-01"> + chrome-language@google.com anthonyvd@chromium.org Records the number of times a page is translated, every time the page is @@ -173257,7 +178568,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com A page may provide a Content-Language HTTP header or a META tag. For each @@ -173266,7 +178578,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the "Nope" (don't translate) or the infobar's @@ -173275,7 +178588,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the translate infobar was closed by clicking the X @@ -173284,7 +178598,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the translate UI was closed without translating in the @@ -173298,6 +178613,7 @@ should be kept until we use this API. --> + chrome-language@google.com yyushkina@google.com anthonyvd@google.com @@ -173308,6 +178624,7 @@ should be kept until we use this API. --> + chrome-language@google.com yyushkina@google.com anthonyvd@google.com @@ -173318,6 +178635,7 @@ should be kept until we use this API. --> + chrome-language@google.com yyushkina@google.com anthonyvd@google.com @@ -173327,11 +178645,11 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> Removed as of 04/2020. No longer used for analysis. - . + chrome-language@google.com anthonyvd@chromium.org yyushkina@chromium.org @@ -173341,9 +178659,9 @@ should be kept until we use this API. --> - megjablon@google.com + expires_after="2020-12-01"> chrome-language@google.com + megjablon@google.com For Google navigations, the hrefTranslate hint may trigger a translation automatically. If the hint is present on a Google navigation, record whether @@ -173355,7 +178673,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com A page may provide a lang attribute in html tag. For each page load, @@ -173364,6 +178683,7 @@ should be kept until we use this API. --> + chrome-language@google.com anthonyvd@chromium.org The number of times the translate infobar was shown in the old translate UI @@ -173376,6 +178696,7 @@ should be kept until we use this API. --> Removed as of 11/2013, and replaced by Translate.InitiationStatus.v2. + chrome-language@google.com kenjibaheux@google.com The reason why Chrome decided to perform the next action (e.g., to show @@ -173385,7 +178706,8 @@ should be kept until we use this API. --> + enum="TranslateInitiationStatus" expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The reason why Chrome decided to perform the next action (e.g., to show @@ -173395,10 +178717,10 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com dougarnett@chromium.org megjablon@chromium.org - chrome-language@google.com The number of characters of page content used for language detection. @@ -173427,6 +178749,7 @@ should be kept until we use this API. --> + chrome-language@google.com andrewhayden@chromium.org For each page load, records whether language detection occurs on time or @@ -173436,10 +178759,23 @@ should be kept until we use this API. --> + + dougarnett@chromium.org + sclittle@chromium.org + chrome-language@google.com + + Records the time from when a navigation finishes to when its page language + is determined. This includes the time to load the frame(s), capturing the + text content of the page, and running language classification on that + content. + + + - frechette@chromium.org + expires_after="2020-12-01"> chrome-language@google.com + frechette@chromium.org Log everytime the language settings page is shown. This can be either user visits chrome://settings/languages or user visits the advanced languages @@ -173452,6 +178788,7 @@ should be kept until we use this API. --> + chrome-language@google.com yyushkina@chromium.org For each page load, measures whether the provided HTML language (i.e. the @@ -173468,6 +178805,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com Logs the user locale when the Translate feature is disabled by the user. @@ -173478,7 +178816,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com yyushkina@google.com frechette@chromium.org @@ -173488,7 +178827,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the original language in the translate infobar has been @@ -173497,7 +178837,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the target language in the translate infobar has been @@ -173506,7 +178847,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the never translate option was selected in the translate @@ -173515,7 +178857,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the never translate site was selected in the translate @@ -173527,6 +178870,7 @@ should be kept until we use this API. --> Removed 2/2018 + chrome-language@google.com joelhockey@chromium.org The time spent capturing plain text from the DOM. This is reported by @@ -173536,12 +178880,14 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com Counts translation target page schemes. + expires_after="2020-12-01"> + chrome-language@google.com rogerm@google.com Tracks the outcome of attempts to download a Translate Ranker Model. @@ -173550,6 +178896,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com The date tamp (e.g., 20160916 -> 15 Sept 2016) which denotes the @@ -173559,6 +178906,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Whether the TranslateRanker accepts or denies to show the translation @@ -173568,6 +178916,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the TranslateRanker to use the translate ranker model to @@ -173577,6 +178926,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the Translate Ranker Model Loader to download its model from @@ -173586,6 +178936,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the Translate Ranker Model Loader to parse its model, in ms. @@ -173594,6 +178945,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the Translate Ranker Model Loader to read its model from @@ -173603,6 +178955,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the TranslateRanker to decide if a given translation should @@ -173614,6 +178967,7 @@ should be kept until we use this API. --> + chrome-language@google.com rogerm@google.com Time taken for the Translate Ranker Model Loader to write its model to local @@ -173622,7 +178976,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the "report this error" of options menu is @@ -173631,7 +178986,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the show original button was clicked in the translate @@ -173644,6 +179000,7 @@ should be kept until we use this API. --> Removed 5/2013 by Translate.UndisplayableLanguage + chrome-language@google.com kenjibaheux@google.com The number of times the detected language is not supported by Translate @@ -173656,6 +179013,7 @@ should be kept until we use this API. --> Removed 7/2010. No longer tracked. + chrome-language@google.com kenjibaheux@google.com The number of times an infobar proposing to translate a page has been shown. @@ -173663,7 +179021,11 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + + Removed 6/2020. Duplicate of Translate.ShowErrorUI + + chrome-language@google.com kenjibaheux@google.com Chrome Translate shows an error infobar when an error happens on translation @@ -173673,7 +179035,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com Chrome Translate shows an error UI (infobar or bubble) when an error happens @@ -173684,6 +179047,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com This metrics is logged whenever a page is loaded. The logged value is @@ -173696,7 +179060,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com yyushkina@google.com The number of requests sent to the Translate server, grouped by source @@ -173705,7 +179070,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com yyushkina@google.com The number of requests sent to the Translate server, grouped by target @@ -173714,9 +179080,9 @@ should be kept until we use this API. --> - megjablon@google.com + enum="TranslateTargetLanguageOrigin" expires_after="2020-12-01"> chrome-language@google.com + megjablon@google.com Where the target language was determined from. Can be the most recent target language, from the language model, the UI language, the user's accept @@ -173725,6 +179091,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com The time from injecting scripts for Chrome Translate to being ready to @@ -173733,6 +179100,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com The time from injecting scripts for Chrome Translate to the finishing loads @@ -173741,12 +179109,14 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com The time from starting translation to the completion. + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The number of times the translate button was clicked in the translate @@ -173755,10 +179125,10 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com dougarnett@google.com megjablon@google.com - chrome-language@google.com The number of times the translate button was clicked in the translate infobar for a page that is likely an AMP Cache URL. @@ -173767,6 +179137,7 @@ should be kept until we use this API. --> + chrome-language@google.com dougarnett@google.com megjablon@google.com @@ -173776,7 +179147,7 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> dougarnett@google.com megjablon@google.com @@ -173787,7 +179158,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com dougarnett@google.com megjablon@google.com @@ -173799,6 +179171,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com Logs an undisplayable language included in the language list sent by the @@ -173810,6 +179183,7 @@ should be kept until we use this API. --> + chrome-language@google.com kenjibaheux@google.com Logs an unsupported source language detected during initiation of the @@ -173821,7 +179195,8 @@ should be kept until we use this API. --> + expires_after="2020-12-01"> + chrome-language@google.com kenjibaheux@google.com The time from a page content language being determined to user requesting @@ -173860,6 +179235,49 @@ should be kept until we use this API. --> + + eirage@chromium.org + peconn@chromium.org + + When a site running in Truested Web Activity is accessing geolocation, + records whether the last tracked focused Trusted Web Activity client app + enrolled location delegation. + + + + + eirage@chromium.org + peconn@chromium.org + + When a Trusted Web Activity client app's location permission is changed, + record the previous state and new stase. + + + + + eirage@chromium.org + peconn@chromium.org + + Records the boolean result (granted or not) from requesting a Trusted Web + Activity client app's location permission. + + + + + eirage@chromium.org + peconn@chromium.org + + Records an error code when we get a new location update or location error + from the Trusted Web Activity client app. Record + "LocationUpdateError.NONE" (value = 0) if there is no error and + the geoposition is valid. + + + peconn@chromium.org @@ -173985,6 +179403,9 @@ should be kept until we use this API. --> + + Removed in M85. + kylechar@chromium.org The amount of time it took for UI's CompositorFrame to activate due to a @@ -174044,7 +179465,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com @@ -174053,6 +179474,18 @@ should be kept until we use this API. --> + + jwd@chromium.org + ukm-team@google.com + + The hashed name of the UKM entry being dropped. The hash is the same hash + sent in the UKM log but truncated to 31 bits with "event_hash & + 0x7fffffff". Recorded when adding an entry and the UKM recorder decides + it should be dropped. + + + @@ -174064,7 +179497,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com Number of serialized UKM entries when storing a UKM log. @@ -174094,7 +179527,7 @@ should be kept until we use this API. --> - + rkaplow@chromium.org ukm-team@google.com @@ -174114,7 +179547,7 @@ should be kept until we use this API. --> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-13"> rkaplow@chromium.org ukm-team@google.com @@ -174165,7 +179598,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com @@ -174175,7 +179608,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com @@ -174195,7 +179628,7 @@ should be kept until we use this API. --> + expires_after="2020-12-13"> rkaplow@chromium.org ukm-team@google.com Number of serialized UKM sources when storing a UKM log. @@ -174212,7 +179645,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com @@ -174250,7 +179683,7 @@ should be kept until we use this API. --> + expires_after="2020-12-20"> rkaplow@chromium.org ukm-team@google.com @@ -174260,7 +179693,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> rkaplow@chromium.org ukm-team@google.com @@ -175171,7 +180604,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> jwd@chromium.org src/base/metrics/OWNERS @@ -175217,6 +180650,16 @@ should be kept until we use this API. --> + + rkaplow@chromium.org + src/base/metrics/OWNERS + + Records true during the initialization of the metrics state, right at the + time of logging a count to launch_count in stability prefs. + + + @@ -175311,7 +180754,7 @@ should be kept until we use this API. --> + enum="PersistentHistogramsInitResult" expires_after="2020-12-20"> bcwhite@chromium.org src/base/metrics/OWNERS @@ -175336,7 +180779,7 @@ should be kept until we use this API. --> + expires_after="2020-12-06"> michaelpg@chromium.org yilkal@chromium.org src/base/metrics/OWNERS @@ -175444,7 +180887,7 @@ should be kept until we use this API. --> + enum="StructuredMetricsEventRecordingState" expires_after="2021-02-01"> tby@chromium.org rkaplow@chromium.org asvitkine@chromium.org @@ -175456,7 +180899,7 @@ should be kept until we use this API. --> + enum="StructuredMetricsInternalError" expires_after="2021-02-01"> tby@chromium.org rkaplow@chromium.org asvitkine@chromium.org @@ -175467,7 +180910,7 @@ should be kept until we use this API. --> + enum="StructuredMetricsKeyValidationState" expires_after="2021-02-01"> tby@chromium.org rkaplow@chromium.org asvitkine@chromium.org @@ -175479,7 +180922,7 @@ should be kept until we use this API. --> + expires_after="2021-02-01"> tby@chromium.org rkaplow@chromium.org asvitkine@chromium.org @@ -175490,7 +180933,7 @@ should be kept until we use this API. --> + enum="PrefServiceReadError" expires_after="2021-02-01"> tby@chromium.org rkaplow@chromium.org asvitkine@chromium.org @@ -175556,7 +180999,7 @@ should be kept until we use this API. --> + expires_after="2020-12-20"> rkaplow@chromium.org src/base/metrics/OWNERS @@ -175591,6 +181034,51 @@ should be kept until we use this API. --> + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The size of all persistent initial or ongoing logs that have been + proto-encoded and compressed in the previous browser run; it is recorded on + the browser start up. The value '0' means no unsent logs. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The number of UMA sent samples in the previous browser run; it is recorded + on the browser start up. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The number of UMA unsent samples in the previous browser run; it is recorded + on the browser start up. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The percentage of the unsent samples over the total in the previous browser + run; it is recorded on the browser start up. + + + @@ -176058,8 +181546,9 @@ should be kept until we use this API. --> - poromov@chromium.org + enum="UpdateEngineChromeOsVersionPrefix" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com First section of the Chrome OS target version set by device policy and sent to Omaha if rollback is also allowed. This is a sparse histogram, since the @@ -176077,8 +181566,9 @@ should be kept until we use this API. --> - poromov@chromium.org + enum="UpdateEngineChromeOsVersionPrefix" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com First section of the Chrome OS target version set by device policy and sent to Omaha. This is a sparse histogram, since the possible valid values are @@ -176131,8 +181621,9 @@ should be kept until we use this API. --> - poromov@chromium.org + enum="UpdateEngineChromeOsVersionPrefix" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com First section of the Chrome OS version to which an enterprise rollback (rollback initiated by the admin of the device) has failed. This is a sparse @@ -176148,8 +181639,9 @@ should be kept until we use this API. --> - poromov@chromium.org + enum="UpdateEngineChromeOsVersionPrefix" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com First section of the Chrome OS version to which an enterprise rollback (rollback initiated by the admin of the device) has succeeded. This is a @@ -176339,9 +181831,9 @@ should be kept until we use this API. --> - poromov@chromium.org - zentaro@chromium.org + units="days" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com The total number of days from when an update is first seen to when an update is finished downloading (but before rebooting). This metric is recorded on @@ -176354,9 +181846,9 @@ should be kept until we use this API. --> - poromov@chromium.org - zentaro@chromium.org + units="days" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com The total number of days from when an update is first seen to when an update is finished downloading (but before rebooting). This metric is recorded on @@ -176491,9 +181983,9 @@ should be kept until we use this API. --> - isandrk@chromium.org - poromov@chromium.org + enum="UpgradeDetectorRollbackReason" expires_after="2021-01-01"> + mpolzer@google.com + managed-platforms@google.com Tracks what is the reason we're doing a rollback instead of an update (going to a more stable channel or admin-initiated enterprise rollback). We're @@ -176712,6 +182204,9 @@ should be kept until we use this API. --> + + Removed in M85. The OOBE user image screen is long gone. + achuith@chromium.org Distribution of the default images chosen on user image screen during @@ -176744,6 +182239,9 @@ should be kept until we use this API. --> + + Removed in M85. The OOBE user image screen is long gone. + achuith@chromium.org Time histogram of the "Choose Picture" OOBE screen display delay. @@ -176780,7 +182278,7 @@ should be kept until we use this API. --> + expires_after="2020-11-29"> achuith@chromium.org The number of users of different types that log in to the system (Chrome @@ -176856,7 +182354,8 @@ regressions. --> Number of bytes requested in an array buffer allocation. - + gdeepti@chromium.org ecmziegler@chromium.org @@ -176865,7 +182364,8 @@ regressions. --> - + gdeepti@chromium.org ecmziegler@chromium.org Array buffer sizes for which V8 failed to allocate memory. @@ -177073,7 +182573,7 @@ regressions. --> + expires_after="2020-12-06"> hablich@chromium.org Aggregated time spent compiling functions lazily during a single script @@ -177792,7 +183292,7 @@ regressions. --> + expires_after="2020-12-06"> ecmziegler@chromium.org adamk@chromium.org clemensb@chromium.org @@ -178913,6 +184413,16 @@ regressions. --> + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logs each event related to Android Chrome variations first run prefs to + debug crbug.com/1090968. + + + asvitkine@chromium.org @@ -178966,13 +184476,30 @@ regressions. --> - + asvitkine@chromium.org jwd@chromium.org + caitlinfischer@google.com src/base/metrics/OWNERS - The result of the check of whether to append Variations headers to a url. + Details about the request context in which an HTTP request is made. Logged + after determining that the request should include variations headers but + before adding the headers. + + + + + asvitkine@chromium.org + jwd@chromium.org + src/base/metrics/OWNERS + + The result of whether to append Variations headers to a request. Logged when + when determining (i) whether the URL to which the request is being sent + should have a variations header and (ii) whether--after a redirect--the + request to which a variations header was added should have the variations + header removed. @@ -179051,6 +184578,9 @@ regressions. --> + + Removed as of M85 / Jun 2020. + rmcelrath@chromium.org ntfschr@chromium.org src/android_webview/OWNERS @@ -179874,7 +185404,8 @@ regressions. --> + enum="VoiceInteractionEventSource" expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org @@ -179883,7 +185414,8 @@ regressions. --> + enum="VoiceInteractionEventSource" expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org @@ -179892,7 +185424,8 @@ regressions. --> + enum="VoiceInteractionEventSource" expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org @@ -179917,7 +185450,8 @@ regressions. --> + enum="VoiceInteractionEventSource" expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org @@ -179934,7 +185468,8 @@ regressions. --> + expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org @@ -179944,7 +185479,8 @@ regressions. --> + expires_after="2020-10-01"> + wylieb@chromium.org tedchoc@chromium.org yusufo@chromium.org Android: Records whether the voice search produced results. @@ -179965,7 +185501,10 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Duration from entering a VR mode until the VR assets component is ready to @@ -179975,7 +185514,10 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Duration from registering VR assets component until it is ready to use. @@ -179984,14 +185526,20 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Status of the VR assets component when entering a VR mode. - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org The component version and status of loading the VR assets. The value is @@ -180003,7 +185551,10 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org The version and update status of the VR assets component. The value is @@ -180016,7 +185567,10 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Recorded every time a user tries to enter the VR browser without the VR @@ -180028,14 +185582,20 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Network connection type when entering a VR mode. - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org Network connection type when registering the VR component(s). @@ -180057,6 +185617,9 @@ regressions. --> + + Removed 06/2020. + xr-dev@chromium.org We must suppress monocularly rendered ui elements in VR. This records which @@ -180066,6 +185629,9 @@ regressions. --> + + Removed 06/2020. + vollick@chromium.org We must exit VR mode when browsing in certain situations. This records which @@ -180075,12 +185641,18 @@ regressions. --> + + Removed 06/2020. + xr-dev@chromium.org The end state of a voice search request in VR. + + Removed 06/2020. + xr-dev@chromium.org Chrome shows a prompt when the OS's record audio permission is needed for @@ -180102,8 +185674,10 @@ regressions. --> + + As of 5/18/2020 this appears to no longer be logged. + alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The result of calls to VRDisplay::requestPresent(). Reported twice per @@ -180122,7 +185696,10 @@ regressions. --> - cassew@chromium.org + + Removed 06/2020. + + alcooper@chromium.org xr-dev@chromium.org The version of the runtime being used for VR. @@ -180133,7 +185710,6 @@ regressions. --> Removed 02/2020 alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org Count of navigations while in a VR session. Logged when a new disjoint @@ -180143,7 +185719,6 @@ regressions. --> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The duration of the VR session. Logged when a new disjoint session has @@ -180165,7 +185740,6 @@ regressions. --> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org Number of videos watched in a VR session. Logged when a new disjoint session @@ -180175,7 +185749,6 @@ regressions. --> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The duration of a single session spent watching video in VR. Logged when a @@ -180186,13 +185759,15 @@ regressions. --> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The type of headset being used for VR. + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's accept legal @@ -180202,6 +185777,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's authenticate @@ -180211,6 +185789,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's get full wallet API @@ -180220,6 +185801,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's get wallet items @@ -180265,6 +185849,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's save to wallet API @@ -180274,6 +185861,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's send status API @@ -180283,6 +185873,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Measures the time taken by Google Online Wallet server's unknown API calls. @@ -180315,6 +185908,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org Counts the number of times each Wallet API failed due to being unable to @@ -180324,6 +185920,9 @@ regressions. --> + + requestAutocomplete was removed in M52. + estade@chromium.org HTTP response codes seen by Wallet client. @@ -180556,7 +186155,7 @@ regressions. --> + expires_after="2020-12-20"> hanxi@chromium.org pkotwicz@chromium.org yfriedman@chromium.org @@ -180568,7 +186167,7 @@ regressions. --> + expires_after="2020-12-06"> hanxi@chromium.org pkotwicz@chromium.org yfriedman@chromium.org @@ -180813,7 +186412,7 @@ regressions. --> + expires_after="2020-11-29"> hanxi@chromium.org pkotwicz@chromium.org yfriedman@chromium.org @@ -180824,7 +186423,7 @@ regressions. --> + units="ms" expires_after="2020-12-01"> pkotwicz@chromium.org yfriedman@chromium.org @@ -180872,7 +186471,7 @@ regressions. --> + expires_after="2020-12-06"> pkotwicz@chromium.org yfriedman@chromium.org Records that a WebAPK was uninstalled. @@ -180944,6 +186543,30 @@ regressions. --> + + asamidoi@chromium.org + shimazu@chromium.org + chrome-worker@google.com + + Records the result of the promotability check that decides if a PWA install + prompt appears depending on that the site has a service worker with offline + support. + + + + + asamidoi@chromium.org + shimazu@chromium.org + chrome-worker@google.com + + Records the time to complete the promotability check that decides if a PWA + install prompt appears depending on that the site has a service worker with + offline support. + + + calamity@chromium.org @@ -181111,18 +186734,19 @@ regressions. --> - + calamity@chromium.org ortuno@chromium.org Records the number of seconds taken to install system web apps, from when we dispatch a call to install them, until we get all the installation results. + Recorded in milliseconds, from 1 millisecond to 3 minutes. + expires_after="2020-12-31"> calamity@chromium.org @@ -181132,7 +186756,7 @@ regressions. --> + enum="ExtensionDisableReason" expires_after="2020-12-31"> calamity@chromium.org @@ -181148,7 +186772,7 @@ regressions. --> + enum="ExtensionInstallationCrxInstallError" expires_after="2020-12-31"> calamity@chromium.org @@ -181300,6 +186924,14 @@ regressions. --> + + qjw@chromium.org + ortuno@chromium.org + desktop-pwas-team@google.com + Records the result of WebAppUrlLoader::PrepareForLoad(). + + rtoy@chromium.org @@ -181672,7 +187304,7 @@ regressions. --> + enum="WebAuthenticationAttestationPromptResult" expires_after="2020-11-29"> agl@chromium.org Tracks events related to prompting users for permission to pass WebAuthn @@ -181787,7 +187419,7 @@ regressions. --> + expires_after="2020-11-29"> agl@chromium.org Tracks events related to prompting users for permission to pass U2F @@ -181983,7 +187615,7 @@ regressions. --> + units="tasks" expires_after="2020-11-29"> rakina@chromium.org altimin@chromium.org @@ -181994,7 +187626,7 @@ regressions. --> + expires_after="2020-11-29"> rakina@chromium.org altimin@chromium.org @@ -182019,7 +187651,7 @@ regressions. --> + expires_after="2020-12-06"> rakina@chromium.org altimin@chromium.org @@ -182029,7 +187661,7 @@ regressions. --> + expires_after="2020-11-29"> rakina@chromium.org altimin@chromium.org @@ -182822,7 +188454,7 @@ regressions. --> + expires_after="2020-11-29"> dmurph@chromium.org pwnall@chromium.org @@ -182837,7 +188469,7 @@ regressions. --> + expires_after="2020-11-29"> dmurph@chromium.org pwnall@chromium.org @@ -183192,6 +188824,9 @@ regressions. --> + + Removed December 2017. + rmcilroy@chromium.org The amount of time by which a requestIdleCallback callback overran its @@ -183248,32 +188883,37 @@ regressions. --> - marja@chromium.org + enum="NotStreamingReason" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Reason for not streaming an async script. - marja@chromium.org + expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Whether an async script was streamed or not. - marja@chromium.org + enum="NotStreamingReason" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Reason for not streaming a deferred script. - marja@chromium.org + enum="BooleanStreamed" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Whether a deferred script was streamed or not. - rmcilroy@chromium.org + enum="NotStreamingReason" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Reason for not streaming an other (not async, deferred or parser blocking) script. @@ -183281,8 +188921,9 @@ regressions. --> - rmcilroy@chromium.org + expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Whether an other (not async, deferred or parser blocking) script was streamed or not. @@ -183303,14 +188944,16 @@ regressions. --> - marja@chromium.org + enum="NotStreamingReason" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Reason for not streaming a parsing blocking script. - marja@chromium.org + enum="BooleanStreamed" expires_after="2021-02-01"> + leszeks@chromium.org + v8-runtime@google.com Whether a parsing blocking script was streamed or not. @@ -183329,6 +188972,10 @@ regressions. --> + + Removed in M85 as we haven't observed any related performance alerts, and no + team is actively monitoring it. + xiaochengh@chromium.org The amount of time between consecutive spellcheck requests made by Blink, @@ -183433,7 +189080,7 @@ regressions. --> + expires_after="2020-12-20"> yhirano@chromium.org ricea@chromium.org @@ -183496,7 +189143,7 @@ regressions. --> + expires_after="2020-12-06"> kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183506,7 +189153,8 @@ regressions. --> - + hajimehoshi@chromium.org kenjibaheux@chromium.org kouhei@chromium.org @@ -183617,7 +189265,7 @@ regressions. --> + expires_after="2021-01-20"> kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183627,7 +189275,7 @@ regressions. --> + expires_after="2021-01-20"> kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183637,7 +189285,7 @@ regressions. --> + expires_after="2021-01-20"> kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183647,7 +189295,7 @@ regressions. --> + expires_after="2021-01-20"> kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183656,7 +189304,8 @@ regressions. --> - + kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183665,7 +189314,8 @@ regressions. --> - + kenjibaheux@chromium.org ksakamoto@chromium.org @@ -183748,7 +189398,7 @@ regressions. --> + expires_after="2021-01-20"> ksakamoto@chromium.org toyoshim@chromium.org @@ -183836,7 +189486,7 @@ regressions. --> + expires_after="2020-12-20"> hajimehoshi@chromium.org kenjibaheux@chromium.org kouhei@chromium.org @@ -184002,7 +189652,7 @@ regressions. --> + expires_after="2020-12-13"> droger@chromium.org Histogram for the format of decoded WebP images on iOS, as Chrome re-encodes @@ -184235,7 +189885,7 @@ regressions. --> + units="dBFS (negated)" expires_after="2020-12-06"> hlundin@chromium.org This histogram reports the average RMS of the signal coming in to WebRTC's @@ -184247,7 +189897,7 @@ regressions. --> + units="dBFS (negated)" expires_after="2020-12-06"> hlundin@chromium.org This histogram reports the peak RMS of the signal coming in to WebRTC's @@ -184259,7 +189909,7 @@ regressions. --> + units="dBFS (negated)" expires_after="2020-12-06"> peah@chromium.org This histogram reports the average RMS of the signal in the output of @@ -184271,7 +189921,7 @@ regressions. --> + units="dBFS (negated)" expires_after="2020-12-13"> peah@chromium.org This histogram reports the peak RMS of the signal in the output of WebRTC's @@ -184374,7 +190024,7 @@ regressions. --> + expires_after="2020-12-06"> hlundin@chromium.org Measures the average waiting time in the buffer for each packet. The waiting @@ -184810,7 +190460,7 @@ regressions. --> + expires_after="2020-12-20"> hlundin@chromium.org The sound card's buffering delay for the receiving side. Sampled once every @@ -184819,7 +190469,7 @@ regressions. --> + expires_after="2020-12-20"> hlundin@chromium.org The jitter buffer delay for the receiving side. Sampled once every 10 ms @@ -184828,7 +190478,7 @@ regressions. --> + expires_after="2020-12-06"> hlundin@chromium.org ivoc@chromium.org @@ -184906,7 +190556,7 @@ regressions. --> + expires_after="2020-11-29"> henrika@chromium.org Audio input sample rate for WebRTC (in Hz). @@ -184992,14 +190642,14 @@ regressions. --> + expires_after="2020-12-06"> holmer@chromium.org The number of video packets lost durig the first 2 seconds in a WebRTC call. - + holmer@chromium.org The round-trip time as measured 2 seconds into a WebRTC call. @@ -185132,7 +190782,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org Average audio bitrate received during a call, counted from first packet @@ -185142,7 +190792,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org Average total bitrate received during a call (audio + video + RTCP), counted @@ -185152,7 +190802,7 @@ regressions. --> + expires_after="2020-12-06"> holmer@chromium.org Average estimated send bitrate during a call, counted from first packet sent @@ -185162,7 +190812,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The lifetime of a call. Recorded when a Call instance is destroyed. @@ -185170,7 +190820,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org Average pacer bitrate during a call, counted from first packet sent until @@ -185180,7 +190830,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org Average RTCP bitrate received during a call, counted from first packet @@ -185229,7 +190879,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org Average video bitrate received during a call, counted from first packet @@ -185439,7 +191089,7 @@ regressions. --> + enum="IceConnectionStates" expires_after="2020-11-29"> qingsi@google.com jeroendb@google.com @@ -185553,7 +191203,7 @@ regressions. --> + enum="PeerConnectionOfferExtmapAllowMixed" expires_after="2021-06-28"> kron@chromium.org What setting for the SDP attribute extmap-allow-mixed has been asked for by @@ -185769,6 +191419,18 @@ regressions. --> + + eshr@google.com + hbos@chromium.com + + Measures computer thermal state, sampled every 60s when a PeerConnection is + open with a video sender. Most quick toggles between thermal states are thus + not sampled, but thermal states are generally stable so these toggles should + be rare. + + + qingsi@google.com @@ -185787,8 +191449,9 @@ regressions. --> + enum="WebRtcPeerConnectionUsagePattern" expires_after="2021-06-01"> hta@chromium.org + webrtc-dev@chromium.org Capsule history of a WebRTC PeerConnection, encoded as a sequence of bits encapsulated in an integer. Only a few values will be deemed interesting, @@ -185797,7 +191460,7 @@ regressions. --> + expires_after="2020-11-15"> perkj@chromium.org Durations of audio tracks received over a PeerConnection. The stopwatch @@ -185807,7 +191470,7 @@ regressions. --> + expires_after="2020-11-15"> perkj@chromium.org Durations of video tracks received over a PeerConnection. The stopwatch @@ -185817,7 +191480,7 @@ regressions. --> + expires_after="2020-11-15"> perkj@chromium.org Sizes of messages sent over reliable data channels. The size of an @@ -185833,7 +191496,7 @@ regressions. --> + expires_after="2020-11-15"> perkj@chromium.org Durations of audio tracks sent over a PeerConnection. The stopwatch starts @@ -185922,7 +191585,7 @@ regressions. --> + expires_after="2020-11-15"> perkj@chromium.org Sizes of messages sent over unreliable data channels. The size of an @@ -185957,7 +191620,7 @@ regressions. --> + enum="MediaStreamRequestResult2" expires_after="2020-12-06"> grunell@chromium.org Counters for UserMediaRequests results such as failure reasons. The standard @@ -185966,8 +191629,9 @@ regressions. --> + expires_after="2020-11-01"> asapersson@chromium.org + webrtc-video@google.com The average number of adaptation changes per minute for a sent video stream. Recorded when a stream is removed. @@ -185975,7 +191639,7 @@ regressions. --> + expires_after="2020-12-20"> holmer@chromium.org The average round-trip time of a WebRTC call in milliseconds. Recorded when @@ -185984,7 +191648,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The absolute value of the sync offset between a rendered video frame and the @@ -186025,7 +191689,7 @@ regressions. --> + expires_after="2020-11-22"> asapersson@chromium.org Percentage of sent frames that are limited in resolution due to bandwidth @@ -186034,8 +191698,9 @@ regressions. --> + units="disabled resolutions" expires_after="2020-12-20"> asapersson@chromium.org + webrtc-video@google.com For frames that are limited in resolution due to bandwidth, the average number of disabled resolutions is recorded for a sent video stream. Recorded @@ -186054,7 +191719,7 @@ regressions. --> + expires_after="2020-12-06"> asapersson@chromium.org The number of sent bits per second for a sent video stream. Recorded when a @@ -186065,6 +191730,9 @@ regressions. --> + + Removed 03/28/2019. + asapersson@chromium.org The number of complete frames received per second for a received video @@ -186074,7 +191742,7 @@ regressions. --> + expires_after="2020-12-06"> asapersson@chromium.org Percentage of frames that are limited in resolution due to CPU for a sent @@ -186083,7 +191751,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Average current delay for a received video stream. This is the actual delay @@ -186139,7 +191807,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The average delay of delayed frames to renderer for a received video stream. @@ -186149,6 +191817,9 @@ regressions. --> + + Removed 03/28/2019. + asapersson@chromium.org Percentage of discarded packets by the jitter buffer due to arriving too @@ -186177,7 +191848,7 @@ regressions. --> + expires_after="2020-11-22"> ilnik@chromium.org webrtc-video@google.com @@ -186208,6 +191879,9 @@ regressions. --> + + Removed 03/28/2019. + asapersson@chromium.org Percentage of duplicated packets in the jitter buffer for a received video @@ -186225,8 +191899,9 @@ regressions. --> + expires_after="2020-11-01"> asapersson@chromium.org + webrtc-video@google.com Configured video codec for a sent video stream. Recorded when a VideoSendStream is destroyed (for streams whose lifetime is longer than 10 @@ -186244,7 +191919,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The average end-to-end delay per frame for a received video stream. Recorded @@ -186293,7 +191968,7 @@ regressions. --> + expires_after="2020-11-22"> asapersson@chromium.org The number of sent RTCP FIR packets per minute for a received video stream. @@ -186340,7 +192015,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of incoming frames per second for a sent video stream. Recorded @@ -186350,7 +192025,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The average input height per frame (for incoming frames to video engine) for @@ -186359,7 +192034,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The average input width per frame (for incoming frames to video engine) for @@ -186378,7 +192053,7 @@ regressions. --> + expires_after="2020-11-15"> ilnik@chromium.org webrtc-video@google.com @@ -186398,7 +192073,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Average jitter buffer delay for a received video stream. Recorded when a @@ -186407,7 +192082,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Permille of frames that are key frames for a received video stream. Recorded @@ -186425,7 +192100,7 @@ regressions. --> + expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -186435,7 +192110,7 @@ regressions. --> + expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -186455,7 +192130,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of sent media payload bits per second for a sent video stream. @@ -186475,7 +192150,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of sent RTCP NACK packets per minute for a received video stream. @@ -186513,7 +192188,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org Average delay (network delay (rtt/2) + jitter delay + decode time + render @@ -186532,7 +192207,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The number of sent padding bits per second for a sent video stream. Recorded @@ -186551,7 +192226,7 @@ regressions. --> + units="packets/minute" expires_after="2020-12-20"> asapersson@chromium.org The number of received RTCP PLI packets per minute for a sent video stream. @@ -186644,7 +192319,7 @@ regressions. --> + expires_after="2020-12-06"> asapersson@chromium.org The number of sent frames to the renderer per second for a received video @@ -186654,7 +192329,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of pixels (sqrt(width*height)) of sent frames to the renderer per @@ -186664,7 +192339,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of retransmitted bits per second for a received video stream. @@ -186735,7 +192410,7 @@ regressions. --> + expires_after="2020-12-13"> sprang@chromium.org The number of sent bits per second for a sent screenshare stream. Recorded @@ -186775,7 +192450,7 @@ regressions. --> + units="frames" expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -187069,7 +192744,7 @@ regressions. --> + units="%" expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -187089,7 +192764,7 @@ regressions. --> + units="seconds" expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -187205,7 +192880,7 @@ regressions. --> + expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -187224,7 +192899,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The average send delay of sent packets for a sent video stream. Recorded @@ -187234,7 +192909,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The average delay (of average delays) of sent packets for a sent video @@ -187246,7 +192921,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The average delay (of max delays) of sent packets for a sent video stream. @@ -187267,7 +192942,7 @@ regressions. --> + expires_after="2020-12-13"> asapersson@chromium.org The number of sent frames per second for a sent video stream. Recorded when @@ -187277,7 +192952,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The average sent height per frame for a sent video stream. Recorded when a @@ -187286,7 +192961,7 @@ regressions. --> + expires_after="2020-12-06"> asapersson@chromium.org Percentage of sent packets lost for a sent video stream. Recorded when a @@ -187295,7 +192970,7 @@ regressions. --> + expires_after="M87"> ilnik@chromium.org webrtc-video@google.com @@ -187306,7 +192981,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org The average sent width per frame for a sent video stream. Recorded when a @@ -187315,7 +192990,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Average target delay (jitter delay + decode time + render delay) for a @@ -187324,7 +192999,7 @@ regressions. --> + expires_after="2020-11-15"> ilnik@chromium.org webrtc-video@google.com @@ -187344,7 +193019,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Percentage of unique RTCP NACK requests that are received in response to a @@ -187353,7 +193028,7 @@ regressions. --> + expires_after="2020-12-20"> asapersson@chromium.org Percentage of unique RTCP NACK requests that are sent in response to a @@ -187446,9 +193121,9 @@ regressions. --> - armax@chromium.org + enum="WebRtcLoggingWebAppIdHash" expires_after="2021-06-01"> guidou@chromium.org + webrtc-dev@chromium.org Counts the number of WebRTC text log events per web application. Suffixed by event. @@ -187456,9 +193131,9 @@ regressions. --> - armax@chromium.org + enum="NetErrorCodes" expires_after="2021-06-01"> guidou@chromium.org + webrtc-dev@chromium.org Network error codes for WebRTC text log upload failures. Recorded when an upload attempt fails. @@ -187466,9 +193141,9 @@ regressions. --> - armax@chromium.org + enum="WebRtcLoggingUploadFailureReason" expires_after="2021-06-01"> guidou@chromium.org + webrtc-dev@chromium.org Counts upload failures for WebRTC text log. Error codes for network errors are logged in WebRtcTextLogging.UploadFailureNetErrorCode. Recorded when an @@ -187477,7 +193152,7 @@ regressions. --> + expires_after="2020-11-29"> mgiuca@chromium.org Counts the number of calls to navigator.share. Includes both successful and @@ -187782,13 +193457,13 @@ regressions. --> + expires_after="2020-12-06"> dbeam@chromium.org URLs for which Chrome creates WebUIControllers. + expires_after="2020-11-29"> dschuyler@chromium.org tbuckley@chromium.org bettes@chromium.org @@ -187801,7 +193476,7 @@ regressions. --> + expires_after="2020-11-15"> collinbaker@chromium.org dfried@chromium.org @@ -187812,7 +193487,7 @@ regressions. --> + enum="WebUITabStripCloseTabActions" expires_after="2020-11-15"> johntlee@chromium.org dpapad@chromium.org @@ -187823,7 +193498,7 @@ regressions. --> + expires_after="2020-11-15"> collinbaker@chromium.org dfried@chromium.org @@ -187834,7 +193509,7 @@ regressions. --> + expires_after="2020-11-15"> collinbaker@chromium.org dfried@chromium.org @@ -187950,8 +193625,11 @@ regressions. --> + expires_after="2021-06-30"> tmartino@chromium.org + msarda@chromium.com + droger@chromium.org + chrome-signin-team@google.com Records the result of promoting sign-in via the Welcome page. @@ -188789,8 +194467,9 @@ regressions. --> + expires_after="2021-06-30"> nhiroki@chromium.org + chrome-worker@google.com Records the exit code of WorkerThread. @@ -188815,7 +194494,7 @@ regressions. --> + expires_after="2020-12-06"> ainslie@chromium.org edwardjung@chromium.org Number of times that each menu item is clicked. @@ -188846,7 +194525,7 @@ regressions. --> + expires_after="2020-12-13"> ainslie@chromium.org edwardjung@chromium.org @@ -188922,16 +194601,15 @@ regressions. --> Removed 03/2020 alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org Indicates which VR APIs are installed. Recorded shortly after startup. - + alcooper@chromium.org - cassew@chromium.org + mlamouri@google.com xr-dev@chromium.org Indicates which XR runtime was used for a session. Recorded when the session @@ -188945,7 +194623,6 @@ regressions. --> Removed 02/2020 alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The action that triggered the transition into Chrome in VR, either from 2D @@ -188955,6 +194632,9 @@ regressions. --> + + Removed as of 06/2020. + alcooper@chromium.org mlamouri@chromium.org xr-dev@chromium.org @@ -188966,6 +194646,9 @@ regressions. --> + + Removed as of 06/2020. + alcooper@chromium.org mlamouri@chromium.org xr-dev@chromium.org @@ -188977,6 +194660,9 @@ regressions. --> + + Removed as of 06/2020. + alcooper@chromium.org mlamouri@chromium.org xr-dev@chromium.org @@ -188988,6 +194674,9 @@ regressions. --> + + Removed as of 06/2020. + alcooper@chromium.org mlamouri@chromium.org xr-dev@chromium.org @@ -189003,7 +194692,6 @@ regressions. --> Removed 02/2020 alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org The action that triggered VR presentation, which is the display of web @@ -189012,9 +194700,8 @@ regressions. --> + expires_after="2020-12-13"> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org Records which reference space was requested when a site calls @@ -189025,7 +194712,6 @@ regressions. --> alcooper@chromium.org - cassew@chromium.org xr-dev@chromium.org Records which reference spaces are successfully created when the promise @@ -189566,10 +195252,14 @@ regressions. --> + + + + + + + + + + @@ -190180,6 +195882,12 @@ regressions. --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -190329,6 +196092,10 @@ regressions. --> + + + + @@ -190374,6 +196141,14 @@ regressions. --> + + sujiezhu@google.com + jsaul@google.com + + + + + @@ -190432,6 +196207,19 @@ regressions. --> + + + + + + + + @@ -190484,6 +196272,8 @@ regressions. --> + @@ -190922,6 +196712,21 @@ regressions. --> name="Bluetooth.ChromeOS.UserInitiatedReconnectionAttempt.Result.FailureReason"/> + + + + + + + + + + + @@ -191391,11 +197196,33 @@ regressions. --> - - - - - + + + Removed and renamed to MobileStartup.ToolbarFirstDrawTime2 due to double + reporting bug (see https://crbug.com/857508). + + + + + No longer useful, deprecated in M82. + + + + + No longer useful, deprecated in M82 (see https://crbug.com/1053190). + + + + + Removed and renamed to MobileStartup.ToolbarFirstFocusTime2 due to double + reporting bug (see https://crbug.com/857508). + + + + + No longer useful, deprecated in M82. + + @@ -192256,6 +198083,15 @@ regressions. --> + + + + + + + Removed from code as of 05/2019. @@ -192511,8 +198347,8 @@ regressions. --> - tengs@chromium.org - gzadina@google.com + @@ -193201,6 +199037,15 @@ regressions. --> + + + + + + + @@ -193354,10 +199199,20 @@ regressions. --> + + + + + label="This metric is for non-codec-backed lazy images."/> + @@ -193473,6 +199328,7 @@ regressions. --> Deprecated October 2017 + Deprecated April 2015 @@ -194034,6 +199890,30 @@ regressions. --> name="Net.DNS.DnsTransaction.SecureValidated.FailureTime"/> + + + + + + + + + + + + + @@ -194177,6 +200057,13 @@ regressions. --> + + + + + + + @@ -194357,6 +200244,15 @@ regressions. --> + + + + + + @@ -194575,6 +200471,9 @@ regressions. --> + + + @@ -194587,6 +200486,12 @@ regressions. --> + + + + + + @@ -194642,12 +200547,30 @@ regressions. --> + + + + + + + + + + + - - @@ -195025,6 +200949,7 @@ regressions. --> + @@ -195191,6 +201116,9 @@ regressions. --> + + Removed 2020-06. + @@ -195251,6 +201179,13 @@ regressions. --> + + + + + @@ -195660,10 +201595,18 @@ regressions. --> name="Net.QuicSession.ConnectionCloseErrorCodeServerIetfApplication"/> + + + + @@ -195679,10 +201622,27 @@ regressions. --> name="Net.QuicSession.ConnectionCloseErrorCodeServerIetfApplication"/> + + + + + + + + + + + + + @@ -195809,6 +201769,26 @@ regressions. --> + + + + + + + + + + + + + + + + + + + @@ -196142,6 +202130,9 @@ regressions. --> + + Code removed long ago. + pauljensen@chromium.org @@ -196213,6 +202204,9 @@ regressions. --> Replaced with IPH_ContextualSearchPromoteTap. + @@ -196228,6 +202222,8 @@ regressions. --> label="In product help data saver milestone promo."/> + + This metric is now only recorded after the main message loop starts and no longer distinguishes the first 30 seconds as "startup". Startup.BrowserMessageLoopStartTime can be used for the startup phase - (before the loop is running) and Startup.FirstWebContents.NonEmptyPaint2 can + (before the loop is running) and Startup.FirstWebContents.NonEmptyPaint3 can be used for the user-visible startup performance. name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds"/> + + + + + + + @@ -196738,6 +202743,12 @@ regressions. --> + + + + + + @@ -196905,6 +202916,11 @@ regressions. --> + + Removes as of 6/2020. We now get enough cache hit information from + Renderer4.SoftwareImageDecodeState* and don't need to divide it into tile + bins. + @@ -196962,6 +202978,9 @@ regressions. --> + @@ -197055,7 +203074,7 @@ regressions. --> - + @@ -197103,6 +203122,9 @@ regressions. --> + + Removed 06/2020. No longer needed. + + + Removed 06/2020. No longer needed. + + + + + + + Removed 2020-06. + @@ -200318,6 +206357,9 @@ regressions. --> + name="PageLoad.Experimental.AbortTiming.Stop.BeforeCommit"/> + + @@ -201141,9 +207186,7 @@ regressions. --> label="PageLoadMetrics from a page that is either not controlled by a service worker or is controlled by a service worker without a fetch event handler. This should NOT be compared to - Clients.ServiceWorker2, see https://goo.gl/EdaGQn."> - - + Clients.ServiceWorker2, see https://goo.gl/EdaGQn."/> @@ -201594,6 +207637,8 @@ regressions. --> label="Signed-out user (and no account storage opt-in exists)."/> + + @@ -201854,6 +207899,8 @@ regressions. --> + @@ -201937,6 +207984,21 @@ regressions. --> + + + + + + + + + + + + @@ -202014,6 +208076,7 @@ regressions. --> + @@ -202194,6 +208257,21 @@ regressions. --> + + + + + + + + + + + @@ -202242,6 +208320,14 @@ regressions. --> + + + + + + + + + + tengs@chromium.org + gzadina@google.com + + + + + - + - - - - - - + + + + + + @@ -202793,6 +208887,32 @@ regressions. --> + + + Use *.Custom.ServiceDiscardableManager instead. + + + + + Use *.Custom.ServiceDiscardableManager.AvgImageSize instead. + + + + + Use *.Custom.ServiceTransferCache instead. + + + + + Use *.Custom.ServiceTransferCache.AvgImageSize instead. + + @@ -204122,6 +210242,9 @@ regressions. --> + + Removed June 2020. + @@ -204458,9 +210581,17 @@ regressions. --> cthomp@chromium.org estark@chromium.org - + + + EV_SECURE level was removed in May 2020. + + + label="SecurityLevel is HTTP_SHOW_WARNING (deprecated)."> + + HTTP_SHOW_WARNING level was removed in Sep 2019. + + @@ -204469,6 +210600,10 @@ regressions. --> + + + + @@ -204499,6 +210634,9 @@ regressions. --> + + The affected histogram is obsolete (5/20). + jeffreycohen@chromium.org sebsg@chromium.org tgupta@chromium.org @@ -205915,6 +212053,7 @@ regressions. --> + @@ -206233,6 +212372,7 @@ regressions. --> + + @@ -206281,7 +212422,11 @@ regressions. --> Deprecated 05/2019. - + + + Deprecated 05/2020. + + @@ -206899,6 +213044,7 @@ regressions. --> label="ThreadPool for the browser process."/> + @@ -207105,6 +213251,22 @@ regressions. --> name="TrafficStatsAmortizer.PreAmortizationRunDataUseBytes"/> + + + + + + + + + + + - + @@ -207231,6 +213396,14 @@ regressions. --> + + + + + + @@ -207303,6 +213476,9 @@ regressions. --> + + Removed 06/2020. + + + Removed 06/2020. + @@ -207327,6 +213506,9 @@ regressions. --> + + Removed 06/2020. + and # similar sections, but scripts ignore these anyway. - GetElementsByTagName(trees, 'enums') + + GetEnumsNodes(doc, trees) + GetElementsByTagName(trees, 'histograms') + GetElementsByTagName(trees, 'histogram_suffixes_list'))) return doc -def MergeFiles(filenames): +def MergeFiles(filenames=[], files=[]): """Merges a list of histograms.xml files. Args: filenames: A list of histograms.xml filenames. + files: A list of histograms.xml file-like objects. Returns: A merged DOM tree. """ - trees = [xml.dom.minidom.parse(open(f)) for f in filenames] + all_files = files + [open(f) for f in filenames] + trees = [xml.dom.minidom.parse(f) for f in all_files] return MergeTrees(trees) +def PrettyPrintMergedFiles(filenames=[], files=[]): + return histograms_print_style.GetPrintStyle().PrettyPrintXml( + MergeFiles(filenames=filenames, files=files)) + + def main(): parser = argparse.ArgumentParser() parser.add_argument('inputs', nargs="+") parser.add_argument('--output', required=True) args = parser.parse_args() - MergeFiles(args.inputs).writexml(open(args.output, 'w')) + with open(args.output, 'w') as f: + f.write(PrettyPrintMergedFiles(args.inputs)) if __name__ == '__main__': diff --git a/chromium/tools/metrics/histograms/merge_xml_test.py b/chromium/tools/metrics/histograms/merge_xml_test.py new file mode 100644 index 00000000000..1884d2c8273 --- /dev/null +++ b/chromium/tools/metrics/histograms/merge_xml_test.py @@ -0,0 +1,160 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import unittest + +import histogram_paths +import merge_xml + + +class MergeXmlTest(unittest.TestCase): + + def testMergeFiles(self): + """Checks that enums.xml and histograms.xml can merge successfully.""" + merged = merge_xml.PrettyPrintMergedFiles( + [histogram_paths.TEST_ENUMS_XML, histogram_paths.TEST_HISTOGRAMS_XML]) + # If ukm.xml is not provided, there is no need to populate the + # UkmEventNameHash enum. + expected_merged_xml = """ + + + + + + + + + + + + + + + + + + + + + + + + + Foo + person@chromium.org + Component + + + + uma@chromium.org + + Obsolete message + + A enum histogram. + + + + + Removed 6/2020. + + person@chromium.org + Summary 2 + + + + + + + + + + + + + + +""" + self.maxDiff = None + self.assertEqual(expected_merged_xml.strip(), merged.strip()) + + def testMergeFiles_WithXmlEvents(self): + """Checks that the UkmEventNameHash enum is populated correctly. + + If ukm.xml is provided, populate a list of ints to the UkmEventNameHash enum + where where each value is a xml event name hash truncated to 31 bits and + each label is the corresponding event name. + """ + merged = merge_xml.PrettyPrintMergedFiles(histogram_paths.ALL_TEST_XMLS) + expected_merged_xml = """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Foo + person@chromium.org + Component + + + + uma@chromium.org + + Obsolete message + + A enum histogram. + + + + + Removed 6/2020. + + person@chromium.org + Summary 2 + + + + + + + + + + + + + + +""" + self.maxDiff = None + self.assertEqual(expected_merged_xml.strip(), merged.strip()) + + +if __name__ == '__main__': + unittest.main() diff --git a/chromium/tools/metrics/histograms/populate_enums.py b/chromium/tools/metrics/histograms/populate_enums.py new file mode 100644 index 00000000000..8be71a2e3f9 --- /dev/null +++ b/chromium/tools/metrics/histograms/populate_enums.py @@ -0,0 +1,72 @@ +# Copyright 2017 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Functions for populating enums with ukm events.""" + +from collections import namedtuple +import os +import sys +import xml.dom.minidom + +import extract_histograms + +sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'ukm')) +import codegen + + +EventDetails = namedtuple("EventDetails", "name hash is_obsolete") + + +def _GetEventDetails(event): + """Returns a simple struct containing the event details. + + Args: + event: An event. + + Returns: + A struct containing the event name, name hash, and whether the event is + obsolete. + """ + name = event.getAttribute('name') + # The value is UKM event name hash truncated to 31 bits. This is recorded in + # https://cs.chromium.org/chromium/src/components/ukm/ukm_recorder_impl.cc?rcl=728ad079d8e52ada4e321fb4f53713e4f0588072&l=114 + hash = codegen.HashName(name) & 0x7fffffff + is_obsolete = event.getElementsByTagName('obsolete') + return EventDetails(name=name, hash=hash, is_obsolete=is_obsolete) + + +def PopulateEnumWithUkmEvents(doc, enum, ukm_events): + """Populates the enum node with a list of ukm events. + + Args: + doc: The document to create the node in. + enum: The enum node needed to be populated. + ukm_events: A list of ukm event nodes. + """ + event_details = [_GetEventDetails(event) for event in ukm_events] + event_details.sort(key=lambda event: event.hash) + + for event in event_details: + node = doc.createElement('int') + node.attributes['value'] = str(event.hash) + label = event.name + # If the event is obsolete, mark it in the int's label. + if event.is_obsolete: + label += ' (Obsolete)' + node.attributes['label'] = label + enum.appendChild(node) + + +def PopulateEnumsWithUkmEvents(doc, enums, ukm_events): + """Populates enum nodes in the enums with a list of ukm events + + Args: + doc: The document to create the node in. + enums: The enums node to be iterated. + ukm_events: A list of ukm event nodes. + """ + for enum in extract_histograms.IterElementsWithTag(enums, 'enum', 1): + # We only special case 'UkmEventNameHash' currently. + if enum.getAttribute('name') == 'UkmEventNameHash': + PopulateEnumWithUkmEvents(doc, enum, ukm_events) diff --git a/chromium/tools/metrics/histograms/print_histogram_names.py b/chromium/tools/metrics/histograms/print_histogram_names.py index d4f5d11bd60..c03399ad01b 100755 --- a/chromium/tools/metrics/histograms/print_histogram_names.py +++ b/chromium/tools/metrics/histograms/print_histogram_names.py @@ -7,8 +7,16 @@ from __future__ import print_function +import argparse import os +import subprocess import sys +import tempfile + +try: + from StringIO import StringIO # for Python 2 +except ImportError: + from io import StringIO # for Python 3 sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import path_util @@ -17,15 +25,73 @@ import extract_histograms import histogram_paths import merge_xml -def main(): - doc = merge_xml.MergeFiles(histogram_paths.ALL_XMLS) + +def get_names(xml_files): + doc = merge_xml.MergeFiles(files=xml_files) histograms, had_errors = extract_histograms.ExtractHistogramsFromDom(doc) if had_errors: raise Error("Error parsing inputs.") - names = extract_histograms.ExtractNames(histograms) - for name in names: + return extract_histograms.ExtractNames(histograms) + + +def histogram_xml_files(): + return [open(f) for f in histogram_paths.ALL_XMLS] + + +def get_diff(revision): + """Returns the added / removed histogram names relative to git revision + + Args: + revision: A git revision as described in + https://git-scm.com/docs/gitrevisions + Returns: + A tuple of (added names, removed names), where each entry is sorted in + ascending order. + """ + + def get_file_at_revision(path): + """Returns a file-like object containing |path|'s content at |revision|""" + obj = "%s:%s" % (revision, path) + contents = subprocess.check_output( + ("git", "cat-file", "--textconv", obj)).decode() + + # Just store the contents in memory. histograms.xml is big, but it isn't + # _that_ big. + return StringIO(contents) + + current_histogram_names = set(get_names(histogram_xml_files())) + prev_histogram_names = set( + get_names( + [get_file_at_revision(p) for p in histogram_paths.ALL_XMLS_RELATIVE])) + + added_names = sorted(list(current_histogram_names - prev_histogram_names)) + removed_names = sorted(list(prev_histogram_names - current_histogram_names)) + return (added_names, removed_names) + + +def print_diff_names(revision): + added_names, removed_names = get_diff(revision) + print("%d histograms added:" % len(added_names)) + for name in added_names: print(name) + print("%d histograms removed:" % len(removed_names)) + for name in removed_names: + print(name) + + +def main(argv): + parser = argparse.ArgumentParser(description='Print histogram names.') + parser.add_argument('--diff', + type=str, + help='Git revision to diff against (e.g. HEAD~)') + args = parser.parse_args(argv[1:]) + if args.diff is not None: + print_diff_names(args.diff) + else: + for name in get_names(histogram_xml_files()): + print(name) + if __name__ == '__main__': - main() + main(sys.argv) diff --git a/chromium/tools/metrics/histograms/test_data/enums.xml b/chromium/tools/metrics/histograms/test_data/enums.xml new file mode 100644 index 00000000000..cf4d1b7628b --- /dev/null +++ b/chromium/tools/metrics/histograms/test_data/enums.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/chromium/tools/metrics/histograms/test_data/histograms.xml b/chromium/tools/metrics/histograms/test_data/histograms.xml new file mode 100644 index 00000000000..1830b906b7e --- /dev/null +++ b/chromium/tools/metrics/histograms/test_data/histograms.xml @@ -0,0 +1,44 @@ + + + + + + + + Foo + person@chromium.org + Component + + + + + Removed 6/2020. + + person@chromium.org + + Summary 2 + + + + + uma@chromium.org + + Obsolete message + + + A enum histogram. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/chromium/tools/metrics/histograms/test_data/ukm.xml b/chromium/tools/metrics/histograms/test_data/ukm.xml new file mode 100644 index 00000000000..e5b9dc6e439 --- /dev/null +++ b/chromium/tools/metrics/histograms/test_data/ukm.xml @@ -0,0 +1,44 @@ + + + + csharrison@chromium.org + + + True if the page attempted a tab-under navigation. + + + + + + yaoxia@chromium.org + + Recorded whenever window.open() is called when AdTagging is enabled. + + + + True if the page called window.open() with an ad script in the stack. + + + + + True if the page called window.open() from an ad subframe. + + + + + + + Deprecated 2/2019 + + jiahuiguo@google.com + + + Obsolete. + + Time since form parse. + + + + + + diff --git a/chromium/tools/metrics/ukm/builders_template.py b/chromium/tools/metrics/ukm/builders_template.py index a94edc3f625..5ae0bdd0eec 100644 --- a/chromium/tools/metrics/ukm/builders_template.py +++ b/chromium/tools/metrics/ukm/builders_template.py @@ -48,13 +48,12 @@ metric_template=""" {event.name}& Set{metric.name}(int64_t value); """) -IMPL = codegen.Template( -basename="ukm_builders.cc", -file_template=""" +IMPL = codegen.Template(basename="ukm_builders.cc", + file_template=""" // Generated from gen_builders.py. DO NOT EDIT! // source: ukm.xml -#include "{file.dir_path}/ukm_builders.h" +#include "{file.dir_path}ukm_builders.h" namespace ukm {{ namespace builders {{ @@ -64,8 +63,9 @@ namespace builders {{ }} // namespace builders }} // namespace ukm """, -event_template=""" + event_template=""" const char {event.name}::kEntryName[] = "{event.raw_name}"; +const uint64_t {event.name}::kEntryNameHash; {event.name}::{event.name}(ukm::SourceId source_id) : ::ukm::internal::UkmEntryBuilderBase(source_id, kEntryNameHash) {{ @@ -79,8 +79,9 @@ const char {event.name}::kEntryName[] = "{event.raw_name}"; {metric_code} """, -metric_template=""" + metric_template=""" const char {event.name}::k{metric.name}Name[] = "{metric.raw_name}"; +const uint64_t {event.name}::k{metric.name}NameHash; {event.name}& {event.name}::Set{metric.name}(int64_t value) {{ SetMetricInternal(k{metric.name}NameHash, value); diff --git a/chromium/tools/metrics/ukm/gen_builders_test.py b/chromium/tools/metrics/ukm/gen_builders_test.py index a0c69fa6608..1ca15e52c9a 100755 --- a/chromium/tools/metrics/ukm/gen_builders_test.py +++ b/chromium/tools/metrics/ukm/gen_builders_test.py @@ -71,6 +71,7 @@ class {name} final : public ::ukm::internal::UkmEntryBuilderBase {{ self.assertIn( """ const char {name}::kEntryName[] = "{rawName}"; +const uint64_t {name}::kEntryNameHash; {name}::{name}(ukm::SourceId source_id) : ::ukm::internal::UkmEntryBuilderBase(source_id, kEntryNameHash) {{ @@ -84,6 +85,7 @@ const char {name}::kEntryName[] = "{rawName}"; self.assertIn( """ const char {eventName}::k{metricName}Name[] = "{metricRawName}"; +const uint64_t {eventName}::k{metricName}NameHash; {eventName}& {eventName}::Set{metricName}(int64_t value) {{ SetMetricInternal(k{metricName}NameHash, value); diff --git a/chromium/tools/metrics/ukm/ukm.xml b/chromium/tools/metrics/ukm/ukm.xml index fc0c5c93253..0bb2e8816d1 100644 --- a/chromium/tools/metrics/ukm/ukm.xml +++ b/chromium/tools/metrics/ukm/ukm.xml @@ -80,6 +80,26 @@ be describing additional metrics about the same event. + + dmazzoni@chromium.org + + Tracks the amount of time sending accessibility events from web renderers. + + + + The amount of time spent in + RenderAccessibilityImpl.SendPendingAccessibilityEvents + + + + + + + + + + + johnidel@chromium.org jkarlin@chromium.org @@ -364,6 +384,12 @@ be describing additional metrics about the same event. A contentful paint includes a paint of text, image, SVG, or canvas. + + + Measures the time in milliseconds from navigation timing's navigation + start to the time the first paint is performed, in the AMP subframe. + + Measures the time in milliseconds from navigation timing's navigation @@ -983,6 +1009,33 @@ be describing additional metrics about the same event. + + koerber@google.com + battre@google.com + + Records when a user edits a value that was filled by autofill. + + + + The signature of the field. This is the hash identifier used to denote + this field for query and voting purposes. See + components/autofill/core/common/signatures_util.cc for more details. + + + + + The signature of the form. This is the hash identifier used to denote this + form for query and voting purposes. See + components/autofill/core/common/signatures_util.cc for more details. + + + + + Field's overall |ServerFieldType|. See: autofill::ServerFieldType + + + + rogerm@chromium.org @@ -1790,11 +1843,13 @@ be describing additional metrics about the same event. + + Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit + metrics. + The time spent committing main thread to impl layer tree information, between navigation and First Contentful Paint, in microseconds. - TODO(crbug.com/1058065): Should be obsolete. Removed February 2020 in - favor of separate metrics for the wait time and the actual commit time. @@ -1833,6 +1888,21 @@ be describing additional metrics about the same event. + + dom@chromium.org + chrome-loading@google.com + + Metrics associated with the async script count associated with a document, + recorded when the HTML parsing of a mainframe has completed. + + + + The total number of async scripts associated with a document at the time + parsing has finished. + + + + schenney@chromium.org paint-dev@chromium.org @@ -2488,11 +2558,13 @@ be describing additional metrics about the same event. + + Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit + metrics. + The time taken for the proxy to commit to the impl thread in microseconds - during the sampled frame. TODO(crbug.com/1058065): Should be obsolete. - Removed February 2020 in favor of separate metrics for the wait time and - the actual commit time. + during the sampled frame. @@ -2504,11 +2576,13 @@ be describing additional metrics about the same event. + + Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit + metrics. + The percentage of the main frame time used to commit to the impl thread. - An int in the range [0,100]. TODO(crbug.com/1058065): Should be obsolete. - Removed February 2020 in favor of separate metrics for the wait time and - the actual commit time. + An int in the range [0,100]. @@ -2924,6 +2998,12 @@ be describing additional metrics about the same event. option was displayed. + + + Recorded when the context menu is constructed and logged if the lens + shopping option was displayed. + + @@ -3732,6 +3812,20 @@ be describing additional metrics about the same event. + + yhirano@chromium.org + kinuko@chromium.org + + Whether and how keepalive requests are blocked. Recorded when a keepalive + request finishes. + + + + The final state of the request. + + + + caraitto@chromium.org pauljensen@chromium.org @@ -3885,6 +3979,183 @@ be describing additional metrics about the same event. + + mohsen@chromium.org + sadrul@chromium.org + + Tracks the duration of stages in the rendering pipeline when processing a + single frame in response to an input event. To meet UKM goals for data + volume, a Poisson process with an exponential decay multipler is used to + sample events for recporting. It will sample many reandomly distributed + events early during page load and initial interaction, then samples at an + exponentially decreasing rate to effectively cap the number of samples. All + times are in microseconds. + + + + The duration of the activation stage. + + + + + + + + + + + + + The time from when the Impl frame is started to when BeginMainFrame is + sent. + + + + + + + + + + + + + The time from when the event is created in the browser until the first + compositor stage after the event arrives in the renderer. + + + + + + + + + + + + + The duration of the commit stage. + + + + + + + + + + + + + The time from when an activation is complete to the next + SubmitCompositorFrame. + + + + + + + + + + + + + The time from when a commit is complete to the beginning of the next + activation. + + + + + + + + + + + + + Type of the input event. + + + + + + + + + + + + + Type of the input device for scroll and pinch events. + + + + + + + + + + + + The time from when the BeginMainFrame is sent to the beginning of the + commit. + + + + + + + + + + + + + The time from when a compositor frame is submitted to the display + compositor to when it is presented. + + + + + + + + + + + + + The total time from when the event is created in the browser to when the + frame is presented. + + + + + + + + + + + + + The time from when the event is created in the browser to when the + gpu-swap is completed, for scroll and pinch events. + + + + + + + + + + + + animations-dev@chromium.org sadrul@chromium.org @@ -4673,7 +4944,7 @@ be describing additional metrics about the same event. partition the results. The name suffix (.626) was chosen so that the resulting metric hash as - determined by base::DigestForMetrics() has all 8 LSBs set to 0. Such a + determined by base::HashMetricName() has all 8 LSBs set to 0. Such a metric hash does not collide with any other metric hash generated by blink::IdentifiabilityMetricBuilder(). @@ -4707,6 +4978,24 @@ be describing additional metrics about the same event. + + + Measures Input Event processing time, the duration of event handlers + processing the input event. In ms. + + + + + + + + + + + + + + @@ -4896,6 +5185,34 @@ be describing additional metrics about the same event. + + mcrouse@chromium.org + rajendrant@chromium.org + + Metrics that capture the state and result of the LiteVideo optimization. + This will be recorded once per frame when the associated render process + ends. Only for Lite mode users on Android. + + + + The reason that a navigation was blocklisted and will not have media + requests throttled. + + + + + The result for whether media requests associated with this navigation were + successfully throttled or stopped due to an opt-out event. + + + + + The decision for whether media requests associated with this frame will be + potentially throttled. + + + + sophiechang@chromium.org tbansal@chromium.org @@ -6076,8 +6393,45 @@ be describing additional metrics about the same event. - - takumif@chromium.org + + rwkeane@chromium.org + openscreen-eng@google.com + + Records that the a resource has been loaded from the Media Router Component + Extension. + + + + A boolean signaling that the event has occurred; only records true values. + + + + + + muyaoxu@google.com + openscreen-eng@google.com + + Recorded whenever user starts a site-initiated mirroring session via Media + Router. + + + + Whether audio capture is allowed in the cast session. If allowed, audio + playback will happen on the receiver side. If not allowed, audio playback + will happen on the sender side. + + + + + + + + + + + + + takumif@chromium.org openscreen-eng@google.com Recorded whenever user starts a tab mirroring session via Media Router. @@ -6118,6 +6472,11 @@ be describing additional metrics about the same event. Measure of memory consumed by live allocations made from Oilpan. + + + Measure of memory used due to CanvasResourceProvider's SkSurface. + + Measure of memory consumed by GL command buffer. @@ -6493,11 +6852,27 @@ be describing additional metrics about the same event. Measure of memory consumed by V8. + + + + + + + + Measure of memory consumed by live objects in V8. + + + + + + + + @@ -6963,6 +7338,74 @@ be describing additional metrics about the same event. + + nhiroki@chromium.org + chrome-loading@google.com + + Metrics associated with main frame navigation. + + + nhiroki@chromium.org + chrome-loading@google.com + + The time relative to navigation start that the headers of the 103 Early + Hints response are received in reply to the final HTTP request for the + main resource of a main frame navigation. + + + + nhiroki@chromium.org + chrome-loading@google.com + + The time relative to navigation start that the headers of the 103 Early + Hints response are received in reply to the first HTTP request for the + main resource of a main frame navigation. + + + + + The time relative to navigation start that a callback for the navigation + loader is last invoked for the main resource of a main frame navigation. + + + + + The time relative to navigation start that the final HTTP request is sent + for the main resource of a main frame navigation. + + + + + The time relative to navigation start that the headers of the final HTTP + response are received for the main resource of a main frame navigation. + + + + + The time relative to navigation start that a callback for the navigation + loader is first invoked for the main resource of a main frame navigation. + + + + + The time relative to navigation start that the first HTTP request is sent + for the main resource of a main frame navigation. + + + + + The time relative to navigation start that the headers of the first HTTP + response are received for the main resource of a main frame navigation. + + + + + The time relative to navigation start that navigation commit message for a + main frame navigation is sent to a renderer process. + + + + davidben@chromium.org @@ -7302,7 +7745,9 @@ be describing additional metrics about the same event. - The number of Input Events, recorded each time the page is backgrounded. + The number of Input Events, including click, tap, key press, cancellable + touchstart, or pointer down followed by apointer up. This metric gets + recorded each time the page is backgrounded. @@ -7628,6 +8073,24 @@ be describing additional metrics about the same event. + + + Measures First Input Processing Time, the duration of event handlers + processing the first input event. In ms. + + + + + + + + + + + + + + Deprecated on January 2019 in favor of @@ -7683,6 +8146,13 @@ be describing additional metrics about the same event. detailed explanation. In ms. + + + Measures the time, in milliseconds, from when a user starts scrolling + until the result shows up on screen if the scroll was the first scroll + since navigation. + + Deprecated on January 2019 in favor of @@ -7781,7 +8251,8 @@ be describing additional metrics about the same event. - The number of Input Events. + The number of Input Events, including click, tap, key press, cancellable + touchstart, or pointer down followed by a pointer up. @@ -7999,11 +8470,23 @@ be describing additional metrics about the same event. + + Deprecated May 2020 in favor of Navigation.PageEndReason2. + The |page_load_metrics::PageEndReason| for the main frame navigation of this page load. + + + The |page_load_metrics::PageEndReason| for the main frame navigation of + this page load. Replaced Navigation.PageEndReason at the end of May 2020 + to reduce occurrences of page_load_metrics::PageEndReason::END_NONE by + setting the value to page_load_metrics::PageEndReason::END_HIDDEN when the + metric is recorded due to the page becoming hidden. + + The |ui::PageTransition| for the main frame navigation of this page load. @@ -8018,12 +8501,13 @@ be describing additional metrics about the same event. + + Deprecated 06/2019 in favor of Net.CacheBytes2. + The total number of body bytes loaded from cache for all resources on the page. This is rounded down to the nearest exponential bucket (with a - bucket spacing factor of 1.3). TODO(crbug.com/1058065): Should be - obsolete. Deprecated 06/2019 in favor of Net.CacheBytes2. (seems to be - used in Clang) + bucket spacing factor of 1.3). @@ -8157,6 +8641,37 @@ be describing additional metrics about the same event. loads that failed in the foreground. + + + Measures the time in milliseconds from navigation timing's navigation + start to the time when the page first paints the largest content (text or + image) within viewport, across all frames. Differs from + PaintTiming.NavigationToLargestContentfulPaint in that this experimental + version includes content that has been removed. + + + + + + + + + + + + + + + + + Measures the time in milliseconds from navigation timing's navigation + start to the time when the page first paints the largest content (text or + image) within viewport, in the main frame. Differs from + PaintTiming.NavigationToLargestContentfulPaint.MainFrame in that this + experimental version includes content that has been removed. + + Measures the time in milliseconds from navigation timing's navigation @@ -8269,6 +8784,63 @@ be describing additional metrics about the same event. + + npm@chromium.org + speed-metrics-dev@chromium.org + + Debugging metrics for the PageLoad event that do not require the same amount + of sampling. + + + + Records whether the page's experimental version of largest contentful + paint, whose timestamp is measured by + PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint, comes + from text or image. This value is sampled and not on the PageLoad event, + so it is not always recorded whenever + PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint is + recorded. + + + + + Records the state of the experimental largest contentful paint algorithm + at the time in which the browser attempts to record + PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint. This + state depends on whether there was an experimental largest contentful + paint candidate or not and the foreground state of the page. This value is + sampled and not on the PageLoad event, so it is not always recorded + whenever the browser attempts to record + PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint. + + + + + Records whether the page's largest contentful paint, whose timestamp is + measured by PageLoad.PaintTiming.NavigationToLargestContentfulPaint, comes + from text or image. This value is sampled and not on the PageLoad event, + so it is not always recorded whenever + PageLoad.PaintTiming.NavigationToLargestContentfulPaint is recorded. + + + + + Records the state of the largest contentful paint algorithm at the time in + which the browser attempts to record + PageLoad.PaintTiming.NavigationToLargestContentfulPaint. This state + depends on whether there was a largest contentful paint candidate or not + and the foreground state of the page. This value is sampled and not on the + PageLoad event, so it is not always recorded whenever the browser attempts + to record PageLoad.PaintTiming.NavigationToLargestContentfulPaint. + + + + bmcquade@chromium.org falken@chromium.org @@ -8391,6 +8963,13 @@ be describing additional metrics about the same event. fields renderer ids, bit 2 - changes in autocomplete attributes, bit 3 - changes in form control types. + + + + + + + @@ -8401,6 +8980,13 @@ be describing additional metrics about the same event. This is replicated as PasswordManager.FirstFillingResultInRenderer in UMA. + + + + + + + @@ -8412,6 +8998,13 @@ be describing additional metrics about the same event. This is replicated as PasswordManager.FirstWaitForUsernameReason in UMA. + + + + + + + @@ -8422,21 +9015,41 @@ be describing additional metrics about the same event. password_manager::PasswordFormMetricsRecorder::FillOnLoad. - + Records '1' if the user has generated a password on this form. + + + + + + + - + Records '1' if the user has modified a generated a password on this form. + + + + + + + - + - Records a PasswordFormMetricsRecorder::PasswordGenerationPopupShown entry - if (and only if) a popup was shown. + Records an entry if (and only if) a popup was shown. + + + + + + + @@ -8510,27 +9123,45 @@ be describing additional metrics about the same event. for ReadonlyWhenFilling. - + - Records how the user interacted with a saving prompt. Recorded values - correspond to the enum PasswordFormMetricsRecorder::BubbleDismissalReason. + Records how the user interacted with a saving prompt. + + + + + + + - + Records, for each password form seen by the password manager, whether the user was shown a prompt that asked for permission to save new credentials. In case a store() via the Credential Management API, a virtual password - form is created, for which this metric is recorded. Recorded values are 0 - and 1 for false and true. + form is created, for which this metric is recorded. + + + + + + + - + Records the trigger of each password save bubble that was shown to the - user to ask for permission to save new credentials. Recorded values - correspond to the enum PasswordFormMetricsRecorder::BubbleTrigger. + user to ask for permission to save new credentials. + + + + + + + @@ -8541,33 +9172,58 @@ be describing additional metrics about the same event. update. - + Records the event that led the password manager to believe the submission was successful. Metrics is recorded only when the password is saved. - Recorded values correspond to the enum - autofill::mojom::SubmissionIndicatorEvent. + + + + + + + - + Records whether a submission of a password form has been observered. The values 0 and 1 correspond to false and true respectively. + + + + + + + - + - Records the outcome of a password form submission. The values are numbered - according to PasswordFormMetricsRecorder::SubmitResult. Note that no - metric is recorded for kSubmitResultNotSubmitted. + Records the outcome of a password form submission. + + + + + + + - + - Records the classification of a form at submission time. The values - correspond to PasswordFormMetricsRecorder::SubmittedFormType. Note that no - metric is recorded for kSubmittedFormTypeUnspecified. + Records the classification of a form at submission time. + + This is replicated as PasswordManager.SubmittedFormType in UMA. + + + + + + + @@ -8667,25 +9323,45 @@ be describing additional metrics about the same event. enum SuppressedAccountExistence. - + - Records how the user interacted with an updating prompt. Recorded values - correspond to the enum PasswordFormMetricsRecorder::BubbleDismissalReason. + Records how the user interacted with an updating prompt. + + + + + + + - + Records, for each password form seen by the password manager, whether the user was shown a prompt that asked for permission to update existing - credentials. Recorded values are 0 and 1 for false and true. + credentials. + + + + + + + - + Records the trigger of each password update bubble that was shown to the - user to ask for permission to update existing credentials. Recorded values - correspond to the enum PasswordFormMetricsRecorder::BubbleTrigger. + user to ask for permission to update existing credentials. + + + + + + + @@ -8919,6 +9595,14 @@ be describing additional metrics about the same event. permission prompt, if any. + + + A bitmask consisting of flags defined in enum type AdaptiveTriggers. A bit + is set if the corresponding adaptive triggering condition has been + satisfied at least once in the past for the user. This metric is not + recorded for users who don't have the activation dry run enabled. + + An enum of type PermissionSourceUI. The UI surface for this action. @@ -9005,6 +9689,34 @@ be describing additional metrics about the same event. + + lfg@chromium.org + + A portal was activated. A portal activation enables a seamless transition + between different pages. See the portals explainer for more details: + https://github.com/WICG/portals/blob/master/README.md. + + + + When this page load happened inside a Portal, this metrics records the + time in milliseconds between the portal activation and the first paint + after activation. + + + + + Measures the time between LCP and the portal activation. Uses exponential + bucketing with a spacing of 2, with the units in milliseconds. + + + + + Indicates whether the portal activation happened before or after the + largest contentful paint. + + + + robertogden@chromium.org ryansturm@chromium.org @@ -9479,6 +10191,14 @@ be describing additional metrics about the same event. Whether the user activated Reader Mode via the omnibox badge. + + + + + + + + @@ -9495,6 +10215,14 @@ be describing additional metrics about the same event. Whether the distillability service determined the page to be distillable, i.e. likely to render well in Reader Mode. + + + + + + + + @@ -10596,9 +11324,18 @@ be describing additional metrics about the same event. attempted, and information about the outcome of the attempt. + + Deprecated 06/2020. Replaced with FailureGlobalDisallowlist. + + + Boolean indicating that the tab was explicitly opted out of the + intervention via the global disallowlist. + + + Boolean indicating that the tab was explicitly opted out of the - intervention via the global blacklist. + intervention via the global disallowlist. @@ -10793,10 +11530,19 @@ be describing additional metrics about the same event. success bits are present the outcome is positive. + + + Boolean indicating that the tab was explicitly opted in to the + intervention via the global allowlist. + + + + Deprecated 06/2020. Replaced with SuccessGlobalAllowlist. + Boolean indicating that the tab was explicitly opted in to the - intervention via the global whitelist. + intervention via the global allowlist. diff --git a/chromium/tools/origin_trials/check_token.py b/chromium/tools/origin_trials/check_token.py index 29ad9348c6d..9fdbef28c00 100755 --- a/chromium/tools/origin_trials/check_token.py +++ b/chromium/tools/origin_trials/check_token.py @@ -46,6 +46,9 @@ PAYLOAD_OFFSET = PAYLOAD_LENGTH_OFFSET + PAYLOAD_LENGTH_SIZE VERSION2 = "\x02" VERSION3 = "\x03" +# Only empty string and "subset" are supported in alternative usage restriction. +USAGE_RESTRICTION = ["", "subset"] + # Chrome public key, used by default to validate signatures # - Copied from chrome/common/origin_trials/chrome_origin_trial_policy.cc CHROME_PUBLIC_KEY = [ @@ -212,7 +215,18 @@ def main(): is_subdomain = token_data.get("isSubdomain") is_third_party = token_data.get("isThirdParty") if (is_third_party is not None and version != VERSION3): - print("isThirdParty flag can only be be set in Version 3 token.") + print("The isThirdParty field can only be be set in Version 3 token.") + sys.exit(1) + + usage_restriction = token_data.get("usage") + if (usage_restriction is not None and version != VERSION3): + print("The usage field can only be be set in Version 3 token.") + sys.exit(1) + if (usage_restriction is not None and not is_third_party): + print("Only third party token supports alternative usage restriction.") + sys.exit(1) + if (usage_restriction not in USAGE_RESTRICTION): + print("Only empty string and \"subset\" are supported in the usage field.") sys.exit(1) # Output the token details @@ -222,6 +236,7 @@ def main(): print(" Is Subdomain: %s" % is_subdomain) if (version == VERSION3): print(" Is Third Party: %s" % is_third_party) + print(" Usage Restriction: %s" % usage_restriction) print(" Feature: %s" % trial_name) print(" Expiry: %d (%s UTC)" % (expiry, datetime.utcfromtimestamp(expiry))) print(" Signature: %s" % ", ".join('0x%02x' % ord(x) for x in signature)) diff --git a/chromium/tools/origin_trials/generate_token.py b/chromium/tools/origin_trials/generate_token.py index f229a78521d..a337810f472 100755 --- a/chromium/tools/origin_trials/generate_token.py +++ b/chromium/tools/origin_trials/generate_token.py @@ -10,7 +10,9 @@ usage: generate_token.py [-h] [--key-file KEY_FILE] --expire-timestamp EXPIRE_TIMESTAMP] [--is_subdomain | --no-subdomain] [--is_third-party | --no-third-party] - version origin trial_name + [--usage-restriction USAGE_RESTRICTION] + --version=VERSION + origin trial_name Run "generate_token.py -h" for more help on usage. """ @@ -40,6 +42,10 @@ DNS_LABEL_REGEX = re.compile(r"^(?!-)[a-z\d-]{1,63}(?\n' + if not is_thin and header != b'!\n': + raise Exception('Invalid .a: ' + path) + if not is_thin: + return + + def read_payload(size): + ret = f.read(size) + # Entries are 2-byte aligned. + if size & 1 != 0: + f.read(1) + return ret + + while True: + entry = f.read(60) + if not entry: + return + entry_name = entry[:16].rstrip() + entry_size = int(entry[48:58].rstrip()) + + if entry_name in (b'', b'/', b'//', b'/SYM64/'): + payload = read_payload(entry_size) + # Metadata sections we don't care about. + if entry_name == b'//': + name_list = payload + continue + + if entry_name[0:1] == b'/': + # Name is specified as location in name table. + # E.g.: /123 + name_offset = int(entry_name[1:]) + # String table enties are delimited by \n (e.g. "browser.o/\n"). + end_idx = name_list.index(b'\n', name_offset) + entry_name = name_list[name_offset:end_idx] + else: + # Name specified inline with spaces for padding (e.g. "browser.o/ "). + entry_name = entry_name.rstrip() + + yield entry_name.rstrip(b'/').decode('ascii') + + +def ExpandThinArchives(paths): + """Expands all thin archives found in |paths| into .o paths. + + Args: + paths: List of paths relative to |output_directory|. + output_directory: Output directory. + + Returns: + * A new list of paths with all archives replaced by .o paths. + """ + expanded_paths = [] + for path in paths: + if not path.endswith('.a'): + expanded_paths.append(path) + continue + + with open(path, 'rb') as f: + header = f.read(8) + is_thin = header == b'!\n' + if is_thin: + for subpath in _IterThinPaths(path): + expanded_paths.append(_ResolveThinObjectPath(path, subpath)) + elif header != b'!\n': + raise Exception('Invalid .a: ' + path) + + return expanded_paths diff --git a/chromium/tools/resources/generate_resource_whitelist.py b/chromium/tools/resources/generate_resource_whitelist.py index 754f123827b..ea96e3a340b 100755 --- a/chromium/tools/resources/generate_resource_whitelist.py +++ b/chromium/tools/resources/generate_resource_whitelist.py @@ -21,6 +21,8 @@ import os import subprocess import sys +import ar + llvm_bindir = os.path.join( os.path.dirname(sys.argv[0]), '..', '..', 'third_party', 'llvm-build', 'Release+Asserts', 'bin') @@ -100,17 +102,47 @@ def GetResourceWhitelistPDB(path): return resource_ids +def GetResourceWhitelistFileList(file_list_path): + # Creates a list of resources given the list of linker input files. + # Simply grep's them for WhitelistedResource<...>. + with open(file_list_path) as f: + paths = f.read().splitlines() + + paths = ar.ExpandThinArchives(paths) + + resource_ids = set() + prefix = 'WhitelistedResource<' + for p in paths: + with open(p) as f: + data = f.read() + start_idx = 0 + while start_idx != -1: + start_idx = data.find(prefix, start_idx) + if start_idx != -1: + end_idx = data.find('>', start_idx) + resource_ids.add(int(data[start_idx + len(prefix):end_idx])) + start_idx = end_idx + return resource_ids + + def WriteResourceWhitelist(args): resource_ids = set() for input in args.inputs: with open(input, 'r') as f: magic = f.read(4) + chunk = f.read(60) if magic == '\x7fELF': - resource_ids = resource_ids.union(GetResourceWhitelistELF(input)) + func = GetResourceWhitelistELF elif magic == 'Micr': - resource_ids = resource_ids.union(GetResourceWhitelistPDB(input)) + func = GetResourceWhitelistPDB + elif magic == 'obj/' or '/obj/' in chunk: + # For secondary toolchain, path will look like android_clang_arm/obj/... + func = GetResourceWhitelistFileList else: raise Exception('unknown file format') + + resource_ids.update(func(input)) + if len(resource_ids) == 0: raise Exception('No debug info was dumped. Ensure GN arg "symbol_level" ' '!= 0 and that the file is not stripped.') diff --git a/chromium/tools/run-swarmed.py b/chromium/tools/run-swarmed.py index 4c718207e02..ce0c36e637b 100755 --- a/chromium/tools/run-swarmed.py +++ b/chromium/tools/run-swarmed.py @@ -37,25 +37,6 @@ INTERNAL_ERROR_EXIT_CODE = -1000 DEFAULT_ANDROID_DEVICE_TYPE = "walleye" -def _ReadVpythonPin(): - """Reads the vpython CIPD package name and version from - //third_party/depot_tools. - - Returns them as a (pkgname, version) tuple. - """ - chromium_src_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - manifest_path = os.path.join(chromium_src_dir, 'third_party', 'depot_tools', - 'cipd_manifest.txt') - with open(manifest_path, 'r') as manifest: - for line in manifest.readlines(): - # lines look like: - # name/of/package version - if 'vpython' in line and 'git_revision' in line: - vpython_pkg, vpython_version = line.split() - return vpython_pkg, vpython_version - raise ValueError('unable to read vpython pin from %s' % (manifest_path, )) - - def _Spawn(args): """Triggers a swarming job. The arguments passed are: - The index of the job; @@ -92,6 +73,9 @@ def _Spawn(args): 'kvm=1', '-d', 'gpu=none', + ] + if args.arch != 'detect': + trigger_args += [ '-d', 'cpu=' + args.arch, ] @@ -108,42 +92,28 @@ def _Spawn(args): if args.device_os: trigger_args += ['-d', 'device_os=' + args.device_os] - # The canonical version numbers are stored in the infra repository here: - # build/scripts/slave/recipe_modules/swarming/api.py - # - # HACK(iannucci): These packages SHOULD NOT BE HERE. - # Remove method once Swarming Pool Task Templates are implemented. - # crbug.com/812428 - cpython_version = 'version:2.7.15.chromium14' - cpython_pkg = ( - '.swarming_module:infra/python/cpython/${platform}=' + cpython_version) - - vpython_pkg = '.swarming_module:%s=%s' % _ReadVpythonPin() - vpython_native_pkg = vpython_pkg.replace('vpython', 'vpython-native') - - trigger_args += [ - '--cipd-package', - cpython_pkg, - '--cipd-package', - vpython_native_pkg, - '--cipd-package', - vpython_pkg, - '--', - ] + runner_args = [] if not args.no_test_flags: # These flags are recognized by our test runners, but do not work # when running custom scripts. - trigger_args += [ + runner_args += [ '--test-launcher-summary-output=${ISOLATED_OUTDIR}/output.json', '--system-log-file=${ISOLATED_OUTDIR}/system_log' ] if args.gtest_filter: - trigger_args.append('--gtest_filter=' + args.gtest_filter) + runner_args.append('--gtest_filter=' + args.gtest_filter) + if args.repeat: + runner_args.append('--repeat=' + args.repeat) elif args.target_os == 'fuchsia': filter_file = \ 'testing/buildbot/filters/fuchsia.' + args.target_name + '.filter' if os.path.isfile(filter_file): - trigger_args.append('--test-launcher-filter-file=../../' + filter_file) + runner_args.append('--test-launcher-filter-file=../../' + filter_file) + + if runner_args: + trigger_args.append('--') + trigger_args.extend(runner_args) + with open(os.devnull, 'w') as nul: subprocess.check_call(trigger_args, stdout=nul) return (index, json_file, args) @@ -201,17 +171,16 @@ def main(): '--device-type', help='device_type specifier for Swarming' ' from https://chromium-swarm.appspot.com/botlist .') - # TODO(crbug.com/812428): Switch this back to chromium.tests once - # that pool runs with task templates. - parser.add_argument( - '--pool', - default='chromium.tests.template', - help='Use the given swarming pool.') + parser.add_argument('--pool', + default='chromium.tests', + help='Use the given swarming pool.') parser.add_argument('--results', '-r', default='results', help='Directory in which to store results.') parser.add_argument('--gtest_filter', help='Use the given gtest_filter, rather than the ' 'default filter file, if any.') + parser.add_argument( + '--repeat', help='Number of times to repeat the specified set of tests.') parser.add_argument('--no-test-flags', action='store_true', help='Do not add --test-launcher-summary-output and ' '--system-log-file flags to the comment.') @@ -248,7 +217,7 @@ def main(): args.target_name = os.path.splitext(args.target_name)[0] # Determine the CPU architecture of the test binary, if not specified. - if args.arch == 'detect' and args.target_os == 'fuchsia': + if args.arch == 'detect' and args.target_os not in ('android', 'mac', 'win'): executable_info = subprocess.check_output( ['file', os.path.join(args.out_dir, args.target_name)]) if 'ARM aarch64' in executable_info: diff --git a/chromium/tools/style_variable_generator/base_generator.py b/chromium/tools/style_variable_generator/base_generator.py index 596b222c578..4663c4e23b9 100644 --- a/chromium/tools/style_variable_generator/base_generator.py +++ b/chromium/tools/style_variable_generator/base_generator.py @@ -7,6 +7,7 @@ import sys import collections import re import textwrap +import path_overrides from color import Color _FILE_PATH = os.path.dirname(os.path.realpath(__file__)) @@ -27,21 +28,42 @@ class Modes: ALL = [LIGHT, DARK] +class VariableType: + COLOR = 'color' + OPACITY = 'opacity' + + class ModeVariables: - '''A representation of variables to generate for a single Mode. + '''A dictionary of variable names to their values in each mode. + e.g mode_variables['blue'][Modes.LIGHT] = Color(...) ''' - def __init__(self): - self.colors = collections.OrderedDict() + def __init__(self, default_mode): + self.variables = collections.OrderedDict() + self._default_mode = default_mode - def AddColor(self, name, value_str): - if name in self.colors: - raise ValueError('%s defined more than once' % name) + def Add(self, mode, name, value): + if name not in self.variables: + self.variables[name] = {} + self.variables[name][mode] = value - try: - self.colors[name] = Color(value_str) - except Exception as err: - raise ValueError('Error parsing "%s": %s' % (value_str, err)) + # Returns the value that |name| will have in |mode|. Resolves to the default + # mode's value if the a value for |mode| isn't specified. Always returns a + # value. + def Resolve(self, name, mode): + if mode in self.variables[name]: + return self.variables[name][mode] + + return self.variables[name][self._default_mode] + + def keys(self): + return self.variables.keys() + + def items(self): + return self.variables.items() + + def __getitem__(self, key): + return self.variables[key] class BaseGenerator: @@ -53,29 +75,46 @@ class BaseGenerator: def __init__(self): self.out_file_path = None - self._mode_variables = dict() + self.in_files = [] + self.generate_single_mode = None + # The mode that colors will fallback to when not specified in a # non-default mode. An error will be raised if a color in any mode is # not specified in the default mode. self._default_mode = Modes.LIGHT - for mode in Modes.ALL: - self._mode_variables[mode] = ModeVariables() + # A dictionary of |VariableType| to dictionaries of variable names to + # values. May point to a ModeVariables instance which further adds a + # layer making the structure name -> mode -> value. + self.model = { + VariableType.COLOR: ModeVariables(self._default_mode), + VariableType.OPACITY: ModeVariables(self._default_mode), + } + def AddColor(self, name, value_obj): - if isinstance(value_obj, unicode): - self._mode_variables[self._default_mode].AddColor(name, value_obj) - elif isinstance(value_obj, dict): - for mode in Modes.ALL: - if mode in value_obj: - self._mode_variables[mode].AddColor(name, value_obj[mode]) + try: + if isinstance(value_obj, unicode): + self.model[VariableType.COLOR].Add(self._default_mode, name, + Color(value_obj)) + elif isinstance(value_obj, dict): + for mode in Modes.ALL: + if mode in value_obj: + self.model[VariableType.COLOR].Add( + mode, name, Color(value_obj[mode])) + except ValueError as err: + raise ValueError('Error parsing color "%s": %s' % (value_obj, err)) def AddJSONFileToModel(self, path): + self.in_files.append(path) with open(path, 'r') as f: - # TODO(calamity): Add allow_duplicate_keys=False once pyjson5 is - # rolled. - data = json5.loads( - f.read(), object_pairs_hook=collections.OrderedDict) + self.AddJSONToModel(f.read()) + + def AddJSONToModel(self, json_string): + # TODO(calamity): Add allow_duplicate_keys=False once pyjson5 is + # rolled. + data = json5.loads(json_string, + object_pairs_hook=collections.OrderedDict) try: for name, value in data['colors'].items(): @@ -85,33 +124,38 @@ class BaseGenerator: % name) self.AddColor(name, value) - except Exception as err: + except ValueError as err: raise ValueError('\n%s:\n %s' % (path, err)) def ApplyTemplate(self, style_generator, path_to_template, params): - current_dir = os.path.dirname(os.path.realpath(__file__)) + loader_root_dir = path_overrides.GetFileSystemLoaderRootDirectory() jinja_env = jinja2.Environment( - loader=jinja2.FileSystemLoader(current_dir), + loader=jinja2.FileSystemLoader(loader_root_dir), keep_trailing_newline=True) jinja_env.globals.update(style_generator.GetGlobals()) jinja_env.filters.update(style_generator.GetFilters()) - template = jinja_env.get_template(path_to_template) + template = jinja_env.get_template( + path_overrides.GetPathToTemplate(path_to_template)) return template.render(params) def Validate(self): - def CheckIsInDefaultModel(name): - if name not in self._mode_variables[self._default_mode].colors: - raise ValueError( - "%s not defined in '%s' mode" % (name, self._default_mode)) + colors = self.model[VariableType.COLOR] + + def CheckColorInDefaultMode(name): + if (name not in colors.variables + or self._default_mode not in colors.variables[name]): + raise ValueError("%s not defined in default mode '%s'" % + (name, self._default_mode)) - # Check all colors in all models refer to colors that exist in the + # Check all colors in all modes refer to colors that exist in the # default mode. - for m in self._mode_variables.values(): - for name, value in m.colors.items(): + for name, mode_values in colors.variables.items(): + for mode, value in mode_values.items(): + CheckColorInDefaultMode(name) if value.var: - CheckIsInDefaultModel(value.var) + CheckColorInDefaultMode(value.var) if value.rgb_var: - CheckIsInDefaultModel(value.rgb_var[:-4]) + CheckColorInDefaultMode(value.rgb_var[:-4]) # TODO(calamity): Check for circular references. diff --git a/chromium/tools/style_variable_generator/base_generator_test.py b/chromium/tools/style_variable_generator/base_generator_test.py new file mode 100644 index 00000000000..a7fdd13664c --- /dev/null +++ b/chromium/tools/style_variable_generator/base_generator_test.py @@ -0,0 +1,60 @@ +# Copyright 2019 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from base_generator import BaseGenerator +import unittest + + +class BaseGeneratorTest(unittest.TestCase): + def setUp(self): + self.generator = BaseGenerator() + + def testMissingColor(self): + # google_grey_900 is missing. + self.generator.AddJSONToModel(''' +{ + colors: { + cros_default_text_color: { + light: "$google_grey_900", + dark: "rgb(255, 255, 255)", + }, + }, +} + ''') + self.assertRaises(ValueError, self.generator.Validate) + + # Add google_grey_900. + self.generator.AddJSONToModel(''' +{ + colors: { + google_grey_900: "rgb(255, 255, 255)", + } +} + ''') + self.generator.Validate() + + def testMissingDefaultModeColor(self): + # google_grey_900 is missing in the default mode (light). + self.generator.AddJSONToModel(''' +{ + colors: { + google_grey_900: { dark: "rgb(255, 255, 255)", }, + } +} + ''') + self.assertRaises(ValueError, self.generator.Validate) + + # Add google_grey_900 to light mode. + self.generator.AddJSONToModel(''' +{ + colors: { + google_grey_900: { light: "rgb(255, 255, 255)", } + } +} + ''') + self.generator.Validate() + + +if __name__ == '__main__': + unittest.main() diff --git a/chromium/tools/style_variable_generator/colors_test_dark_only_expected.css b/chromium/tools/style_variable_generator/colors_test_dark_only_expected.css new file mode 100644 index 00000000000..f387b995960 --- /dev/null +++ b/chromium/tools/style_variable_generator/colors_test_dark_only_expected.css @@ -0,0 +1,19 @@ +/* Copyright 2020 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +/* This file is generated from: + * colors_test.json5 + */ + +html:not(body) { + --google-grey-900-rgb: 32, 33, 36; + --google-grey-900: rgb(var(--google-grey-900-rgb)); + + --cros-default-text-color-rgb: 255, 255, 255; + --cros-default-text-color: rgb(var(--cros-default-text-color-rgb)); + + --cros-toggle-color-rgb: var(--cros-default-text-color-rgb); + --cros-toggle-color: rgba(var(--cros-toggle-color-rgb), 0.1); + +} diff --git a/chromium/tools/style_variable_generator/colors_test_expected.css b/chromium/tools/style_variable_generator/colors_test_expected.css index 277b79cce2f..ccbe7b6e275 100644 --- a/chromium/tools/style_variable_generator/colors_test_expected.css +++ b/chromium/tools/style_variable_generator/colors_test_expected.css @@ -1,3 +1,11 @@ +/* Copyright 2020 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +/* This file is generated from: + * colors_test.json5 + */ + html:not(body) { --google-grey-900-rgb: 32, 33, 36; --google-grey-900: rgb(var(--google-grey-900-rgb)); diff --git a/chromium/tools/style_variable_generator/colors_test_expected.h b/chromium/tools/style_variable_generator/colors_test_expected.h index 56b0d852445..7fff1ebfab0 100644 --- a/chromium/tools/style_variable_generator/colors_test_expected.h +++ b/chromium/tools/style_variable_generator/colors_test_expected.h @@ -2,6 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// This file is generated from: +// colors_test.json5 + #ifndef TOOLS_STYLE_VARIABLE_GENERATOR_COLORS_TEST_EXPECTED_H_ #define TOOLS_STYLE_VARIABLE_GENERATOR_COLORS_TEST_EXPECTED_H_ diff --git a/chromium/tools/style_variable_generator/css_generator.py b/chromium/tools/style_variable_generator/css_generator.py index b18f5a21999..22f7209fdb1 100644 --- a/chromium/tools/style_variable_generator/css_generator.py +++ b/chromium/tools/style_variable_generator/css_generator.py @@ -2,7 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -from base_generator import Color, Modes, BaseGenerator +from base_generator import Color, Modes, BaseGenerator, VariableType +import collections class CSSStyleGenerator(BaseGenerator): @@ -14,9 +15,30 @@ class CSSStyleGenerator(BaseGenerator): self.GetParameters()) def GetParameters(self): + def BuildColorsForMode(mode, resolve_missing=False): + '''Builds a name to Color dictionary for |mode|. + If |resolve_missing| is true, colors that aren't specified in |mode| + will be resolved to their default mode value.''' + colors = collections.OrderedDict() + for name, mode_values in self.model[VariableType.COLOR].items(): + if resolve_missing: + colors[name] = self.model[VariableType.COLOR].Resolve( + name, mode) + else: + if mode in mode_values: + colors[name] = mode_values[mode] + return colors + + if self.generate_single_mode: + return { + 'light_colors': + BuildColorsForMode(self.generate_single_mode, + resolve_missing=True) + } + return { - 'light_variables': self._mode_variables[Modes.LIGHT], - 'dark_variables': self._mode_variables[Modes.DARK], + 'light_colors': BuildColorsForMode(Modes.LIGHT), + 'dark_colors': BuildColorsForMode(Modes.DARK), } def GetFilters(self): @@ -29,6 +51,7 @@ class CSSStyleGenerator(BaseGenerator): def GetGlobals(self): return { 'css_color_from_rgb_var': self._CssColorFromRGBVar, + 'in_files': self.in_files, } def _ToVarName(self, var_name): diff --git a/chromium/tools/style_variable_generator/css_generator.tmpl b/chromium/tools/style_variable_generator/css_generator.tmpl index e896834d8c6..b33a22cc77c 100644 --- a/chromium/tools/style_variable_generator/css_generator.tmpl +++ b/chromium/tools/style_variable_generator/css_generator.tmpl @@ -1,3 +1,13 @@ +/* Copyright 2020 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +/* This file is generated from: +{%- for path in in_files %} + * {{path}} +{%- endfor %} + */ + {# The :not(body) adds extra selector specificity so that these colors 'win' against paper-styles/color.html. @@ -5,13 +15,13 @@ TODO(https://crbug.com/1062154): Remove once deprecated colors are removed from Chrome OS pages. -#} html:not(body) { -{%- for var_name, color in light_variables.colors.items() %} +{%- for var_name, color in light_colors.items() %} {{var_name | to_var_name}}-rgb: {{color | css_color_rgb}}; {{var_name | to_var_name}}: {{css_color_from_rgb_var(var_name, color.a)}}; {% endfor %} } +{%- if dark_colors %} -{% if dark_variables.colors -%} @media (prefers-color-scheme: dark) { {#- The :not(body) adds extra selector specificity so that these colors 'win' @@ -20,7 +30,7 @@ TODO(https://crbug.com/1062154): Remove once deprecated colors are removed from Chrome OS pages. #} html:not(body) { -{%- for var_name, color in dark_variables.colors.items() %} +{%- for var_name, color in dark_colors.items() %} {{var_name | to_var_name}}-rgb: {{color | css_color_rgb}}; {{var_name | to_var_name}}: {{css_color_from_rgb_var(var_name, color.a)}}; {% endfor %} diff --git a/chromium/tools/style_variable_generator/css_generator_test.py b/chromium/tools/style_variable_generator/css_generator_test.py index 75d139e5787..50eac224bd7 100644 --- a/chromium/tools/style_variable_generator/css_generator_test.py +++ b/chromium/tools/style_variable_generator/css_generator_test.py @@ -3,6 +3,7 @@ # found in the LICENSE file. from css_generator import CSSStyleGenerator +from base_generator import Modes import unittest @@ -23,6 +24,12 @@ class CSSStyleGeneratorTest(unittest.TestCase): self.assertEqualToFile(self.generator.Render(), 'colors_test_expected.css') + def testColorTestJSONDarkOnly(self): + self.generator.AddJSONFileToModel('colors_test.json5') + self.generator.generate_single_mode = Modes.DARK + self.assertEqualToFile(self.generator.Render(), + 'colors_test_dark_only_expected.css') + if __name__ == '__main__': unittest.main() diff --git a/chromium/tools/style_variable_generator/path_overrides.py b/chromium/tools/style_variable_generator/path_overrides.py new file mode 100644 index 00000000000..4cd408366a7 --- /dev/null +++ b/chromium/tools/style_variable_generator/path_overrides.py @@ -0,0 +1,16 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os + + +# Returns the FileSystemLoader root directory. Overridden in google3. +def GetFileSystemLoaderRootDirectory(): + return os.path.dirname(os.path.realpath(__file__)) + + +# Returns the path to the template relative to FileSystemLoader root. +# Overridden in google3. +def GetPathToTemplate(path_to_template): + return path_to_template diff --git a/chromium/tools/style_variable_generator/style_variable_generator.gni b/chromium/tools/style_variable_generator/style_variable_generator.gni index c1beb86294b..2b443e91c83 100644 --- a/chromium/tools/style_variable_generator/style_variable_generator.gni +++ b/chromium/tools/style_variable_generator/style_variable_generator.gni @@ -60,7 +60,6 @@ template("style_variable_generator") { ] out_file = "$target_gen_dir/${original_target_name}.h" outputs = [ out_file ] - args = [ "--generator=Views", "--out-file", diff --git a/chromium/tools/style_variable_generator/style_variable_generator.py b/chromium/tools/style_variable_generator/style_variable_generator.py index b2b11cde780..e7b20fd8371 100644 --- a/chromium/tools/style_variable_generator/style_variable_generator.py +++ b/chromium/tools/style_variable_generator/style_variable_generator.py @@ -6,6 +6,7 @@ import argparse import sys from css_generator import CSSStyleGenerator from views_generator import ViewsStyleGenerator +from base_generator import Modes def main(): @@ -17,6 +18,9 @@ def main(): choices=['CSS', 'Views'], required=True, help='type of file to generate') + parser.add_argument('--generate-single-mode', + choices=Modes.ALL, + help='generates output for a single mode') parser.add_argument('--out-file', help='file to write output to') parser.add_argument('targets', nargs='+', help='source json5 color files') @@ -31,6 +35,7 @@ def main(): for t in args.targets: style_generator.AddJSONFileToModel(t) + style_generator.generate_single_mode = args.generate_single_mode style_generator.out_file_path = args.out_file if args.out_file: diff --git a/chromium/tools/style_variable_generator/views_generator.py b/chromium/tools/style_variable_generator/views_generator.py index 2fb4b4f0336..9f2587d4336 100644 --- a/chromium/tools/style_variable_generator/views_generator.py +++ b/chromium/tools/style_variable_generator/views_generator.py @@ -3,7 +3,7 @@ # found in the LICENSE file. import os -from base_generator import Color, Modes, BaseGenerator +from base_generator import Color, Modes, BaseGenerator, VariableType class ViewsStyleGenerator(BaseGenerator): @@ -30,6 +30,7 @@ class ViewsStyleGenerator(BaseGenerator): 'Modes': Modes, 'out_file_path': None, 'namespace_name': None, + 'in_files': self.in_files, } if self.out_file_path: globals['out_file_path'] = self.out_file_path @@ -39,14 +40,8 @@ class ViewsStyleGenerator(BaseGenerator): def _CreateColorList(self): color_list = [] - for color_name in ( - self._mode_variables[self._default_mode].colors.keys()): - color_obj = {'name': color_name, 'mode_values': {}} - for m in Modes.ALL: - mode_colors = self._mode_variables[m].colors - if color_name in mode_colors: - color_obj['mode_values'][m] = mode_colors[color_name] - color_list.append(color_obj) + for name, mode_values in self.model[VariableType.COLOR].items(): + color_list.append({'name': name, 'mode_values': mode_values}) return color_list diff --git a/chromium/tools/style_variable_generator/views_generator_h.tmpl b/chromium/tools/style_variable_generator/views_generator_h.tmpl index 33ea309ba4f..e9250f29a6b 100644 --- a/chromium/tools/style_variable_generator/views_generator_h.tmpl +++ b/chromium/tools/style_variable_generator/views_generator_h.tmpl @@ -6,6 +6,11 @@ out_file_path|upper|replace("/","_")|replace(".","_")| replace("-", "_")) %} +// This file is generated from: +{%- for path in in_files %} +// {{path}} +{%- endfor %} + #ifndef {{header_guard}} #define {{header_guard}} diff --git a/chromium/tools/traffic_annotation/auditor/auditor_result.cc b/chromium/tools/traffic_annotation/auditor/auditor_result.cc index 48f65b6269b..3afcc4e7fb7 100644 --- a/chromium/tools/traffic_annotation/auditor/auditor_result.cc +++ b/chromium/tools/traffic_annotation/auditor/auditor_result.cc @@ -6,6 +6,7 @@ #include "tools/traffic_annotation/auditor/auditor_result.h" +#include "base/notreached.h" #include "base/strings/stringprintf.h" const int AuditorResult::kNoCodeLineSpecified = -1; diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_ui.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_ui.cc index 474798abe15..1647b4637e5 100644 --- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_ui.cc +++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_ui.cc @@ -5,6 +5,7 @@ #include #include "base/files/file_util.h" +#include "base/logging.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc index 7db82a161d8..6477538e726 100644 --- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc +++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc @@ -6,6 +6,7 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/path_service.h" #include "base/stl_util.h" diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc index d342dcd48c8..1d826dbe22d 100644 --- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc +++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc @@ -7,6 +7,7 @@ #include #include "base/files/file_util.h" +#include "base/logging.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/stringprintf.h" diff --git a/chromium/tools/traffic_annotation/summary/annotations.xml b/chromium/tools/traffic_annotation/summary/annotations.xml index 5f9cc928116..28d2cb16d13 100644 --- a/chromium/tools/traffic_annotation/summary/annotations.xml +++ b/chromium/tools/traffic_annotation/summary/annotations.xml @@ -52,6 +52,7 @@ Refer to README.md for content description and update process. + @@ -78,6 +79,7 @@ Refer to README.md for content description and update process. + @@ -104,6 +106,8 @@ Refer to README.md for content description and update process. + + @@ -146,8 +150,9 @@ Refer to README.md for content description and update process. + - + @@ -214,6 +219,7 @@ Refer to README.md for content description and update process. + @@ -238,6 +244,7 @@ Refer to README.md for content description and update process. + @@ -267,6 +274,7 @@ Refer to README.md for content description and update process. + diff --git a/chromium/tools/translation/helper/grd_helper.py b/chromium/tools/translation/helper/grd_helper.py index 5740e354eae..96b78f8acb7 100644 --- a/chromium/tools/translation/helper/grd_helper.py +++ b/chromium/tools/translation/helper/grd_helper.py @@ -34,7 +34,9 @@ TAGS_TO_IGNORE = ( def GetGrdMessages(grd_path_or_string, dir_path): - """Load the grd file and return a dict of message ids to messages.""" + """Load the grd file and return a dict of message ids to messages. + + Ignores non-translateable messages.""" doc = grit.grd_reader.Parse( grd_path_or_string, dir_path, @@ -46,6 +48,7 @@ def GetGrdMessages(grd_path_or_string, dir_path): return { msg.attrs['name']: msg for msg in doc.GetChildrenOfType(grit.node.message.MessageNode) + if msg.IsTranslateable() } diff --git a/chromium/tools/translation/helper/grd_helper_unittest.py b/chromium/tools/translation/helper/grd_helper_unittest.py index 1aac24792a7..69be76376ca 100644 --- a/chromium/tools/translation/helper/grd_helper_unittest.py +++ b/chromium/tools/translation/helper/grd_helper_unittest.py @@ -33,7 +33,7 @@ class GrdHelperTest(unittest.TestCase): # listed here. self.assertTrue('IDS_TEST_STRING1' in messages) self.assertTrue('IDS_TEST_STRING2' in messages) - self.assertTrue('IDS_TEST_STRING_NON_TRANSLATEABLE' in messages) + self.assertFalse('IDS_TEST_STRING_NON_TRANSLATEABLE' in messages) def testReadGrdpMessages(self): messages = grd_helper.GetGrdpMessagesFromString( diff --git a/chromium/tools/update_pgo_profiles.py b/chromium/tools/update_pgo_profiles.py index 0f041dbd260..8935bfd656f 100755 --- a/chromium/tools/update_pgo_profiles.py +++ b/chromium/tools/update_pgo_profiles.py @@ -105,8 +105,20 @@ def _get_profile_path(args): if not os.path.isfile(profile_path): raise RuntimeError( 'requested profile "%s" doesn\'t exist, please make sure ' - '"checkout_pgo_profiles" is set to true in the "custom_vars" section ' - 'of your .gclient file and then run "gclient runhooks" to download it' % + '"checkout_pgo_profiles" is set to True in the "custom_vars" section ' + 'of your .gclient file, e.g.: \n' + 'solutions = [ \n' + ' { \n' + ' "name": "src", \n' + ' # ... \n' + ' "custom_vars": { \n' + ' "checkout_pgo_profiles": True, \n' + ' }, \n' + ' }, \n' + '], \n' + 'and then run "gclient runhooks" to download it. You can also simply ' + 'disable the PGO optimizations by setting |chrome_pgo_phase = 0| in ' + 'your GN arguments.'% profile_path) os.utime(profile_path, None) diff --git a/chromium/tools/variations/fieldtrial_to_struct.py b/chromium/tools/variations/fieldtrial_to_struct.py index 65f9c9ba08a..35bdad1eedb 100755 --- a/chromium/tools/variations/fieldtrial_to_struct.py +++ b/chromium/tools/variations/fieldtrial_to_struct.py @@ -108,6 +108,9 @@ def _CreateExperiment(experiment_data, forcing_flags_data = experiment_data.get('forcing_flag') if forcing_flags_data: experiment['forcing_flag'] = forcing_flags_data + min_os_version_data = experiment_data.get('min_os_version') + if min_os_version_data: + experiment['min_os_version'] = min_os_version_data params_data = experiment_data.get('params') if (params_data): experiment['params'] = [{'key': param, 'value': params_data[param]} diff --git a/chromium/tools/variations/unittest_data/expected_output.cc b/chromium/tools/variations/unittest_data/expected_output.cc index 1bc17655356..cfb8b37dea7 100644 --- a/chromium/tools/variations/unittest_data/expected_output.cc +++ b/chromium/tools/variations/unittest_data/expected_output.cc @@ -30,6 +30,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_5[] = { 0, base::nullopt, NULL, + NULL, 0, NULL, 0, @@ -62,6 +63,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_4[] = { 2, base::nullopt, NULL, + NULL, 0, NULL, 0, @@ -79,6 +81,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_4[] = { 1, base::nullopt, NULL, + NULL, 0, NULL, 0, @@ -103,6 +106,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_3[] = { 0, base::nullopt, NULL, + NULL, 0, NULL, 0, @@ -132,6 +136,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_2[] = { 0, true, NULL, + NULL, 0, NULL, 0, @@ -149,6 +154,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_2[] = { 0, false, NULL, + NULL, 0, NULL, 0, @@ -176,6 +182,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_1[] = { 0, base::nullopt, NULL, + NULL, 0, array_kFieldTrialConfig_enable_features_1, 1, @@ -238,6 +245,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_0[] = { array_kFieldTrialConfig_form_factors_0, 0, base::nullopt, + NULL, array_kFieldTrialConfig_params, 2, array_kFieldTrialConfig_enable_features, @@ -255,6 +263,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments_0[] = { array_kFieldTrialConfig_form_factors_1, 0, base::nullopt, + NULL, array_kFieldTrialConfig_params_0, 2, array_kFieldTrialConfig_enable_features_0, @@ -280,6 +289,7 @@ const FieldTrialTestingExperiment array_kFieldTrialConfig_experiments[] = { 0, base::nullopt, NULL, + NULL, 0, NULL, 0, diff --git a/chromium/tools/variations/unittest_data/expected_output.h b/chromium/tools/variations/unittest_data/expected_output.h index 7612fb3c87c..4adf6b3f531 100644 --- a/chromium/tools/variations/unittest_data/expected_output.h +++ b/chromium/tools/variations/unittest_data/expected_output.h @@ -32,6 +32,7 @@ struct FieldTrialTestingExperiment { const Study::FormFactor * form_factors; const size_t form_factors_size; const base::Optional is_low_end_device; + const char* const min_os_version; const FieldTrialTestingExperimentParams * params; const size_t params_size; const char* const * enable_features; diff --git a/chromium/tools/vscode/launch.json5 b/chromium/tools/vscode/launch.json5 index 7c749f1fdee..c3a3d83daf0 100644 --- a/chromium/tools/vscode/launch.json5 +++ b/chromium/tools/vscode/launch.json5 @@ -3,7 +3,7 @@ "configurations": [ { "name": "Chrome Debug", - "type": "cppdbg", + "type": "cppdbg", // "cppdbg" for GDB/LLDB, "cppvsdbg" for Windows Visual Studio debugger "request": "launch", "targetArchitecture": "x64", "program": "${workspaceRoot}/out/Debug/chrome", @@ -30,7 +30,7 @@ }, { "name": "Chrome Release", - "type": "cppdbg", + "type": "cppdbg", // "cppdbg" for GDB/LLDB, "cppvsdbg" for Windows Visual Studio debugger "request": "launch", "targetArchitecture": "x64", "program": "${workspaceRoot}/out/Release/chrome", @@ -43,7 +43,7 @@ }, { "name": "Custom Test Debug", - "type": "cppdbg", + "type": "cppdbg", // "cppdbg" for GDB/LLDB, "cppvsdbg" for Windows Visual Studio debugger "request": "launch", "targetArchitecture": "x64", "program": "${workspaceRoot}/out/Debug/unit_tests", @@ -61,7 +61,7 @@ }, { "name": "Attach Debug", - "type": "cppdbg", + "type": "cppdbg", // "cppdbg" for GDB/LLDB, "cppvsdbg" for Windows Visual Studio debugger "request": "launch", "targetArchitecture": "x64", "program": "${workspaceRoot}/out/Debug/chrome", @@ -76,7 +76,7 @@ { // Must be running before launching: out/Debug/bin/chrome_public_apk gdb --ide "name": "Attach Android", - "type": "cppdbg", + "type": "cppdbg", // "cppdbg" for GDB/LLDB, "cppvsdbg" for Windows Visual Studio debugger "request": "launch", "targetArchitecture": "arm", "program": "/tmp/adb-gdb-support-${env:USER}/app_process", diff --git a/chromium/tools/vscode/tasks.json5 b/chromium/tools/vscode/tasks.json5 index 8e736cad833..d46895bf450 100644 --- a/chromium/tools/vscode/tasks.json5 +++ b/chromium/tools/vscode/tasks.json5 @@ -5,7 +5,7 @@ { "label": "1-build_chrome_debug", "type": "shell", - "command": "ninja -C out/Debug -j 2000 chrome", + "command": "autoninja -C out/Debug chrome", "group": "test", "presentation": { "echo": true, @@ -91,7 +91,7 @@ { "label": "3-build_all_debug", "type": "shell", - "command": "ninja -C out/Debug -j 2000", + "command": "autoninja -C out/Debug", "presentation": { "echo": true, "reveal": "always" @@ -175,7 +175,7 @@ { "label": "5-build_test_debug", "type": "shell", - "command": "ninja -C out/Debug -j 2000 unit_tests components_unittests browser_tests", + "command": "autoninja -C out/Debug unit_tests components_unittests browser_tests", "presentation": { "echo": true, "reveal": "always" diff --git a/chromium/tools/win/IdleWakeups/IdleWakeups.vcxproj b/chromium/tools/win/IdleWakeups/IdleWakeups.vcxproj index 4bec5df9573..3df7833b9e9 100644 --- a/chromium/tools/win/IdleWakeups/IdleWakeups.vcxproj +++ b/chromium/tools/win/IdleWakeups/IdleWakeups.vcxproj @@ -22,32 +22,32 @@ {CE6B94A5-2753-4DF1-9C4E-5A210D355CA2} Win32Proj IdleWakeups - 10.0.17763.0 + 10.0 Application true - v141 + v142 Unicode Application false - v141 + v142 true Unicode Application true - v141 + v142 Unicode Application false - v141 + v142 true Unicode diff --git a/chromium/tools/win/chromeexts/chrome_exts_command.cc b/chromium/tools/win/chromeexts/chrome_exts_command.cc index 4c016002201..047cc1719b8 100644 --- a/chromium/tools/win/chromeexts/chrome_exts_command.cc +++ b/chromium/tools/win/chromeexts/chrome_exts_command.cc @@ -4,7 +4,7 @@ #include "tools/win/chromeexts/chrome_exts_command.h" -#include "base/logging.h" +#include "base/check.h" namespace tools { namespace win { diff --git a/chromium/tools/win/trace-sandbox-viewer.py b/chromium/tools/win/trace-sandbox-viewer.py new file mode 100644 index 00000000000..eb1420a332f --- /dev/null +++ b/chromium/tools/win/trace-sandbox-viewer.py @@ -0,0 +1,212 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Use Chromium tracing to associate mojo endpoints with sandboxes. + +This script provides a rich view of where mojo interfaces are hosted +and consumed when Chromium is build with mojo tracing enabled, and +provides a coarser view for default builds or packages such as Chrome +Canary. + +## With Mojo Tracing Enabled + +1. Enable detailed mojo tracing: + +gn args ./out/Default +... +enable_mojo_tracing = true +... +autoninja -C ./out/Default chrome + +2. Collect a trace: + +chrome.exe --trace-startup=-*,disabled-by-default-sandbox,startup,mojom ^ + --trace-startup-file=c:/src/temp/tracing/foo.log ^ + --trace-startup-duration=0 + +Or visit chrome://tracing and enable categories above, save file. + +3. Run this script: + +trace-sandbox-viewer.py file.log + +trace-sandbox-viewer.py file.json.gz + +### Output + +{ + "None(Browser)": [ + "(Impl)IPC::mojom::Channel::GetAssociatedInterface", + "(Impl)IPC::mojom::Channel::Receive", + "(Impl)IPC::mojom::Channel::SetPeerPid", + "(Impl)apps::mojom::AppService::RegisterPublisher", + "(Impl)apps::mojom::AppService::RegisterSubscriber", + "(Impl)apps::mojom::Publisher::Connect", + ... + "data_decoder::mojom::DataDecoderService::BindJsonParser", + "data_decoder::mojom::JsonParser::Parse", + "data_decoder::mojom::JsonParser::ParseCallback", + ... + ], + "Network": [ + ... + ], + "Renderer": [ + "(Impl)IPC::mojom::Channel::GetAssociatedInterface", + "(Impl)IPC::mojom::Channel::Receive", + "(Impl)IPC::mojom::Channel::SetPeerPid", + "(Impl)autofill::mojom::AutofillAgent::FieldTypePredictionsAvailable", + "(Impl)autofill::mojom::PasswordAutofillAgent::SetLoggingState", + "(Impl)blink::mojom::AppCacheFrontend::CacheSelected", + ... + ], + "Utility": [ + "(Impl)IPC::mojom::Channel::SetPeerPid", + "(Impl)content::mojom::ChildHistogramFetcherFactory::CreateFetcher", + "(Impl)content::mojom::ChildProcess::BindReceiver", + "(Impl)content::mojom::ChildProcess::BindServiceInterface", + "(Impl)content::mojom::ChildProcess::BootstrapLegacyIpc", + "(Impl)content::mojom::ChildProcess::GetBackgroundTracingAgentProvider", + "(Impl)content::mojom::ChildProcess::Initialize", + "(Impl)data_decoder::mojom::DataDecoderService::BindImageDecoder", + "(Impl)data_decoder::mojom::DataDecoderService::BindJsonParser", + "(Impl)data_decoder::mojom::ImageDecoder::DecodeImage", + "(Impl)data_decoder::mojom::ImageDecoder::DecodeImageCallback", + "(Impl)data_decoder::mojom::JsonParser::Parse", + "(Impl)data_decoder::mojom::JsonParser::ParseCallback", + ... + ], +} +``` + +## Default Builds + +This script is also useful for default builds of Chromium but will +show interfaces in both hosting and consuming processes (as mojom +tracing is limited). Run using the same arguments as above. + +### Output. + +Note interfaces appear in both host and client contexts: + +``` +{ + "None(Browser)": [ + "IPC Channel", + "apps.mojom.AppService", + "apps.mojom.Publisher", + ... + "data_decoder.mojom.DataDecoderService", + "data_decoder.mojom.JsonParser", + ... + ], + "Utility": [ + "IPC Channel", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.ChildProcess", + "data_decoder.mojom.DataDecoderService", + "data_decoder.mojom.JsonParser", + ... + ], + ... + "Renderer": [ + "IPC Channel", + "blink.mojom.AppCacheFrontend", + ... + "network.mojom.URLLoaderClient", + "safe_browsing.mojom.PhishingModelSetter", + "safe_browsing.mojom.SafeBrowsing", + ... + ], + ... +} +``` + +""" + +import argparse +import gzip +import json +import sys + + +def guess_open_file(filename): + if filename.endswith('.gz'): + return gzip.open(filename, mode='rb') + else: + return open(filename, 'rb') + + +def read_json_events(files, categories): + events = [] + for filename in files: + with guess_open_file(filename) as fp: + objs = json.load(fp) + for event in objs['traceEvents']: + if event['cat'] in categories: + events.append(event) + return events + + +def assign_interfaces_to_sandboxes(events): + # Returns SandboxType:set(Interfaces). + intmap = {} + # Running map of PID:SandboxType + pidmap = {} + # running map of PID:ProcName + procmap = {} + # Assumes events are sorted by timestamp. + for event in events: + # Don't yet know how to remove processes when they finish + # (i.e. which event to match). + if event['cat'] == 'mojom': + pid = event['pid'] + interface = event['name'] + # If there is a sandbox, use that. + if pid in pidmap: + sbox = pidmap[pid] + if not sbox in intmap: + intmap[sbox] = set() + intmap[sbox].add(interface) + # Otherwise if we saw a process, use that. + elif pid in procmap: + sbox = "None(" + procmap[pid] + ")" + if not sbox in intmap: + intmap[sbox] = set() + intmap[sbox].add(interface) + elif event['cat'] == '__metadata' and event['name'] == 'process_name': + pid = event['pid'] + proc = event['args']['name'] + procmap[pid] = proc + elif event['cat'] == 'disabled-by-default-sandbox': + pid = int(event['args']['policy']['processIds'][0]) + sbox = event['args']['sandboxType'] + pidmap[pid] = sbox + return intmap + + +def output_as_json(interfaces): + dumpable = {} + for host in interfaces: + dumpable[host] = sorted(interfaces[host]) + return json.dumps(dumpable, indent=2) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('files', nargs='*', help='file file...') + args = parser.parse_args() + if len(args.files) < 1: + print("Need at least one file") + return 1 + + events = read_json_events( + args.files, + categories=['mojom', 'disabled-by-default-sandbox', '__metadata']) + interfaces = assign_interfaces_to_sandboxes(events) + + print(output_as_json(interfaces)) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/chromium/tools/xdisplaycheck/xdisplaycheck.cc b/chromium/tools/xdisplaycheck/xdisplaycheck.cc index 6623153a846..2e901ee9fe4 100644 --- a/chromium/tools/xdisplaycheck/xdisplaycheck.cc +++ b/chromium/tools/xdisplaycheck/xdisplaycheck.cc @@ -36,7 +36,7 @@ void Sleep(int duration_ms) { class XScopedDisplay { public: - XScopedDisplay() : display_(NULL) {} + XScopedDisplay() : display_(nullptr) {} ~XScopedDisplay() { if (display_) XCloseDisplay(display_); } -- cgit v1.2.1