summaryrefslogtreecommitdiff
path: root/chromium/tools
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/tools')
-rw-r--r--chromium/tools/OWNERS1
-rw-r--r--chromium/tools/accessibility/inspect/ax_dump_tree.cc2
-rw-r--r--chromium/tools/accessibility/inspect/ax_tree_server.cc21
-rw-r--r--chromium/tools/android/audio_focus_grabber/BUILD.gn1
-rw-r--r--chromium/tools/android/customtabs_benchmark/BUILD.gn3
-rw-r--r--chromium/tools/android/errorprone_plugin/BUILD.gn31
-rw-r--r--chromium/tools/android/push_apps_to_background/BUILD.gn2
-rw-r--r--chromium/tools/binary_size/BUILD.gn2
-rw-r--r--chromium/tools/binary_size/PRESUBMIT.py4
-rw-r--r--chromium/tools/binary_size/README.md6
-rwxr-xr-xchromium/tools/binary_size/diagnose_bloat.py16
-rwxr-xr-xchromium/tools/binary_size/generate_milestone_reports.py24
-rwxr-xr-xchromium/tools/binary_size/generate_official_build_report.py2
-rw-r--r--chromium/tools/binary_size/libsupersize/archive.py158
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/BUILD.gn4
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc19
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/file_format.cc145
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens.cc9
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens.h5
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens_test.cc11
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/model.cc31
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/model.h28
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc19
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder.h2
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc3
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch162
-rw-r--r--chromium/tools/binary_size/libsupersize/diff.py30
-rw-r--r--chromium/tools/binary_size/libsupersize/file_format.py58
-rw-r--r--chromium/tools/binary_size/libsupersize/path_util.py7
-rw-r--r--chromium/tools/binary_size/libsupersize/static/index.js3
-rw-r--r--chromium/tools/binary_size/libsupersize/static/infocard-ui.js76
-rw-r--r--chromium/tools/binary_size/libsupersize/static/infocard.css10
-rw-r--r--chromium/tools/binary_size/libsupersize/static/main.css2
-rw-r--r--chromium/tools/binary_size/libsupersize/static/shared.js17
-rw-r--r--chromium/tools/binary_size/libsupersize/static/state.js12
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-ui.js14
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js49
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-worker.js39
-rw-r--r--chromium/tools/binary_size/libsupersize/static/viewer.html53
-rwxr-xr-xchromium/tools/binary_size/milestone_apk_sizes.py8
-rwxr-xr-xchromium/tools/bisect-builds.py17
-rw-r--r--chromium/tools/cfi/blacklist_android.txt4
-rw-r--r--chromium/tools/cfi/ignores.txt (renamed from chromium/tools/cfi/blacklist.txt)9
-rwxr-xr-xchromium/tools/checkbins/checkbins.py41
-rwxr-xr-xchromium/tools/clang/blink_gc_plugin/process-graph.py6
-rw-r--r--chromium/tools/clang/empty_string/EmptyStringConverter.cpp8
-rwxr-xr-xchromium/tools/clang/pylib/clang/compile_db.py13
-rw-r--r--chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp153
-rw-r--r--chromium/tools/clang/rewrite_raw_ptr_fields/manual-fields-to-ignore.txt6
-rw-r--r--chromium/tools/clang/rewrite_raw_ptr_fields/manual-paths-to-ignore.txt118
-rwxr-xr-xchromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh11
-rwxr-xr-xchromium/tools/clang/scripts/build.py120
-rwxr-xr-xchromium/tools/clang/scripts/goma_ld.py13
-rwxr-xr-xchromium/tools/clang/scripts/goma_link.py164
-rwxr-xr-xchromium/tools/clang/scripts/goma_link_integration_tests.py159
-rwxr-xr-xchromium/tools/clang/scripts/package.py16
-rwxr-xr-xchromium/tools/clang/scripts/test_tool.py28
-rwxr-xr-xchromium/tools/clang/scripts/update.py11
-rwxr-xr-xchromium/tools/clang/scripts/upload_revision.py51
-rw-r--r--chromium/tools/code_coverage/test_suite.txt1
-rw-r--r--chromium/tools/determinism/OWNERS1
-rwxr-xr-xchromium/tools/determinism/compare_build_artifacts.py14
-rw-r--r--chromium/tools/determinism/deterministic_build_ignorelist.pyl (renamed from chromium/tools/determinism/deterministic_build_whitelist.pyl)4
-rw-r--r--chromium/tools/directory_metadata/README.md52
-rw-r--r--chromium/tools/directory_metadata/directory_metadata.proto42
-rw-r--r--chromium/tools/directory_metadata/directory_metadata_pb2.py188
-rwxr-xr-xchromium/tools/flags/generate_unexpire_flags.py3
-rw-r--r--chromium/tools/gdb/OWNERS1
-rw-r--r--chromium/tools/gdb/gdb_chrome.py11
-rwxr-xr-xchromium/tools/generate_stubs/generate_stubs.py4
-rwxr-xr-xchromium/tools/git/move_source_file.py64
-rw-r--r--chromium/tools/grit/grit/node/base.py12
-rw-r--r--chromium/tools/grit/grit/node/message.py31
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/parser.py4
-rw-r--r--chromium/tools/grit/grit_rule.gni14
-rw-r--r--chromium/tools/gritsettings/resource_ids.spec27
-rw-r--r--chromium/tools/gritsettings/translation_expectations.pyl1
-rw-r--r--chromium/tools/infra/PRESUBMIT.py11
-rw-r--r--chromium/tools/ipc_fuzzer/BUILD.gn1
-rw-r--r--chromium/tools/ipc_fuzzer/fuzzer/BUILD.gn1
-rw-r--r--chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn10
-rw-r--r--chromium/tools/ipc_fuzzer/get_accessible_interfaces/get_accessible_interfaces.cc71
-rw-r--r--chromium/tools/ipc_fuzzer/ipc_fuzzer.gni2
-rw-r--r--chromium/tools/json_schema_compiler/BUILD.gn2
-rw-r--r--chromium/tools/json_schema_compiler/cc_generator.py216
-rw-r--r--chromium/tools/json_schema_compiler/cpp_bundle_generator.py52
-rwxr-xr-xchromium/tools/json_schema_compiler/cpp_bundle_generator_test.py8
-rw-r--r--chromium/tools/json_schema_compiler/cpp_type_generator.py2
-rw-r--r--chromium/tools/json_schema_compiler/cpp_util.py20
-rw-r--r--chromium/tools/json_schema_compiler/feature_compiler.py79
-rwxr-xr-xchromium/tools/json_schema_compiler/feature_compiler_test.py58
-rw-r--r--chromium/tools/json_schema_compiler/h_generator.py95
-rwxr-xr-xchromium/tools/json_schema_compiler/idl_schema.py35
-rwxr-xr-xchromium/tools/json_schema_compiler/idl_schema_test.py16
-rwxr-xr-xchromium/tools/json_schema_compiler/js_externs_generator_test.py8
-rw-r--r--chromium/tools/json_schema_compiler/js_util.py7
-rw-r--r--chromium/tools/json_schema_compiler/manifest_parse_util.cc139
-rw-r--r--chromium/tools/json_schema_compiler/manifest_parse_util.h135
-rw-r--r--chromium/tools/json_schema_compiler/model.py95
-rw-r--r--chromium/tools/json_schema_compiler/test/BUILD.gn1
-rw-r--r--chromium/tools/json_schema_compiler/util.h10
-rwxr-xr-xchromium/tools/licenses.py8
-rwxr-xr-xchromium/tools/mac/show_mod_init_func.py34
-rwxr-xr-xchromium/tools/mb/mb.py108
-rw-r--r--chromium/tools/mb/mb_config.pyl384
-rwxr-xr-xchromium/tools/mb/mb_unittest.py12
-rw-r--r--chromium/tools/md_browser/OWNERS1
-rw-r--r--chromium/tools/metrics/BUILD.gn26
-rw-r--r--chromium/tools/metrics/actions/actions.xml692
-rw-r--r--chromium/tools/metrics/actions/actions_model.py108
-rw-r--r--chromium/tools/metrics/actions/actions_model_test.py309
-rw-r--r--chromium/tools/metrics/actions/actions_print_style.py77
-rwxr-xr-xchromium/tools/metrics/actions/extract_actions.py9
-rw-r--r--chromium/tools/metrics/common/models.py130
-rw-r--r--chromium/tools/metrics/common/pretty_print_xml.py8
-rw-r--r--chromium/tools/metrics/histograms/OWNERS9
-rw-r--r--chromium/tools/metrics/histograms/README.md4
-rw-r--r--chromium/tools/metrics/histograms/enums.xml1912
-rw-r--r--chromium/tools/metrics/histograms/expand_owners.py53
-rw-r--r--chromium/tools/metrics/histograms/expand_owners_unittest.py104
-rw-r--r--chromium/tools/metrics/histograms/extract_histograms.py309
-rw-r--r--chromium/tools/metrics/histograms/extract_histograms_test.py288
-rw-r--r--chromium/tools/metrics/histograms/histogram_configuration_model.py267
-rw-r--r--chromium/tools/metrics/histograms/histogram_configuration_model_test_enums.py309
-rw-r--r--chromium/tools/metrics/histograms/histogram_configuration_model_test_histograms.py633
-rwxr-xr-xchromium/tools/metrics/histograms/histogram_ownership.py45
-rw-r--r--chromium/tools/metrics/histograms/histogram_paths.py41
-rw-r--r--chromium/tools/metrics/histograms/histograms.xml13635
-rw-r--r--chromium/tools/metrics/histograms/histograms_print_style.py103
-rw-r--r--chromium/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml244
-rw-r--r--chromium/tools/metrics/histograms/histograms_xml/UMA/histograms.xml608
-rw-r--r--chromium/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml100
-rw-r--r--chromium/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml896
-rwxr-xr-xchromium/tools/metrics/histograms/merge_xml.py84
-rw-r--r--chromium/tools/metrics/histograms/merge_xml_test.py84
-rw-r--r--chromium/tools/metrics/histograms/populate_enums.py26
-rwxr-xr-xchromium/tools/metrics/histograms/pretty_print.py13
-rwxr-xr-xchromium/tools/metrics/histograms/pretty_print_test.py9
-rw-r--r--chromium/tools/metrics/histograms/split_xml.py300
-rw-r--r--chromium/tools/metrics/histograms/test_data/enums.xml9
-rw-r--r--chromium/tools/metrics/histograms/test_data/histograms.xml22
-rw-r--r--chromium/tools/metrics/histograms/test_data/ukm.xml62
-rw-r--r--chromium/tools/metrics/histograms/update_bad_message_reasons.py1
-rw-r--r--chromium/tools/metrics/histograms/update_editor_commands.py5
-rw-r--r--chromium/tools/metrics/histograms/update_histogram_enum.py5
-rw-r--r--chromium/tools/metrics/histograms/update_policies.py5
-rwxr-xr-xchromium/tools/metrics/md2xml.py14
-rwxr-xr-xchromium/tools/metrics/metrics_python_tests.py45
-rw-r--r--chromium/tools/metrics/rappor/rappor_model.py18
-rwxr-xr-xchromium/tools/metrics/rappor/rappor_model_test.py59
-rw-r--r--chromium/tools/metrics/ukm/ukm.xml1054
-rw-r--r--chromium/tools/perf/chrome_telemetry_build/BUILD.gn31
-rw-r--r--chromium/tools/polymer/polymer.py16
-rwxr-xr-xchromium/tools/polymer/txt_to_polymer_grdp.py6
-rwxr-xr-xchromium/tools/protoc_wrapper/protoc_wrapper.py5
-rwxr-xr-xchromium/tools/roll_webgl_conformance.py5
-rw-r--r--chromium/tools/style_variable_generator/PRESUBMIT.py29
-rw-r--r--chromium/tools/style_variable_generator/__init__.py0
-rw-r--r--chromium/tools/style_variable_generator/base_generator.py61
-rw-r--r--chromium/tools/style_variable_generator/base_generator_test.py15
-rw-r--r--chromium/tools/style_variable_generator/colors_test.json512
-rw-r--r--chromium/tools/style_variable_generator/colors_test_dark_only_expected.css7
-rw-r--r--chromium/tools/style_variable_generator/colors_test_expected.css11
-rw-r--r--chromium/tools/style_variable_generator/colors_test_expected.h11
-rw-r--r--chromium/tools/style_variable_generator/colors_test_palette.json56
-rw-r--r--chromium/tools/style_variable_generator/css_generator.py43
-rw-r--r--chromium/tools/style_variable_generator/css_generator.tmpl12
-rw-r--r--chromium/tools/style_variable_generator/css_generator_test.py4
-rw-r--r--chromium/tools/style_variable_generator/find_invalid_css_variables.py72
-rw-r--r--chromium/tools/style_variable_generator/find_invalid_css_variables_test.py83
-rw-r--r--chromium/tools/style_variable_generator/presubmit_support.py61
-rw-r--r--chromium/tools/style_variable_generator/style_variable_generator.py19
-rw-r--r--chromium/tools/style_variable_generator/views_generator.py6
-rw-r--r--chromium/tools/style_variable_generator/views_generator_test.py3
-rw-r--r--chromium/tools/traffic_annotation/auditor/BUILD.gn3
-rw-r--r--chromium/tools/traffic_annotation/auditor/auditor_result.cc11
-rw-r--r--chromium/tools/traffic_annotation/auditor/auditor_result.h2
-rw-r--r--chromium/tools/traffic_annotation/auditor/instance.cc14
-rw-r--r--chromium/tools/traffic_annotation/auditor/instance.h4
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc46
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.h12
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc54
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc8
-rw-r--r--chromium/tools/traffic_annotation/scripts/README.md22
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/generator_utils.py352
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/generator_utils_tests.py130
-rw-r--r--chromium/tools/traffic_annotation/scripts/test_data/fake_annotations.tsv3
-rw-r--r--chromium/tools/traffic_annotation/scripts/test_data/fake_grouping.xml15
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/update_annotations_doc.py552
-rw-r--r--chromium/tools/traffic_annotation/scripts/update_annotations_doc.py.vpython61
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/update_annotations_doc_tests.py177
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/update_annotations_sheet.py34
-rw-r--r--chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py.vpython7
-rw-r--r--chromium/tools/traffic_annotation/summary/annotations.xml53
-rw-r--r--chromium/tools/traffic_annotation/summary/grouping.xml391
-rw-r--r--chromium/tools/translation/helper/grd_helper.py2
-rwxr-xr-xchromium/tools/update_pgo_profiles.py2
-rw-r--r--chromium/tools/v8_context_snapshot/BUILD.gn21
-rwxr-xr-xchromium/tools/variations/fieldtrial_to_struct.py67
-rw-r--r--chromium/tools/variations/fieldtrial_to_struct_unittest.py119
-rw-r--r--chromium/tools/variations/fieldtrial_util.py6
-rw-r--r--chromium/tools/vim/chromium.ycm_extra_conf.py9
-rw-r--r--chromium/tools/web_dev_style/css_checker.py17
-rwxr-xr-xchromium/tools/web_dev_style/css_checker_test.py43
-rw-r--r--chromium/tools/web_dev_style/js_checker.py2
-rw-r--r--chromium/tools/win/DebugVisualizers/BUILD.gn6
-rw-r--r--chromium/tools/win/DebugVisualizers/blink.natvis (renamed from chromium/tools/win/DebugVisualizers/webkit.natvis)54
-rw-r--r--chromium/tools/win/IdleWakeups/README.md29
-rw-r--r--chromium/tools/win/IdleWakeups/ReadMe.txt23
-rw-r--r--chromium/tools/win/IdleWakeups/idle_wakeups.cpp39
-rw-r--r--chromium/tools/win/IdleWakeups/system_information_sampler.cpp113
211 files changed, 22921 insertions, 6966 deletions
diff --git a/chromium/tools/OWNERS b/chromium/tools/OWNERS
index acc41382250..85e418b69fb 100644
--- a/chromium/tools/OWNERS
+++ b/chromium/tools/OWNERS
@@ -6,7 +6,6 @@
# OWNERS of the existing tool.
brucedawson@chromium.org
-dpranke@chromium.org
dpranke@google.com
scottmg@chromium.org
thakis@chromium.org
diff --git a/chromium/tools/accessibility/inspect/ax_dump_tree.cc b/chromium/tools/accessibility/inspect/ax_dump_tree.cc
index 1250c6e6a37..f0e52695d9c 100644
--- a/chromium/tools/accessibility/inspect/ax_dump_tree.cc
+++ b/chromium/tools/accessibility/inspect/ax_dump_tree.cc
@@ -37,7 +37,7 @@ bool AXDumpTreeLogMessageHandler(int severity,
}
gfx::AcceleratedWidget CastToAcceleratedWidget(unsigned window_id) {
-#if defined(USE_OZONE) || defined(USE_X11) || defined(OS_MACOSX)
+#if defined(USE_OZONE) || defined(USE_X11) || defined(OS_MAC)
return static_cast<gfx::AcceleratedWidget>(window_id);
#else
return reinterpret_cast<gfx::AcceleratedWidget>(window_id);
diff --git a/chromium/tools/accessibility/inspect/ax_tree_server.cc b/chromium/tools/accessibility/inspect/ax_tree_server.cc
index 334e4abd7ec..aeb05dace76 100644
--- a/chromium/tools/accessibility/inspect/ax_tree_server.cc
+++ b/chromium/tools/accessibility/inspect/ax_tree_server.cc
@@ -75,27 +75,26 @@ std::vector<AccessibilityTreeFormatter::PropertyFilter> GetPropertyFilters(
base::SPLIT_WANT_ALL)) {
if (base::StartsWith(line, kAllowOptEmptyStr,
base::CompareCase::SENSITIVE)) {
- filters.push_back(AccessibilityTreeFormatter::PropertyFilter(
- base::UTF8ToUTF16(line.substr(strlen(kAllowOptEmptyStr))),
- AccessibilityTreeFormatter::PropertyFilter::ALLOW_EMPTY));
+ filters.emplace_back(
+ line.substr(strlen(kAllowOptEmptyStr)),
+ AccessibilityTreeFormatter::PropertyFilter::ALLOW_EMPTY);
} else if (base::StartsWith(line, kAllowOptStr,
base::CompareCase::SENSITIVE)) {
- filters.push_back(AccessibilityTreeFormatter::PropertyFilter(
- base::UTF8ToUTF16(line.substr(strlen(kAllowOptStr))),
- AccessibilityTreeFormatter::PropertyFilter::ALLOW));
+ filters.emplace_back(
+ line.substr(strlen(kAllowOptStr)),
+ AccessibilityTreeFormatter::PropertyFilter::ALLOW);
} else if (base::StartsWith(line, kDenyOptStr,
base::CompareCase::SENSITIVE)) {
- filters.push_back(AccessibilityTreeFormatter::PropertyFilter(
- base::UTF8ToUTF16(line.substr(strlen(kDenyOptStr))),
- AccessibilityTreeFormatter::PropertyFilter::DENY));
+ filters.emplace_back(
+ line.substr(strlen(kDenyOptStr)),
+ AccessibilityTreeFormatter::PropertyFilter::DENY);
}
}
}
}
if (filters.empty()) {
filters = {AccessibilityTreeFormatter::PropertyFilter(
- base::ASCIIToUTF16("*"),
- AccessibilityTreeFormatter::PropertyFilter::ALLOW)};
+ "*", AccessibilityTreeFormatter::PropertyFilter::ALLOW)};
}
return filters;
diff --git a/chromium/tools/android/audio_focus_grabber/BUILD.gn b/chromium/tools/android/audio_focus_grabber/BUILD.gn
index 1ea5c9af3d4..144b80e66a1 100644
--- a/chromium/tools/android/audio_focus_grabber/BUILD.gn
+++ b/chromium/tools/android/audio_focus_grabber/BUILD.gn
@@ -12,6 +12,7 @@ android_apk("audio_focus_grabber_apk") {
deps = [
":audio_focus_grabber_apk_resources",
"//base:base_java",
+ "//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_core_core_java",
]
diff --git a/chromium/tools/android/customtabs_benchmark/BUILD.gn b/chromium/tools/android/customtabs_benchmark/BUILD.gn
index 18bf0c94dfc..885b700bc47 100644
--- a/chromium/tools/android/customtabs_benchmark/BUILD.gn
+++ b/chromium/tools/android/customtabs_benchmark/BUILD.gn
@@ -10,7 +10,7 @@ android_resources("customtabs_benchmark_apk_resources") {
"res/layout/main.xml",
"res/values/strings.xml",
]
- custom_package = "org.chromium.customtabs.test"
+ create_srcjar = false
}
android_apk("customtabs_benchmark_apk") {
@@ -25,6 +25,7 @@ android_apk("customtabs_benchmark_apk") {
deps = [
":customtabs_benchmark_apk_resources",
"//third_party/android_deps:android_support_v4_java",
+ "//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_sdk/androidx_browser:androidx_browser_java",
]
}
diff --git a/chromium/tools/android/errorprone_plugin/BUILD.gn b/chromium/tools/android/errorprone_plugin/BUILD.gn
index 6f5759ff608..0f205ff5cea 100644
--- a/chromium/tools/android/errorprone_plugin/BUILD.gn
+++ b/chromium/tools/android/errorprone_plugin/BUILD.gn
@@ -29,6 +29,37 @@ java_binary("errorprone_plugin") {
[ "//third_party/android_deps:auto_service_processor" ]
deps = [
"//third_party/android_deps:com_google_auto_service_auto_service_annotations_java",
+ "//third_party/android_deps:com_google_errorprone_error_prone_annotation_java",
+ "//third_party/android_deps:com_google_errorprone_error_prone_check_api_java",
"//third_party/android_deps:com_google_errorprone_error_prone_core_java",
+ "//third_party/android_deps:com_google_errorprone_javac_java",
+ ]
+}
+
+android_library("no_redundant_field_init_check_int_test_java") {
+ testonly = true
+ enable_errorprone = true
+ errorprone_expected_warning_regex = "NoRedundantFieldInitCheck"
+ sources = [ "test/src/org/chromium/tools/errorprone/plugin/NoRedundantFieldInitCheckIntTest.java" ]
+ deps = []
+}
+
+android_library("test_class_name_check_test_java") {
+ testonly = true
+ enable_errorprone = true
+ errorprone_expected_warning_regex = "TestClassNameCheck"
+ sources = [ "test/src/org/chromium/tools/errorprone/plugin/TestClassNameCheckTesting.java" ]
+ deps = [
+ "//base:base_java_test_support",
+ "//third_party/android_support_test_runner:runner_java",
+ "//third_party/junit:junit",
+ ]
+}
+
+group("errorprone_plugin_tests") {
+ testonly = true
+ deps = [
+ ":no_redundant_field_init_check_int_test_java",
+ ":test_class_name_check_test_java",
]
}
diff --git a/chromium/tools/android/push_apps_to_background/BUILD.gn b/chromium/tools/android/push_apps_to_background/BUILD.gn
index 2101489ada5..1cf65f1daee 100644
--- a/chromium/tools/android/push_apps_to_background/BUILD.gn
+++ b/chromium/tools/android/push_apps_to_background/BUILD.gn
@@ -21,5 +21,5 @@ android_resources("push_apps_to_background_apk_resources") {
"res/layout/activity_push_apps_to_background.xml",
"res/values/strings.xml",
]
- custom_package = "org.chromium.push_apps_to_background"
+ create_srcjar = false
}
diff --git a/chromium/tools/binary_size/BUILD.gn b/chromium/tools/binary_size/BUILD.gn
index 89ec4a7776f..e6806bf7754 100644
--- a/chromium/tools/binary_size/BUILD.gn
+++ b/chromium/tools/binary_size/BUILD.gn
@@ -21,7 +21,7 @@ python_library("sizes_py") {
data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ]
}
-if (is_linux) {
+if (is_linux || is_chromeos) {
group("caspian") {
deps = [ "//tools/binary_size/libsupersize/caspian:cli($host_toolchain)" ]
}
diff --git a/chromium/tools/binary_size/PRESUBMIT.py b/chromium/tools/binary_size/PRESUBMIT.py
index 75b266a2599..b7c4a8d9a0a 100644
--- a/chromium/tools/binary_size/PRESUBMIT.py
+++ b/chromium/tools/binary_size/PRESUBMIT.py
@@ -15,8 +15,8 @@ def CommonChecks(input_api, output_api):
input_api,
output_api,
input_api.PresubmitLocalPath(),
- whitelist=[r'.+_test\.py$'],
- blacklist=[],
+ files_to_check=[r'.+_test\.py$'],
+ files_to_skip=[],
run_on_python2=False,
run_on_python3=True)
diff --git a/chromium/tools/binary_size/README.md b/chromium/tools/binary_size/README.md
index 1866ed19257..0f7b8c9b388 100644
--- a/chromium/tools/binary_size/README.md
+++ b/chromium/tools/binary_size/README.md
@@ -18,6 +18,10 @@ Per-Milestone Binary Size Breakdowns:
* https://chrome-supersize.firebaseapp.com/chrome-supersize/index.html
+Guide to dealing with chrome-perf size alerts:
+
+ * [//docs/speed/apk_size_regressions.md](/docs/speed/apk_size_regressions.md)
+
[TOC]
## Binary Size Trybot (android-binary-size)
@@ -38,7 +42,7 @@ Per-Milestone Binary Size Breakdowns:
[chromeperf](https://chromeperf.appspot.com/report) under
`Test suite="resource_sizes ($APK)"`.
* Metrics reported by this tool are described in
- [//docs/speed/binary_size/metrics.md](//docs/speed/binary_size/metrics.md).
+ [//docs/speed/binary_size/metrics.md](/docs/speed/binary_size/metrics.md).
## SuperSize
diff --git a/chromium/tools/binary_size/diagnose_bloat.py b/chromium/tools/binary_size/diagnose_bloat.py
index 134f99c78a4..e44f3c56150 100755
--- a/chromium/tools/binary_size/diagnose_bloat.py
+++ b/chromium/tools/binary_size/diagnose_bloat.py
@@ -422,15 +422,17 @@ class _BuildArchive(object):
logging.info('Found existing .size file')
shutil.copy(existing_size_file, self.archived_size_path)
else:
- supersize_cmd = [
- supersize_path, 'archive', self.archived_size_path, '--elf-file',
- self.build.abs_main_lib_path, '--output-directory',
- self.build.output_directory
- ]
+ supersize_cmd = [supersize_path, 'archive', self.archived_size_path]
+ if self.build.IsAndroid():
+ supersize_cmd += [
+ '-f', self.build.abs_apk_path, '--aux-elf-file',
+ self.build.abs_main_lib_path
+ ]
+ else:
+ supersize_cmd += ['--elf-file', self.build.abs_main_lib_path]
+ supersize_cmd += ['--output-directory', self.build.output_directory]
if tool_prefix:
supersize_cmd += ['--tool-prefix', tool_prefix]
- if self.build.IsAndroid():
- supersize_cmd += ['-f', self.build.abs_apk_path]
logging.info('Creating .size file')
_RunCmd(supersize_cmd)
diff --git a/chromium/tools/binary_size/generate_milestone_reports.py b/chromium/tools/binary_size/generate_milestone_reports.py
index be7d1b52466..76a892ceed7 100755
--- a/chromium/tools/binary_size/generate_milestone_reports.py
+++ b/chromium/tools/binary_size/generate_milestone_reports.py
@@ -45,8 +45,7 @@ _GSUTIL = os.path.join(_DIR_SOURCE_ROOT, 'third_party', 'depot_tools',
_PUSH_URL = 'gs://chrome-supersize/milestones/'
_DESIRED_CPUS = ['arm', 'arm_64']
-# Measure Chrome.apk since it's not a bundle.
-_DESIRED_APKS = ['Monochrome.apk', 'Chrome.apk', 'AndroidWebview.apk']
+_DESIRED_APKS = ['Monochrome.apk', 'AndroidWebview.apk']
# Versions are manually gathered from
# https://omahaproxy.appspot.com/history?os=android&channel=stable
_DESIRED_VERSIONS = [
@@ -73,7 +72,9 @@ _DESIRED_VERSIONS = [
'80.0.3987.99',
'81.0.4044.138',
'83.0.4103.60',
- '84.0.4147.20', # Canary
+ '84.0.4147.89',
+ '85.0.4183.81',
+ '86.0.4240.11', # Canary
]
@@ -205,14 +206,15 @@ def main():
_WriteMilestonesJson(os.path.join(staging_dir, 'milestones.json'))
if args.sync:
- subprocess.check_call([
- _GSUTIL, '-m', 'rsync', '-J', '-a', 'public-read', '-r', staging_dir,
- _PUSH_URL
- ])
- subprocess.check_call([
- _GSUTIL, 'setmeta', '-h', 'Cache-Control:no-cache',
- _PUSH_URL + 'milestones.json'
- ])
+ subprocess.check_call(
+ [_GSUTIL, '-m', 'rsync', '-J', '-r', staging_dir, _PUSH_URL])
+ milestones_json = _PUSH_URL + 'milestones.json'
+ # The main index.html page has no authentication code, so make .json file
+ # world-readable.
+ subprocess.check_call(
+ [_GSUTIL, 'acl', 'set', '-a', 'public-read', milestones_json])
+ subprocess.check_call(
+ [_GSUTIL, 'setmeta', '-h', 'Cache-Control:no-cache', milestones_json])
else:
logging.warning('Finished dry run. Run with --sync to upload.')
diff --git a/chromium/tools/binary_size/generate_official_build_report.py b/chromium/tools/binary_size/generate_official_build_report.py
index cafcb59b3a5..e76ecdc07f2 100755
--- a/chromium/tools/binary_size/generate_official_build_report.py
+++ b/chromium/tools/binary_size/generate_official_build_report.py
@@ -61,7 +61,7 @@ def _UploadSizeFile(size_path, version, arch):
dst_url = os.path.join(_REPORTS_GS_URL, version, arch,
report_basename + '.size')
- cmd = [_GSUTIL, 'cp', '-a', 'public-read', size_path, dst_url]
+ cmd = [_GSUTIL, 'cp', size_path, dst_url]
logging.warning(' '.join(cmd))
subprocess.check_call(cmd)
diff --git a/chromium/tools/binary_size/libsupersize/archive.py b/chromium/tools/binary_size/libsupersize/archive.py
index f36f8b616c9..a35554f99ac 100644
--- a/chromium/tools/binary_size/libsupersize/archive.py
+++ b/chromium/tools/binary_size/libsupersize/archive.py
@@ -42,9 +42,14 @@ import zip_util
sys.path.insert(1, os.path.join(path_util.TOOLS_SRC_ROOT, 'tools', 'grit'))
from grit.format import data_pack
+_METADATA_FILENAME = 'DIR_METADATA'
+_METADATA_COMPONENT_REGEX = re.compile(r'^\s*component:\s*"(.*?)"',
+ re.MULTILINE)
_OWNERS_FILENAME = 'OWNERS'
-_COMPONENT_REGEX = re.compile(r'\s*#\s*COMPONENT\s*:\s*(\S+)')
-_FILE_PATH_REGEX = re.compile(r'\s*file://(\S+)')
+_OWNERS_COMPONENT_REGEX = re.compile(r'^\s*#\s*COMPONENT:\s*(\S+)',
+ re.MULTILINE)
+_OWNERS_FILE_PATH_REGEX = re.compile(r'^\s*file://(\S+)', re.MULTILINE)
+
_UNCOMPRESSED_COMPRESSION_RATIO_THRESHOLD = 0.9
_APKS_MAIN_APK = 'splits/base-master.apk'
@@ -131,6 +136,8 @@ class ContainerArchiveOptions:
self.analyze_java = not (sub_args.native_only or sub_args.no_java
or self.relocations_mode)
+ # This may be further disabled downstream, e.g., for the case where an APK
+ # is specified, but it contains no .so files.
self.analyze_native = not (sub_args.java_only or sub_args.no_native)
@@ -534,90 +541,104 @@ def _CreateMergeStringsReplacements(merge_string_syms,
return ret
-def _ParseComponentFromOwners(filename, opts):
- """Searches an OWNERS file for lines that start with `# COMPONENT:`.
+def _ParseComponentFromMetadata(path):
+ """Extracts Component from DIR_METADATA."""
+ try:
+ with open(path) as f:
+ data = f.read()
+
+ m = _METADATA_COMPONENT_REGEX.search(data)
+ if m:
+ return m.group(1)
+ except IOError:
+ # Need to catch both FileNotFoundError and NotADirectoryError since
+ # source_paths for .aar files look like: /path/to/lib.aar/path/within/zip
+ pass
+ return ''
- If an OWNERS file has no COMPONENT but references exactly one other OWNERS
- file, follows the reference and checks that file instead.
+
+def _ParseComponentFromOwners(path):
+ """Extracts COMPONENT and file:// from an OWNERS file.
Args:
- filename: Path to the file to parse.
- opts: Instance of ContainerArchiveOptions.
+ path: Path to the file to parse.
+
Returns:
- The text that follows the `# COMPONENT:` prefix, such as 'component>name'.
- Empty string if no component found or the file doesn't exist.
+ (component, None) if COMPONENT: line was found.
+ ('', path) if a single file:// was found.
+ ('', None) if neither was found.
"""
- seen = set()
- while True:
- seen.add(filename)
- reference_paths = []
- try:
- with open(filename) as f:
- for line in f:
- component_matches = _COMPONENT_REGEX.match(line)
- path_matches = _FILE_PATH_REGEX.match(line)
- if component_matches:
- return component_matches.group(1)
- elif path_matches:
- reference_paths.append(path_matches.group(1))
- except IOError:
- break
- if len(reference_paths) != 1:
- break
- filename = os.path.join(opts.src_root, reference_paths[0])
- if filename in seen:
- logging.warning('OWNER dependence loop found for %s' % filename)
- break
- return ''
-
-
-def _FindComponentRoot(start_path, cache, opts):
+ try:
+ with open(path) as f:
+ data = f.read()
+
+ m = _OWNERS_COMPONENT_REGEX.search(data)
+ if m:
+ return m.group(1), None
+ aliases = _OWNERS_FILE_PATH_REGEX.findall(data)
+ if len(aliases) == 1:
+ return '', aliases[0]
+ except IOError:
+ # Need to catch both FileNotFoundError and NotADirectoryError since
+ # source_paths for .aar files look like: /path/to/lib.aar/path/within/zip
+ pass
+ return '', None
+
+
+def _FindComponentRoot(path, cache, src_root):
"""Searches all parent directories for COMPONENT in OWNERS files.
Args:
- start_path: Path of directory to start searching from. Must be relative to
- |opts.src_root|.
+ path: Path of directory to start searching from. Must be relative to
+ |src_root|.
cache: Dict of OWNERS paths. Used instead of filesystem if paths are present
in the dict.
- opts: Instance of ContainerArchiveOptions.
+ src_root: Directory to use as the root.
Returns:
- COMPONENT belonging to |start_path|, or empty string if not found.
+ COMPONENT belonging to |path|, or empty string if not found.
"""
- prev_dir = None
- test_dir = start_path
- # This loop will traverse the directory structure upwards until reaching
- # |opts.src_root|, where |test_dir| and |prev_dir| will both equal an empty
- # string.
- while test_dir != prev_dir:
- cached_component = cache.get(test_dir)
- if cached_component:
- return cached_component
- if cached_component is None: # Excludes ''.
- owners_path = os.path.join(opts.src_root, test_dir, _OWNERS_FILENAME)
- component = _ParseComponentFromOwners(owners_path, opts)
- cache[test_dir] = component
- if component:
- return component
- prev_dir = test_dir
- test_dir = os.path.dirname(test_dir)
- return ''
-
-
-def _PopulateComponents(raw_symbols, opts):
+ assert not os.path.isabs(path)
+ component = cache.get(path)
+ if component is not None:
+ return component
+
+ metadata_path = os.path.join(src_root, path, _METADATA_FILENAME)
+ component = _ParseComponentFromMetadata(metadata_path)
+ if not component:
+ owners_path = os.path.join(src_root, path, _OWNERS_FILENAME)
+ component, path_alias = _ParseComponentFromOwners(owners_path)
+
+ if not component:
+ # Store in cache before recursing to prevent cycles.
+ cache[path] = ''
+ if path_alias:
+ alias_dir = os.path.dirname(path_alias)
+ component = _FindComponentRoot(alias_dir, cache, src_root)
+
+ if not component:
+ parent_path = os.path.dirname(path)
+ if parent_path:
+ component = _FindComponentRoot(parent_path, cache, src_root)
+
+ cache[path] = component
+ return component
+
+
+def _PopulateComponents(raw_symbols, src_root):
"""Populates the |component| field based on |source_path|.
Symbols without a |source_path| are skipped.
Args:
raw_symbols: list of Symbol objects.
- opts: Instance of ContainerArchiveOptions.
+ src_root: Directory to use as the root.
"""
seen_paths = {}
for symbol in raw_symbols:
if symbol.source_path:
folder_path = os.path.dirname(symbol.source_path)
- symbol.component = _FindComponentRoot(folder_path, seen_paths, opts)
+ symbol.component = _FindComponentRoot(folder_path, seen_paths, src_root)
def _UpdateSymbolNamesFromNm(raw_symbols, names_by_address):
@@ -1467,7 +1488,7 @@ def CreateContainerAndSymbols(knobs=None,
raw_symbols is a list of Symbol objects.
"""
knobs = knobs or SectionSizeKnobs()
- if apk_path and elf_path:
+ if apk_path and apk_so_path:
# Extraction takes around 1 second, so do it in parallel.
apk_elf_result = parallel.ForkAndCall(_ElfInfoFromApk,
(apk_path, apk_so_path, tool_prefix))
@@ -1580,7 +1601,7 @@ def CreateContainerAndSymbols(knobs=None,
models.Symbol(
models.SECTION_DEX,
unattributed_dex,
- full_name='** .dex (unattributed)'))
+ full_name='** .dex (unattributed - includes string literals)'))
raw_symbols.extend(other_symbols)
@@ -1605,7 +1626,7 @@ def CreateContainerAndSymbols(knobs=None,
raw_symbols.extend(pak_raw_symbols)
_ExtractSourcePathsAndNormalizeObjectPaths(raw_symbols, source_mapper)
- _PopulateComponents(raw_symbols, opts)
+ _PopulateComponents(raw_symbols, opts.src_root)
logging.info('Converting excessive aliases into shared-path symbols')
_CompactLargeAliasesIntoSharedSymbols(raw_symbols, knobs)
logging.debug('Connecting nm aliases')
@@ -1943,7 +1964,9 @@ def _DeduceNativeInfo(tentative_output_dir, apk_path, elf_path, map_path,
f for f in z.infolist()
if f.filename.endswith('.so') and f.file_size > 0
]
- assert lib_infos, 'APK has no .so files.'
+ if not lib_infos:
+ return None, map_path, None
+
# TODO(agrieve): Add support for multiple .so files, and take into account
# secondary architectures.
apk_so_path = max(lib_infos, key=lambda x: x.file_size).filename
@@ -2071,6 +2094,9 @@ def _DeduceMainPaths(args, on_config_error):
elf_path, map_path, apk_so_path = _DeduceNativeInfo(
output_directory, apk_path, sub_args.elf_file
or sub_args.aux_elf_file, sub_args.map_file, on_config_error)
+ if not (elf_path or map_path or apk_so_path):
+ opts.analyze_native = False
+ if opts.analyze_native:
if map_path:
linker_name = _DetectLinkerName(map_path)
logging.info('Linker name: %s' % linker_name)
diff --git a/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn b/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
index ebc0bcfcb4f..0dab860c0de 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
+++ b/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
@@ -9,7 +9,7 @@ if (!defined(is_wasm)) {
is_wasm = current_os == "wasm"
}
-assert(is_linux || is_wasm)
+assert(is_linux || is_chromeos || is_wasm)
source_set("caspian-lib") {
sources = [
@@ -78,7 +78,7 @@ if (is_wasm) {
"-s",
"ALLOW_MEMORY_GROWTH=1",
"-s",
- "EXPORTED_FUNCTIONS=['_LoadSizeFile','_LoadBeforeSizeFile','_BuildTree','_Open','_malloc','_free']",
+ "EXPORTED_FUNCTIONS=['_LoadSizeFile','_LoadBeforeSizeFile','_BuildTree','_Open','_QueryProperty','_malloc','_free']",
"-s",
"EXTRA_EXPORTED_RUNTIME_METHODS=['ccall','cwrap','UTF8ToString']",
]
diff --git a/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc b/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
index b0e24b01a10..0a465e54324 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
@@ -55,6 +55,11 @@ bool MatchesRegex(const GroupedPath& id_path,
return RE2::PartialMatch(Re2StringPiece(sym.FullName()), regex);
}
+bool IsMultiContainer() {
+ // If DeltaSizeInfo is active, still take |info| since it's the "after" info.
+ return info->containers.size() > 1 || !info->containers[0].name.empty();
+}
+
} // namespace
extern "C" {
@@ -177,6 +182,8 @@ bool BuildTree(bool method_count_mode,
std::cout << "group_by=" << group_by << std::endl;
if (!strcmp(group_by, "source_path")) {
lens = std::make_unique<IdPathLens>();
+ } else if (!strcmp(group_by, "container")) {
+ lens = std::make_unique<ContainerLens>();
} else if (!strcmp(group_by, "component")) {
lens = std::make_unique<ComponentLens>();
sep = '>';
@@ -196,12 +203,22 @@ bool BuildTree(bool method_count_mode,
return bool(diff_info);
}
+// Returns a string that can be parsed to a JS object.
const char* Open(const char* path) {
- // Returns a string that can be parsed to a JS object.
static std::string result;
Json::Value v = builder->Open(path);
result = JsonSerialize(v);
return result.c_str();
}
+
+// Returns global properties.
+const char* QueryProperty(const char* key) {
+ if (!strcmp(key, "isMultiContainer")) {
+ return IsMultiContainer() ? "true" : "false";
+ }
+ std::cerr << "Unknown property: " << key << std::endl;
+ exit(1);
+}
+
} // extern "C"
} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/file_format.cc b/chromium/tools/binary_size/libsupersize/caspian/file_format.cc
index 2f51b4180e0..888a9ffbd33 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/file_format.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/file_format.cc
@@ -10,6 +10,7 @@
#include <assert.h>
#include <stdint.h>
+#include <stdlib.h>
#include <cstring>
#include <iostream>
@@ -26,7 +27,8 @@
namespace {
const char kDiffHeader[] = "# Created by //tools/binary_size\nDIFF\n";
-const char kSerializationVersion[] = "Size File Format v1";
+const char kSerializationVersionSingleContainer[] = "Size File Format v1";
+const char kSerializationVersionMultiContainer[] = "Size File Format v1.1";
int ReadLoneInt(char** rest) {
char* token = strsep(rest, "\n");
@@ -101,33 +103,33 @@ std::vector<T> ReadIntList(char** rest,
template <typename T>
std::vector<std::vector<T>> ReadIntListForEachSection(
char** rest,
- const std::vector<int>& section_counts,
+ const std::vector<int>& symbol_counts,
bool stored_as_delta) {
std::vector<std::vector<T>> ret;
- ret.reserve(section_counts.size());
- for (int nsymbols : section_counts) {
+ ret.reserve(symbol_counts.size());
+ for (int nsymbols : symbol_counts) {
ret.push_back(ReadIntList<T>(rest, " ", nsymbols, stored_as_delta));
}
return ret;
}
-void ReadJsonBlob(char** rest, Json::Value* metadata) {
+void ReadJsonBlob(char** rest, Json::Value* fields) {
// Metadata begins with its length in bytes, followed by a json blob.
- int metadata_len = ReadLoneInt(rest);
- if (metadata_len < 0) {
- std::cerr << "Unexpected negative metadata length: " << metadata_len
+ int fields_len = ReadLoneInt(rest);
+ if (fields_len < 0) {
+ std::cerr << "Unexpected negative fields length: " << fields_len
<< std::endl;
exit(1);
}
char* json_start = *rest;
- *rest += metadata_len + 1;
+ *rest += fields_len + 1;
std::unique_ptr<Json::CharReader> reader;
reader.reset(Json::CharReaderBuilder().newCharReader());
std::string json_errors;
- if (!reader->parse(json_start, json_start + metadata_len, metadata,
+ if (!reader->parse(json_start, json_start + fields_len, fields,
&json_errors)) {
- std::cerr << "Failed to parse JSON metadata:" << *rest << std::endl;
+ std::cerr << "Failed to parse JSON fields:" << *rest << std::endl;
std::cerr << json_errors << std::endl;
exit(1);
}
@@ -211,23 +213,37 @@ void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info) {
Decompress(gzipped, len, &info->raw_decompressed);
char* rest = &info->raw_decompressed[0];
- // Ignore generated header
+ // Ignore generated header.
char* line = strsep(&rest, "\n");
- // Serialization version
+ // Serialization version.
line = strsep(&rest, "\n");
- if (std::strcmp(line, kSerializationVersion)) {
+ bool has_multi_containers = false;
+ if (!std::strcmp(line, kSerializationVersionSingleContainer)) {
+ has_multi_containers = false;
+ } else if (!std::strcmp(line, kSerializationVersionMultiContainer)) {
+ has_multi_containers = true;
+ } else {
std::cerr << "Serialization version: '" << line << "' not recognized."
<< std::endl;
exit(1);
}
- ReadJsonBlob(&rest, &info->metadata);
+ ReadJsonBlob(&rest, &info->fields);
+ if (has_multi_containers) {
+ const Json::Value& container_values = info->fields["containers"];
+ for (const auto& container_value : container_values) {
+ const std::string name = container_value["name"].asString();
+ info->containers.push_back(Container(name));
+ }
+ } else {
+ info->containers.push_back(Container(""));
+ }
- const bool has_components = info->metadata["has_components"].asBool();
- const bool has_padding = info->metadata["has_padding"].asBool();
+ const bool has_components = info->fields["has_components"].asBool();
+ const bool has_padding = info->fields["has_padding"].asBool();
- // List of paths: (object_path, [source_path])
+ // List of paths: (object_path, [source_path]).
int n_paths = ReadLoneInt(&rest);
if (n_paths < 0) {
std::cerr << "Unexpected negative path list length: " << n_paths
@@ -258,7 +274,7 @@ void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info) {
}
if (has_components) {
- // List of component names
+ // List of component names.
int n_components = ReadLoneInt(&rest);
if (n_components < 0) {
std::cerr << "Unexpected negative components list length: "
@@ -273,55 +289,85 @@ void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info) {
}
}
- // Section names
- info->section_names = ReadValuesFromLine(&rest, "\t");
- int n_sections = info->section_names.size();
+ // Segments = List of (Container, section name).
+ std::vector<const char*> segment_names;
+ segment_names = ReadValuesFromLine(&rest, "\t");
+ int n_segments = segment_names.size();
+
+ // Parse segment name into Container pointers and section names.
+ std::vector<Container*> segment_containers(n_segments);
+ std::vector<const char*> segment_section_names(n_segments);
+ for (int segment_idx = 0; segment_idx < n_segments; segment_idx++) {
+ const char* segment_name = segment_names[segment_idx];
+ if (has_multi_containers) {
+ // |segment_name| is formatted as "<container_idx>section_name".
+ std::string t = segment_name;
+ assert(t.length() > 0 && t[0] == '<');
+ size_t sep_pos = t.find('>');
+ assert(sep_pos != std::string::npos);
+ std::string container_idx_str = t.substr(1, sep_pos - 1);
+ int container_idx = std::atoi(container_idx_str.c_str());
+ assert(container_idx >= 0 &&
+ container_idx < static_cast<int>(info->containers.size()));
+ segment_containers[segment_idx] = &info->containers[container_idx];
+ segment_section_names[segment_idx] = segment_name + (sep_pos + 1);
+ } else {
+ // Segments are already container names.
+ segment_containers[segment_idx] = &info->containers[0];
+ segment_section_names[segment_idx] = segment_name;
+ }
+ }
- // Symbol counts for each section
- std::vector<int> section_counts =
- ReadIntList<int>(&rest, "\t", n_sections, false);
- std::cout << "Section counts:" << std::endl;
+ // Symbol counts for each section.
+ std::vector<int> symbol_counts =
+ ReadIntList<int>(&rest, "\t", n_segments, false);
+ std::cout << "Symbol counts:" << std::endl;
int total_symbols =
- std::accumulate(section_counts.begin(), section_counts.end(), 0);
+ std::accumulate(symbol_counts.begin(), symbol_counts.end(), 0);
- for (int section_idx = 0; section_idx < n_sections; section_idx++) {
- std::cout << " " << info->section_names[section_idx] << '\t'
- << section_counts[section_idx] << std::endl;
+ for (int segment_idx = 0; segment_idx < n_segments; segment_idx++) {
+ std::cout << " ";
+ if (has_multi_containers) {
+ std::cout << "<" << segment_containers[segment_idx]->name << ">";
+ }
+ std::cout << segment_section_names[segment_idx];
+ std::cout << '\t' << symbol_counts[segment_idx] << std::endl;
}
std::vector<std::vector<int64_t>> addresses =
- ReadIntListForEachSection<int64_t>(&rest, section_counts, true);
+ ReadIntListForEachSection<int64_t>(&rest, symbol_counts, true);
std::vector<std::vector<int32_t>> sizes =
- ReadIntListForEachSection<int32_t>(&rest, section_counts, false);
+ ReadIntListForEachSection<int32_t>(&rest, symbol_counts, false);
std::vector<std::vector<int32_t>> paddings;
if (has_padding) {
- paddings = ReadIntListForEachSection<int32_t>(&rest, section_counts, false);
+ paddings = ReadIntListForEachSection<int32_t>(&rest, symbol_counts, false);
} else {
paddings.resize(addresses.size());
}
std::vector<std::vector<int32_t>> path_indices =
- ReadIntListForEachSection<int32_t>(&rest, section_counts, true);
+ ReadIntListForEachSection<int32_t>(&rest, symbol_counts, true);
std::vector<std::vector<int32_t>> component_indices;
if (has_components) {
component_indices =
- ReadIntListForEachSection<int32_t>(&rest, section_counts, true);
+ ReadIntListForEachSection<int32_t>(&rest, symbol_counts, true);
} else {
component_indices.resize(addresses.size());
}
info->raw_symbols.reserve(total_symbols);
- // Construct raw symbols
- for (int section_idx = 0; section_idx < n_sections; section_idx++) {
- const char* cur_section_name = info->section_names[section_idx];
+ // Construct raw symbols.
+ for (int segment_idx = 0; segment_idx < n_segments; segment_idx++) {
+ const Container* cur_container = segment_containers[segment_idx];
+ const char* cur_section_name = segment_section_names[segment_idx];
caspian::SectionId cur_section_id =
info->ShortSectionName(cur_section_name);
- const int cur_section_count = section_counts[section_idx];
- const std::vector<int64_t>& cur_addresses = addresses[section_idx];
- const std::vector<int32_t>& cur_sizes = sizes[section_idx];
- const std::vector<int32_t>& cur_paddings = paddings[section_idx];
- const std::vector<int32_t>& cur_path_indices = path_indices[section_idx];
+ const int cur_section_count = symbol_counts[segment_idx];
+ const std::vector<int64_t>& cur_addresses = addresses[segment_idx];
+ const std::vector<int32_t>& cur_sizes = sizes[segment_idx];
+ const std::vector<int32_t>& cur_paddings = paddings[segment_idx];
+ const std::vector<int32_t>& cur_path_indices = path_indices[segment_idx];
const std::vector<int32_t>& cur_component_indices =
- component_indices[section_idx];
+ component_indices[segment_idx];
int32_t alias_counter = 0;
for (int i = 0; i < cur_section_count; i++) {
@@ -382,6 +428,7 @@ void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info) {
new_sym.aliases_->push_back(&new_sym);
alias_counter--;
}
+ new_sym.container_ = cur_container;
}
}
@@ -407,17 +454,17 @@ void ParseDiffSizeInfo(char* file,
// Skip "DIFF" header.
char* rest = file;
rest += strlen(kDiffHeader);
- Json::Value metadata;
- ReadJsonBlob(&rest, &metadata);
+ Json::Value fields;
+ ReadJsonBlob(&rest, &fields);
- if (metadata["version"].asInt() != 1) {
+ if (fields["version"].asInt() != 1) {
std::cerr << ".sizediff version mismatch, write some upgrade code. version="
- << metadata["version"] << std::endl;
+ << fields["version"] << std::endl;
exit(1);
}
unsigned long header_len = rest - file;
- unsigned long before_len = metadata["before_length"].asUInt();
+ unsigned long before_len = fields["before_length"].asUInt();
unsigned long after_len = len - header_len - before_len;
ParseSizeInfo(rest, before_len, before);
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens.cc b/chromium/tools/binary_size/libsupersize/caspian/lens.cc
index 1c9ca5bcc83..55607f53a8b 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/lens.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens.cc
@@ -11,6 +11,7 @@
namespace {
+constexpr const char* kDefaultContainer = "(Default container)";
constexpr const char* kNoComponent = "(No component)";
bool PartialMatch(std::string_view view, const RE2& regex) {
@@ -33,6 +34,14 @@ std::string_view IdPathLens::ParentName(const BaseSymbol& symbol) {
return "";
}
+std::string_view ContainerLens::ParentName(const BaseSymbol& symbol) {
+ std::string component;
+ if (symbol.ContainerName() && *symbol.ContainerName()) {
+ return symbol.ContainerName();
+ }
+ return kDefaultContainer;
+}
+
std::string_view ComponentLens::ParentName(const BaseSymbol& symbol) {
std::string component;
if (symbol.Component() && *symbol.Component()) {
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens.h b/chromium/tools/binary_size/libsupersize/caspian/lens.h
index f3bf6fcaf69..f9243594b1b 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/lens.h
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens.h
@@ -21,6 +21,11 @@ class IdPathLens : public BaseLens {
std::string_view ParentName(const BaseSymbol& symbol) override;
};
+class ContainerLens : public BaseLens {
+ public:
+ std::string_view ParentName(const BaseSymbol& symbol) override;
+};
+
class ComponentLens : public BaseLens {
public:
std::string_view ParentName(const BaseSymbol& symbol) override;
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc b/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc
index c3bad036087..aca1693d090 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc
@@ -34,11 +34,20 @@ TEST(LensTest, TestGeneratedLensNotGenerated) {
EXPECT_EQ("Not generated", GeneratedLens().ParentName(sym));
}
-TEST(LensTest, TestGeneratedLensJavaProto) {
+TEST(LensTest, TestGeneratedLensJavaProtoFromFilename) {
Symbol sym;
sym.section_id_ = SectionId::kDex;
sym.source_path_ = "a/b/FooProto.java";
sym.flags_ |= SymbolFlag::kGeneratedSource;
+ // Java filename match is insufficient for "Java Protocol Buffers" detection.
+ EXPECT_EQ("Generated (other)", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensJavaProto) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kDex;
+ sym.source_path_ = "a/b/foo_proto_java__protoc_java.srcjar";
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
EXPECT_EQ("Java Protocol Buffers", GeneratedLens().ParentName(sym));
}
diff --git a/chromium/tools/binary_size/libsupersize/caspian/model.cc b/chromium/tools/binary_size/libsupersize/caspian/model.cc
index a2cd9a2e156..bc8f4cd23fc 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/model.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/model.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include <iostream>
#include <list>
+#include <sstream>
#include <tuple>
#include <unordered_map>
@@ -15,6 +16,21 @@
namespace caspian {
+Container::Container(const std::string& name_in) : name(name_in) {}
+Container::~Container() = default;
+Container::Container(const Container& other) = default;
+
+// static
+void Container::AssignShortNames(std::vector<Container>* containers) {
+ for (size_t i = 0; i < containers->size(); ++i) {
+ Container& c = (*containers)[i];
+ std::ostringstream oss;
+ if (!c.name.empty())
+ oss << i;
+ c.short_name = oss.str();
+ }
+}
+
BaseSymbol::~BaseSymbol() = default;
Symbol::Symbol() = default;
@@ -85,6 +101,9 @@ SectionId Symbol::Section() const {
return section_id_;
}
+const char* Symbol::ContainerName() const {
+ return container_->name.c_str();
+}
const char* Symbol::ObjectPath() const {
return object_path_;
}
@@ -187,6 +206,10 @@ SectionId DeltaSymbol::Section() const {
return (after_ ? after_ : before_)->Section();
}
+const char* DeltaSymbol::ContainerName() const {
+ return (after_ ? after_ : before_)->ContainerName();
+}
+
const char* DeltaSymbol::ObjectPath() const {
return (after_ ? after_ : before_)->ObjectPath();
}
@@ -329,6 +352,7 @@ void TreeNode::WriteIntoJson(
bool method_count_mode,
Json::Value* out) {
if (symbol) {
+ (*out)["container"] = std::string(symbol->ContainerName());
(*out)["helpme"] = std::string(symbol->Name());
(*out)["idPath"] = std::string(symbol->TemplateName());
(*out)["fullName"] = std::string(symbol->FullName());
@@ -343,7 +367,6 @@ void TreeNode::WriteIntoJson(
}
} else {
(*out)["idPath"] = id_path.ToString();
-
if (!is_sparse && !children.empty()) {
// Add tag to containers in which all child symbols were added/removed.
DiffStatus diff_status = node_stats.GetGlobalDiffStatus();
@@ -354,13 +377,12 @@ void TreeNode::WriteIntoJson(
}
(*out)["shortNameIndex"] = short_name_index;
std::string type;
- if (container_type != ContainerType::kSymbol) {
- type += static_cast<char>(container_type);
+ if (artifact_type != ArtifactType::kSymbol) {
+ type += static_cast<char>(artifact_type);
}
SectionId biggest_section = node_stats.ComputeBiggestSection();
type += static_cast<char>(biggest_section);
(*out)["type"] = type;
-
(*out)["size"] = size;
(*out)["flags"] = flags;
node_stats.WriteIntoJson(method_count_mode, &(*out)["childStats"]);
@@ -371,7 +393,6 @@ void TreeNode::WriteIntoJson(
// sending thousands of children and grandchildren to renderer.
depth = 0;
}
-
if (depth < 0 && children.size() > 1) {
(*out)["children"] = Json::Value(); // null
} else {
diff --git a/chromium/tools/binary_size/libsupersize/caspian/model.h b/chromium/tools/binary_size/libsupersize/caspian/model.h
index 1ae8671b851..3115c78cbd6 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/model.h
+++ b/chromium/tools/binary_size/libsupersize/caspian/model.h
@@ -24,7 +24,7 @@
namespace caspian {
-enum class ContainerType : char {
+enum class ArtifactType : char {
kSymbol = '\0',
kDirectory = 'D',
kComponent = 'C',
@@ -68,6 +68,20 @@ class SymbolFlag {
static const int32_t kUncompressed = 512;
};
+struct Container {
+ explicit Container(const std::string& name_in);
+ ~Container();
+ // Keep copy constructor but remove assignment operator.
+ Container(const Container& other);
+ Container& operator=(const Container& other) = delete;
+
+ static void AssignShortNames(std::vector<Container>* containers);
+
+ std::string name;
+ std::string short_name;
+ std::vector<const char*> section_names;
+};
+
class Symbol;
class BaseSymbol {
@@ -86,6 +100,7 @@ class BaseSymbol {
virtual const std::vector<Symbol*>* Aliases() const = 0;
virtual SectionId Section() const = 0;
+ virtual const char* ContainerName() const = 0;
virtual const char* ObjectPath() const = 0;
virtual const char* SourcePath() const = 0;
virtual const char* SectionName() const = 0;
@@ -173,6 +188,7 @@ class Symbol : public BaseSymbol {
const std::vector<Symbol*>* Aliases() const override;
SectionId Section() const override;
+ const char* ContainerName() const override;
const char* ObjectPath() const override;
const char* SourcePath() const override;
const char* SectionName() const override;
@@ -200,7 +216,9 @@ class Symbol : public BaseSymbol {
const char* object_path_ = nullptr;
const char* source_path_ = nullptr;
const char* component_ = nullptr;
+
std::vector<Symbol*>* aliases_ = nullptr;
+ const Container* container_ = nullptr;
// The SizeInfo the symbol was constructed from. Primarily used for
// allocating commonly-reused strings in a context where they won't outlive
@@ -227,6 +245,7 @@ class DeltaSymbol : public BaseSymbol {
const std::vector<Symbol*>* Aliases() const override;
SectionId Section() const override;
+ const char* ContainerName() const override;
const char* ObjectPath() const override;
const char* SourcePath() const override;
const char* SectionName() const override;
@@ -251,7 +270,7 @@ struct BaseSizeInfo {
virtual ~BaseSizeInfo();
virtual bool IsSparse() const = 0;
- Json::Value metadata;
+ Json::Value fields;
std::deque<std::string> owned_strings;
SectionId ShortSectionName(const char* section_name);
};
@@ -263,11 +282,12 @@ struct SizeInfo : BaseSizeInfo {
SizeInfo& operator=(const SizeInfo& other) = delete;
bool IsSparse() const override;
+ std::vector<Container> containers;
+
// Entries in |raw_symbols| hold pointers to this data.
std::vector<const char*> object_paths;
std::vector<const char*> source_paths;
std::vector<const char*> components;
- std::vector<const char*> section_names;
std::vector<char> raw_decompressed;
std::vector<Symbol> raw_symbols;
@@ -352,7 +372,7 @@ struct TreeNode {
int32_t flags = 0;
int32_t short_name_index = 0;
- ContainerType container_type = ContainerType::kSymbol;
+ ArtifactType artifact_type = ArtifactType::kSymbol;
std::vector<TreeNode*> children;
TreeNode* parent = nullptr;
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc
index 63d6f4e4a31..c1b511ca566 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc
@@ -46,7 +46,7 @@ void TreeBuilder::Build(std::unique_ptr<BaseLens> lens,
sep_ = separator;
// Initialize tree root.
- root_.container_type = ContainerType::kDirectory;
+ root_.artifact_type = ArtifactType::kDirectory;
root_.id_path = GroupedPath{"", ""};
_parents[root_.id_path] = &root_;
@@ -158,7 +158,7 @@ void TreeBuilder::AddFileEntry(GroupedPath grouped_path,
continue;
}
TreeNode* symbol_node = new TreeNode();
- symbol_node->container_type = ContainerType::kSymbol;
+ symbol_node->artifact_type = ArtifactType::kSymbol;
symbol_node->id_path =
GroupedPath{"", sym->IsDex() ? sym->TemplateName() : sym->FullName()};
symbol_node->size = sym->Pss();
@@ -174,7 +174,7 @@ void TreeBuilder::AddFileEntry(GroupedPath grouped_path,
TreeNode* file_node = _parents[grouped_path];
if (file_node == nullptr || grouped_path.path.empty()) {
file_node = new TreeNode();
- file_node->container_type = ContainerType::kFile;
+ file_node->artifact_type = ArtifactType::kFile;
file_node->id_path = grouped_path;
if (file_node->id_path.path.empty()) {
@@ -208,7 +208,7 @@ TreeNode* TreeBuilder::GetOrMakeParentNode(TreeNode* child_node) {
parent->id_path = parent_path;
parent->short_name_index =
parent->id_path.size() - parent->id_path.ShortName(sep_).size();
- parent->container_type = ContainerTypeFromChild(child_node->id_path);
+ parent->artifact_type = ArtifactTypeFromChild(child_node->id_path);
}
if (child_node->parent != parent) {
AttachToParent(child_node, parent);
@@ -237,14 +237,13 @@ void TreeBuilder::AttachToParent(TreeNode* child, TreeNode* parent) {
}
}
-ContainerType TreeBuilder::ContainerTypeFromChild(
- GroupedPath child_path) const {
+ArtifactType TreeBuilder::ArtifactTypeFromChild(GroupedPath child_path) const {
// When grouping by component, id paths use '>' separators for components and
// '/' separators for the file tree - e.g. Blink>third_party/blink/common...
// We know that Blink is a component because its children have the form
// Blink>third_party rather than Blink/third_party.
- return child_path.IsTopLevelPath() ? ContainerType::kComponent
- : ContainerType::kDirectory;
+ return child_path.IsTopLevelPath() ? ArtifactType::kComponent
+ : ArtifactType::kDirectory;
}
bool TreeBuilder::ShouldIncludeSymbol(const GroupedPath& id_path,
@@ -258,7 +257,7 @@ bool TreeBuilder::ShouldIncludeSymbol(const GroupedPath& id_path,
}
void TreeBuilder::JoinDexMethodClasses(TreeNode* node) {
- const bool is_file_node = node->container_type == ContainerType::kFile;
+ const bool is_file_node = node->artifact_type == ArtifactType::kFile;
const bool has_dex =
node->node_stats.child_stats.count(SectionId::kDex) ||
node->node_stats.child_stats.count(SectionId::kDexMethod);
@@ -312,7 +311,7 @@ void TreeBuilder::JoinDexMethodClasses(TreeNode* node) {
short_name_index + node->id_path.size() + 1;
class_node->src_path = node->src_path;
class_node->component = node->component;
- class_node->container_type = ContainerType::kJavaClass;
+ class_node->artifact_type = ArtifactType::kJavaClass;
_parents[class_node->id_path] = class_node;
}
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h
index bdeb766e3f6..2a1e4cca224 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h
@@ -39,7 +39,7 @@ class TreeBuilder {
void AttachToParent(TreeNode* child, TreeNode* parent);
- ContainerType ContainerTypeFromChild(GroupedPath child_path) const;
+ ArtifactType ArtifactTypeFromChild(GroupedPath child_path) const;
bool ShouldIncludeSymbol(const GroupedPath& id_path,
const BaseSymbol& symbol) const;
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc b/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc
index 4a11fd3f2f9..7ca9b79fa53 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc
@@ -147,8 +147,7 @@ TEST(TreeBuilderTest, TestJoinDexMethodClasses) {
EXPECT_EQ(1u, class_symbol["children"].size());
Json::Value method_symbol = builder.Open("a/b/c/zL2")["children"][0];
- EXPECT_EQ("foo(int,android.os.Parcel,android.os.Parcel,int): boolean",
- ShortName(method_symbol));
+ EXPECT_EQ("foo", ShortName(method_symbol));
EXPECT_EQ(0u, method_symbol["children"].size());
}
} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch b/chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch
index 2600e02ab63..ca20f29a561 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch
+++ b/chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch
@@ -1,24 +1,25 @@
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index f89e7e831b79..ebfb4ba88b35 100644
+index e011502180b5..9e55fcd6c74f 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
-@@ -291,9 +291,10 @@ is_ios = current_os == "ios"
+@@ -291,10 +291,11 @@ is_ios = current_os == "ios"
is_linux = current_os == "chromeos" || current_os == "linux"
is_mac = current_os == "mac"
is_nacl = current_os == "nacl"
+is_wasm = current_os == "wasm"
is_win = current_os == "win" || current_os == "winuwp"
+ is_apple = is_ios || is_mac
-is_posix = !is_win && !is_fuchsia
+is_posix = !is_win && !is_fuchsia && !is_wasm
# =============================================================================
# SOURCES FILTERS
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 912906e15e76..e00bf81e6b20 100644
+index 0b5de5cd7173..ff761c9b46b3 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -564,6 +564,19 @@ config("compiler") {
+@@ -581,6 +581,19 @@ config("compiler") {
ldflags += [ "-stdlib=libc++" ]
}
@@ -38,7 +39,16 @@ index 912906e15e76..e00bf81e6b20 100644
# Add flags for link-time optimization. These flags enable
# optimizations/transformations that require whole-program visibility at link
# time, so they need to be applied to all translation units, and we may end up
-@@ -1507,7 +1520,8 @@ config("default_warnings") {
+@@ -704,7 +717,7 @@ config("compiler") {
+ if (use_lld) {
+ if (is_win) {
+ ldflags += [ "/call-graph-profile-sort:no" ]
+- } else {
++ } else if (!is_wasm) {
+ ldflags += [ "-Wl,--no-call-graph-profile-sort" ]
+ }
+ }
+@@ -1510,7 +1523,8 @@ config("default_warnings") {
cflags += [ "-Wno-nonportable-include-path" ]
}
@@ -48,9 +58,9 @@ index 912906e15e76..e00bf81e6b20 100644
# Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
# recognize.
cflags += [
-@@ -2303,6 +2317,9 @@ config("symbols") {
- cflags += [ "-fno-standalone-debug" ]
- }
+@@ -2275,6 +2289,9 @@ config("symbols") {
+ "-debug-info-kind=constructor",
+ ]
}
+ } else if (is_wasm) {
+ cflags = [ "-g4" ]
@@ -59,10 +69,10 @@ index 912906e15e76..e00bf81e6b20 100644
cflags = []
if (is_mac && enable_dsyms) {
diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni
-index 2b6f05231c63..134e9ee77107 100644
+index d556b0e0927e..f4597ab04037 100644
--- a/build/toolchain/toolchain.gni
+++ b/build/toolchain/toolchain.gni
-@@ -58,6 +58,9 @@ if (is_mac || is_ios) {
+@@ -59,6 +59,9 @@ if (is_apple) {
shlib_extension = ".so"
} else if (is_win) {
shlib_extension = ".dll"
@@ -72,98 +82,40 @@ index 2b6f05231c63..134e9ee77107 100644
} else {
assert(false, "Platform not supported")
}
-diff --git a/tools/binary_size/libsupersize/caspian/wasmbuild.patch b/tools/binary_size/libsupersize/caspian/wasmbuild.patch
-index 065bb27f795a..e69de29bb2d1 100644
---- a/tools/binary_size/libsupersize/caspian/wasmbuild.patch
-+++ b/tools/binary_size/libsupersize/caspian/wasmbuild.patch
-@@ -1,90 +0,0 @@
--diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
--index f89e7e831b79..ebfb4ba88b35 100644
----- a/build/config/BUILDCONFIG.gn
--+++ b/build/config/BUILDCONFIG.gn
--@@ -291,9 +291,10 @@ is_ios = current_os == "ios"
-- is_linux = current_os == "chromeos" || current_os == "linux"
-- is_mac = current_os == "mac"
-- is_nacl = current_os == "nacl"
--+is_wasm = current_os == "wasm"
-- is_win = current_os == "win" || current_os == "winuwp"
--
---is_posix = !is_win && !is_fuchsia
--+is_posix = !is_win && !is_fuchsia && !is_wasm
--
-- # =============================================================================
-- # SOURCES FILTERS
--diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--index 0f91977e1352..acd5ab11f111 100644
----- a/build/config/compiler/BUILD.gn
--+++ b/build/config/compiler/BUILD.gn
--@@ -1508,7 +1508,7 @@ config("default_warnings") {
-- cflags += [ "-Wno-nonportable-include-path" ]
-- }
--
--- if (current_toolchain == host_toolchain || !use_xcode_clang) {
--+ if ((current_toolchain == host_toolchain || !use_xcode_clang) && !is_wasm) {
-- # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
-- # recognize.
-- cflags += [
--@@ -2296,6 +2296,9 @@ config("symbols") {
-- cflags += [ "-fno-standalone-debug" ]
-- }
-- }
--+ } else if (is_wasm) {
--+ cflags = [ "-g4" ]
--+ ldflags = [ "-g4" ]
-- } else {
-- cflags = []
-- if (is_mac && enable_dsyms) {
--diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni
--index 3edc9762907d..ab483e44a11c 100644
----- a/build/toolchain/toolchain.gni
--+++ b/build/toolchain/toolchain.gni
--@@ -58,6 +58,9 @@ if (is_mac || is_ios) {
-- shlib_extension = ".so"
-- } else if (is_win) {
-- shlib_extension = ".dll"
--+} else if (is_wasm) {
--+ # WebAssembly does not stably support shared libraries. (as of Oct 2019)
--+ shlib_extension = ".wasm"
-- } else {
-- assert(false, "Platform not supported")
-- }
--diff --git a/build/toolchain/wasm/BUILD.gn b/build/toolchain/wasm/BUILD.gn
--new file mode 100644
--index 000000000000..15bc7a4ea258
----- /dev/null
--+++ b/build/toolchain/wasm/BUILD.gn
--@@ -0,0 +1,31 @@
--+# 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.
--+
--+import("//build/toolchain/gcc_toolchain.gni")
--+
--+gcc_toolchain("wasm") {
--+ cc = "emcc"
--+ cxx = "em++"
--+ nm = "emcc"
--+ ar = "emar"
--+ ld = cxx
--+
--+ toolchain_args = {
--+ current_cpu = "wasm"
--+ current_os = "wasm"
--+
--+ is_clang = true
--+ use_goma = false
--+ use_debug_fission = false
--+ clang_use_chrome_plugins = false
--+ use_allocator_shim = false
--+ is_component_build = false
--+ }
--+ extra_ldflags = "-s BINARYEN_METHOD='native-wasm'"
--+ executable_extension = ".js"
--+ link_outputs = [
--+ "{{output_dir}}/{{target_output_name}}.wasm",
--+ "{{output_dir}}/{{target_output_name}}.wasm.map",
--+ ]
--+}
+diff --git a/build/toolchain/wasm/BUILD.gn b/build/toolchain/wasm/BUILD.gn
+new file mode 100644
+index 000000000000..15bc7a4ea258
+--- /dev/null
++++ b/build/toolchain/wasm/BUILD.gn
+@@ -0,0 +1,31 @@
++# 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.
++
++import("//build/toolchain/gcc_toolchain.gni")
++
++gcc_toolchain("wasm") {
++ cc = "emcc"
++ cxx = "em++"
++ nm = "emcc"
++ ar = "emar"
++ ld = cxx
++
++ toolchain_args = {
++ current_cpu = "wasm"
++ current_os = "wasm"
++
++ is_clang = true
++ use_goma = false
++ use_debug_fission = false
++ clang_use_chrome_plugins = false
++ use_allocator_shim = false
++ is_component_build = false
++ }
++ extra_ldflags = "-s BINARYEN_METHOD='native-wasm'"
++ executable_extension = ".js"
++ link_outputs = [
++ "{{output_dir}}/{{target_output_name}}.wasm",
++ "{{output_dir}}/{{target_output_name}}.wasm.map",
++ ]
++}
diff --git a/chromium/tools/binary_size/libsupersize/diff.py b/chromium/tools/binary_size/libsupersize/diff.py
index b7035b6474c..8d2efbda849 100644
--- a/chromium/tools/binary_size/libsupersize/diff.py
+++ b/chromium/tools/binary_size/libsupersize/diff.py
@@ -58,7 +58,7 @@ def _Key4(s):
return s.section, s.full_name
-def _MatchSymbols(before, after, key_func, padding_by_section_name):
+def _MatchSymbols(before, after, key_func, padding_by_segment):
logging.debug('%s: Building symbol index', key_func.__name__)
before_symbols_by_key = collections.defaultdict(list)
for s in before:
@@ -74,8 +74,9 @@ def _MatchSymbols(before, after, key_func, padding_by_section_name):
before_sym = before_sym.pop(0)
# Padding tracked in aggregate, except for padding-only symbols.
if before_sym.size_without_padding != 0:
- padding_by_section_name[before_sym.section_name] += (
- after_sym.padding_pss - before_sym.padding_pss)
+ segment = (before_sym.container_name, before_sym.section_name)
+ padding_by_segment[segment] += (after_sym.padding_pss -
+ before_sym.padding_pss)
delta_symbols.append(models.DeltaSymbol(before_sym, after_sym))
else:
unmatched_after.append(after_sym)
@@ -89,20 +90,19 @@ def _MatchSymbols(before, after, key_func, padding_by_section_name):
return delta_symbols, unmatched_before, unmatched_after
-def _DiffSymbolGroups(before, after):
+def _DiffSymbolGroups(containers, 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)
+ # information entirely, store it in aggregate. These aggregations are grouped
+ # by "segment names", which are (container name, section name) tuples.
+ padding_by_segment = collections.defaultdict(float)
# Usually >90% of symbols are exact matches, so all of the time is spent in
# this first pass.
all_deltas, before, after = _MatchSymbols(before, after, _Key1,
- padding_by_section_name)
+ padding_by_segment)
for key_func in (_Key2, _Key3, _Key4):
- delta_syms, before, after = _MatchSymbols(
- before, after, key_func, padding_by_section_name)
+ delta_syms, before, after = _MatchSymbols(before, after, key_func,
+ padding_by_segment)
all_deltas.extend(delta_syms)
logging.debug('Creating %d unmatched symbols', len(after) + len(before))
@@ -111,10 +111,13 @@ def _DiffSymbolGroups(before, after):
for before_sym in before:
all_deltas.append(models.DeltaSymbol(before_sym, None))
+ container_from_name = {c.name: c for c in containers}
+
# Create a DeltaSymbol to represent the zero'd out padding of matched symbols.
- for section_name, padding in padding_by_section_name.items():
+ for (container_name, section_name), padding in padding_by_segment.items():
if padding != 0:
after_sym = models.Symbol(section_name, padding)
+ after_sym.container = container_from_name[container_name]
# This is after _NormalizeNames() is called, so set |full_name|,
# |template_name|, and |name|.
after_sym.SetName("Overhead: aggregate padding of diff'ed symbols")
@@ -179,7 +182,8 @@ def Diff(before, after, sort=False):
assert isinstance(before, models.SizeInfo)
assert isinstance(after, models.SizeInfo)
containers_diff = _DiffContainerLists(before.containers, after.containers)
- symbol_diff = _DiffSymbolGroups(before.raw_symbols, after.raw_symbols)
+ symbol_diff = _DiffSymbolGroups(containers_diff, before.raw_symbols,
+ after.raw_symbols)
ret = models.DeltaSizeInfo(before, after, containers_diff, symbol_diff)
if sort:
diff --git a/chromium/tools/binary_size/libsupersize/file_format.py b/chromium/tools/binary_size/libsupersize/file_format.py
index a65ac0f2f7b..e8367cede23 100644
--- a/chromium/tools/binary_size/libsupersize/file_format.py
+++ b/chromium/tools/binary_size/libsupersize/file_format.py
@@ -304,8 +304,8 @@ def _SaveSizeInfoToFile(size_info,
w.WriteLine(comp)
w.LogSize('components')
- # Symbol counts by container and section.
- symbol_group_by_section = raw_symbols.GroupedByContainerAndSectionName()
+ # Symbol counts by "segments", defined as (container, section) tuples.
+ symbol_group_by_segment = raw_symbols.GroupedByContainerAndSectionName()
if has_multi_containers:
container_name_to_index = {
c.name: i
@@ -313,10 +313,10 @@ def _SaveSizeInfoToFile(size_info,
}
w.WriteLine('\t'.join('<%d>%s' %
(container_name_to_index[g.name[0]], g.name[1])
- for g in symbol_group_by_section))
+ for g in symbol_group_by_segment))
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))
+ w.WriteLine('\t'.join(g.name[1] for g in symbol_group_by_segment))
+ w.WriteLine('\t'.join(str(len(g)) for g in symbol_group_by_segment))
def gen_delta(gen, prev_value=0):
"""Adapts a generator of numbers to deltas."""
@@ -327,12 +327,12 @@ def _SaveSizeInfoToFile(size_info,
def write_groups(func, delta=False):
"""Write func(symbol) for each symbol in each symbol group.
- Each line written represents one symbol group in |symbol_group_by_section|.
+ Each line written represents one symbol group in |symbol_group_by_segment|.
The values in each line are space separated and are the result of calling
|func| with the Nth symbol in the group.
If |delta| is True, the differences in values are written instead."""
- for group in symbol_group_by_section:
+ for group in symbol_group_by_segment:
gen = map(func, group)
w.WriteNumberList(gen_delta(gen) if delta else gen)
@@ -356,7 +356,7 @@ def _SaveSizeInfoToFile(size_info,
w.LogSize('component indices')
prev_aliases = None
- for group in symbol_group_by_section:
+ for group in symbol_group_by_segment:
for symbol in group:
w.WriteString(symbol.full_name)
if symbol.aliases and symbol.aliases is not prev_aliases:
@@ -453,23 +453,23 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
# Eat empty line.
_ReadLine(lines)
- # Path list
- num_path_tuples = int(_ReadLine(lines)) # Number of paths in list
- # Read the path list values and store for later
+ # Path 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)
]
- # Component list
+ # Component list.
if has_components:
- num_components = int(_ReadLine(lines)) # number of components in list
+ num_components = int(_ReadLine(lines)) # Number of components in list.
components = [_ReadLine(lines) for _ in range(num_components)]
- # Symbol counts by section.
- container_and_section_names = _ReadValuesFromLine(lines, split='\t')
+ # Symbol counts by "segments", defined as (container, section) tuples.
+ segment_names = _ReadValuesFromLine(lines, split='\t')
symbol_counts = [int(c) for c in _ReadValuesFromLine(lines, split='\t')]
- # Addresses, sizes, paddings, path indices, component indices
+ # Addresses, sizes, paddings, path indices, component indices.
def read_numeric(delta=False):
"""Read numeric values, where each line corresponds to a symbol group.
@@ -493,28 +493,28 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
if has_padding:
paddings = read_numeric(delta=False)
else:
- paddings = [None] * len(container_and_section_names)
+ paddings = [None] * len(segment_names)
path_indices = read_numeric(delta=True)
if has_components:
component_indices = read_numeric(delta=True)
else:
- component_indices = [None] * len(container_and_section_names)
+ component_indices = [None] * len(segment_names)
raw_symbols = [None] * sum(symbol_counts)
symbol_idx = 0
- 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,
+ for (cur_segment_name, cur_symbol_count, cur_addresses, cur_sizes,
+ cur_paddings, cur_path_indices,
+ cur_component_indices) in zip(segment_names, symbol_counts, addresses,
+ sizes, paddings, path_indices,
component_indices):
if has_multi_containers:
# Extract '<cur_container_idx_str>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))
+ assert cur_segment_name.startswith('<')
+ cur_container_idx_str, cur_section_name = (cur_segment_name[1:].split(
+ '>', 1))
cur_container = containers[int(cur_container_idx_str)]
else:
- cur_section_name = cur_container_and_section_name
+ cur_section_name = cur_segment_name
cur_container = containers[0]
alias_counter = 0
for i in range(cur_symbol_count):
@@ -542,7 +542,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
flags = int(flags_part, 16) if flags_part else 0
num_aliases = int(aliases_part, 16) if aliases_part else 0
- # Skip the constructor to avoid default value checks
+ # 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
@@ -554,12 +554,12 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
component = components[cur_component_indices[i]] if has_components else ''
new_sym.component = component
new_sym.flags = flags
- # Derived
+ # Derived.
if cur_paddings:
new_sym.padding = cur_paddings[i]
new_sym.size += new_sym.padding
else:
- # This will be computed during CreateSizeInfo()
+ # This will be computed during CreateSizeInfo().
new_sym.padding = 0
new_sym.template_name = ''
new_sym.name = ''
diff --git a/chromium/tools/binary_size/libsupersize/path_util.py b/chromium/tools/binary_size/libsupersize/path_util.py
index bf123b4e193..7712d54e53d 100644
--- a/chromium/tools/binary_size/libsupersize/path_util.py
+++ b/chromium/tools/binary_size/libsupersize/path_util.py
@@ -6,6 +6,7 @@
import abc
import distutils.spawn
+import json
import logging
import os
@@ -134,11 +135,11 @@ class ToolPrefixFinder(_PathFinder):
def _LoadBuildVars(output_directory):
- build_vars_path = os.path.join(output_directory, 'build_vars.txt')
+ build_vars_path = os.path.join(output_directory, 'build_vars.json')
if os.path.exists(build_vars_path):
with open(build_vars_path) as f:
- return dict(l.rstrip().split('=', 1) for l in f if '=' in l)
- return dict()
+ return json.load(f)
+ return {}
def GetSrcRootFromOutputDirectory(output_directory):
diff --git a/chromium/tools/binary_size/libsupersize/static/index.js b/chromium/tools/binary_size/libsupersize/static/index.js
index 497cbdc3122..329fc44ef91 100644
--- a/chromium/tools/binary_size/libsupersize/static/index.js
+++ b/chromium/tools/binary_size/libsupersize/static/index.js
@@ -29,7 +29,8 @@ function setSubmitListener(form, fetchDataUrl) {
form.addEventListener('submit', event => {
event.preventDefault();
const dataUrl = fetchDataUrl();
- window.open(`${FIREBASE_HOST}/viewer.html?load_url=${dataUrl}`);
+ window.open(
+ `${FIREBASE_HOST}/viewer.html?load_url=${dataUrl}&authenticate=1`);
});
}
diff --git a/chromium/tools/binary_size/libsupersize/static/infocard-ui.js b/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
index 2b508fc07bb..2e85ffc52db 100644
--- a/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
+++ b/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
@@ -74,37 +74,37 @@ const displayInfocard = (() => {
}
/**
- * Updates the path text, which shows the idPath for directory nodes, and
- * srcPath / component for symbol nodes.
+ * Updates the details text, which shows the idPath for directory nodes, or
+ * {container (if nonempty), srcPath, component, fullName} for symbol nodes.
* @param {TreeNode} node
*/
- _updatePaths(node) {
- let pathFragment;
+ _updateDetails(node) {
+ // List of window.Nodes, but called |elements| to avoid confusion.
+ const elements = [];
+
// srcPath is set only for leaf nodes.
if (node.srcPath) {
- pathFragment = dom.createFragment([
- dom.textElement('span', 'Path: ', 'symbol-name-info'),
- document.createTextNode(node.srcPath),
- document.createElement('br'),
- dom.textElement('span', 'Component: ', 'symbol-name-info'),
- document.createTextNode(node.component || '(No component)'),
- document.createElement('br'),
- dom.textElement('span', 'Full Name: ', 'symbol-name-info'),
- document.createTextNode(node.fullName || ''),
- document.createElement('br'),
- ]);
+ const add_field = (title, text) => {
+ const div = document.createElement('div');
+ div.appendChild(dom.textElement('span', title, 'symbol-name-info'));
+ div.appendChild(document.createTextNode(text));
+ elements.push(div);
+ };
+ if (node.container !== '') add_field('Container: ', node.container);
+ add_field('Path: ', node.srcPath);
+ add_field('Component: ', node.component || '(No component)');
+ add_field('Full Name: ', node.fullName || '');
+
} else {
const path = node.idPath.slice(0, node.shortNameIndex);
+ elements.push(document.createTextNode(path));
const boldShortName = dom.textElement(
'span', node.fullName || shortName(node), 'symbol-name-info');
- pathFragment = dom.createFragment([
- document.createTextNode(path),
- boldShortName,
- ]);
+ elements.push(boldShortName);
}
- // Update DOM
- dom.replace(this._pathInfo, pathFragment);
+ // Update DOM.
+ dom.replace(this._pathInfo, dom.createFragment(elements));
}
/**
@@ -158,7 +158,7 @@ const displayInfocard = (() => {
// Update DOM
this._updateSize(node);
- this._updatePaths(node);
+ this._updateDetails(node);
if (type !== this._lastType) {
// No need to create a new icon if it is identical.
const icon = getIconTemplate(type);
@@ -191,7 +191,7 @@ const displayInfocard = (() => {
}
}
- class ContainerInfocard extends Infocard {
+ class ArtifactInfocard extends Infocard {
constructor(id) {
super(id);
this._tableBody = this._infocard.querySelector('tbody');
@@ -199,7 +199,7 @@ const displayInfocard = (() => {
this._ctx = this._infocard.querySelector('canvas').getContext('2d');
/**
- * @type {{[type:string]: HTMLTableRowElement}} Rows in the container
+ * @type {{[type:string]: HTMLTableRowElement}} Rows in the artifact
* infocard that represent a particular symbol type.
*/
this._infoRows = {
@@ -236,8 +236,8 @@ const displayInfocard = (() => {
icon.classList.add('canvas-overlay');
}
- _flagsString(containerNode) {
- const flags = super._flagsString(containerNode);
+ _flagsString(artifactNode) {
+ const flags = super._flagsString(artifactNode);
return flags ? `- contains ${flags}` : '';
}
@@ -279,9 +279,9 @@ const displayInfocard = (() => {
* Update a row in the breakdown table with the given values.
* @param {HTMLTableRowElement} row
* @param {{size:number,count:number} | null} stats Total size of the
- * symbols of a given type in a container.
+ * symbols of a given type in the artifact.
* @param {number} percentage How much the size represents in relation to
- * the total size of the symbols in the container.
+ * the total size of the symbols in the artifact.
*/
_updateBreakdownRow(row, stats, percentage) {
if (stats == null || stats.size === 0) {
@@ -340,12 +340,12 @@ const displayInfocard = (() => {
}
/**
- * Update DOM for the container infocard
- * @param {TreeNode} containerNode
+ * Update DOM for the artifact infocard
+ * @param {TreeNode} artifactNode
*/
- _updateInfocard(containerNode) {
+ _updateInfocard(artifactNode) {
const extraRows = Object.assign({}, this._infoRows);
- const statsEntries = Object.entries(containerNode.childStats).sort(
+ const statsEntries = Object.entries(artifactNode.childStats).sort(
(a, b) => b[1].size - a[1].size
);
const diffMode = state.has('diff_mode');
@@ -376,7 +376,7 @@ const displayInfocard = (() => {
}
// Update DOM
- super._updateInfocard(containerNode);
+ super._updateInfocard(artifactNode);
let angleStart = 0;
for (const [type, stats] of statsEntries) {
delete extraRows[type];
@@ -404,7 +404,7 @@ const displayInfocard = (() => {
}
}
- const _containerInfo = new ContainerInfocard('infocard-container');
+ const _artifactInfo = new ArtifactInfocard('infocard-artifact');
const _symbolInfo = new SymbolInfocard('infocard-symbol');
/**
@@ -412,14 +412,14 @@ const displayInfocard = (() => {
* @param {TreeNode} node
*/
function displayInfocard(node) {
- if (_CONTAINER_TYPE_SET.has(node.type[0])) {
- _containerInfo.updateInfocard(node);
- _containerInfo.setHidden(false);
+ if (_ARTIFACT_TYPE_SET.has(node.type[0])) {
+ _artifactInfo.updateInfocard(node);
+ _artifactInfo.setHidden(false);
_symbolInfo.setHidden(true);
} else {
_symbolInfo.updateInfocard(node);
_symbolInfo.setHidden(false);
- _containerInfo.setHidden(true);
+ _artifactInfo.setHidden(true);
}
}
diff --git a/chromium/tools/binary_size/libsupersize/static/infocard.css b/chromium/tools/binary_size/libsupersize/static/infocard.css
index 385cdf4ae08..60fe8cad9ed 100644
--- a/chromium/tools/binary_size/libsupersize/static/infocard.css
+++ b/chromium/tools/binary_size/libsupersize/static/infocard.css
@@ -19,8 +19,8 @@
opacity: 0;
transition: 0.3s ease transform, 0.3s ease opacity, 0.3s ease visibility;
}
-.tree-container:hover ~ .infocards,
-.tree-container.focused ~ .infocards,
+.tree-view:hover ~ .infocards,
+.tree-view.focused ~ .infocards,
.infocards:hover {
visibility: visible;
opacity: 1;
@@ -31,7 +31,7 @@
display: grid;
padding: 16px;
}
-.infocard-container {
+.infocard-artifact {
grid-template-areas: 'header icon' 'type type';
grid-template-columns: 1fr 80px;
grid-column-gap: 16px;
@@ -58,7 +58,7 @@
padding: 8px 2px 8px 8px;
border-radius: 50%;
}
-.container-icon-info {
+.artifact-icon-info {
position: relative;
padding: 0;
height: 80px;
@@ -78,7 +78,7 @@
.symbol-name-info {
font-weight: 500;
}
-.type-info-container {
+.type-info-artifact {
grid-area: type;
margin-bottom: 0;
}
diff --git a/chromium/tools/binary_size/libsupersize/static/main.css b/chromium/tools/binary_size/libsupersize/static/main.css
index 61e2ee257c1..629669e05b3 100644
--- a/chromium/tools/binary_size/libsupersize/static/main.css
+++ b/chromium/tools/binary_size/libsupersize/static/main.css
@@ -66,7 +66,7 @@ body {
padding: 0 48px;
margin-bottom: 240px;
}
-.tree-container {
+.tree-view {
margin: 0 auto;
max-width: 1200px;
}
diff --git a/chromium/tools/binary_size/libsupersize/static/shared.js b/chromium/tools/binary_size/libsupersize/static/shared.js
index 0eb4d498148..9cc5c6735c9 100644
--- a/chromium/tools/binary_size/libsupersize/static/shared.js
+++ b/chromium/tools/binary_size/libsupersize/static/shared.js
@@ -12,7 +12,7 @@
/**
* @typedef {object} TreeNode Node object used to represent the file tree. Can
- * represent either a container or a symbol.
+ * represent either an artifact or a symbol.
* @prop {TreeNode[] | null} children Child tree nodes. Null values indicate
* that there are children, but that they haven't been loaded in yet. Empty
* arrays indicate this is a leaf node.
@@ -53,11 +53,18 @@
* include DOM elements for styling.
* @prop {number} value The size number used to create the other strings.
*/
+
/**
* @typedef {(node: TreeNode, unit: string) => GetSizeResult} GetSize
*/
/**
+ * @typedef {object} SizeProperties Properties loaded from .size / .sizediff
+ * files.
+ * @prop {boolean} isMultiContainer Whether multiple containers exist.
+ */
+
+/**
* Abberivated keys used by FileEntrys in the JSON data file. These must match
* _COMPACT_*_KEY variables in html_report.py.
*/
@@ -109,15 +116,15 @@ const _DIFF_STATUSES = Object.freeze({
});
/**
- * Special types used by containers, such as folders and files.
+ * Special types used by artifacts, such as folders and files.
*/
-const _CONTAINER_TYPES = {
+const _ARTIFACT_TYPES = {
DIRECTORY: 'D',
COMPONENT: 'C',
FILE: 'F',
JAVA_CLASS: 'J',
};
-const _CONTAINER_TYPE_SET = new Set(Object.values(_CONTAINER_TYPES));
+const _ARTIFACT_TYPE_SET = new Set(Object.values(_ARTIFACT_TYPES));
/** Type for a code/.text symbol */
const _CODE_SYMBOL_TYPE = 't';
@@ -128,7 +135,7 @@ const _DEX_SYMBOL_TYPE = 'x';
/** Type for an 'other' symbol */
const _OTHER_SYMBOL_TYPE = 'o';
-/** Set of all known symbol types. Container types are not included. */
+/** Set of all known symbol types. Artifact types are not included. */
const _SYMBOL_TYPE_SET = new Set('bdrtRxmopP');
/** Name used by a directory created to hold symbols with no name. */
diff --git a/chromium/tools/binary_size/libsupersize/static/state.js b/chromium/tools/binary_size/libsupersize/static/state.js
index 6b1d5159011..df2f5e7c3a1 100644
--- a/chromium/tools/binary_size/libsupersize/static/state.js
+++ b/chromium/tools/binary_size/libsupersize/static/state.js
@@ -10,7 +10,7 @@
* Methods for manipulating the state and the DOM of the page
*/
-/** @type {HTMLFormElement} Form containing options and filters */
+/** @type {HTMLFormElement} Form with options and filters */
const form = document.getElementById('options');
/** @type {HTMLInputElement} */
@@ -19,7 +19,7 @@ const methodCountInput = form.elements.namedItem('method_count');
/** Utilities for working with the DOM */
const dom = {
/**
- * Create a document fragment from the given nodes
+ * Creates a document fragment from the given nodes.
* @param {Iterable<Node>} nodes
* @returns {DocumentFragment}
*/
@@ -30,7 +30,7 @@ const dom = {
},
/**
* Removes all the existing children of `parent` and inserts
- * `newChild` in their place
+ * `newChild` in their place.
* @param {Node} parent
* @param {Node | null} newChild
*/
@@ -171,7 +171,7 @@ function _startListeners() {
const _SHOW_OPTIONS_STORAGE_KEY = 'show-options';
/** @type {HTMLFieldSetElement} */
- const typesFilterContainer = document.getElementById('types-filter');
+ const typesFilterElement = document.getElementById('types-filter');
/** @type {HTMLFieldSetElement} */
const byteunit = form.elements.namedItem('byteunit');
/** @type {HTMLCollectionOf<HTMLInputElement>} */
@@ -201,11 +201,11 @@ function _startListeners() {
function setMethodCountModeUI() {
if (methodCountInput.checked) {
byteunit.setAttribute('disabled', '');
- typesFilterContainer.setAttribute('disabled', '');
+ typesFilterElement.setAttribute('disabled', '');
sizeHeader.textContent = 'Methods';
} else {
byteunit.removeAttribute('disabled');
- typesFilterContainer.removeAttribute('disabled');
+ typesFilterElement.removeAttribute('disabled');
sizeHeader.textContent = 'Size';
}
}
diff --git a/chromium/tools/binary_size/libsupersize/static/tree-ui.js b/chromium/tools/binary_size/libsupersize/static/tree-ui.js
index 2b5a989d140..9158b3262f8 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-ui.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-ui.js
@@ -21,9 +21,9 @@ const newTreeElement = (() => {
/** @type {HTMLTemplateElement} Template for leaves in the tree */
const _leafTemplate = document.getElementById('treenode-symbol');
/** @type {HTMLTemplateElement} Template for trees */
- const _treeTemplate = document.getElementById('treenode-container');
+ const _treeTemplate = document.getElementById('treenode-template');
- /** @type {HTMLUListElement} Symbol tree container */
+ /** @type {HTMLUListElement} Symbol tree element */
const _symbolTree = document.getElementById('symboltree');
/**
@@ -82,7 +82,7 @@ const newTreeElement = (() => {
async function _toggleTreeElement(event) {
event.preventDefault();
- // See `#treenode-container` for the relation of these elements.
+ // See `#treenode-template` for the relation of these elements.
const link = /** @type {HTMLAnchorElement} */ (event.currentTarget);
const treeitem = /** @type {HTMLLIElement} */ (link.parentElement);
const group = /** @type {HTMLUListElement} */ (link.nextElementSibling);
@@ -135,7 +135,7 @@ const newTreeElement = (() => {
/**
* @type {HTMLAnchorElement | HTMLSpanElement} Tree node element, either
* a tree or leaf. Trees use `<a>` tags, leaves use `<span>` tags.
- * See `#treenode-container` and `#treenode-symbol`.
+ * See `#treenode-template` and `#treenode-symbol`.
*/
const link = event.target;
/** @type {number} Index of this element in the node list */
@@ -451,7 +451,11 @@ const newTreeElement = (() => {
);
}
- window.supersize.treeReady.then(displayTree);
+ window.supersize.treeReady.then((message) => {
+ document.querySelector('#group-by-container')
+ .toggleAttribute('disabled', !message.isMultiContainer);
+ displayTree(message);
+ });
window.supersize.worker.setOnProgressHandler(displayTree);
_fileUpload.addEventListener('change', event => {
diff --git a/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js b/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js
index 2d1147fbdfc..46bc192c64a 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js
@@ -95,7 +95,7 @@ class DataFetcher {
}
/**
- * Outputs a single UInt8Array containing the entire input .size file.
+ * Outputs a single UInt8Array encompassing the entire input .size file.
*/
async loadSizeBuffer() {
if (!this._cache) {
@@ -136,9 +136,12 @@ async function Open(name) {
}
// Placeholder input name until supplied via setInput()
-const fetcher = new DataFetcher('data.ndjson');
-let beforeFetcher = null;
-let sizeFileLoaded = false;
+const g_fetcher = new DataFetcher('data.ndjson');
+let g_beforeFetcher = null;
+let g_sizeFileLoaded = false;
+
+/** @type {SizeProperties} */
+let g_size_properties = null;
async function loadSizeFile(isBefore, fetcher) {
const sizeBuffer = await fetcher.loadSizeBuffer();
@@ -153,20 +156,34 @@ async function loadSizeFile(isBefore, fetcher) {
Module._free(heapBuffer.byteOffset);
}
+async function loadSizeProperties() {
+ const QueryProperty = Module.cwrap('QueryProperty', 'number', ['string']);
+ const getProperty = (key) => {
+ const stringPtr = QueryProperty(key);
+ const r = Module.UTF8ToString(stringPtr, 2 ** 16);
+ return r;
+ };
+ g_size_properties = {
+ isMultiContainer: (getProperty('isMultiContainer') === 'true')
+ };
+}
+
async function buildTree(
groupBy, includeRegex, excludeRegex, includeSections, minSymbolSize,
flagToFilter, methodCountMode, onProgress) {
onProgress({percent: 0.1, id: 0});
+ /** @type {Metadata} */
return await LoadWasm.then(async () => {
- if (!sizeFileLoaded) {
- const current = loadSizeFile(false, fetcher);
- const before =
- beforeFetcher !== null ? loadSizeFile(true, beforeFetcher) : null;
- await current;
- await before;
+ if (!g_sizeFileLoaded) {
+ const load_promises = [];
+ load_promises.push(loadSizeFile(false, g_fetcher));
+ if (g_beforeFetcher !== null) {
+ load_promises.push(loadSizeFile(true, g_beforeFetcher));
+ }
+ await Promise.all(load_promises).then(loadSizeProperties);
onProgress({percent: 0.4, id: 0});
- sizeFileLoaded = true;
+ g_sizeFileLoaded = true;
}
const BuildTree = Module.cwrap(
@@ -186,6 +203,7 @@ async function buildTree(
root,
percent: 1.0,
diffMode,
+ isMultiContainer: g_size_properties.isMultiContainer,
};
});
}
@@ -251,19 +269,19 @@ const actions = {
beforeUrl,
} = parseOptions(options);
if (accessToken) {
- fetcher.setAccessToken(accessToken);
+ g_fetcher.setAccessToken(accessToken);
}
if (input === 'from-url://' && url) {
// Display the data from the `load_url` query parameter
console.info('Displaying data from', url);
- fetcher.setInput(url);
+ g_fetcher.setInput(url);
} else if (input != null) {
console.info('Displaying uploaded data');
- fetcher.setInput(input);
+ g_fetcher.setInput(input);
}
if (beforeUrl) {
- beforeFetcher = new DataFetcher(beforeUrl);
+ g_beforeFetcher = new DataFetcher(beforeUrl);
}
return buildTree(
@@ -315,4 +333,3 @@ self.onmessage = async event => {
runAction(id, action, data);
}
};
-
diff --git a/chromium/tools/binary_size/libsupersize/static/tree-worker.js b/chromium/tools/binary_size/libsupersize/static/tree-worker.js
index 79c83bb8cc1..b1c4d9d1c06 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-worker.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-worker.js
@@ -152,7 +152,7 @@ class TreeBuilder {
this.rootNode = createNode({
idPath: this._sep,
shortNameIndex: 0,
- type: this._containerType(this._sep),
+ type: this._artifactType(this._sep),
});
/** @type {Map<string, TreeNode>} Cache for directory nodes */
this._parents = new Map();
@@ -184,7 +184,7 @@ class TreeBuilder {
const {parent} = node;
// Track the size of `lastBiggestType` for comparisons.
- let [containerType, lastBiggestType] = parent.type;
+ let [artifactType, lastBiggestType] = parent.type;
let lastBiggestSize = 0;
const lastBiggestStats = parent.childStats[lastBiggestType];
if (lastBiggestStats) {
@@ -208,7 +208,7 @@ class TreeBuilder {
}
}
- parent.type = `${containerType}${lastBiggestType}`;
+ parent.type = `${artifactType}${lastBiggestType}`;
parent.size += additionalSize;
parent.flags |= additionalFlags;
node = parent;
@@ -217,18 +217,18 @@ class TreeBuilder {
/**
* Merges dex method symbols such as "Controller#get" and "Controller#set"
- * into containers, based on the class of the dex methods.
+ * into artifacts, based on the class of the dex methods.
* @param {TreeNode} node
*/
_joinDexMethodClasses(node) {
- const isFileNode = node.type[0] === _CONTAINER_TYPES.FILE;
+ const isFileNode = node.type[0] === _ARTIFACT_TYPES.FILE;
const hasDex = node.childStats[_DEX_SYMBOL_TYPE] ||
node.childStats[_DEX_METHOD_SYMBOL_TYPE];
const isNoPath = node.idPath === "";
if (!isFileNode || !hasDex || isNoPath || !node.children) return node;
/** @type {Map<string, TreeNode>} */
- const javaClassContainers = new Map();
+ const javaClassArtifacts = new Map();
/** @type {TreeNode[]} */
const otherSymbols = [];
@@ -258,16 +258,16 @@ class TreeBuilder {
}
}
- let classNode = javaClassContainers.get(classIdPath);
+ let classNode = javaClassArtifacts.get(classIdPath);
if (!classNode) {
classNode = createNode({
idPath: classIdPath,
srcPath: node.srcPath,
component: node.component,
shortNameIndex: shortNameIndex,
- type: _CONTAINER_TYPES.JAVA_CLASS,
+ type: _ARTIFACT_TYPES.JAVA_CLASS,
});
- javaClassContainers.set(classIdPath, classNode);
+ javaClassArtifacts.set(classIdPath, classNode);
}
// Adjust the dex method's short name so it starts after the "#"
@@ -281,11 +281,11 @@ class TreeBuilder {
}
node.children = otherSymbols;
- for (const containerNode of javaClassContainers.values()) {
+ for (const artifactNode of javaClassArtifacts.values()) {
// Delay setting the parent until here so that `_attachToParent`
// doesn't add method stats twice
- containerNode.parent = node;
- node.children.push(containerNode);
+ artifactNode.parent = node;
+ node.children.push(artifactNode);
}
return node;
}
@@ -332,17 +332,17 @@ class TreeBuilder {
}
/**
- * Returns the container type for a parent node.
+ * Returns the artifact type for a parent node.
* @param {string} childIdPath
* @private
*/
- _containerType(childIdPath) {
+ _artifactType(childIdPath) {
const useAlternateType =
childIdPath.lastIndexOf(this._sep) > childIdPath.lastIndexOf(_PATH_SEP);
if (useAlternateType) {
- return _CONTAINER_TYPES.COMPONENT;
+ return _ARTIFACT_TYPES.COMPONENT;
} else {
- return _CONTAINER_TYPES.DIRECTORY;
+ return _ARTIFACT_TYPES.DIRECTORY;
}
}
@@ -374,7 +374,7 @@ class TreeBuilder {
parentNode = createNode({
idPath: parentPath,
shortNameIndex: lastIndexOf(parentPath, this._sep) + 1,
- type: this._containerType(childNode.idPath),
+ type: this._artifactType(childNode.idPath),
});
this._parents.set(parentPath, parentNode);
}
@@ -403,7 +403,7 @@ class TreeBuilder {
srcPath,
component,
shortNameIndex: lastIndexOf(idPath, this._sep) + 1,
- type: _CONTAINER_TYPES.FILE,
+ type: _ARTIFACT_TYPES.FILE,
});
const defaultCount = diffMode ? 0 : 1;
// build child nodes for this file's symbols and attach to self
@@ -506,7 +506,7 @@ class TreeBuilder {
path = idPath.split(this._splitter);
}
- // If the path is empty, it refers to the _NO_NAME container.
+ // If the path is empty, it refers to the _NO_NAME artifact.
if (path[0] === '') {
path.unshift(_NO_NAME);
}
@@ -762,6 +762,7 @@ async function buildTree(groupBy, filterTest, methodCountMode, onProgress) {
root: builder.formatNode(data.root || builder.rootNode),
percent,
diffMode: meta && meta.diff_mode,
+ isMultiContainer: false,
};
if (data.error) {
message.error = data.error.message;
diff --git a/chromium/tools/binary_size/libsupersize/static/viewer.html b/chromium/tools/binary_size/libsupersize/static/viewer.html
index 2bf3b04fe11..08bfc42e41a 100644
--- a/chromium/tools/binary_size/libsupersize/static/viewer.html
+++ b/chromium/tools/binary_size/libsupersize/static/viewer.html
@@ -121,20 +121,39 @@
<fieldset>
<legend class="subhead">Group symbols by</legend>
<div class="radio-wrapper">
- <input type="radio" id="sourcepath" name="group_by" value="source_path" checked>
- <label class="radio-label" for="sourcepath">Nothing</label>
+ <input type="radio"
+ id="group-by-sourcepath"
+ name="group_by"
+ value="source_path" checked>
+ <label class="radio-label" for="group-by-sourcepath">Nothing</label>
+ </div>
+ <div class="radio-wrapper show-if-multi-container">
+ <input type="radio"
+ id="group-by-container"
+ name="group_by"
+ value="container">
+ <label class="radio-label" for="group-by-container">Container</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="component" name="group_by" value="component">
- <label class="radio-label" for="component">Component</label>
+ <input type="radio"
+ id="group-by-component"
+ name="group_by"
+ value="component">
+ <label class="radio-label" for="group-by-component">Component</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="template" name="group_by" value="template">
- <label class="radio-label" for="template">Template</label>
+ <input type="radio"
+ id="group-by-template"
+ name="group_by"
+ value="template">
+ <label class="radio-label" for="group-by-template">Template</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="generated_type" name="group_by" value="generated_type">
- <label class="radio-label" for="generated_type">Generated type</label>
+ <input type="radio"
+ id="group-by-generated_type"
+ name="group_by"
+ value="generated_type">
+ <label class="radio-label" for="group-by-generated_type">Generated type</label>
</div>
</fieldset>
@@ -222,7 +241,7 @@
<button type="button" class="text-button" id="type-none">Select none</button>
</fieldset>
- <fieldset id="flag-container">
+ <fieldset id="flag-view">
<legend class="subhead">Filter symbols</legend>
<div class="radio-wrapper">
<input type="radio" id="clearflag" name="flag_filter" value="clear" checked>
@@ -342,8 +361,8 @@
</svg>
</div>
<!-- Template for trees and leaves -->
- <template id="treenode-container">
- <li role="treeitem" aria-expanded="false" aria-describedby="infocard-container">
+ <template id="treenode-template">
+ <li role="treeitem" aria-expanded="false" aria-describedby="infocard-artifact">
<a class="node" href="#" tabindex="-1" role="presentation">
<span class="symbol-name"></span>
<span class="size"></span>
@@ -360,25 +379,25 @@
</li>
</template>
<!-- Tree view -->
- <main class="tree-container">
+ <main class="tree-view">
<header class="tree-header">
<span class="subtitle">Name</span>
<span class="subtitle size-header" id="size-header">Size</span>
</header>
<ul id="symboltree" class="tree" role="tree" aria-labelledby="headline"></ul>
</main>
- <!-- Symbol and container breakdown cards -->
+ <!-- Symbol and artifact breakdown cards -->
<link href="infocard.css" rel="stylesheet">
<footer class="infocards">
- <div class="infocard infocard-container open" id="infocard-container" hidden>
- <div class="icon-info container-icon-info">
+ <div class="infocard infocard-artifact open" id="infocard-artifact" hidden>
+ <div class="icon-info artifact-icon-info">
<canvas class="type-pie-info" height="80" width="80"></canvas>
<div></div>
</div>
<header class="header-info">
<h4 class="subhead size-info"></h4>
<p class="body-2 path-info"></p>
- <p class="caption type-info-container">
+ <p class="caption type-info-artifact">
<span class="type-info"></span>
<span class="flags-info"></span>
</p>
@@ -560,7 +579,7 @@
<h4 class="subhead size-info"></h4>
<p class="body-2 path-info"></p>
</header>
- <p class="caption type-info-container">
+ <p class="caption type-info-artifact">
<span class="type-info"></span>
<span class="flags-info"></span>
</p>
diff --git a/chromium/tools/binary_size/milestone_apk_sizes.py b/chromium/tools/binary_size/milestone_apk_sizes.py
index 0c926980b93..c5104fb44f5 100755
--- a/chromium/tools/binary_size/milestone_apk_sizes.py
+++ b/chromium/tools/binary_size/milestone_apk_sizes.py
@@ -97,7 +97,6 @@ def _DownloadAndAnalyze(signed_prefix, unsigned_prefix):
artifacts.append(_Artifact(prefix, name))
return artifacts[-1]
- chrome = make_artifact('arm/ChromeStable.apk')
webview = make_artifact('arm/AndroidWebview.apk')
webview64 = make_artifact('arm_64/AndroidWebview.apk')
chrome_modern = make_artifact('arm/ChromeModernStable.apks')
@@ -133,7 +132,6 @@ def _DownloadAndAnalyze(signed_prefix, unsigned_prefix):
# Add metrics in the order that we want them in the .csv output.
metrics = collections.OrderedDict()
- chrome.AddSize(metrics)
chrome_modern.AddSize(metrics)
chrome_modern64.AddSize(metrics)
webview.AddSize(metrics)
@@ -160,13 +158,13 @@ def _DownloadAndAnalyze(signed_prefix, unsigned_prefix):
go_install_size = (
trichrome_chrome.GetApkSize() + trichrome_webview.GetAndroidGoSize() +
trichrome_library.GetAndroidGoSize())
- metrics['Android Go TriChrome Install Size'] = go_install_size
+ metrics['Android Go (TriChrome) Install Size'] = go_install_size
system_apks_size = sum(x.GetCompressedSize() for x in trichrome_system_apks)
stubs_sizes = sum(x.GetApkSize() for x in trichrome_system_stubs)
- metrics['Trichrome Compressed System Image'] = system_apks_size + stubs_sizes
+ metrics['Android Go (Trichrome) Compressed System Image'] = (
+ system_apks_size + stubs_sizes)
- chrome.AddMethodCount(metrics)
monochrome.AddMethodCount(metrics)
# Separate where spreadsheet has computed columns for easier copy/paste.
diff --git a/chromium/tools/bisect-builds.py b/chromium/tools/bisect-builds.py
index 8a29c98263f..9efc7bfa8fa 100755
--- a/chromium/tools/bisect-builds.py
+++ b/chromium/tools/bisect-builds.py
@@ -1077,7 +1077,9 @@ def main():
' Chrome\'s about: build number and omahaproxy branch_revision\n'
' are incorrect, they are from branches.\n'
'\n'
- 'Tip: add "-- --no-first-run" to bypass the first run prompts.')
+ 'Use "-- <args-to-pass-to-chromium>" to pass arbitrary extra \n'
+ 'arguments to the test binaries.\n'
+ 'E.g., add "-- --no-first-run" to bypass the first run prompts.')
parser = optparse.OptionParser(usage=usage)
# Strangely, the default help output doesn't include the choice list.
choices = ['mac', 'mac64', 'win', 'win64', 'linux', 'linux64', 'linux-arm',
@@ -1113,14 +1115,17 @@ def main():
default=1,
help='Number of times to run each build before asking '
'if it\'s good or bad. Temporary profiles are reused.')
- parser.add_option('-c', '--command',
+ parser.add_option('-c',
+ '--command',
type='str',
default='%p %a',
help='Command to execute. %p and %a refer to Chrome '
- 'executable and specified extra arguments '
- 'respectively. Use %s to specify all extra arguments '
- 'as one string. Defaults to "%p %a". Note that any '
- 'extra paths specified should be absolute.')
+ 'executable and specified extra arguments respectively. '
+ 'Use %s to specify all extra arguments as one string. '
+ 'Defaults to "%p %a". Note that any extra paths specified '
+ 'should be absolute. If you just need to append an '
+ 'argument to the Chrome command line use "-- '
+ '<args-to-pass-to-chromium>" instead.')
parser.add_option('-l', '--blink',
action='store_true',
help='Use Blink bisect instead of Chromium. ')
diff --git a/chromium/tools/cfi/blacklist_android.txt b/chromium/tools/cfi/blacklist_android.txt
deleted file mode 100644
index 0f0e4ffe878..00000000000
--- a/chromium/tools/cfi/blacklist_android.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# The Android port links against a prebuilt libc++.a from the NDK, and also
-# links a prebuilt .a from third_party/gvr-android-sdk that uses libc++, so we
-# cannot apply CFI to the standard library yet.
-type:std::*
diff --git a/chromium/tools/cfi/blacklist.txt b/chromium/tools/cfi/ignores.txt
index 5d2e50135c2..4a6f5f8033d 100644
--- a/chromium/tools/cfi/blacklist.txt
+++ b/chromium/tools/cfi/ignores.txt
@@ -1,3 +1,6 @@
+# This file defines which warnings should be ignored while running clang's
+# control flow integrity sanitizer, as run by the cfi_flags build target.
+
[cfi-unrelated-cast|cfi-derived-cast]
# e.g. RolloverProtectedTickClock
@@ -141,7 +144,7 @@ src:*ppapi/*
src:*content/renderer/pepper*
fun:*PpapiThread*
fun:*BrokerProcessDispatcher*
-# Blacklist base::Callback due to https://crbug.com/845855
+# Ignore base::Callback due to https://crbug.com/845855
fun:*FunctorTraits*
# PipeWire due to https://crbug.com/926115
@@ -181,8 +184,8 @@ src:*ui/gtk/unity_service.cc
src:*components/cronet/native/*
src:*third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
-# chrome/browser/ui/views/frame/global_menu_bar_x11.cc
-fun:*GlobalMenuBarX11*
+# chrome/browser/ui/views/frame/dbus_appmenu.cc
+fun:*dbus_appmenu*
# third_party/skia/include/gpu/gl/GrGLFunctions.h
fun:*GrGLFunction*
diff --git a/chromium/tools/checkbins/checkbins.py b/chromium/tools/checkbins/checkbins.py
index 873e4f10de1..e8d93e9d620 100755
--- a/chromium/tools/checkbins/checkbins.py
+++ b/chromium/tools/checkbins/checkbins.py
@@ -17,15 +17,20 @@ import os
import optparse
import sys
-# Find /third_party/pefile based on current directory and script path.
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..',
- 'third_party', 'pefile'))
+REPO_ROOT = os.path.join(os.path.dirname(__file__), '..', '..')
+FILES_CFG = os.path.join(REPO_ROOT, 'chrome', 'tools', 'build', 'win',
+ 'FILES.cfg')
+PEFILE_DIR = os.path.join(REPO_ROOT, 'third_party', 'pefile')
+sys.path.append(PEFILE_DIR)
+
import pefile
PE_FILE_EXTENSIONS = ['.exe', '.dll']
+# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format
DYNAMICBASE_FLAG = 0x0040
NXCOMPAT_FLAG = 0x0100
NO_SEH_FLAG = 0x0400
+GUARD_CF_FLAG = 0x4000
MACHINE_TYPE_AMD64 = 0x8664
# Please do not add your file here without confirming that it indeed doesn't
@@ -37,11 +42,13 @@ EXCLUDED_FILES = [
'previous_version_mini_installer.exe',
]
+
def IsPEFile(path):
return (os.path.isfile(path) and
os.path.splitext(path)[1].lower() in PE_FILE_EXTENSIONS and
os.path.basename(path) not in EXCLUDED_FILES)
+
def main(options, args):
directory = args[0]
pe_total = 0
@@ -49,6 +56,20 @@ def main(options, args):
failures = []
+ # Load FILES.cfg
+ exec_globals = {'__builtins__': None}
+ execfile(FILES_CFG, exec_globals)
+ files_cfg = exec_globals['FILES']
+
+ # Determines whether a specified file is in the 'default'
+ # filegroup - which means it's shipped with Chrome.
+ def IsInDefaultFileGroup(path):
+ for fileobj in files_cfg:
+ if fileobj['filename'] == os.path.basename(path):
+ if 'default' in fileobj.get('filegroup', {}):
+ return True
+ return False
+
for file in os.listdir(directory):
path = os.path.abspath(os.path.join(directory, file))
if not IsPEFile(path):
@@ -105,6 +126,20 @@ def main(options, args):
print("Checking %s ImageBase (0x%X > 4GB)... PASS" %
(path, pe.OPTIONAL_HEADER.ImageBase))
+ # Can only guarantee that files that are built by Chromium
+ # are protected by /GUARD:CF. Some system libraries are not.
+ if IsInDefaultFileGroup(path):
+ # Check for /GUARD:CF.
+ if pe.OPTIONAL_HEADER.DllCharacteristics & GUARD_CF_FLAG:
+ if options.verbose:
+ print("Checking %s for /GUARD:CF... PASS" % path)
+ else:
+ success = False
+ print("Checking %s for /GUARD:CF... FAIL" % path)
+ else:
+ if options.verbose:
+ print("Skipping check for /GUARD:CF for %s." % path)
+
# Update tally.
if success:
pe_passed = pe_passed + 1
diff --git a/chromium/tools/clang/blink_gc_plugin/process-graph.py b/chromium/tools/clang/blink_gc_plugin/process-graph.py
index 39e53f18e12..06031838528 100755
--- a/chromium/tools/clang/blink_gc_plugin/process-graph.py
+++ b/chromium/tools/clang/blink_gc_plugin/process-graph.py
@@ -4,9 +4,13 @@
# found in the LICENSE file.
from __future__ import print_function
-from StringIO import StringIO
import argparse, os, sys, json, subprocess, pickle
+try:
+ from StringIO import StringIO # Python 2
+except:
+ from io import StringIO
+
parser = argparse.ArgumentParser(
description =
"Process the Blink points-to graph generated by the Blink GC plugin.")
diff --git a/chromium/tools/clang/empty_string/EmptyStringConverter.cpp b/chromium/tools/clang/empty_string/EmptyStringConverter.cpp
index db82a7782e6..f6f68009864 100644
--- a/chromium/tools/clang/empty_string/EmptyStringConverter.cpp
+++ b/chromium/tools/clang/empty_string/EmptyStringConverter.cpp
@@ -80,12 +80,12 @@ class EmptyStringConverter {
};
void EmptyStringConverter::SetupMatchers(MatchFinder* match_finder) {
- const clang::ast_matchers::StatementMatcher& constructor_call = id(
- "call",
+ const clang::ast_matchers::StatementMatcher& constructor_call =
cxxConstructExpr(
hasDeclaration(cxxMethodDecl(ofClass(hasName("std::basic_string")))),
- argumentCountIs(2), hasArgument(0, id("literal", stringLiteral())),
- hasArgument(1, cxxDefaultArgExpr())));
+ argumentCountIs(2), hasArgument(0, stringLiteral().bind("literal")),
+ hasArgument(1, cxxDefaultArgExpr()))
+ .bind("call");
// Note that expr(has()) in the matcher is significant; the Clang AST wraps
// calls to the std::string constructor with exprWithCleanups nodes. Without
diff --git a/chromium/tools/clang/pylib/clang/compile_db.py b/chromium/tools/clang/pylib/clang/compile_db.py
index 50decf71907..6fe04981baf 100755
--- a/chromium/tools/clang/pylib/clang/compile_db.py
+++ b/chromium/tools/clang/pylib/clang/compile_db.py
@@ -14,12 +14,13 @@ import subprocess
_RSP_RE = re.compile(r' (@(.+?\.rsp)) ')
_CMD_LINE_RE = re.compile(
- r'^(?P<gomacc>.*gomacc\.exe"?\s+)?(?P<clang>\S*clang\S*)\s+(?P<args>.*)$')
+ r'^(?P<gomacc>.*gomacc(\.exe)?"?\s+)?(?P<clang>\S*clang\S*)\s+(?P<args>.*)$'
+)
_debugging = False
def _ProcessCommand(command):
- """Removes gomacc.exe and inserts --driver-mode=cl as the first argument.
+ """Removes gomacc(.exe). On Windows inserts --driver-mode=cl as the first arg.
Note that we deliberately don't use shlex.split here, because it doesn't work
predictably for Windows commands (specifically, it doesn't parse args the same
@@ -31,10 +32,9 @@ def _ProcessCommand(command):
# If the driver mode is not already set then define it. Driver mode is
# automatically included in the compile db by clang starting with release
# 9.0.0.
- if "--driver_mode" in command:
- driver_mode = ""
+ driver_mode = ''
# Only specify for Windows. Other platforms do fine without it.
- elif sys.platform == 'win32':
+ if sys.platform == 'win32' and '--driver_mode' not in command:
driver_mode = '--driver-mode=cl'
match = _CMD_LINE_RE.search(command)
@@ -88,6 +88,8 @@ def ProcessCompileDatabaseIfNeeded(compile_db):
Returns:
A postprocessed compile db that clang tooling can use.
"""
+ compile_db = [_ProcessEntry(e) for e in compile_db]
+
# TODO(dcheng): Ideally this would check target_os... but not sure there's an
# easy way to do that, and (for now) cross-compiles don't work without custom
# patches anyway.
@@ -96,7 +98,6 @@ def ProcessCompileDatabaseIfNeeded(compile_db):
if _debugging:
print('Read in %d entries from the compile db' % len(compile_db))
- compile_db = [_ProcessEntry(e) for e in compile_db]
original_length = len(compile_db)
# Filter out NaCl stuff. The clang tooling chokes on them.
diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp b/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp
index f94ce4e03f3..27b3fbb196e 100644
--- a/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp
+++ b/chromium/tools/clang/rewrite_raw_ptr_fields/RewriteRawPtrFields.cpp
@@ -70,9 +70,17 @@ const char kIncludePath[] = "base/memory/checked_ptr.h";
//
// See also:
// - OutputSectionHelper
-// - FieldDeclFilterFile
+// - FilterFile
const char kExcludeFieldsParamName[] = "exclude-fields";
+// Name of a cmdline parameter that can be used to specify a file listing
+// regular expressions describing paths that should be excluded from the
+// rewrite.
+//
+// See also:
+// - PathFilterFile
+const char kExcludePathsParamName[] = "exclude-paths";
+
// 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
@@ -93,13 +101,16 @@ const char kExcludeFieldsParamName[] = "exclude-fields";
// changes).
//
// See also:
-// - FieldDeclFilterFile
+// - FilterFile
// - OutputHelper
class OutputSectionHelper {
public:
explicit OutputSectionHelper(llvm::StringRef output_delimiter)
: output_delimiter_(output_delimiter.str()) {}
+ OutputSectionHelper(const OutputSectionHelper&) = delete;
+ OutputSectionHelper& operator=(const OutputSectionHelper&) = delete;
+
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
@@ -152,6 +163,9 @@ class OutputHelper : public clang::tooling::SourceFileCallbacks {
: edits_helper_("EDITS"), field_decl_filter_helper_("FIELD FILTERS") {}
~OutputHelper() = default;
+ OutputHelper(const OutputHelper&) = delete;
+ OutputHelper& operator=(const OutputHelper&) = delete;
+
void AddReplacement(const clang::SourceManager& source_manager,
const clang::SourceRange& replacement_range,
std::string replacement_text,
@@ -264,14 +278,9 @@ AST_MATCHER(clang::FieldDecl, isInThirdPartyLocation) {
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.
+ // We don't want to rewrite content of such paths even if they are in the main
+ // Chromium git repository.
return file_path.contains("third_party");
}
@@ -282,23 +291,37 @@ AST_MATCHER(clang::FieldDecl, isInGeneratedLocation) {
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 {
+// Represents a filter file specified via cmdline.
+class FilterFile {
public:
- explicit FieldDeclFilterFile(const std::string& filepath) {
- if (!filepath.empty())
- ParseInputFile(filepath);
+ explicit FilterFile(const llvm::cl::opt<std::string>& cmdline_param) {
+ ParseInputFile(cmdline_param);
}
- 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();
+ FilterFile(const FilterFile&) = delete;
+ FilterFile& operator=(const FilterFile&) = delete;
+
+ // Returns true if any of the filter file lines is exactly equal to |line|.
+ bool ContainsLine(llvm::StringRef line) const {
+ auto it = file_lines_.find(line);
+ return it != file_lines_.end();
+ }
+
+ // Returns true if any of the filter file lines is a substring of
+ // |string_to_match|.
+ bool ContainsSubstringOf(llvm::StringRef string_to_match) const {
+ if (!substring_regex_.hasValue()) {
+ std::vector<std::string> regex_escaped_file_lines;
+ regex_escaped_file_lines.reserve(file_lines_.size());
+ for (const llvm::StringRef& file_line : file_lines_.keys())
+ regex_escaped_file_lines.push_back(llvm::Regex::escape(file_line));
+ std::string substring_regex_pattern =
+ llvm::join(regex_escaped_file_lines.begin(),
+ regex_escaped_file_lines.end(), "|");
+ substring_regex_.emplace(substring_regex_pattern);
+ }
+
+ return substring_regex_->match(string_to_match);
}
private:
@@ -310,13 +333,17 @@ class FieldDeclFilterFile {
// autofill::AddressField::address1_ # some comment
// - Templates are represented without template arguments, like:
// WTF::HashTable::table_ # some comment
- void ParseInputFile(const std::string& filepath) {
+ void ParseInputFile(const llvm::cl::opt<std::string>& cmdline_param) {
+ std::string filepath = cmdline_param;
+ if (filepath.empty())
+ return;
+
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> 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";
+ << cmdline_param.ArgStr << " argument: " << filepath << ": "
+ << err.message() << "\n";
assert(false);
return;
}
@@ -334,19 +361,32 @@ class FieldDeclFilterFile {
if (line.empty())
continue;
- fields_to_filter_.insert(line);
+ file_lines_.insert(line);
}
}
- // Stores fully-namespace-qualified names of fields matched by the filter.
- llvm::StringSet<> fields_to_filter_;
+ // Stores all file lines (after stripping comments and blank lines).
+ llvm::StringSet<> file_lines_;
+
+ // Lazily-constructed regex that matches strings that contain any of the
+ // |file_lines_|.
+ mutable llvm::Optional<llvm::Regex> substring_regex_;
};
AST_MATCHER_P(clang::FieldDecl,
- isListedInFilterFile,
- FieldDeclFilterFile,
+ isFieldDeclListedInFilterFile,
+ const FilterFile*,
+ Filter) {
+ return Filter->ContainsLine(Node.getQualifiedNameAsString());
+}
+
+AST_MATCHER_P(clang::FieldDecl,
+ isInLocationListedInFilterFile,
+ const FilterFile*,
Filter) {
- return Filter.Contains(Node);
+ llvm::StringRef file_path =
+ GetFilePath(Finder->getASTContext().getSourceManager(), Node);
+ return Filter->ContainsSubstringOf(file_path);
}
AST_MATCHER(clang::Decl, isInExternCContext) {
@@ -641,6 +681,9 @@ class FieldDeclRewriter : public MatchFinder::MatchCallback {
explicit FieldDeclRewriter(OutputHelper* output_helper)
: output_helper_(output_helper) {}
+ FieldDeclRewriter(const FieldDeclRewriter&) = delete;
+ FieldDeclRewriter& operator=(const FieldDeclRewriter&) = delete;
+
void run(const MatchFinder::MatchResult& result) override {
const clang::ASTContext& ast_context = *result.Context;
const clang::SourceManager& source_manager = *result.SourceManager;
@@ -720,6 +763,9 @@ class AffectedExprRewriter : public MatchFinder::MatchCallback {
explicit AffectedExprRewriter(OutputHelper* output_helper)
: output_helper_(output_helper) {}
+ AffectedExprRewriter(const AffectedExprRewriter&) = delete;
+ AffectedExprRewriter& operator=(const AffectedExprRewriter&) = delete;
+
void run(const MatchFinder::MatchResult& result) override {
const clang::SourceManager& source_manager = *result.SourceManager;
@@ -747,6 +793,9 @@ class FilteredExprWriter : public MatchFinder::MatchCallback {
FilteredExprWriter(OutputHelper* output_helper, llvm::StringRef filter_tag)
: output_helper_(output_helper), filter_tag_(filter_tag) {}
+ FilteredExprWriter(const FilteredExprWriter&) = delete;
+ FilteredExprWriter& operator=(const FilteredExprWriter&) = delete;
+
void run(const MatchFinder::MatchResult& result) override {
const clang::FieldDecl* field_decl =
result.Nodes.getNodeAs<clang::FieldDecl>("affectedFieldDecl");
@@ -772,6 +821,9 @@ int main(int argc, const char* argv[]) {
llvm::cl::opt<std::string> exclude_fields_param(
kExcludeFieldsParamName, llvm::cl::value_desc("filepath"),
llvm::cl::desc("file listing fields to be blocked (not rewritten)"));
+ llvm::cl::opt<std::string> exclude_paths_param(
+ kExcludePathsParamName, llvm::cl::value_desc("filepath"),
+ llvm::cl::desc("file listing paths to be blocked (not rewritten)"));
clang::tooling::CommonOptionsParser options(argc, argv, category);
clang::tooling::ClangTool tool(options.getCompilations(),
options.getSourcePathList());
@@ -822,16 +874,19 @@ 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
+ // - fields listed in the --exclude-fields cmdline param or located in paths
+ // matched by --exclude-paths cmdline param
// - "implicit" fields (i.e. field decls that are not explicitly present in
// the source code)
- FieldDeclFilterFile fields_to_exclude(exclude_fields_param);
+ FilterFile fields_to_exclude(exclude_fields_param);
+ FilterFile paths_to_exclude(exclude_paths_param);
auto field_decl_matcher =
fieldDecl(
allOf(hasType(supported_pointer_types_matcher),
- unless(anyOf(isInThirdPartyLocation(), isInGeneratedLocation(),
- isExpansionInSystemHeader(), isInExternCContext(),
- isListedInFilterFile(fields_to_exclude),
+ unless(anyOf(isExpansionInSystemHeader(), isInExternCContext(),
+ isInThirdPartyLocation(), isInGeneratedLocation(),
+ isInLocationListedInFilterFile(&paths_to_exclude),
+ isFieldDeclListedInFilterFile(&fields_to_exclude),
implicit_field_decl_matcher))))
.bind("affectedFieldDecl");
FieldDeclRewriter field_decl_rewriter(&output_helper);
@@ -849,15 +904,7 @@ int main(int argc, const char* argv[]) {
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));
+ auto affected_expr_matcher = ignoringImplicit(affected_member_expr_matcher);
// Places where |.get()| needs to be appended =========
// Given
@@ -960,10 +1007,9 @@ int main(int argc, const char* argv[]) {
//
// 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())))))));
+ affected_expr_matcher, 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,
@@ -988,9 +1034,10 @@ int main(int argc, const char* argv[]) {
// 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");
+ field_decl_matcher,
+ hasType(pointerType(pointee(qualType(allOf(
+ isConstQualified(), hasUnqualifiedDesugaredType(anyCharType()))))))));
+ FilteredExprWriter char_ptr_field_decl_writer(&output_helper, "const-char");
match_finder.addMatcher(char_ptr_field_decl_matcher,
&char_ptr_field_decl_writer);
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
index b8cc64f3bb3..9f18a75980d 100644
--- 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
@@ -14,10 +14,11 @@ base::CheckedContiguousIterator::current_
base::CheckedContiguousIterator::end_
base::CheckedContiguousIterator::start_
base::CheckedContiguousRange::container_
+base::FeatureParam<base::TimeDelta, false>::feature
base::FeatureParam<bool, false>::feature
base::FeatureParam<double, false>::feature
base::FeatureParam<int, false>::feature
-base::FeatureParam<std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>>, false>::feature
+base::FeatureParam<std::__1::basic_string<char>, false>::feature
base::FeatureParam<type-parameter-0-0, true>::feature
base::FeatureParam<type-parameter-0-0, true>::options
base::span::data_
@@ -154,6 +155,9 @@ device::BluetoothDevice::adapter_
vr::LocationBarState::vector_icon
vr::OmniboxSuggestion::icon
+# Populated manually - other compile-time reasons
+logging::CheckOpResult::message_ # cyclic #include
+
# 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
diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/manual-paths-to-ignore.txt b/chromium/tools/clang/rewrite_raw_ptr_fields/manual-paths-to-ignore.txt
new file mode 100644
index 00000000000..62e16dc46c9
--- /dev/null
+++ b/chromium/tools/clang/rewrite_raw_ptr_fields/manual-paths-to-ignore.txt
@@ -0,0 +1,118 @@
+# File that lists regular expressions of paths that should be ignored when
+# running the rewrite_raw_ptr_fields tool on Chromium sources.
+#
+# If a source file path contains any of the lines in the filter file below,
+# then such source file will not be rewritten.
+#
+# Note that the rewriter has a hardcoded logic for a handful of path-based
+# exclusions that cannot be expressed as substring matches:
+# - Excluding paths containing "third_party/", but still covering
+# "third_party/blink/"
+# (see the isInThirdPartyLocation AST matcher in RewriteRawPtrFields.cpp).
+# - Excluding paths _starting_ with "gen/" or containing "/gen/"
+# (i.e. hopefully just the paths under out/.../gen/... directory)
+# via the isInGeneratedLocation AST matcher in RewriteRawPtrFields.cpp.
+
+# Exclude to prevent PartitionAlloc<->CheckedPtr cyclical dependency.
+base/allocator/
+
+# Exclude - deprecated and contains legacy C++ and pre-C++11 code.
+ppapi/
+
+# Exclude tools that do not ship in the Chrome binary.
+base/android/linker/
+tools/
+net/tools/
+
+# Exclude paths in separate repositories - i.e. in directories that
+# 1. Contain a ".git" subdirectory
+# 2. And hasn't been excluded via "third_party/" substring in their path
+# (see the isInThirdPartyLocation AST matcher in RewriteRawPtrFields.cpp).
+#
+# The list below has been generated with:
+#
+# $ find . -type d -name .git | \
+# sed -e 's/\.git$//g' | \
+# sed -e 's/\.\///g' | \
+# grep -v third_party | \
+# grep -v '^$' | \
+# sort | uniq > ~/scratch/git-paths
+buildtools/
+buildtools/clang_format/script/
+chrome/app/theme/default_100_percent/google_chrome/
+chrome/app/theme/default_200_percent/google_chrome/
+chrome/app/theme/google_chrome/
+chrome/app/vector_icons/google_chrome/
+chrome/browser/chromeos/arc/voice_interaction/internal/
+chrome/browser/google/linkdoctor_internal/
+chrome/browser/internal/
+chrome/browser/media/engagement_internal/
+chrome/browser/media/kaleidoscope/internal/
+chrome/browser/resources/chromeos/quickoffice/
+chrome/browser/resources/media_router/extension/src/
+chrome/browser/resources/media_router_internal/
+chrome/browser/resources/settings_internal/
+chrome/browser/spellchecker/internal/
+chrome/browser/ui/media_router/internal/
+chrome/installer/mac/internal/
+chromeos/assistant/internal/
+chromeos/assistant/libassistant/deps/
+chromeos/assistant/libassistant/src/
+chromeos/assistant/libassistant/src/buildtools/
+chromeos/assistant/libassistant/src/buildtools/clang_format/script/
+chromeos/components/media_app_ui/resources/app/
+chrome/services/soda/internal/
+chrome/test/data/firefox3_profile/searchplugins/
+chrome/test/data/firefox3_searchplugins/
+chrome/test/data/gpu/vt/
+chrome/test/data/osdd/
+chrome/test/data/pdf_private/
+chrome/test/data/perf/canvas_bench/
+chrome/test/data/perf/frame_rate/content/
+chrome/test/data/perf/frame_rate/private/
+chrome/test/data/perf/private/
+chrome/test/data/xr/webvr_info/
+chrome/test/media_router/internal/
+chrome/test/python_tests/
+chrome/tools/test/reference_build/chrome_linux/
+clank/
+components/ntp_tiles/resources/internal/
+components/resources/default_100_percent/google_chrome/
+components/resources/default_200_percent/google_chrome/
+components/resources/default_300_percent/google_chrome/
+components/site_isolation/internal/
+content/test/data/plugin/
+data/autodiscovery/
+data/dom_perf/
+data/mach_ports/
+data/memory_test/
+data/mozilla_js_tests/
+data/page_cycler/
+data/selenium_core/
+data/tab_switching/
+google_apis/internal/
+libassistant/communication/
+libassistant/contrib/
+libassistant/internal/
+libassistant/resources/
+libassistant/shared/
+media/cdm/api/
+mojo/internal/
+native_client/
+remoting/android/internal/
+remoting/host/installer/linux/internal/
+remoting/internal/
+remoting/test/internal/
+remoting/tools/internal/
+remoting/webapp/app_remoting/internal/
+skia/tools/clusterfuzz-data/
+tools/histograms/
+tools/page_cycler/acid3/
+tools/perf/data/
+tools/swarming_client/
+ui/file_manager/internal/
+ui/webui/internal/
+v8/
+webkit/data/bmp_decoder/
+webkit/data/ico_decoder/
+webkit/data/test_shell/plugins/
diff --git a/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh b/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh
index e932c3248d5..30eebc984ba 100755
--- a/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh
+++ b/chromium/tools/clang/rewrite_raw_ptr_fields/rewrite.sh
@@ -24,6 +24,9 @@ then
OUT_DIR="$1"
fi
+SCRIPT_PATH=$(realpath $0)
+REWRITER_SRC_DIR=$(dirname $SCRIPT_PATH)
+
COMPILE_DIRS=.
EDIT_DIRS=.
@@ -49,6 +52,7 @@ time ninja -C $OUT_DIR $GEN_H_TARGETS
echo "*** Generating the ignore list ***"
time tools/clang/scripts/run_tool.py \
--tool rewrite_raw_ptr_fields \
+ --tool-arg=--exclude-paths=$REWRITER_SRC_DIR/manual-paths-to-ignore.txt \
--generate-compdb \
-p $OUT_DIR \
$COMPILE_DIRS > ~/scratch/rewriter.out
@@ -64,6 +68,7 @@ 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 \
+ --tool-arg=--exclude-paths=$REWRITER_SRC_DIR/manual-paths-to-ignore.txt \
-p $OUT_DIR \
$COMPILE_DIRS > ~/scratch/rewriter.main.out
@@ -73,12 +78,6 @@ 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
diff --git a/chromium/tools/clang/scripts/build.py b/chromium/tools/clang/scripts/build.py
index 3f2af8b3cf9..78ab2b8ddbd 100755
--- a/chromium/tools/clang/scripts/build.py
+++ b/chromium/tools/clang/scripts/build.py
@@ -50,8 +50,6 @@ BUG_REPORT_URL = ('https://crbug.com and run'
' tools/clang/scripts/process_crashreports.py'
' (only works inside Google) which will upload a report')
-FIRST_LLVM_COMMIT = '97724f18c79c7cc81ced24239eb5e883bf1398ef'
-
win_sdk_dir = None
dia_dll = None
@@ -158,8 +156,7 @@ def CheckoutLLVM(commit, dir):
# Also check that the first commit is reachable.
if (RunCommand(['git', 'diff-index', '--quiet', 'HEAD'], fail_hard=False)
and RunCommand(['git', 'fetch'], fail_hard=False)
- and RunCommand(['git', 'checkout', commit], fail_hard=False)
- and RunCommand(['git', 'show', FIRST_LLVM_COMMIT], fail_hard=False)):
+ and RunCommand(['git', 'checkout', commit], fail_hard=False)):
return
# If we can't use the current repo, delete it.
@@ -191,12 +188,12 @@ def GetLatestLLVMCommit():
return ref['object']['sha']
-def GetCommitCount(commit):
- """Get the number of commits from FIRST_LLVM_COMMIT to commit.
+def GetCommitDescription(commit):
+ """Get the output of `git describe`.
Needs to be called from inside the git repository dir."""
- return subprocess.check_output(['git', 'rev-list', '--count',
- FIRST_LLVM_COMMIT + '..' + commit]).rstrip()
+ return subprocess.check_output(
+ ['git', 'describe', '--long', '--abbrev=8', commit]).rstrip()
def DeleteChromeToolsShim():
@@ -256,7 +253,7 @@ def AddGnuWinToPath():
return
gnuwin_dir = os.path.join(LLVM_BUILD_TOOLS_DIR, 'gnuwin')
- GNUWIN_VERSION = '12'
+ GNUWIN_VERSION = '13'
GNUWIN_STAMP = os.path.join(gnuwin_dir, 'stamp')
if ReadStampFile(GNUWIN_STAMP) == GNUWIN_VERSION:
print('GNU Win tools already up to date.')
@@ -337,6 +334,26 @@ def VerifyVersionOfBuiltClangMatchesVERSION():
sys.exit(1)
+def VerifyZlibSupport():
+ """Check that clang was built with zlib support enabled."""
+ clang = os.path.join(LLVM_BUILD_DIR, 'bin', 'clang')
+ test_file = '/dev/null'
+ if sys.platform == 'win32':
+ clang += '-cl.exe'
+ test_file = 'nul'
+
+ print('Checking for zlib support')
+ clang_out = subprocess.check_output([
+ clang, '--driver-mode=gcc', '-target', 'x86_64-unknown-linux-gnu', '-gz',
+ '-c', '-###', '-x', 'c', test_file ],
+ stderr=subprocess.STDOUT, universal_newlines=True)
+ if (re.search(r'--compress-debug-sections', clang_out)):
+ print('OK')
+ else:
+ print(('Failed to detect zlib support!\n\n(driver output: %s)') % clang_out)
+ sys.exit(1)
+
+
def CopyLibstdcpp(args, build_dir):
if not args.gcc_toolchain:
return
@@ -383,6 +400,9 @@ def main():
'building; --gcc-toolchain=/opt/foo picks '
'/opt/foo/bin/gcc')
parser.add_argument('--pgo', action='store_true', help='build with PGO')
+ parser.add_argument('--thinlto',
+ action='store_true',
+ help='build with ThinLTO')
parser.add_argument('--llvm-force-head-revision', action='store_true',
help='build the latest revision')
parser.add_argument('--run-tests', action='store_true',
@@ -408,8 +428,8 @@ def main():
default=sys.platform in ('linux2', 'darwin'))
args = parser.parse_args()
- if args.pgo and not args.bootstrap:
- print('--pgo requires --bootstrap')
+ if (args.pgo or args.thinlto) and not args.bootstrap:
+ print('--pgo/--thinlto requires --bootstrap')
return 1
if args.with_android and not os.path.exists(ANDROID_NDK_DIR):
print('Android NDK not found at ' + ANDROID_NDK_DIR)
@@ -456,16 +476,21 @@ def main():
# enough GCC to build Clang.
MaybeDownloadHostGcc(args)
+ if sys.platform == 'darwin':
+ isysroot = subprocess.check_output(['xcrun', '--show-sdk-path']).rstrip()
+
global CLANG_REVISION, PACKAGE_VERSION
if args.llvm_force_head_revision:
- CLANG_REVISION = GetLatestLLVMCommit()
+ checkout_revision = GetLatestLLVMCommit()
+ else:
+ checkout_revision = CLANG_REVISION
if not args.skip_checkout:
- CheckoutLLVM(CLANG_REVISION, LLVM_DIR);
+ CheckoutLLVM(checkout_revision, LLVM_DIR)
if args.llvm_force_head_revision:
- PACKAGE_VERSION = 'n%s-%s-0' % (GetCommitCount(CLANG_REVISION),
- CLANG_REVISION[:8])
+ CLANG_REVISION = GetCommitDescription(checkout_revision)
+ PACKAGE_VERSION = '%s-0' % CLANG_REVISION
print('Locally building clang %s...' % PACKAGE_VERSION)
WriteStampFile('', STAMP_FILE)
@@ -516,6 +541,8 @@ def main():
'-DCOMPILER_RT_USE_LIBCXX=NO',
# Don't run Go bindings tests; PGO makes them confused.
'-DLLVM_INCLUDE_GO_TESTS=OFF',
+ # TODO(crbug.com/1113475): Update binutils.
+ '-DENABLE_X86_RELAX_RELOCATIONS=NO',
]
if args.gcc_toolchain:
@@ -533,8 +560,10 @@ def main():
if sys.platform == 'darwin':
# For libc++, we only want the headers.
base_cmake_args.extend([
- '-DLIBCXX_ENABLE_SHARED=OFF', '-DLIBCXX_ENABLE_STATIC=OFF',
- '-DLIBCXX_INCLUDE_TESTS=OFF'
+ '-DLIBCXX_ENABLE_SHARED=OFF',
+ '-DLIBCXX_ENABLE_STATIC=OFF',
+ '-DLIBCXX_INCLUDE_TESTS=OFF',
+ '-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF',
])
# Prefer Python 2. TODO(crbug.com/1076834): Remove this.
base_cmake_args.append('-DPython3_EXECUTABLE=/nonexistent')
@@ -685,6 +714,8 @@ def main():
if cc is not None: instrument_args.append('-DCMAKE_C_COMPILER=' + cc)
if cxx is not None: instrument_args.append('-DCMAKE_CXX_COMPILER=' + cxx)
if lld is not None: instrument_args.append('-DCMAKE_LINKER=' + lld)
+ if args.thinlto:
+ instrument_args.append('-DLLVM_ENABLE_LTO=Thin')
RunCommand(['cmake'] + instrument_args + [os.path.join(LLVM_DIR, 'llvm')],
msvc_arch='x64')
@@ -715,15 +746,13 @@ def main():
# from PGO as well. Perhaps the training could be done asynchronously by
# dedicated buildbots that upload profiles to the cloud.
training_source = 'pgo_training-1.ii'
- with open(training_source, 'w') as f:
+ with open(training_source, 'wb') as f:
DownloadUrl(CDS_URL + '/' + training_source, f)
train_cmd = [os.path.join(LLVM_INSTRUMENTED_DIR, 'bin', 'clang++'),
'-target', 'x86_64-unknown-unknown', '-O2', '-g', '-std=c++14',
'-fno-exceptions', '-fno-rtti', '-w', '-c', training_source]
if sys.platform == 'darwin':
- train_cmd.extend(['-stdlib=libc++', '-isysroot',
- subprocess.check_output(['xcrun',
- '--show-sdk-path']).rstrip()])
+ train_cmd.extend(['-stdlib=libc++', '-isysroot', isysroot])
RunCommand(train_cmd, msvc_arch='x64')
# Merge profiles.
@@ -750,9 +779,48 @@ def main():
# iPhones). armv7k is Apple Watch, which we don't need.
'-DDARWIN_ios_ARCHS=armv7;armv7s;arm64',
'-DDARWIN_iossim_ARCHS=i386;x86_64',
- # We don't need 32-bit intel support for macOS, we only ship 64-bit.
- '-DDARWIN_osx_ARCHS=x86_64',
])
+ if args.bootstrap:
+ # mac/arm64 needs MacOSX11.0.sdk. System Xcode (+ SDK) on the chrome bots
+ # is something much older.
+ # Options:
+ # - temporarily set system Xcode to Xcode 12 beta while running this
+ # script, (cf build/swarming_xcode_install.py, but it looks unused)
+ # - use Xcode 12 beta for everything on tot bots, only need to fuzz with
+ # scripts/slave/recipes/chromium_upload_clang.py then (but now the
+ # chrome/ios build will use the 11.0 SDK too and we'd be on the hook for
+ # keeping it green -- if it's currently green, who knows)
+ # - pass flags to cmake to try to coax it into using Xcode 12 beta for the
+ # LLVM build without it being system Xcode.
+ #
+ # The last option seems best, so let's go with that. We need to pass
+ # -isysroot to the 11.0 SDK and -B to the /usr/bin so that the new ld64 is
+ # used.
+ # The compiler-rt build overrides -isysroot flags set via cflags, and we
+ # only need to use the 11 SDK for the compiler-rt build. So set only
+ # DARWIN_macosx_CACHED_SYSROOT to the 11.0 SDK and use the regular SDK
+ # for the rest of the build. (The new ld is used for all links.)
+ sys.path.insert(1, os.path.join(CHROMIUM_DIR, 'build'))
+ import mac_toolchain
+ LLVM_XCODE = os.path.join(THIRD_PARTY_DIR, 'llvm-xcode')
+ mac_toolchain.InstallXcodeBinaries('xcode_12_beta', LLVM_XCODE)
+ isysroot_11 = os.path.join(LLVM_XCODE, 'Contents', 'Developer',
+ 'Platforms', 'MacOSX.platform', 'Developer',
+ 'SDKs', 'MacOSX11.0.sdk')
+ xcode_bin = os.path.join(LLVM_XCODE, 'Contents', 'Developer',
+ 'Toolchains', 'XcodeDefault.xctoolchain', 'usr',
+ 'bin')
+ # Include an arm64 slice for libclang_rt.osx.a. This requires using
+ # MacOSX11.0.sdk (via -isysroot, via DARWIN_macosx_CACHED_SYSROOT) and
+ # the new ld, via -B
+ compiler_rt_args.extend([
+ # We don't need 32-bit intel support for macOS, we only ship 64-bit.
+ '-DDARWIN_osx_ARCHS=arm64;x86_64',
+ '-DDARWIN_macosx_CACHED_SYSROOT=' + isysroot_11,
+ ])
+ ldflags += ['-B', xcode_bin]
+ else:
+ compiler_rt_args.extend(['-DDARWIN_osx_ARCHS=x86_64'])
else:
compiler_rt_args.append('-DCOMPILER_RT_BUILD_BUILTINS=OFF')
@@ -765,8 +833,7 @@ def main():
if sys.platform == 'darwin' and args.bootstrap:
# When building on 10.9, /usr/include usually doesn't exist, and while
# Xcode's clang automatically sets a sysroot, self-built clangs don't.
- cflags = ['-isysroot', subprocess.check_output(
- ['xcrun', '--show-sdk-path']).rstrip()]
+ cflags = ['-isysroot', isysroot]
cxxflags = ['-stdlib=libc++'] + cflags
ldflags += ['-stdlib=libc++']
deployment_target = '10.7'
@@ -808,6 +875,8 @@ def main():
'-DCHROMIUM_TOOLS=%s' % ';'.join(chrome_tools)]
if args.pgo:
cmake_args.append('-DLLVM_PROFDATA_FILE=' + LLVM_PROFDATA_FILE)
+ if args.thinlto:
+ cmake_args.append('-DLLVM_ENABLE_LTO=Thin')
if sys.platform == 'win32':
cmake_args.append('-DLLVM_ENABLE_ZLIB=FORCE_ON')
if sys.platform == 'darwin':
@@ -831,6 +900,7 @@ def main():
RunCommand(['ninja', 'cr-install'], msvc_arch='x64')
VerifyVersionOfBuiltClangMatchesVERSION()
+ VerifyZlibSupport()
if sys.platform == 'win32':
platform = 'windows'
diff --git a/chromium/tools/clang/scripts/goma_ld.py b/chromium/tools/clang/scripts/goma_ld.py
index 576dfa9f9d2..21a7dd2286c 100755
--- a/chromium/tools/clang/scripts/goma_ld.py
+++ b/chromium/tools/clang/scripts/goma_ld.py
@@ -35,20 +35,21 @@ class GomaLinkUnix(goma_link.GomaLinkBase):
PREFIX_REPLACE = TLTO + '-prefix-replace' + SEP
XIR = '-x ir '
- WHITELISTED_TARGETS = {
+ ALLOWLIST = {
'chrome',
}
def analyze_args(self, args, *posargs, **kwargs):
# TODO(crbug.com/1040196): Builds are unreliable when all targets use
- # distributed ThinLTO, so we only enable it for whitelisted targets.
+ # distributed ThinLTO, so we only enable it for some targets.
# For other targets, we fall back to local ThinLTO. We must use ThinLTO
# because we build with -fsplit-lto-unit, which requires code generation
# be done for each object and target.
- if args.output is None or os.path.basename(
- args.output) not in self.WHITELISTED_TARGETS:
- # Returning None causes the original, non-distributed linker command to be
- # invoked.
+ # Returning None from this function causes the original, non-distributed
+ # linker command to be invoked.
+ if args.output is None:
+ return None
+ if not (args.allowlist or os.path.basename(args.output) in self.ALLOWLIST):
return None
return super(GomaLinkUnix, self).analyze_args(args, *posargs, **kwargs)
diff --git a/chromium/tools/clang/scripts/goma_link.py b/chromium/tools/clang/scripts/goma_link.py
index 8bf194e4bdb..15fb617c9b3 100755
--- a/chromium/tools/clang/scripts/goma_link.py
+++ b/chromium/tools/clang/scripts/goma_link.py
@@ -36,8 +36,8 @@ except NameError:
# Type returned by analyze_args.
AnalyzeArgsResult = namedtuple('AnalyzeArgsResult', [
- 'output', 'linker', 'compiler', 'splitfile', 'index_params', 'codegen',
- 'codegen_params', 'final_params'
+ 'output', 'linker', 'compiler', 'splitfile', 'index_inputs', 'index_params',
+ 'codegen', 'codegen_params', 'final_inputs', 'final_params'
])
@@ -181,9 +181,15 @@ def parse_args(args):
# that set some values for this script. If these optional options are
# present, they must be followed by '--'.
ap = argparse.ArgumentParser()
+ ap.add_argument('--generate',
+ action='store_true',
+ help='generate ninja file, but do not invoke it.')
ap.add_argument('--gomacc', help='path to gomacc.')
ap.add_argument('--jobs', '-j', help='maximum number of concurrent jobs.')
ap.add_argument('--no-gomacc', action='store_true', help='do not use gomacc.')
+ ap.add_argument('--allowlist',
+ action='store_true',
+ help='act as if the target is on the allow list.')
try:
splitpos = args.index('--')
except:
@@ -234,6 +240,19 @@ class GomaLinkBase(object):
MLLVM_RE = re.compile('(?:-Wl,)?([-/]mllvm)[:=]?(.*)', re.IGNORECASE)
OBJ_RE = re.compile('(.*)\\.(o(?:bj)?)', re.IGNORECASE)
+ def _no_codegen(self, args):
+ """
+ Helper function for the case where no distributed code generation
+ is necessary. It invokes the original command, unless --generate
+ was passed, in which case it informs the user that no code generation
+ is necessary.
+ """
+ if args.generate:
+ sys.stderr.write(
+ 'No code generation required; no ninja file generated.\n')
+ return 5 # Indicates no code generation required.
+ return subprocess.call([args.linker] + args.linker_args)
+
def transform_codegen_param(self, param):
return self.transform_codegen_param_common(param)
@@ -378,12 +397,14 @@ class GomaLinkBase(object):
obj_dir = gen_dir
common_index = common_dir + '/empty.thinlto.bc'
+ index_inputs = set()
index_params = []
codegen = []
codegen_params = [
'-Wno-unused-command-line-argument',
'-Wno-override-module',
]
+ final_inputs = set()
final_params = []
in_mllvm = [False]
@@ -455,6 +476,7 @@ class GomaLinkBase(object):
return
index_params.append(param)
if os.path.exists(param):
+ index_inputs.add(param)
match = self.OBJ_RE.match(param)
if match and is_bitcode_file(param):
native = obj_dir + '/' + match.group(1) + '.' + match.group(2)
@@ -465,6 +487,7 @@ class GomaLinkBase(object):
ensure_file(index)
codegen.append((os.path.normpath(native), param, index))
else:
+ final_inputs.add(param)
final_params.append(param)
elif not self.LTO_RE.match(param):
final_params.append(param)
@@ -497,11 +520,12 @@ class GomaLinkBase(object):
splitfile = None
for tup in codegen:
final_params.append(tup[0])
+ index_inputs = []
else:
splitfile = gen_dir + '/' + output + '.split' + self.OBJ_SUFFIX
final_params.append(splitfile)
index_params.append(self.WL + self.OBJ_PATH + splitfile)
- used_obj_file = gen_dir + '/' + output + '.objs'
+ used_obj_file = gen_dir + '/' + os.path.basename(output) + '.objs'
final_params.append('@' + used_obj_file)
return AnalyzeArgsResult(
@@ -509,13 +533,15 @@ class GomaLinkBase(object):
linker=linker,
compiler=compiler,
splitfile=splitfile,
+ index_inputs=index_inputs,
index_params=index_params,
codegen=codegen,
codegen_params=codegen_params,
+ final_inputs=final_inputs,
final_params=final_params,
)
- def gen_ninja(self, ninjaname, params, objs):
+ def gen_ninja(self, ninjaname, params, gen_dir):
"""
Generates a ninja build file at path ninjaname, using original command line
params and with objs being a list of bitcode files for which to generate
@@ -525,70 +551,72 @@ class GomaLinkBase(object):
gomacc_prefix = ninjaenc(self.gomacc) + ' '
else:
gomacc_prefix = ''
+ base = gen_dir + '/' + os.path.basename(params.output)
+ ensure_dir(gen_dir)
ensure_dir(os.path.dirname(ninjaname))
+ codegen_cmd = ('%s%s -c %s -fthinlto-index=$index %s$bitcode -o $native' %
+ (gomacc_prefix, ninjaenc(params.compiler),
+ ninjajoin(params.codegen_params), self.XIR))
+ if params.index_inputs:
+ used_obj_file = base + '.objs'
+ index_rsp = base + '.index.rsp'
+ ensure_dir(os.path.dirname(used_obj_file))
+ if params.splitfile:
+ ensure_dir(os.path.dirname(params.splitfile))
+ # We use grep here to only codegen native objects which are actually
+ # used by the native link step. Ninja 1.10 introduced a dyndep feature
+ # which allows for a more elegant implementation, but Chromium still
+ # uses an older ninja version which doesn't have this feature.
+ codegen_cmd = '( ! grep -qF $native %s || %s)' % (
+ ninjaenc(used_obj_file), codegen_cmd)
+
with open(ninjaname, 'w') as f:
+ if params.index_inputs:
+ self.write_rsp(index_rsp, params.index_params)
+ f.write('\nrule index\n command = %s %s %s @$rspfile\n' %
+ (ninjaenc(params.linker),
+ ninjaenc(self.WL + self.TLTO + '-index-only' + self.SEP) +
+ '$out', self.WL + self.TLTO + '-emit-imports-files'))
+
f.write(('\nrule native-link\n command = %s @$rspname'
'\n rspfile = $rspname\n rspfile_content = $params\n') %
(ninjaenc(params.linker), ))
- f.write(('\nrule codegen\n command = %s%s -c %s'
- ' -fthinlto-index=$index %s$bitcode -o $out\n') %
- (gomacc_prefix, ninjaenc(params.compiler),
- ninjajoin(params.codegen_params), self.XIR))
+ f.write('\nrule codegen\n command = %s && touch $out\n' %
+ (codegen_cmd, ))
+
+ native_link_deps = []
+ if params.index_inputs:
+ f.write(
+ ('\nbuild %s | %s : index %s\n'
+ ' rspfile = %s\n'
+ ' rspfile_content = %s\n') %
+ (ninjaenc(used_obj_file), ninjajoin(
+ [x[2] for x in params.codegen]), ninjajoin(params.index_inputs),
+ ninjaenc(index_rsp), ninjajoin(params.index_params)))
+ native_link_deps.append(used_obj_file)
for tup in params.codegen:
obj, bitcode, index = tup
- f.write('\nbuild %s : codegen %s %s\n bitcode = %s\n index = %s\n' %
- tuple(map(ninjaenc, (obj, bitcode, index, bitcode, index))))
-
- f.write('\nbuild %s : native-link %s\n rspname = %s\n params = %s\n' %
- (ninjaenc(params.output), ninjajoin(objs),
- ninjaenc(params.output + '.final.rsp'),
- ninjajoin(params.final_params)))
+ stamp = obj + '.stamp'
+ native_link_deps.append(obj)
+ f.write(
+ ('\nbuild %s : codegen %s %s\n'
+ ' bitcode = %s\n'
+ ' index = %s\n'
+ ' native = %s\n'
+ '\nbuild %s : phony %s\n') % tuple(
+ map(ninjaenc,
+ (stamp, bitcode, index, bitcode, index, obj, obj, stamp))))
+
+ f.write(('\nbuild %s : native-link %s\n'
+ ' rspname = %s\n params = %s\n') %
+ (ninjaenc(params.output),
+ ninjajoin(list(params.final_inputs) + native_link_deps),
+ ninjaenc(base + '.final.rsp'), ninjajoin(params.final_params)))
f.write('\ndefault %s\n' % (ninjaenc(params.output), ))
- def thin_link(self, params, gen_dir):
- """
- Performs the thin link step.
- This generates the index files, imports files, split LTO object,
- and used object file.
- Returns a list of native objects we need to generate from bitcode
- files for the final link step.
- """
- used_obj_file = gen_dir + '/' + params.output + '.objs'
- index_rsp = gen_dir + '/' + params.output + '.index.rsp'
- ensure_dir(gen_dir)
- ensure_dir(os.path.dirname(used_obj_file))
- if params.splitfile:
- ensure_dir(os.path.dirname(params.splitfile))
- self.write_rsp(index_rsp, params.index_params)
- index_cmd = [
- params.linker,
- self.WL + self.TLTO + '-index-only' + self.SEP + used_obj_file,
- self.WL + self.TLTO + '-emit-imports-files', '@' + index_rsp
- ]
- report_run(index_cmd)
- with open(used_obj_file) as f:
- codegen_objs = [
- os.path.normpath(x) for x in f.read().split('\n') if len(x) > 0
- ]
- return codegen_objs
-
- def codegen_and_link(self, params, gen_dir, objs):
- """
- Performs code generation for selected bitcode files and
- the final link step.
- objs should be the list of native object files expected to be generated
- (as returned by thin_link()).
- """
- ninjaname = gen_dir + '/build.ninja'
- self.gen_ninja(ninjaname, params, objs)
- cmd = [autoninja(), '-f', ninjaname]
- if self.jobs:
- cmd.extend(['-j', str(self.jobs)])
- report_run(cmd)
-
def do_main(self, argv):
"""
This function contains the main code to run. Not intended to be called
@@ -598,7 +626,7 @@ class GomaLinkBase(object):
args = parse_args(argv)
args.output = self.output_path(argv[1:])
if args.output is None:
- return subprocess.call([args.linker] + args.linker_args)
+ return self._no_codegen(args)
if args.gomacc:
self.gomacc = args.gomacc
if args.no_gomacc:
@@ -607,7 +635,7 @@ class GomaLinkBase(object):
self.jobs = int(args.jobs)
basename = os.path.basename(args.output)
- # Only generate tailored native object files for whitelisted targets.
+ # Only generate tailored native object files for targets on the allow list.
# TODO: Find a better way to structure this. There are three different
# ways we can perform linking: Local ThinLTO, distributed ThinLTO,
# and distributed ThinLTO with common object files.
@@ -616,20 +644,26 @@ class GomaLinkBase(object):
# Currently, we don't detect this situation. We could, but it might
# be better to instead move this logic out of this script and into
# the build system.
- use_common_objects = basename not in self.WHITELISTED_TARGETS
+ use_common_objects = not (args.allowlist or basename in self.ALLOWLIST)
common_dir = 'common_objs'
gen_dir = 'lto.' + basename
params = self.analyze_args(args, gen_dir, common_dir, use_common_objects)
# If we determined that no distributed code generation need be done, just
# invoke the original command.
if params is None:
- return subprocess.call([args.linker] + args.linker_args)
+ return self._no_codegen(args)
if use_common_objects:
objs = [x[0] for x in params.codegen]
ensure_file(common_dir + '/empty.thinlto.bc')
+ ninjaname = gen_dir + '/build.ninja'
+ self.gen_ninja(ninjaname, params, gen_dir)
+ if args.generate:
+ sys.stderr.write('Generated ninja file %s\n' % (shquote(ninjaname), ))
else:
- objs = self.thin_link(params, gen_dir)
- self.codegen_and_link(params, gen_dir, objs)
+ cmd = [autoninja(), '-f', ninjaname]
+ if self.jobs:
+ cmd.extend(['-j', str(self.jobs)])
+ report_run(cmd)
return 0
def main(self, argv):
@@ -654,13 +688,13 @@ class GomaLinkWindows(GomaLinkBase):
PREFIX_REPLACE = TLTO + '-prefix-replace' + SEP
XIR = ''
- WHITELISTED_TARGETS = {
+ ALLOWLIST = {
'chrome.exe',
'chrome.dll',
'chrome_child.dll',
- # TODO: The following targets have been whitelisted because the
+ # TODO: The following targets are on the allow list because the
# common objects flow does not link them successfully. This should
- # be fixed, after which they can be removed from the whitelist.
+ # be fixed, after which they can be removed from the list.
'tls_edit.exe',
}
diff --git a/chromium/tools/clang/scripts/goma_link_integration_tests.py b/chromium/tools/clang/scripts/goma_link_integration_tests.py
index 3a2b4ecc699..00a01043f75 100755
--- a/chromium/tools/clang/scripts/goma_link_integration_tests.py
+++ b/chromium/tools/clang/scripts/goma_link_integration_tests.py
@@ -18,10 +18,13 @@
import goma_ld
import goma_link
+from io import StringIO
import os
import re
+import shlex
import subprocess
import unittest
+from unittest import mock
from goma_link_test_utils import named_directory, working_directory
@@ -45,24 +48,24 @@ def _create_inputs(path):
f.write('int bar() {\n return 9;\n}\n')
-class GomaLinkUnixWhitelistMain(goma_ld.GomaLinkUnix):
+class GomaLinkUnixAllowMain(goma_ld.GomaLinkUnix):
"""
- Same as goma_ld.GomaLinkUnix, but whitelists "main".
+ Same as goma_ld.GomaLinkUnix, but has "main" on the allow list.
"""
def __init__(self, *args, **kwargs):
- super(GomaLinkUnixWhitelistMain, self).__init__(*args, **kwargs)
- self.WHITELISTED_TARGETS = {'main'}
+ super(GomaLinkUnixAllowMain, self).__init__(*args, **kwargs)
+ self.ALLOWLIST = {'main'}
-class GomaLinkWindowsWhitelistMain(goma_link.GomaLinkWindows):
+class GomaLinkWindowsAllowMain(goma_link.GomaLinkWindows):
"""
- Same as goma_ld.GomaLinkWindows, but whitelists "main".
+ Same as goma_ld.GomaLinkWindows, but has "main" on the allow list.
"""
def __init__(self, *args, **kwargs):
- super(GomaLinkWindowsWhitelistMain, self).__init__(*args, **kwargs)
- self.WHITELISTED_TARGETS = {'main.exe'}
+ super(GomaLinkWindowsAllowMain, self).__init__(*args, **kwargs)
+ self.ALLOWLIST = {'main.exe'}
class GomaLinkIntegrationTest(unittest.TestCase):
@@ -109,8 +112,10 @@ class GomaLinkIntegrationTest(unittest.TestCase):
codegen_text = codegen_match.group(0)
self.assertIn('my_goma.sh', codegen_text)
self.assertNotIn('-flto', codegen_text)
- self.assertIn('build common_objs/obj/main.obj : codegen ', buildrules)
- self.assertIn('build common_objs/obj/foo.obj : codegen ', buildrules)
+ self.assertIn('build common_objs/obj/main.obj.stamp : codegen ',
+ buildrules)
+ self.assertIn('build common_objs/obj/foo.obj.stamp : codegen ',
+ buildrules)
self.assertIn(' index = common_objs/empty.thinlto.bc', buildrules)
link_match = re.search('^build main.exe : native-link\\b.*?^[^ ]',
buildrules, re.MULTILINE | re.DOTALL)
@@ -123,7 +128,7 @@ class GomaLinkIntegrationTest(unittest.TestCase):
# functions, one of which calls the other.
self.assertTrue(b'call' in disasm or b'jmp' in disasm)
- def test_distributed_lto_whitelisted(self):
+ def test_distributed_lto_allowlist(self):
with named_directory() as d, working_directory(d):
_create_inputs(d)
os.makedirs('obj')
@@ -143,7 +148,7 @@ class GomaLinkIntegrationTest(unittest.TestCase):
['llvm-ar', 'crsT', 'obj/foobar.lib', 'obj/bar.obj', 'obj/foo.obj'])
with open('main.rsp', 'w') as f:
f.write('obj/main.obj\n' 'obj/foobar.lib\n')
- rc = GomaLinkWindowsWhitelistMain().main([
+ rc = GomaLinkWindowsAllowMain().main([
'goma_link.py', '--gomacc', 'gomacc', '--',
self.lld_link(), '-nodefaultlib', '-entry:main', '-machine:X86',
'-opt:lldlto=2', '-mllvm:-import-instr-limit=10', '-out:main.exe',
@@ -162,8 +167,10 @@ class GomaLinkIntegrationTest(unittest.TestCase):
self.assertIn('-m32', codegen_text)
self.assertIn('-mllvm -import-instr-limit=10', codegen_text)
self.assertNotIn('-flto', codegen_text)
- self.assertIn('build lto.main.exe/obj/main.obj : codegen ', buildrules)
- self.assertIn('build lto.main.exe/obj/foo.obj : codegen ', buildrules)
+ self.assertIn('build lto.main.exe/obj/main.obj.stamp : codegen ',
+ buildrules)
+ self.assertIn('build lto.main.exe/obj/foo.obj.stamp : codegen ',
+ buildrules)
link_match = re.search('^build main.exe : native-link\\b.*?^[^ ]',
buildrules, re.MULTILINE | re.DOTALL)
self.assertIsNotNone(link_match)
@@ -176,6 +183,41 @@ class GomaLinkIntegrationTest(unittest.TestCase):
self.assertNotIn(b'jmp', disasm)
self.assertNotIn(b'call', disasm)
+ def test_override_allowlist(self):
+ with named_directory() as d, working_directory(d):
+ _create_inputs(d)
+ os.makedirs('obj')
+ subprocess.check_call([
+ self.clangcl(), '-c', '-O2', '-flto=thin', 'main.cpp',
+ '-Foobj/main.obj'
+ ])
+ subprocess.check_call([
+ self.clangcl(), '-c', '-O2', '-flto=thin', 'foo.cpp', '-Foobj/foo.obj'
+ ])
+ rc = goma_link.GomaLinkWindows().main([
+ 'goma_link.py', '--generate', '--allowlist', '--',
+ self.lld_link(), '-nodefaultlib', '-entry:main', '-opt:lldlto=2',
+ '-out:main.exe', 'obj/main.obj', 'obj/foo.obj'
+ ])
+ # Should succeed.
+ self.assertEqual(rc, 0)
+ # Check that we have rules for main and foo, and that they are
+ # not common objects.
+ with open(os.path.join(d, 'lto.main.exe', 'build.ninja')) as f:
+ buildrules = f.read()
+ codegen_match = re.search(r'^rule codegen\b.*?^[^ ]', buildrules,
+ re.MULTILINE | re.DOTALL)
+ self.assertIsNotNone(codegen_match)
+ codegen_text = codegen_match.group(0)
+ self.assertNotIn('-flto', codegen_text)
+ self.assertIn('build lto.main.exe/obj/main.obj.stamp : codegen ',
+ buildrules)
+ self.assertIn('build lto.main.exe/obj/foo.obj.stamp : codegen ',
+ buildrules)
+ link_match = re.search(r'^build main.exe : native-link\b.*?^[^ ]',
+ buildrules, re.MULTILINE | re.DOTALL)
+ self.assertIsNotNone(link_match)
+
class GomaLdIntegrationTest(unittest.TestCase):
def clangxx(self):
@@ -188,7 +230,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
[self.clangxx(), '-c', '-Os', 'main.cpp', '-o', 'main.o'])
subprocess.check_call(
[self.clangxx(), '-c', '-Os', 'foo.cpp', '-o', 'foo.o'])
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py', '--gomacc', 'gomacc', '--',
self.clangxx(), '-fuse-ld=lld', 'main.o', 'foo.o', '-o', 'main'
])
@@ -235,7 +277,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
])
subprocess.check_call(
[self.clangxx(), '-c', '-Os', '-flto=thin', 'foo.cpp', '-o', 'foo.o'])
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py', '-j', '16', '--',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', 'main.o', 'foo.o', '-o',
'main'
@@ -246,8 +288,8 @@ class GomaLdIntegrationTest(unittest.TestCase):
with open(os.path.join(d, 'lto.main', 'build.ninja')) as f:
buildrules = f.read()
self.assertIn('gomacc ', buildrules)
- self.assertIn('build lto.main/main.o : codegen ', buildrules)
- self.assertIn('build lto.main/foo.o : codegen ', buildrules)
+ self.assertIn('build lto.main/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/foo.o.stamp : codegen ', buildrules)
# Check that main does not call foo.
disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
main_idx = disasm.index(b' <main>:\n')
@@ -267,7 +309,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
[self.clangxx(), '-c', '-Os', '-flto=thin', 'bar.cpp', '-o', 'bar.o'])
subprocess.check_call(
['llvm-ar', 'crsT', 'libfoobar.a', 'bar.o', 'foo.o'])
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', 'main.o', 'libfoobar.a',
'-o', 'main'
@@ -278,8 +320,8 @@ class GomaLdIntegrationTest(unittest.TestCase):
with open(os.path.join(d, 'lto.main', 'build.ninja')) as f:
buildrules = f.read()
self.assertIn('gomacc ', buildrules)
- self.assertIn('build lto.main/main.o : codegen ', buildrules)
- self.assertIn('build lto.main/foo.o : codegen ', buildrules)
+ self.assertIn('build lto.main/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/foo.o.stamp : codegen ', buildrules)
# Check that main does not call foo.
disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
main_idx = disasm.index(b' <main>:\n')
@@ -305,7 +347,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
])
subprocess.check_call(
['llvm-ar', 'crsT', 'obj/libfoobar.a', 'obj/bar.o', 'obj/foo.o'])
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', 'obj/main.o',
'obj/libfoobar.a', '-o', 'main'
@@ -316,8 +358,8 @@ class GomaLdIntegrationTest(unittest.TestCase):
with open(os.path.join(d, 'lto.main', 'build.ninja')) as f:
buildrules = f.read()
self.assertIn('gomacc ', buildrules)
- self.assertIn('build lto.main/obj/main.o : codegen ', buildrules)
- self.assertIn('build lto.main/obj/foo.o : codegen ', buildrules)
+ self.assertIn('build lto.main/obj/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/obj/foo.o.stamp : codegen ', buildrules)
# Check that main does not call foo.
disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
main_idx = disasm.index(b' <main>:\n')
@@ -339,7 +381,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
])
with open('main.rsp', 'w') as f:
f.write('obj/main.o\n' 'obj/foo.o\n')
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', '-g', '-gsplit-dwarf',
'-Wl,--lto-O2', '-o', 'main', '@main.rsp'
@@ -377,7 +419,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
'-fwhole-program-vtables\n'
'obj/main.o\n'
'obj/libfoobar.a\n')
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', '-m32', '-Wl,-mllvm',
'-Wl,-generate-type-units', '-Wl,--lto-O2', '-o', 'main',
@@ -396,8 +438,8 @@ class GomaLdIntegrationTest(unittest.TestCase):
self.assertIn('-m32', codegen_text)
self.assertIn('-mllvm -generate-type-units', codegen_text)
self.assertNotIn('-flto', codegen_text)
- self.assertIn('build lto.main/obj/main.o : codegen ', buildrules)
- self.assertIn('build lto.main/obj/foo.o : codegen ', buildrules)
+ self.assertIn('build lto.main/obj/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/obj/foo.o.stamp : codegen ', buildrules)
link_match = re.search('^build main : native-link\\b.*?^[^ ]',
buildrules, re.MULTILINE | re.DOTALL)
self.assertIsNotNone(link_match)
@@ -418,7 +460,7 @@ class GomaLdIntegrationTest(unittest.TestCase):
])
subprocess.check_call(
[self.clangxx(), '-c', '-Os', '-flto=thin', 'foo.cpp', '-o', 'foo.o'])
- rc = GomaLinkUnixWhitelistMain().main([
+ rc = GomaLinkUnixAllowMain().main([
'goma_ld.py', '--no-gomacc', '-j', '16', '--',
self.clangxx(), '-fuse-ld=lld', '-flto=thin', 'main.o', 'foo.o', '-o',
'main'
@@ -429,8 +471,8 @@ class GomaLdIntegrationTest(unittest.TestCase):
with open(os.path.join(d, 'lto.main', 'build.ninja')) as f:
buildrules = f.read()
self.assertNotIn('gomacc ', buildrules)
- self.assertIn('build lto.main/main.o : codegen ', buildrules)
- self.assertIn('build lto.main/foo.o : codegen ', buildrules)
+ self.assertIn('build lto.main/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/foo.o.stamp : codegen ', buildrules)
# Check that main does not call foo.
disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
main_idx = disasm.index(b' <main>:\n')
@@ -438,6 +480,61 @@ class GomaLdIntegrationTest(unittest.TestCase):
main_disasm = disasm[main_idx:after_main_idx]
self.assertNotIn(b'foo', main_disasm)
+ def test_generate_no_codegen(self):
+ with named_directory() as d, working_directory(d):
+ with open('main.o', 'wb') as f:
+ f.write(b'\7fELF')
+ with mock.patch('sys.stderr', new_callable=StringIO) as stderr:
+ rc = GomaLinkUnixAllowMain().main([
+ 'goma_ld.py', '--generate', '--',
+ self.clangxx(), 'main.o', '-o', 'main'
+ ])
+ self.assertEqual(rc, 5)
+ self.assertIn('no ninja file generated.\n', stderr.getvalue())
+
+ def test_generate(self):
+ with named_directory() as d, working_directory(d):
+ with open('main.o', 'wb') as f:
+ f.write(b'BC\xc0\xde')
+ with mock.patch('sys.stderr', new_callable=StringIO) as stderr:
+ rc = GomaLinkUnixAllowMain().main([
+ 'goma_ld.py', '--generate', '--',
+ self.clangxx(), 'main.o', '-o', 'main'
+ ])
+ self.assertEqual(rc, 0)
+ m = re.search('ninja file (.*)', stderr.getvalue())
+ self.assertIsNotNone(m)
+ path = shlex.split(m.group(1))[0]
+ self.assertTrue(os.path.exists(path))
+ content = open(path).read()
+ self.assertRegex(
+ content,
+ re.compile('^build [^:]+/main\\.o\\.stamp : codegen ',
+ re.MULTILINE))
+
+ def test_override_allowlist(self):
+ with named_directory() as d, working_directory(d):
+ _create_inputs(d)
+ subprocess.check_call([
+ self.clangxx(), '-c', '-Os', '-flto=thin', 'main.cpp', '-o', 'main.o'
+ ])
+ subprocess.check_call(
+ [self.clangxx(), '-c', '-Os', '-flto=thin', 'foo.cpp', '-o', 'foo.o'])
+ rc = goma_ld.GomaLinkUnix().main([
+ 'goma_ld.py', '--generate', '--allowlist', '--',
+ self.clangxx(), '-fuse-ld=lld', '-flto=thin', 'main.o', 'foo.o', '-o',
+ 'main'
+ ])
+ # Should succeed.
+ self.assertEqual(rc, 0)
+ # build.ninja file should have rules for main and foo.
+ ninjafile = os.path.join(d, 'lto.main', 'build.ninja')
+ self.assertTrue(os.path.exists(ninjafile))
+ with open(ninjafile) as f:
+ buildrules = f.read()
+ self.assertIn('build lto.main/main.o.stamp : codegen ', buildrules)
+ self.assertIn('build lto.main/foo.o.stamp : codegen ', buildrules)
+
if __name__ == '__main__':
unittest.main()
diff --git a/chromium/tools/clang/scripts/package.py b/chromium/tools/clang/scripts/package.py
index 4e4574a6e65..cfed526d3b5 100755
--- a/chromium/tools/clang/scripts/package.py
+++ b/chromium/tools/clang/scripts/package.py
@@ -184,9 +184,14 @@ def main():
shutil.rmtree(LLVM_BOOTSTRAP_INSTALL_DIR, ignore_errors=True)
shutil.rmtree(LLVM_BUILD_DIR, ignore_errors=True)
- build_cmd = [sys.executable, os.path.join(THIS_DIR, 'build.py'),
- '--bootstrap', '--disable-asserts',
- '--run-tests', '--pgo']
+ build_cmd = [
+ sys.executable,
+ os.path.join(THIS_DIR, 'build.py'), '--bootstrap', '--disable-asserts',
+ '--run-tests', '--pgo'
+ ]
+ if sys.platform.startswith('linux'):
+ build_cmd.append('--thinlto')
+
TeeCmd(build_cmd, log)
stamp = open(STAMP_FILE).read().rstrip()
@@ -228,9 +233,10 @@ def main():
'lib/clang/$V/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib',
'lib/clang/$V/lib/darwin/libclang_rt.asan_osx_dynamic.dylib',
- # OS X and iOS builtin libraries (iossim is lipo'd into ios) for the
- # _IsOSVersionAtLeast runtime function.
+ # OS X and iOS builtin libraries for the _IsOSVersionAtLeast runtime
+ # function.
'lib/clang/$V/lib/darwin/libclang_rt.ios.a',
+ 'lib/clang/$V/lib/darwin/libclang_rt.iossim.a',
'lib/clang/$V/lib/darwin/libclang_rt.osx.a',
# Profile runtime (used by profiler and code coverage).
diff --git a/chromium/tools/clang/scripts/test_tool.py b/chromium/tools/clang/scripts/test_tool.py
index 171e33eb608..00190937018 100755
--- a/chromium/tools/clang/scripts/test_tool.py
+++ b/chromium/tools/clang/scripts/test_tool.py
@@ -13,6 +13,7 @@ import glob
import json
import os
import os.path
+import re
import shutil
import subprocess
import sys
@@ -126,6 +127,28 @@ def _ApplyTool(tools_clang_scripts_directory,
_RunGit(args)
+def _NormalizePathInRawOutput(path, test_dir):
+ if not os.path.isabs(path):
+ path = os.path.join(test_dir, path)
+
+ return os.path.relpath(path, test_dir)
+
+
+def _NormalizeSingleRawOutputLine(output_line, test_dir):
+ if not re.match('^[^:]+(:::.*){4,4}$', output_line):
+ return output_line
+
+ edit_type, path, offset, length, replacement = output_line.split(':::', 4)
+ path = _NormalizePathInRawOutput(path, test_dir)
+ return "%s:::%s:::%s:::%s:::%s" % (edit_type, path, offset, length,
+ replacement)
+
+
+def _NormalizeRawOutput(output_lines, test_dir):
+ return map(lambda line: _NormalizeSingleRawOutputLine(line, test_dir),
+ output_lines)
+
+
def main(argv):
parser = argparse.ArgumentParser()
parser.add_argument(
@@ -209,6 +232,11 @@ def main(argv):
expected_output = f.readlines()
with open(actual, 'r') as f:
actual_output = f.readlines()
+ if not args.apply_edits:
+ actual_output = _NormalizeRawOutput(actual_output,
+ test_directory_for_tool)
+ expected_output = _NormalizeRawOutput(expected_output,
+ test_directory_for_tool)
if actual_output != expected_output:
failed += 1
lines = difflib.unified_diff(expected_output, actual_output,
diff --git a/chromium/tools/clang/scripts/update.py b/chromium/tools/clang/scripts/update.py
index c9bdcf3ae20..b1018321ec3 100755
--- a/chromium/tools/clang/scripts/update.py
+++ b/chromium/tools/clang/scripts/update.py
@@ -37,13 +37,12 @@ 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 = '4e813bbdf'
-CLANG_SVN_REVISION = 'n356902'
+# This is the output of `git describe` and is usable as a commit-ish.
+CLANG_REVISION = 'llvmorg-12-init-3492-ga1caa302'
CLANG_SUB_REVISION = 1
-PACKAGE_VERSION = '%s-%s-%s' % (CLANG_SVN_REVISION, CLANG_REVISION[:8],
- CLANG_SUB_REVISION)
-RELEASE_VERSION = '11.0.0'
+PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
+RELEASE_VERSION = '12.0.0'
CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE',
@@ -235,7 +234,7 @@ def UpdatePackage(package_name, host_os):
try:
GCLIENT_CONFIG = os.path.join(os.path.dirname(CHROMIUM_DIR), '.gclient')
env = {}
- execfile(GCLIENT_CONFIG, env, env)
+ exec (open(GCLIENT_CONFIG).read(), env, env)
target_os = env.get('target_os', target_os)
except:
pass
diff --git a/chromium/tools/clang/scripts/upload_revision.py b/chromium/tools/clang/scripts/upload_revision.py
index 9cd4484cd2b..8eb81b3a368 100755
--- a/chromium/tools/clang/scripts/upload_revision.py
+++ b/chromium/tools/clang/scripts/upload_revision.py
@@ -18,7 +18,7 @@ import shutil
import subprocess
import sys
-from build import GetCommitCount, CheckoutLLVM, LLVM_DIR
+from build import CheckoutLLVM, GetCommitDescription, LLVM_DIR
from update import CHROMIUM_DIR
# Path constants.
@@ -29,8 +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.
-
+Bug: TODO
Cq-Include-Trybots: chromium/try:mac_chromium_asan_rel_ng
Cq-Include-Trybots: chromium/try:linux_chromium_cfi_rel_ng
Cq-Include-Trybots: chromium/try:linux_chromium_chromeos_asan_rel_ng
@@ -40,7 +39,8 @@ 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,linux_angle_deqp_rel_ng
+Cq-Include-Trybots: chromium/try:linux_angle_deqp_rel_ng
+Cq-Include-Trybots: chromium/try:win-angle-deqp-rel-64
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
@@ -49,28 +49,25 @@ Cq-Include-Trybots: chrome/try:win-chrome,win64-chrome,mac-chrome
is_win = sys.platform.startswith('win32')
-def PatchRevision(clang_git_revision, clang_svn_revision, clang_sub_revision):
+
+def PatchRevision(clang_git_revision, clang_sub_revision):
with open(UPDATE_PY_PATH, 'rb') as f:
content = f.read()
- m = re.search("CLANG_REVISION = '([0-9a-f]+)'", content)
+ m = re.search("CLANG_REVISION = '([0-9a-z-]+)'", content)
clang_old_git_revision = m.group(1)
- m = re.search("CLANG_SVN_REVISION = '(n[0-9]+)'", content)
- clang_old_svn_revision = m.group(1)
m = re.search("CLANG_SUB_REVISION = ([0-9]+)", content)
clang_old_sub_revision = m.group(1)
- content = re.sub("CLANG_REVISION = '[0-9a-f]+'",
+ content = re.sub("CLANG_REVISION = '[0-9a-z-]+'",
"CLANG_REVISION = '{}'".format(clang_git_revision),
- content, count=1)
- content = re.sub("CLANG_SVN_REVISION = 'n[0-9]+'",
- "CLANG_SVN_REVISION = '{}'".format(clang_svn_revision),
- content, count=1)
+ content,
+ count=1)
content = re.sub("CLANG_SUB_REVISION = [0-9]+",
"CLANG_SUB_REVISION = {}".format(clang_sub_revision),
content, count=1)
with open(UPDATE_PY_PATH, 'wb') as f:
f.write(content)
- return clang_old_git_revision, clang_old_svn_revision, clang_old_sub_revision
+ return "{}-{}".format(clang_old_git_revision, clang_old_sub_revision)
def Git(args):
@@ -87,30 +84,24 @@ def main():
args = parser.parse_args()
- clang_git_revision = args.clang_git_revision[0]
+ clang_raw_git_revision = args.clang_git_revision[0]
- # To get the commit count, we need a checkout.
- CheckoutLLVM(clang_git_revision, LLVM_DIR);
- clang_svn_revision = 'n' + GetCommitCount(clang_git_revision)
+ # To `git describe`, we need a checkout.
+ CheckoutLLVM(clang_raw_git_revision, LLVM_DIR)
+ clang_git_revision = GetCommitDescription(clang_raw_git_revision)
clang_sub_revision = args.clang_sub_revision
os.chdir(CHROMIUM_DIR)
- print("Making a patch for Clang {}-{}-{}".format(
- clang_svn_revision, clang_git_revision[:8], clang_sub_revision))
+ print("Making a patch for Clang {}-{}".format(clang_git_revision,
+ clang_sub_revision))
- clang_old_git_revision, clang_old_svn_revision, clang_old_sub_revision = \
- PatchRevision(clang_git_revision, clang_svn_revision, clang_sub_revision)
-
- rev_string = "{}-{}-{}".format(clang_svn_revision,
- clang_git_revision[:8],
- clang_sub_revision)
+ rev_string = "{}-{}".format(clang_git_revision, clang_sub_revision)
Git(["checkout", "origin/master", "-b", "clang-{}".format(rev_string)])
- Git(["add", UPDATE_PY_PATH])
- old_rev_string = "{}-{}-{}".format(clang_old_svn_revision,
- clang_old_git_revision[:8],
- clang_old_sub_revision)
+ old_rev_string = PatchRevision(clang_git_revision, clang_sub_revision)
+
+ Git(["add", UPDATE_PY_PATH])
commit_message = 'Ran `{}`.'.format(' '.join(sys.argv)) + COMMIT_FOOTER
Git(["commit", "-m", "Roll clang {} : {}.\n\n{}".format(
diff --git a/chromium/tools/code_coverage/test_suite.txt b/chromium/tools/code_coverage/test_suite.txt
index d444b1284a8..1a208472a9c 100644
--- a/chromium/tools/code_coverage/test_suite.txt
+++ b/chromium/tools/code_coverage/test_suite.txt
@@ -12,7 +12,6 @@ boringssl_crypto_tests
boringssl_ssl_tests
breakpad_unittests
browser_tests
-cacheinvalidation_unittests
capture_unittests
cast_unittests
cc_unittests
diff --git a/chromium/tools/determinism/OWNERS b/chromium/tools/determinism/OWNERS
index 5be7c401366..a0b7be428c3 100644
--- a/chromium/tools/determinism/OWNERS
+++ b/chromium/tools/determinism/OWNERS
@@ -1,7 +1,6 @@
# Tools relating to build determinism
# https://crbug.com/314403
-dpranke@chromium.org
dpranke@google.com
erikchen@chromium.org
sebmarchand@chromium.org
diff --git a/chromium/tools/determinism/compare_build_artifacts.py b/chromium/tools/determinism/compare_build_artifacts.py
index e586e405df5..82ec95f94b6 100755
--- a/chromium/tools/determinism/compare_build_artifacts.py
+++ b/chromium/tools/determinism/compare_build_artifacts.py
@@ -295,13 +295,13 @@ def compare_build_artifacts(first_dir, second_dir, ninja_path, target_platform,
print('Epoch: %s' %
' '.join(epoch_hex[i:i+2] for i in xrange(0, len(epoch_hex), 2)))
- with open(os.path.join(BASE_DIR, 'deterministic_build_whitelist.pyl')) as f:
- raw_whitelist = ast.literal_eval(f.read())
- whitelist_list = raw_whitelist[target_platform]
+ with open(os.path.join(BASE_DIR, 'deterministic_build_ignorelist.pyl')) as f:
+ raw_ignorelist = ast.literal_eval(f.read())
+ ignorelist_list = raw_ignorelist[target_platform]
if re.search(r'\bis_component_build\s*=\s*true\b',
open(os.path.join(first_dir, 'args.gn')).read()):
- whitelist_list += raw_whitelist.get(target_platform + '_component', [])
- whitelist = frozenset(whitelist_list)
+ ignorelist_list += raw_ignorelist.get(target_platform + '_component', [])
+ ignorelist = frozenset(ignorelist_list)
if use_isolate_files:
first_list = get_files_to_compare_using_isolate(first_dir)
@@ -332,10 +332,10 @@ def compare_build_artifacts(first_dir, second_dir, ninja_path, target_platform,
if not result:
tag = 'equal'
equals.append(f)
- if f in whitelist:
+ if f in ignorelist:
unexpected_equals.append(f)
else:
- if f in whitelist:
+ if f in ignorelist:
expected_diffs.append(f)
tag = 'expected'
else:
diff --git a/chromium/tools/determinism/deterministic_build_whitelist.pyl b/chromium/tools/determinism/deterministic_build_ignorelist.pyl
index 3d87f6aab2f..0d9de1ff330 100644
--- a/chromium/tools/determinism/deterministic_build_whitelist.pyl
+++ b/chromium/tools/determinism/deterministic_build_ignorelist.pyl
@@ -63,10 +63,6 @@
],
'linux_component': [
- # https://crbug.com/937268
- 'swiftshader/libGLESv2.so',
- 'swiftshader_vertex_routine_fuzzer',
-
# https://crbug.com/954056
'nacl_test_data/nonsfi/irt_exception_test_pnacl_newlib_x32_nonsfi.nexe',
'nacl_test_data/nonsfi/irt_manifest_file_pnacl_newlib_x32_nonsfi.nexe',
diff --git a/chromium/tools/directory_metadata/README.md b/chromium/tools/directory_metadata/README.md
deleted file mode 100644
index 26386d6118b..00000000000
--- a/chromium/tools/directory_metadata/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# 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
deleted file mode 100644
index 540fa3c112c..00000000000
--- a/chromium/tools/directory_metadata/directory_metadata.proto
+++ /dev/null
@@ -1,42 +0,0 @@
-// 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
deleted file mode 100644
index 1c34d0777f5..00000000000
--- a/chromium/tools/directory_metadata/directory_metadata_pb2.py
+++ /dev/null
@@ -1,188 +0,0 @@
-# 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/flags/generate_unexpire_flags.py b/chromium/tools/flags/generate_unexpire_flags.py
index 95d2d829795..a5565d59d1a 100755
--- a/chromium/tools/flags/generate_unexpire_flags.py
+++ b/chromium/tools/flags/generate_unexpire_flags.py
@@ -128,6 +128,9 @@ def gen_flags_fragment(prog_name, mstone):
This creates a C++ source fragment defining flags, which are bound to the
features described in gen_features_impl().
"""
+ # Note: The exact format of the flag name (temporary-unexpire-flags-m{m}) is
+ # depended on by a hack in UnexpiredMilestonesFromStorage(). See
+ # https://crbug.com/1101828 for more details.
fragment = """
{{"temporary-unexpire-flags-m{m}",
"Temporarily unexpire M{m} flags.",
diff --git a/chromium/tools/gdb/OWNERS b/chromium/tools/gdb/OWNERS
index 5d9d9d4e504..9d493fd054e 100644
--- a/chromium/tools/gdb/OWNERS
+++ b/chromium/tools/gdb/OWNERS
@@ -1,3 +1,4 @@
jbroman@chromium.org
+szager@chromium.org
thomasanderson@chromium.org
tikuta@chromium.org
diff --git a/chromium/tools/gdb/gdb_chrome.py b/chromium/tools/gdb/gdb_chrome.py
index 4490fc70723..18481e2a51d 100644
--- a/chromium/tools/gdb/gdb_chrome.py
+++ b/chromium/tools/gdb/gdb_chrome.py
@@ -454,6 +454,17 @@ pp_set.add_printer('content::RenderProcessHostImpl',
'^content::RenderProcessHostImpl$',
RenderProcessHostImplPrinter)
+
+class AtomicPrinter(Printer):
+ typename = 'atomic'
+
+ def to_string(self):
+ return self.val['__a_']['__a_value']
+
+
+pp_set.add_printer('std::__Cr::atomic', '^std::__Cr::atomic<.*>$',
+ AtomicPrinter)
+
gdb.printing.register_pretty_printer(gdb, pp_set, replace=_DEBUGGING)
"""Implementations of inlined libc++ std container functions."""
diff --git a/chromium/tools/generate_stubs/generate_stubs.py b/chromium/tools/generate_stubs/generate_stubs.py
index 27a11ede490..9cf65c73a51 100755
--- a/chromium/tools/generate_stubs/generate_stubs.py
+++ b/chromium/tools/generate_stubs/generate_stubs.py
@@ -311,8 +311,8 @@ UMBRELLA_INITIALIZER_INITIALIZE_FUNCTION_START = (
module_opened = true;
opened_libraries[cur_module] = handle;
} else {
- %(logging_function)s << "dlopen(" << dso_path->c_str() << ") failed, "
- << "dlerror() says:\\n" << dlerror();
+ %(logging_function)s << "dlopen(" << dso_path->c_str() << ") failed.";
+ %(logging_function)s << "dlerror() says:\\n" << dlerror();
}
}
diff --git a/chromium/tools/git/move_source_file.py b/chromium/tools/git/move_source_file.py
index 5b58b0cae4f..f7a2a20f6db 100755
--- a/chromium/tools/git/move_source_file.py
+++ b/chromium/tools/git/move_source_file.py
@@ -34,7 +34,7 @@ sort_headers = __import__('sort-headers')
import sort_sources
-HANDLED_EXTENSIONS = ['.cc', '.mm', '.h', '.hh', '.cpp']
+HANDLED_EXTENSIONS = ['.cc', '.mm', '.h', '.hh', '.cpp', '.mojom']
def IsHandledFile(path):
@@ -87,6 +87,35 @@ def MoveFile(from_path, to_path):
raise Exception('Fatal: Failed to run git mv command.')
+def UpdateIncludes(from_path, to_path, in_blink):
+ """Updates any includes of |from_path| to |to_path|. Paths supplied to this
+ function have been mapped to forward slashes.
+ """
+ from_include_path = from_path
+ to_include_path = to_path
+ if in_blink:
+ from_include_path = UpdateIncludePathForBlink(from_include_path)
+ to_include_path = UpdateIncludePathForBlink(to_include_path)
+
+ # This handles three types of include/imports:
+ # . C++ includes.
+ # . Object-C imports
+ # . Imports in mojom files.
+ files_with_changed_includes = mffr.MultiFileFindReplace(
+ r'(#?(include|import)\s*["<])%s([>"]);?' % re.escape(from_include_path),
+ r'\1%s\3' % to_include_path,
+ ['*.cc', '*.h', '*.m', '*.mm', '*.cpp', '*.mojom'])
+
+ # Reorder headers in files that changed.
+ for changed_file in files_with_changed_includes:
+
+ def AlwaysConfirm(a, b):
+ return True
+
+ sort_headers.FixFileWithConfirmFunction(changed_file, AlwaysConfirm, True,
+ in_blink)
+
+
def UpdatePostMove(from_path, to_path, in_blink):
"""Given a file that has moved from |from_path| to |to_path|,
updates the moved file's include guard to match the new path and
@@ -96,27 +125,18 @@ def UpdatePostMove(from_path, to_path, in_blink):
# Include paths always use forward slashes.
from_path = from_path.replace('\\', '/')
to_path = to_path.replace('\\', '/')
-
- if os.path.splitext(from_path)[1] in ['.h', '.hh']:
- UpdateIncludeGuard(from_path, to_path)
-
- from_include_path = from_path
- to_include_path = to_path
- if in_blink:
- from_include_path = UpdateIncludePathForBlink(from_include_path)
- to_include_path = UpdateIncludePathForBlink(to_include_path)
-
- # Update include/import references.
- files_with_changed_includes = mffr.MultiFileFindReplace(
- r'(#(include|import)\s*["<])%s([>"])' % re.escape(from_include_path),
- r'\1%s\3' % to_include_path,
- ['*.cc', '*.h', '*.m', '*.mm', '*.cpp'])
-
- # Reorder headers in files that changed.
- for changed_file in files_with_changed_includes:
- def AlwaysConfirm(a, b): return True
- sort_headers.FixFileWithConfirmFunction(changed_file, AlwaysConfirm, True,
- in_blink)
+ extension = os.path.splitext(from_path)[1]
+
+ if extension in ['.h', '.hh', '.mojom']:
+ UpdateIncludes(from_path, to_path, in_blink)
+ if extension == '.mojom':
+ # For mojom files, update includes of generated headers.
+ UpdateIncludes(from_path + '.h', to_path + '.h', in_blink)
+ UpdateIncludes(from_path + '-blink.h', to_path + '-blink.h', in_blink)
+ UpdateIncludes(from_path + '-shared.h', to_path + '-shared.h', in_blink)
+ UpdateIncludes(from_path + '-forward.h', to_path + '-forward.h', in_blink)
+ else:
+ UpdateIncludeGuard(from_path, to_path)
# Update comments; only supports // comments, which are primarily
# used in our code.
diff --git a/chromium/tools/grit/grit/node/base.py b/chromium/tools/grit/grit/node/base.py
index ddd380564a9..40859d301d8 100644
--- a/chromium/tools/grit/grit/node/base.py
+++ b/chromium/tools/grit/grit/node/base.py
@@ -283,7 +283,8 @@ class Node(object):
# Finally build the XML for our node and return it
if len(inside_content) > 0:
if one_line:
- return u'<%s%s>%s</%s>' % (self.name, attribs, inside_content, self.name)
+ return u'<%s%s>%s</%s>' % (self.name, attribs, inside_content,
+ self.name)
elif content_one_line:
return u'%s<%s%s>\n%s %s\n%s</%s>' % (
indent, self.name, attribs,
@@ -427,6 +428,15 @@ class Node(object):
else:
return self.attrs['translateable'] == 'true'
+ def IsAccessibilityWithNoUI(self):
+ '''Returns true if the node is marked as an accessibility label and the
+ message isn't shown in the UI. Otherwise returns false. This label is
+ used to determine if the text requires screenshots.'''
+ if not 'is_accessibility_with_no_ui' in self.attrs:
+ return False
+ else:
+ return self.attrs['is_accessibility_with_no_ui'] == 'true'
+
def GetNodeById(self, id):
'''Returns the node in the subtree parented by this node that has a 'name'
attribute matching 'id'. Returns None if no such node is found.
diff --git a/chromium/tools/grit/grit/node/message.py b/chromium/tools/grit/grit/node/message.py
index 9d87cef5ee1..4fa83cf26b6 100644
--- a/chromium/tools/grit/grit/node/message.py
+++ b/chromium/tools/grit/grit/node/message.py
@@ -90,10 +90,12 @@ class MessageNode(base.ContentNode):
return isinstance(child, (PhNode))
def _IsValidAttribute(self, name, value):
- if name not in ['name', 'offset', 'translateable', 'desc', 'meaning',
- 'internal_comment', 'shortcut_groups', 'custom_type',
- 'validation_expr', 'use_name_for_id', 'sub_variable',
- 'formatter_data']:
+ if name not in [
+ 'name', 'offset', 'translateable', 'desc', 'meaning',
+ 'internal_comment', 'shortcut_groups', 'custom_type', 'validation_expr',
+ 'use_name_for_id', 'sub_variable', 'formatter_data',
+ 'is_accessibility_with_no_ui'
+ ]:
return False
if (name in ('translateable', 'sub_variable') and
value not in ['true', 'false']):
@@ -110,16 +112,17 @@ class MessageNode(base.ContentNode):
def DefaultAttributes(self):
return {
- 'custom_type' : '',
- 'desc' : '',
- 'formatter_data' : '',
- 'internal_comment' : '',
- 'meaning' : '',
- 'shortcut_groups' : '',
- 'sub_variable' : 'false',
- 'translateable' : 'true',
- 'use_name_for_id' : 'false',
- 'validation_expr' : '',
+ 'custom_type': '',
+ 'desc': '',
+ 'formatter_data': '',
+ 'internal_comment': '',
+ 'is_accessibility_with_no_ui': 'false',
+ 'meaning': '',
+ 'shortcut_groups': '',
+ 'sub_variable': 'false',
+ 'translateable': 'true',
+ 'use_name_for_id': 'false',
+ 'validation_expr': '',
}
def HandleAttribute(self, attrib, value):
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/parser.py b/chromium/tools/grit/grit/tool/update_resource_ids/parser.py
index 3ef76845c47..da956bbd1c1 100644
--- a/chromium/tools/grit/grit/tool/update_resource_ids/parser.py
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/parser.py
@@ -99,8 +99,8 @@ def Tokenize(data):
_EatString()
t = 'S'
else:
- raise ValueError(
- 'Unknown char \'%s\' at %s' % (ch, _RenderLineCol(data, lo)))
+ raise ValueError('Unknown char %s at %s' %
+ (repr(ch), _RenderLineCol(data, lo)))
yield (t, lo, ctx.pos)
yield ('E', ctx.pos, ctx.pos) # End sentinel.
diff --git a/chromium/tools/grit/grit_rule.gni b/chromium/tools/grit/grit_rule.gni
index 87c8504dbc8..ce974476cd3 100644
--- a/chromium/tools/grit/grit_rule.gni
+++ b/chromium/tools/grit/grit_rule.gni
@@ -87,6 +87,7 @@
# # files.
# }
import("//build/config/chrome_build.gni")
+import("//build/config/chromeos/ui_mode.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/compute_inputs_for_analyze.gni")
import("//build/config/crypto.gni")
@@ -104,7 +105,7 @@ if (enable_resource_whitelist_generation) {
grit_defines = []
-if (is_mac || is_win || is_linux || is_ios) {
+if (is_mac || is_win || is_linux || is_chromeos || is_ios) {
grit_defines += [
"-D",
"scale_factors=2x",
@@ -112,7 +113,7 @@ if (is_mac || is_win || is_linux || is_ios) {
}
# Mac and iOS want Title Case strings.
-use_titlecase_in_grd_files = is_mac || is_ios
+use_titlecase_in_grd_files = is_apple
if (use_titlecase_in_grd_files) {
grit_defines += [
"-D",
@@ -143,6 +144,13 @@ if (is_chromeos) {
]
}
+if (chromeos_is_browser_only) {
+ grit_defines += [
+ "-D",
+ "lacros",
+ ]
+}
+
if (is_desktop_linux) {
grit_defines += [
"-D",
@@ -199,7 +207,7 @@ if (current_toolchain != host_toolchain) {
"ios",
]
}
- if (is_linux) {
+ if (is_linux || is_chromeos) {
grit_defines += [
"-t",
"linux2",
diff --git a/chromium/tools/gritsettings/resource_ids.spec b/chromium/tools/gritsettings/resource_ids.spec
index fa2306ead7d..0818d698644 100644
--- a/chromium/tools/gritsettings/resource_ids.spec
+++ b/chromium/tools/gritsettings/resource_ids.spec
@@ -114,6 +114,10 @@
"includes": [1300],
},
"chrome/browser/resources/chromeos/cellular_setup/cellular_setup_resources.grd": {
+ "structures": [1360],
+ },
+ "chrome/browser/resources/chromeos/multidevice_internals/multidevice_internals_resources.grd": {
+ "includes": [1370],
"structures": [1380],
},
"chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd": {
@@ -150,7 +154,7 @@
"includes": [1630],
},
"chrome/browser/resources/nearby_share/nearby_share_dialog_resources.grd": {
- "includes": [1650],
+ "includes": [1640],
},
"chrome/browser/resources/new_tab_page/new_tab_page_resources_vulcanized.grd": {
"includes": [1660],
@@ -186,22 +190,22 @@
"includes": [1860],
"structures": [1870],
},
+ "chrome/browser/resources/tab_search/tab_search_resources.grd": {
+ "includes": [1880],
+ },
"chrome/browser/resources/tab_strip/tab_strip_resources.grd": {
- "structures": [1880],
- "includes": [1900],
+ "structures": [1900],
+ "includes": [1920],
},
"chrome/browser/resources/welcome/welcome_resources.grd": {
- "includes": [1920],
- "structures": [1940],
+ "includes": [1940],
+ "structures": [1960],
},
"chrome/browser/supervised_user/supervised_user_unscaled_resources.grd": {
- "includes": [1950],
+ "includes": [1970],
},
"chrome/browser/test_dummy/internal/android/resources/resources.grd": {
- "includes": [1960],
- },
- "chrome/browser/vr/testapp/vr_testapp_resources.grd": {
- "includes": [1970],
+ "includes": [1980],
},
# END chrome/browser section.
@@ -353,6 +357,9 @@
"chromeos/components/sample_system_web_app_ui/resources/sample_system_web_app_resources.grd": {
"includes": [2640],
},
+ "chromeos/components/scanning/resources/scanning_app_resources.grd": {
+ "includes": [2645],
+ },
"chromeos/components/telemetry_extension_ui/resources/telemetry_extension_resources.grd": {
"includes": [2650],
},
diff --git a/chromium/tools/gritsettings/translation_expectations.pyl b/chromium/tools/gritsettings/translation_expectations.pyl
index b2598b2b057..cffd11d039e 100644
--- a/chromium/tools/gritsettings/translation_expectations.pyl
+++ b/chromium/tools/gritsettings/translation_expectations.pyl
@@ -38,6 +38,7 @@
"chrome/app/google_chrome_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/password_check/android/internal/java/strings/android_password_check_strings.grd",
"chrome/browser/ui/android/strings/android_chrome_strings.grd",
"chrome/credential_provider/gaiacp/gaia_resources.grd",
"chromeos/chromeos_strings.grd",
diff --git a/chromium/tools/infra/PRESUBMIT.py b/chromium/tools/infra/PRESUBMIT.py
index 77e4c076419..3352aa22a68 100644
--- a/chromium/tools/infra/PRESUBMIT.py
+++ b/chromium/tools/infra/PRESUBMIT.py
@@ -14,10 +14,13 @@ def _CommonChecks(input_api, output_api):
results.extend(input_api.canned_checks.RunPylint(input_api, output_api))
commands = []
- commands.extend(input_api.canned_checks.GetUnitTestsRecursively(
- input_api, output_api,
- input_api.os_path.join(input_api.PresubmitLocalPath()),
- whitelist=[r'.+_unittest\.py$'], blacklist=[]))
+ commands.extend(
+ input_api.canned_checks.GetUnitTestsRecursively(
+ input_api,
+ output_api,
+ input_api.os_path.join(input_api.PresubmitLocalPath()),
+ files_to_check=[r'.+_unittest\.py$'],
+ files_to_skip=[]))
results.extend(input_api.RunTests(commands))
return results
diff --git a/chromium/tools/ipc_fuzzer/BUILD.gn b/chromium/tools/ipc_fuzzer/BUILD.gn
index d86fdf77d70..8abe2472325 100644
--- a/chromium/tools/ipc_fuzzer/BUILD.gn
+++ b/chromium/tools/ipc_fuzzer/BUILD.gn
@@ -29,7 +29,6 @@ if (enable_ipc_fuzzer) {
testonly = true
deps = [
"//tools/ipc_fuzzer/fuzzer:ipc_fuzzer",
- "//tools/ipc_fuzzer/get_accessible_interfaces:get_accessible_interfaces",
"//tools/ipc_fuzzer/message_dump:ipc_message_dump",
"//tools/ipc_fuzzer/message_replay:ipc_fuzzer_replay",
"//tools/ipc_fuzzer/message_tools:ipc_message_list",
diff --git a/chromium/tools/ipc_fuzzer/fuzzer/BUILD.gn b/chromium/tools/ipc_fuzzer/fuzzer/BUILD.gn
index a80cbb097d9..ca9d712a4cb 100644
--- a/chromium/tools/ipc_fuzzer/fuzzer/BUILD.gn
+++ b/chromium/tools/ipc_fuzzer/fuzzer/BUILD.gn
@@ -20,6 +20,7 @@ executable("ipc_fuzzer") {
]
deps = [
"//base/util/type_safety",
+ "//printing/mojom:mojom_shared_cpp_sources",
"//tools/ipc_fuzzer/message_lib:ipc_message_lib",
]
public_deps = [ "//ipc" ]
diff --git a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn b/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn
deleted file mode 100644
index fd2f5914b5c..00000000000
--- a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn
+++ /dev/null
@@ -1,10 +0,0 @@
-executable("get_accessible_interfaces") {
- sources = [ "get_accessible_interfaces.cc" ]
-
- deps = [
- "//base",
- "//chrome/app:chrome_service_manifests",
- "//chrome/common",
- "//content/public/app:service_manifests",
- ]
-}
diff --git a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/get_accessible_interfaces.cc b/chromium/tools/ipc_fuzzer/get_accessible_interfaces/get_accessible_interfaces.cc
deleted file mode 100644
index f372cc5bd13..00000000000
--- a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/get_accessible_interfaces.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-// 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.
-
-#include <iostream>
-#include <string>
-
-#include "base/at_exit.h"
-#include "base/command_line.h"
-#include "base/json/json_writer.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/values.h"
-#include "build/build_config.h"
-#include "chrome/app/chrome_content_browser_overlay_manifest.h"
-#include "content/public/app/content_browser_manifest.h"
-#include "services/service_manager/public/cpp/manifest.h"
-
-base::ListValue GetInterfacesForCapability(
- const service_manager::Manifest::ExposedCapabilityMap& exposed_capabilities,
- const std::string& capability) {
- auto it = exposed_capabilities.find(capability);
- if (it == exposed_capabilities.end()) {
- return base::ListValue();
- }
-
- base::ListValue interface_names;
- for (const auto& interface_name : it->second) {
- interface_names.Append(base::Value(interface_name));
- }
-
- return interface_names;
-}
-
-void PrintAccessibleInterfaces(const service_manager::Manifest& manifest,
- const std::string& capability) {
- base::DictionaryValue interfaces;
- base::ListValue exposed_capabilities =
- GetInterfacesForCapability(manifest.exposed_capabilities, capability);
- interfaces.SetKey("exposed_capabilities", std::move(exposed_capabilities));
-
- for (const auto& entry : manifest.exposed_interface_filter_capabilities) {
- base::ListValue interface_names =
- GetInterfacesForCapability(entry.second, capability);
- interfaces.SetPath({"exposed_interface_filter_capabilities", entry.first},
- std::move(interface_names));
- }
-
- std::string output;
- base::JSONWriter::WriteWithOptions(
- interfaces, base::JSONWriter::OPTIONS_PRETTY_PRINT, &output);
- std::cout << output;
-}
-
-int main(int argc, const char** argv) {
- base::AtExitManager at_exit;
- base::CommandLine::Init(argc, argv);
-
- service_manager::Manifest manifest = content::GetContentBrowserManifest();
- manifest.Amend(GetChromeContentBrowserOverlayManifest());
-
- auto args = base::CommandLine::ForCurrentProcess()->GetArgs();
- for (const base::CommandLine::StringType& arg : args) {
-#if defined(OS_WIN)
- PrintAccessibleInterfaces(manifest, base::UTF16ToASCII(arg));
-#else
- PrintAccessibleInterfaces(manifest, arg);
-#endif
- }
-
- return 0;
-}
diff --git a/chromium/tools/ipc_fuzzer/ipc_fuzzer.gni b/chromium/tools/ipc_fuzzer/ipc_fuzzer.gni
index 492bc5099ce..f3619e3c767 100644
--- a/chromium/tools/ipc_fuzzer/ipc_fuzzer.gni
+++ b/chromium/tools/ipc_fuzzer/ipc_fuzzer.gni
@@ -13,5 +13,5 @@ declare_args() {
# (especially MSan).
enable_ipc_fuzzer =
is_clang && !is_component_build && !is_official_build && !is_chromecast &&
- !using_sanitizer && (is_linux || is_mac || is_win) && !use_ozone
+ !using_sanitizer && (is_linux || is_chromeos || is_mac || is_win) && !use_ozone
}
diff --git a/chromium/tools/json_schema_compiler/BUILD.gn b/chromium/tools/json_schema_compiler/BUILD.gn
index e71557bec55..77d4fab1f4f 100644
--- a/chromium/tools/json_schema_compiler/BUILD.gn
+++ b/chromium/tools/json_schema_compiler/BUILD.gn
@@ -5,6 +5,8 @@
# Utility sources against which generated API modules should be linked.
source_set("generated_api_util") {
sources = [
+ "manifest_parse_util.cc",
+ "manifest_parse_util.h",
"util.cc",
"util.h",
]
diff --git a/chromium/tools/json_schema_compiler/cc_generator.py b/chromium/tools/json_schema_compiler/cc_generator.py
index e0e1e19c831..fd1a77ddda2 100644
--- a/chromium/tools/json_schema_compiler/cc_generator.py
+++ b/chromium/tools/json_schema_compiler/cc_generator.py
@@ -3,7 +3,7 @@
# found in the LICENSE file.
from code import Code
-from model import PropertyType
+from model import PropertyType, Property, Type
import cpp_util
import schema_util
import util_cc_helper
@@ -51,6 +51,7 @@ class _Generator(object):
(self._namespace.source_file_dir, self._namespace.short_filename))
.Append('#include <set>')
.Append('#include <utility>')
+ .Cblock(self._GenerateManifestKeysIncludes())
.Cblock(self._type_helper.GenerateIncludes(include_soft=True))
.Append()
.Append('using base::UTF8ToUTF16;')
@@ -77,6 +78,13 @@ class _Generator(object):
.Append()
.Cblock(self._GenerateTypes(None, self._namespace.types.values()))
)
+ if self._namespace.manifest_keys:
+ (c.Append('//')
+ .Append('// Manifest Keys')
+ .Append('//')
+ .Append()
+ .Cblock(self._GenerateManifestKeys())
+ )
if self._namespace.functions:
(c.Append('//')
.Append('// Functions')
@@ -138,12 +146,23 @@ class _Generator(object):
classname))
.Cblock(self._GenerateMoveAssignOperator(type_))
)
+
+ if type_.origin.from_manifest_keys:
+ c.Cblock(
+ self._GenerateManifestKeyConstants(
+ classname_in_namespace, type_.properties.values()))
+
if type_.origin.from_json:
c.Cblock(self._GenerateTypePopulate(classname_in_namespace, type_))
if cpp_namespace is None: # only generate for top-level types
c.Cblock(self._GenerateTypeFromValue(classname_in_namespace, type_))
if type_.origin.from_client:
c.Cblock(self._GenerateTypeToValue(classname_in_namespace, type_))
+
+ if type_.origin.from_manifest_keys:
+ c.Cblock(
+ self._GenerateParseFromDictionary(classname, classname_in_namespace,
+ type_))
elif type_.property_type == PropertyType.ENUM:
(c.Cblock(self._GenerateEnumToString(cpp_namespace, type_))
.Cblock(self._GenerateEnumFromString(cpp_namespace, type_))
@@ -438,6 +457,189 @@ class _Generator(object):
else:
raise ValueError("Unsupported property type %s" % type_.type_)
+ def _GenerateManifestKeysIncludes(self):
+ # type: () -> (Code)
+ """Returns the includes needed for manifest key parsing.
+ """
+ c = Code()
+ if not self._namespace.manifest_keys:
+ return c
+
+ c.Append('#include "tools/json_schema_compiler/manifest_parse_util.h"')
+ return c
+
+ def _GenerateManifestKeyConstants(self, classname_in_namespace, properties):
+ # type: (str, List[Property]) -> Code
+ """ Generates the definition for manifest key constants declared in the
+ header.
+ """
+ c = Code()
+ for prop in properties:
+ c.Comment('static')
+ c.Append('constexpr char %s::%s[];' %
+ (classname_in_namespace,
+ cpp_util.UnixNameToConstantName(prop.unix_name)))
+
+ return c
+
+ def _GenerateManifestKeys(self):
+ # type: () -> Code
+ """Generates the types and parsing code for manifest keys.
+ """
+ assert self._namespace.manifest_keys
+ assert self._namespace.manifest_keys.property_type == PropertyType.OBJECT
+ return self._GenerateType(None, self._namespace.manifest_keys)
+
+ def _GenerateParseFromDictionary(self, classname, classname_in_namespace,
+ type_):
+ # type: (str, str, Type) -> Code
+ """Generates a function that deserializes the type from the passed
+ dictionary. E.g. for type "Foo", generates Foo::ParseFromDictionary().
+ """
+ assert type_.property_type == PropertyType.OBJECT, \
+ ('Manifest type %s must be an object, but it is: %s' %
+ (type_.name, type_.property_type))
+
+ if type_.IsRootManifestKeyType():
+ return self._GenerateParseFromDictionaryForRootManifestType(
+ classname, classname_in_namespace, type_.properties.values())
+ return self._GenerateParseFromDictionaryForChildManifestType(
+ classname, classname_in_namespace, type_.properties.values())
+
+ def _GenerateParseFromDictionaryForRootManifestType(
+ self, classname, classname_in_namespace, properties):
+ # type: (str, str, List[Property]) -> Code
+ """Generates definition for ManifestKeys::ParseFromDictionary.
+ """
+ params = [
+ 'const base::DictionaryValue& root_dict',
+ '%(classname)s* out'
+ ]
+
+ c = Code()
+ c.Append('//static')
+ c.Append('bool %(classname_in_namespace)s::ParseFromDictionary(')
+
+ # Make |generate_error_messages| True since we always generate error
+ # messages for manifest parsing.
+ c.Sblock('%s) {' %
+ self._GenerateParams(params, generate_error_messages=True))
+
+ c.Append('DCHECK(out);')
+ c.Append('DCHECK(error);')
+ c.Append()
+
+ c.Append('std::vector<base::StringPiece> error_path_reversed_vec;')
+ c.Append('auto* error_path_reversed = &error_path_reversed_vec;')
+ c.Append('const base::DictionaryValue& dict = root_dict;')
+
+ for prop in properties:
+ c.Concat(self._InitializePropertyToDefault(prop, 'out'))
+
+ for prop in properties:
+ c.Cblock(
+ self._ParsePropertyFromDictionary(prop, is_root_manifest_type=True))
+
+ c.Append('return true;')
+ c.Eblock('}')
+ c.Substitute({
+ 'classname_in_namespace': classname_in_namespace,
+ 'classname': classname
+ })
+ return c
+
+ def _GenerateParseFromDictionaryForChildManifestType(
+ self, classname, classname_in_namespace, properties):
+ # type: (str, str, List[Property]) -> Code
+ """Generates T::ParseFromDictionary for a child manifest type.
+ """
+ params = [
+ 'const base::DictionaryValue& root_dict',
+ 'base::StringPiece key',
+ '%(classname)s* out',
+ 'base::string16* error',
+ 'std::vector<base::StringPiece>* error_path_reversed'
+ ]
+
+ c = Code()
+ c.Append('//static')
+ c.Append('bool %(classname_in_namespace)s::ParseFromDictionary(')
+
+ # Make |generate_error_messages| False since |error| is already included
+ # within |params|.
+ c.Sblock('%s) {' %
+ self._GenerateParams(params, generate_error_messages=False))
+
+ c.Append('DCHECK(out);')
+ c.Append('DCHECK(error);')
+ c.Append('DCHECK(error_path_reversed);')
+ c.Append()
+
+ c.Append(
+ 'const base::Value* value = '
+ '::json_schema_compiler::manifest_parse_util::FindKeyOfType('
+ 'root_dict, key, base::Value::Type::DICTIONARY, error, '
+ 'error_path_reversed);'
+ )
+ c.Sblock('if (!value)')
+ c.Append('return false;')
+ c.Eblock('const base::DictionaryValue& dict = '
+ 'base::Value::AsDictionaryValue(*value);')
+
+ for prop in properties:
+ c.Concat(self._InitializePropertyToDefault(prop, 'out'))
+
+ for prop in properties:
+ c.Cblock(
+ self._ParsePropertyFromDictionary(prop, is_root_manifest_type=False))
+
+ c.Append('return true;')
+ c.Eblock('}')
+ c.Substitute({
+ 'classname_in_namespace': classname_in_namespace,
+ 'classname': classname
+ })
+ return c
+
+ def _ParsePropertyFromDictionary(self, property, is_root_manifest_type):
+ # type: (Property, bool) -> Code
+ """Generates the code to parse a single property from a dictionary.
+ """
+ supported_property_types = {
+ PropertyType.ARRAY,
+ PropertyType.BOOLEAN,
+ PropertyType.DOUBLE,
+ PropertyType.INT64,
+ PropertyType.INTEGER,
+ PropertyType.OBJECT,
+ PropertyType.STRING,
+ }
+
+ c = Code()
+ underlying_type = self._type_helper.FollowRef(property.type_)
+ underlying_property_type = underlying_type.property_type
+ assert (underlying_property_type in supported_property_types), (
+ 'Property type not implemented for %s, type: %s, namespace: %s' %
+ (underlying_property_type, underlying_type.name,
+ underlying_type.namespace.name))
+
+ property_constant = cpp_util.UnixNameToConstantName(property.unix_name)
+ out_expression = '&out->%s' % property.unix_name
+ c.Sblock(
+ 'if (!::json_schema_compiler::manifest_parse_util::ParseFromDictionary'
+ '(dict, %s, %s, error, error_path_reversed)) {' %
+ (property_constant, out_expression)
+ )
+ if is_root_manifest_type:
+ c.Append('::json_schema_compiler::manifest_parse_util::'
+ 'PopulateFinalError(error, error_path_reversed);')
+ else:
+ c.Append('error_path_reversed->push_back(key);')
+ c.Append('return false;')
+ c.Eblock('}')
+
+ return c
+
def _GenerateObjectTypeToValue(self, cpp_namespace, type_):
"""Generates a function that serializes an object-representing type
into a base::DictionaryValue.
@@ -1017,8 +1219,6 @@ class _Generator(object):
c.Sblock('switch (enum_param) {')
for enum_value in self._type_helper.FollowRef(type_).enum_values:
name = enum_value.name
- if 'camel_case_enum_to_string' in self._namespace.compiler_options:
- name = enum_value.CamelName()
(c.Append('case %s: ' % self._type_helper.GetEnumValue(type_, enum_value))
.Append(' return "%s";' % name))
(c.Append('case %s:' % self._type_helper.GetEnumNoneValue(type_))
@@ -1049,8 +1249,6 @@ class _Generator(object):
# "fatal error C1061: compiler limit : blocks nested too deeply"
# on Windows.
name = enum_value.name
- if 'camel_case_enum_to_string' in self._namespace.compiler_options:
- name = enum_value.CamelName()
(c.Append('if (enum_string == "%s")' % name)
.Append(' return %s;' %
self._type_helper.GetEnumValue(type_, enum_value)))
@@ -1139,10 +1337,14 @@ class _Generator(object):
.Append('error->append(UTF8ToUTF16(%s));' % body))
return c
- def _GenerateParams(self, params):
+ def _GenerateParams(self, params, generate_error_messages=None):
"""Builds the parameter list for a function, given an array of parameters.
+ If |generate_error_messages| is specified, it overrides
+ |self._generate_error_messages|.
"""
- if self._generate_error_messages:
+ if generate_error_messages is None:
+ generate_error_messages = self._generate_error_messages
+ if generate_error_messages:
params = list(params) + ['base::string16* error']
return ', '.join(str(p) for p in params)
diff --git a/chromium/tools/json_schema_compiler/cpp_bundle_generator.py b/chromium/tools/json_schema_compiler/cpp_bundle_generator.py
index 96055ae0098..4e4fbf30e8c 100644
--- a/chromium/tools/json_schema_compiler/cpp_bundle_generator.py
+++ b/chromium/tools/json_schema_compiler/cpp_bundle_generator.py
@@ -143,11 +143,17 @@ class CppBundleGenerator(object):
ifdefs = []
for platform in model_object.platforms:
if platform == Platforms.CHROMEOS:
- ifdefs.append('defined(OS_CHROMEOS)')
+ # TODO(https://crbug.com/1052397): For readability, this should become
+ # defined(OS_CHROMEOS) && BUILDFLAG(IS_ASH).
+ ifdefs.append('(defined(OS_CHROMEOS) && !BUILDFLAG(IS_LACROS))')
+ elif platform == Platforms.LACROS:
+ # TODO(https://crbug.com/1052397): For readability, this should become
+ # defined(OS_CHROMEOS) && BUILDFLAG(IS_LACROS).
+ ifdefs.append('BUILDFLAG(IS_LACROS)')
elif platform == Platforms.LINUX:
ifdefs.append('(defined(OS_LINUX) && !defined(OS_CHROMEOS))')
elif platform == Platforms.MAC:
- ifdefs.append('defined(OS_MACOSX)')
+ ifdefs.append('defined(OS_MAC)')
elif platform == Platforms.WIN:
ifdefs.append('defined(OS_WIN)')
else:
@@ -252,6 +258,9 @@ class _APICCGenerator(object):
os.path.join(self._bundle._impl_dir,
'generated_api_registration.h')))
c.Append()
+ c.Append('#include "build/build_config.h"')
+ c.Append('#include "build/lacros_buildflags.h"')
+ c.Append()
for namespace in self._bundle._model.namespaces.values():
namespace_name = namespace.unix_name.replace("experimental_", "")
implementation_header = namespace.compiler_options.get(
@@ -334,6 +343,11 @@ class _SchemasCCGenerator(object):
c.Append('#include "%s"' % (os.path.join(self._bundle._source_file_dir,
'generated_schemas.h')))
c.Append()
+ c.Append('#include <algorithm>')
+ c.Append('#include <iterator>')
+ c.Append()
+ c.Append('#include "base/stl_util.h"')
+ c.Append()
c.Append('namespace {')
for api in self._bundle._api_defs:
namespace = self._bundle._model.namespaces[api.get('namespace')]
@@ -348,8 +362,9 @@ class _SchemasCCGenerator(object):
json_content[i:i + max_length]
for i in range(0, len(json_content), max_length)
]
- c.Append('const char %s[] = R"R(%s)R";' % (_FormatNameAsConstant(
- namespace.name), ')R" R"R('.join(segments)))
+ c.Append(
+ 'constexpr char %s[] = R"R(%s)R";' %
+ (_FormatNameAsConstant(namespace.name), ')R" R"R('.join(segments)))
c.Append('} // namespace')
c.Append()
c.Concat(cpp_util.OpenNamespace(self._bundle._cpp_namespace))
@@ -363,23 +378,32 @@ class _SchemasCCGenerator(object):
c.Append('// static')
c.Sblock('base::StringPiece %s::Get(base::StringPiece name) {' %
self._bundle._GenerateBundleClass('GeneratedSchemas'))
- c.Append('static const struct {')
- c.Append(' base::StringPiece name;')
- c.Append(' base::StringPiece schema;')
+ c.Sblock('static constexpr struct kSchemaMapping {')
+ c.Append('const base::StringPiece name;')
+ c.Append('const base::StringPiece schema;')
+ c.Sblock('constexpr bool operator<(const kSchemaMapping& that) const {')
+ c.Append('return name < that.name;')
+ c.Eblock('}')
+ c.Eblock()
c.Sblock('} kSchemas[] = {')
namespaces = [self._bundle._model.namespaces[api.get('namespace')].name
for api in self._bundle._api_defs]
for namespace in sorted(namespaces):
schema_constant_name = _FormatNameAsConstant(namespace)
- c.Append('{{"%s", %d}, {%s, sizeof(%s) - 1}},' %
- (namespace, len(namespace),
- schema_constant_name, schema_constant_name))
+ c.Append('{"%s", %s},' % (namespace, schema_constant_name))
c.Eblock('};')
- c.Sblock('for (const auto& schema : kSchemas) {')
- c.Sblock('if (schema.name == name)')
- c.Append('return schema.schema;')
+ c.Append('static_assert(base::STLIsSorted(kSchemas), "|kSchemas| should be '
+ 'sorted.");')
+
+ c.Sblock('auto it = std::lower_bound(std::begin(kSchemas), '
+ 'std::end(kSchemas),')
+ c.Append('kSchemaMapping{name, base::StringPiece()});')
c.Eblock()
- c.Eblock('}')
+
+ c.Sblock('if (it != std::end(kSchemas) && it->name == name)')
+ c.Append('return it->schema;')
+ c.Eblock()
+
c.Append('return base::StringPiece();')
c.Eblock('}')
c.Append()
diff --git a/chromium/tools/json_schema_compiler/cpp_bundle_generator_test.py b/chromium/tools/json_schema_compiler/cpp_bundle_generator_test.py
index 2241ecd95ed..0994d0659b2 100755
--- a/chromium/tools/json_schema_compiler/cpp_bundle_generator_test.py
+++ b/chromium/tools/json_schema_compiler/cpp_bundle_generator_test.py
@@ -36,15 +36,15 @@ class CppBundleGeneratorTest(unittest.TestCase):
'test/function_platform_all.json')
self.assertEquals(
'defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || '
- 'defined(OS_CHROMEOS)',
+ '(defined(OS_CHROMEOS) && !BUILDFLAG(IS_LACROS))',
_getPlatformIfdefs(cpp_bundle_generator, model))
def testIfDefsForChromeOS(self):
cpp_bundle_generator, model = _createCppBundleGenerator(
'test/function_platform_chromeos.json')
- self.assertEquals(
- 'defined(OS_CHROMEOS)',
- _getPlatformIfdefs(cpp_bundle_generator, model))
+ self.assertEquals('(defined(OS_CHROMEOS) && !BUILDFLAG(IS_LACROS))',
+ _getPlatformIfdefs(cpp_bundle_generator, model))
+
if __name__ == '__main__':
unittest.main()
diff --git a/chromium/tools/json_schema_compiler/cpp_type_generator.py b/chromium/tools/json_schema_compiler/cpp_type_generator.py
index 7cfe961aa76..50e475e6860 100644
--- a/chromium/tools/json_schema_compiler/cpp_type_generator.py
+++ b/chromium/tools/json_schema_compiler/cpp_type_generator.py
@@ -162,6 +162,8 @@ class CppTypeGenerator(object):
"""Returns the #include lines for self._default_namespace.
"""
c = Code()
+ if self._default_namespace.manifest_keys:
+ c.Append('#include "base/strings/string_piece.h"')
for namespace, dependencies in self._NamespaceTypeDependencies().items():
for dependency in dependencies:
if dependency.hard or include_soft:
diff --git a/chromium/tools/json_schema_compiler/cpp_util.py b/chromium/tools/json_schema_compiler/cpp_util.py
index 244815ae3ae..766833f94fb 100644
--- a/chromium/tools/json_schema_compiler/cpp_util.py
+++ b/chromium/tools/json_schema_compiler/cpp_util.py
@@ -34,10 +34,13 @@ def Classname(s):
suited to C++.
eg experimental.downloads -> Experimental_Downloads
- updateAll -> UpdateAll.
+ updateAll -> UpdateAll
+ update_all -> UpdateAll
"""
if s == '':
return 'EMPTY_STRING'
+ if IsUnixName(s):
+ return CamelCase(s)
return '_'.join([x[0].upper() + x[1:] for x in re.split(r'\W', s)])
@@ -123,6 +126,7 @@ def CloseNamespace(cpp_namespace):
return c
+# TODO(karandeepb): Rename to FeatureNameToConstantName.
def ConstantName(feature_name):
"""Returns a kName for a feature's name.
"""
@@ -130,6 +134,20 @@ def ConstantName(feature_name):
for word in feature_name.replace('.', ' ').split()))
+def UnixNameToConstantName(unix_name):
+ # type (str) -> str
+ """Converts unix_name to kUnixName.
+ """
+ return ('k' + ''.join(word[0].upper() + word[1:]
+ for word in unix_name.split('_')))
+
+def IsUnixName(s):
+ # type (str) -> bool
+ """Returns true if |s| is of the type unix_name i.e. only has lower cased
+ characters and underscores with at least one underscore.
+ """
+ return all(x.islower() or x == '_' for x in s) and '_' in s
+
def CamelCase(unix_name):
return ''.join(word.capitalize() for word in unix_name.split('_'))
diff --git a/chromium/tools/json_schema_compiler/feature_compiler.py b/chromium/tools/json_schema_compiler/feature_compiler.py
index abe870e6d51..acb4e455085 100644
--- a/chromium/tools/json_schema_compiler/feature_compiler.py
+++ b/chromium/tools/json_schema_compiler/feature_compiler.py
@@ -8,6 +8,7 @@ import argparse
import copy
from datetime import datetime
from functools import partial
+import json
import os
import re
import sys
@@ -67,6 +68,10 @@ CC_FILE_END = """
} // namespace extensions
"""
+# Legacy keys for the allow and blocklists.
+LEGACY_ALLOWLIST_KEY = 'whitelist'
+LEGACY_BLOCKLIST_KEY = 'blacklist'
+
# Returns true if the list 'l' only contains strings that are a hex-encoded SHA1
# hashes.
def ListContainsOnlySha1Hashes(l):
@@ -119,7 +124,7 @@ FEATURE_GRAMMAR = ({
str: {},
'shared': True
},
- 'blacklist': {
+ LEGACY_BLOCKLIST_KEY: {
list: {
'subtype':
str,
@@ -168,8 +173,8 @@ FEATURE_GRAMMAR = ({
},
'dependencies': {
list: {
- # We allow an empty list of dependencies for child features that want
- # to override their parents' dependency set.
+ # We allow an empty list of dependencies for child features that
+ # want to override their parents' dependency set.
'allow_empty': True,
'subtype': str
}
@@ -235,6 +240,7 @@ FEATURE_GRAMMAR = ({
list: {
'enum_map': {
'chromeos': 'Feature::CHROMEOS_PLATFORM',
+ 'lacros': 'Feature::LACROS_PLATFORM',
'linux': 'Feature::LINUX_PLATFORM',
'mac': 'Feature::MACOSX_PLATFORM',
'win': 'Feature::WIN_PLATFORM',
@@ -254,7 +260,7 @@ FEATURE_GRAMMAR = ({
str: {},
'shared': True
},
- 'whitelist': {
+ LEGACY_ALLOWLIST_KEY: {
list: {
'subtype':
str,
@@ -309,6 +315,61 @@ def IsFeatureCrossReference(property_name, reverse_property_name, feature,
return True
return reverse_reference_value == ('"%s"' % feature.name)
+# Verifies that a feature with an allowlist is not available to hosted apps,
+# returning true on success.
+def DoesNotHaveAllowlistForHostedApps(value):
+ if not LEGACY_ALLOWLIST_KEY in value:
+ return True
+
+ # Hack Alert: |value| here has the code for the generated C++ feature. Since
+ # we're looking at the individual values, we do a bit of yucky back-parsing
+ # to get a better look at the feature. This would be cleaner if we were
+ # operating on the JSON feature itself, but we currently never generate a
+ # JSON-based feature object that has all the values inherited from its
+ # parents. Since this is the only scenario we need this type of validation,
+ # doing it in a slightly ugly way isn't too bad. If we need more of these,
+ # we should find a smoother way to do it (e.g. first generate JSON-based
+ # features with inherited properties, do any necessary validation, then
+ # generate the C++ code strings).
+
+ # The feature did not specify extension types; this is fine for e.g.
+ # API features (which would typically rely on a permission feature, which
+ # is required to specify types).
+ if not 'extension_types' in value:
+ return True
+
+ types = value['extension_types']
+ # |types| looks like "{Manifest::TYPE_1, Manifest::TYPE_2}", so just looking
+ # for the "TYPE_HOSTED_APP substring is sufficient.
+ if 'TYPE_HOSTED_APP' not in types:
+ return True
+
+ # Helper to convert our C++ string array like "{\"aaa\", \"bbb\"}" (which is
+ # what the allowlist looks like) to a python list of strings.
+ def cpp_list_to_list(cpp_list):
+ assert type(cpp_list) is str
+ assert cpp_list[0] is '{'
+ assert cpp_list[-1] is '}'
+ new_list = json.loads('[%s]' % cpp_list[1:-1])
+ assert type(new_list) is list
+ return new_list
+
+ # Exceptions (see the feature files).
+ # DO NOT ADD MORE.
+ HOSTED_APP_EXCEPTIONS = [
+ '99060B01DE911EB85FD630C8BA6320C9186CA3AB',
+ 'B44D08FD98F1523ED5837D78D0A606EA9D6206E5',
+ '2653F6F6C39BC6EEBD36A09AFB92A19782FF7EB4',
+ ]
+
+ allowlist = cpp_list_to_list(value[LEGACY_ALLOWLIST_KEY])
+ for entry in allowlist:
+ if entry not in HOSTED_APP_EXCEPTIONS:
+ return False
+
+ return True
+
+
SIMPLE_FEATURE_CPP_CLASSES = ({
'APIFeature': 'SimpleFeature',
'ManifestFeature': 'ManifestFeature',
@@ -320,6 +381,8 @@ VALIDATION = ({
'all': [
(partial(HasAtLeastOneProperty, ['channel', 'dependencies']),
'Features must specify either a channel or dependencies'),
+ (DoesNotHaveAllowlistForHostedApps,
+ 'Hosted apps are not allowed to use restricted features')
],
'APIFeature': [
(partial(HasProperty, 'contexts'),
@@ -388,10 +451,10 @@ def GetCodeForFeatureValues(feature_values):
# TODO(devlin): Remove this hack as part of 842387.
set_key = key
- if key == "whitelist":
- set_key = "allowlist"
- elif key == "blacklist":
- set_key = "blocklist"
+ if key == LEGACY_ALLOWLIST_KEY:
+ set_key = 'allowlist'
+ elif key == LEGACY_BLOCKLIST_KEY:
+ set_key = 'blocklist'
c.Append('feature->set_%s(%s);' % (set_key, feature_values[key]))
return c
diff --git a/chromium/tools/json_schema_compiler/feature_compiler_test.py b/chromium/tools/json_schema_compiler/feature_compiler_test.py
index e7874cb90db..43c376284f4 100755
--- a/chromium/tools/json_schema_compiler/feature_compiler_test.py
+++ b/chromium/tools/json_schema_compiler/feature_compiler_test.py
@@ -371,6 +371,64 @@ class FeatureCompilerTest(unittest.TestCase):
self._hasError(
f, 'list should only have hex-encoded SHA1 hashes of extension ids')
+ def testHostedAppsCantUseAllowlistedFeatures_SimpleFeature(self):
+ f = self._parseFeature({
+ 'extension_types': ['extension', 'hosted_app'],
+ 'whitelist': ['0123456789ABCDEF0123456789ABCDEF01234567'],
+ 'channel': 'beta',
+ })
+ f.Validate('PermissionFeature', {})
+ self._hasError(f, 'Hosted apps are not allowed to use restricted features')
+
+ def testHostedAppsCantUseAllowlistedFeatures_ComplexFeature(self):
+ c = feature_compiler.FeatureCompiler(
+ None, None, 'PermissionFeature', None, None, None)
+ c._CompileFeature('invalid_feature',
+ [{
+ 'extension_types': ['extension'],
+ 'channel': 'beta',
+ }, {
+ 'channel': 'beta',
+ 'extension_types': ['hosted_app'],
+ 'whitelist': ['0123456789ABCDEF0123456789ABCDEF01234567'],
+ }])
+ c._CompileFeature('valid_feature',
+ [{
+ 'extension_types': ['extension'],
+ 'channel': 'beta',
+ 'whitelist': ['0123456789ABCDEF0123456789ABCDEF01234567'],
+ }, {
+ 'channel': 'beta',
+ 'extension_types': ['hosted_app'],
+ }])
+
+ valid_feature = c._features.get('valid_feature')
+ self.assertTrue(valid_feature)
+ self.assertFalse(valid_feature.GetErrors())
+
+ invalid_feature = c._features.get('invalid_feature')
+ self.assertTrue(invalid_feature)
+ self._hasError(invalid_feature,
+ 'Hosted apps are not allowed to use restricted features')
+
+
+ def testHostedAppsCantUseAllowlistedFeatures_ChildFeature(self):
+ c = feature_compiler.FeatureCompiler(
+ None, None, 'PermissionFeature', None, None, None)
+ c._CompileFeature('parent',
+ {
+ 'extension_types': ['hosted_app'],
+ 'channel': 'beta',
+ })
+
+ c._CompileFeature('parent.child',
+ {
+ 'whitelist': ['0123456789ABCDEF0123456789ABCDEF01234567']
+ })
+ feature = c._features.get('parent.child')
+ self.assertTrue(feature)
+ self._hasError(feature,
+ 'Hosted apps are not allowed to use restricted features')
if __name__ == '__main__':
unittest.main()
diff --git a/chromium/tools/json_schema_compiler/h_generator.py b/chromium/tools/json_schema_compiler/h_generator.py
index 04b26e4cd78..8bfb47f495c 100644
--- a/chromium/tools/json_schema_compiler/h_generator.py
+++ b/chromium/tools/json_schema_compiler/h_generator.py
@@ -5,7 +5,7 @@
import os
from code import Code
-from model import PropertyType
+from model import PropertyType, Type, Property
import cpp_util
import schema_util
@@ -93,6 +93,12 @@ class _Generator(object):
is_toplevel=True,
generate_typedefs=True))
)
+ if self._namespace.manifest_keys:
+ c.Append('//')
+ c.Append('// Manifest Keys')
+ c.Append('//')
+ c.Append()
+ c.Cblock(self._GenerateManifestKeys())
if self._namespace.functions:
(c.Append('//')
.Append('// Functions')
@@ -208,7 +214,7 @@ class _Generator(object):
elif type_.property_type == PropertyType.ENUM:
if type_.description:
c.Comment(type_.description)
- c.Cblock(self._GenerateEnumDeclaration(classname, type_));
+ c.Cblock(self._GenerateEnumDeclaration(classname, type_))
# Top level enums are in a namespace scope so the methods shouldn't be
# static. On the other hand, those declared inline (e.g. in an object) do.
maybe_static = '' if is_toplevel else 'static '
@@ -222,13 +228,19 @@ class _Generator(object):
PropertyType.OBJECT):
if type_.description:
c.Comment(type_.description)
+
(c.Sblock('struct %(classname)s {')
- .Append('%(classname)s();')
- .Append('~%(classname)s();')
- )
- (c.Append('%(classname)s(%(classname)s&& rhs);')
+ .Append('%(classname)s();')
+ .Append('~%(classname)s();')
+ .Append('%(classname)s(%(classname)s&& rhs);')
.Append('%(classname)s& operator=(%(classname)s&& rhs);')
)
+
+ if type_.origin.from_manifest_keys:
+ c.Append()
+ c.Comment('Manifest key constants.')
+ c.Concat(self._GenerateManifestKeyConstants(type_.properties.values()))
+
if type_.origin.from_json:
(c.Append()
.Comment('Populates a %s object from a base::Value. Returns'
@@ -252,6 +264,10 @@ class _Generator(object):
'%s object.' % (value_type, classname))
.Append('std::unique_ptr<%s> ToValue() const;' % value_type)
)
+
+ if type_.origin.from_manifest_keys:
+ c.Cblock(self._GenerateParseFromDictionary(type_, classname))
+
if type_.property_type == PropertyType.CHOICES:
# Choices are modelled with optional fields for each choice. Exactly one
# field of the choice is guaranteed to be set by the compiler.
@@ -353,6 +369,65 @@ class _Generator(object):
generate_typedefs=generate_typedefs))
return c
+ def _GenerateManifestKeys(self):
+ # type: () -> Code
+ """Generates the types and parsing code for manifest keys.
+ """
+ assert self._namespace.manifest_keys
+ assert self._namespace.manifest_keys.property_type == PropertyType.OBJECT
+ return self._GenerateType(self._namespace.manifest_keys)
+
+ def _GenerateParseFromDictionary(self, type_, classname):
+ # type: (Type, str) -> Code
+ """Generates the ParseFromDictionary method declaration.
+ """
+ # Omit |key| and |error_path_reversed| argument for the top level
+ # ManifestKeys type. These are an implementation detail for the inner
+ # manifest types.
+ if type_.IsRootManifestKeyType():
+ params = [
+ 'const base::DictionaryValue& root_dict',
+ '%s* out' % classname,
+ 'base::string16* error'
+ ]
+ comment = (
+ 'Parses manifest keys for this namespace. Any keys not available to the'
+ ' manifest will be ignored. On a parsing error, false is returned and '
+ '|error| is populated.')
+ else:
+ params = [
+ 'const base::DictionaryValue& root_dict',
+ 'base::StringPiece key',
+ '%s* out' % classname,
+ 'base::string16* error',
+ 'std::vector<base::StringPiece>* error_path_reversed'
+ ]
+ comment = (
+ 'Parses the given |key| from |root_dict|. Any keys not available to the'
+ ' manifest will be ignored. On a parsing error, false is returned and '
+ '|error| and |error_path_reversed| are populated.')
+
+ c = Code()
+ c.Append().Comment(comment)
+
+ # Make |generate_error_messages| False since |error| is already included
+ # within |params|.
+ params = self._GenerateParams(params, generate_error_messages=False)
+ c.Append('static bool ParseFromDictionary(%s);' % params)
+ return c
+
+ def _GenerateManifestKeyConstants(self, properties):
+ # type: (list[Property]) -> Code
+ """Generates string constants for manifest keys for the given |properties|.
+ """
+
+ c = Code()
+ for prop in properties:
+ c.Append('static constexpr char %s[] = "%s";' %
+ (cpp_util.UnixNameToConstantName(prop.unix_name), prop.name))
+
+ return c
+
def _GenerateCreateCallbackArguments(self, function):
"""Generates functions for passing parameters to a callback.
"""
@@ -390,14 +465,18 @@ class _Generator(object):
)
return c
- def _GenerateParams(self, params):
+ def _GenerateParams(self, params, generate_error_messages=None):
"""Builds the parameter list for a function, given an array of parameters.
+ If |generate_error_messages| is specified, it overrides
+ |self._generate_error_messages|.
"""
# |error| is populated with warnings and/or errors found during parsing.
# |error| being set does not necessarily imply failure and may be
# recoverable.
# For example, optional properties may have failed to parse, but the
# parser was able to continue.
- if self._generate_error_messages:
+ if generate_error_messages is None:
+ generate_error_messages = self._generate_error_messages
+ if generate_error_messages:
params += ('base::string16* error',)
return ', '.join(str(p) for p in params)
diff --git a/chromium/tools/json_schema_compiler/idl_schema.py b/chromium/tools/json_schema_compiler/idl_schema.py
index ed8b08faf4b..8b39cd6ff16 100755
--- a/chromium/tools/json_schema_compiler/idl_schema.py
+++ b/chromium/tools/json_schema_compiler/idl_schema.py
@@ -417,6 +417,7 @@ class Namespace(object):
self.events = []
self.functions = []
self.properties = OrderedDict()
+ self.manifest_keys = None
self.types = []
self.callbacks = OrderedDict()
self.description = description
@@ -425,7 +426,10 @@ class Namespace(object):
def process(self):
for node in self.namespace.GetChildren():
- if node.cls == 'Dictionary':
+ if node.cls == 'Dictionary' and node.GetName() == 'ManifestKeys':
+ self.manifest_keys = Dictionary(node).process(
+ self.callbacks)['properties']
+ elif node.cls == 'Dictionary':
self.types.append(Dictionary(node).process(self.callbacks))
elif node.cls == 'Callback':
k, v = Member(node).process(self.callbacks)
@@ -450,18 +454,21 @@ class Namespace(object):
sys.exit('Did not process %s %s' % (node.cls, node))
compiler_options = self.compiler_options or {}
documentation_options = self.documentation_options or {}
- return {'namespace': self.namespace.GetName(),
- 'description': self.description,
- 'nodoc': self.nodoc,
- 'types': self.types,
- 'functions': self.functions,
- 'properties': self.properties,
- 'internal': self.internal,
- 'events': self.events,
- 'platforms': self.platforms,
- 'compiler_options': compiler_options,
- 'deprecated': self.deprecated,
- 'documentation_options': documentation_options}
+ return {
+ 'namespace': self.namespace.GetName(),
+ 'description': self.description,
+ 'nodoc': self.nodoc,
+ 'types': self.types,
+ 'functions': self.functions,
+ 'properties': self.properties,
+ 'manifest_keys': self.manifest_keys,
+ 'internal': self.internal,
+ 'events': self.events,
+ 'platforms': self.platforms,
+ 'compiler_options': compiler_options,
+ 'deprecated': self.deprecated,
+ 'documentation_options': documentation_options
+ }
def process_interface(self, node, functions_are_properties=False):
members = []
@@ -522,8 +529,6 @@ class IDLSchema(object):
platforms = list(node.value)
elif node.name == 'implemented_in':
compiler_options['implemented_in'] = node.value
- elif node.name == 'camel_case_enum_to_string':
- compiler_options['camel_case_enum_to_string'] = node.value
elif node.name == 'generate_error_messages':
compiler_options['generate_error_messages'] = True
elif node.name == 'deprecated':
diff --git a/chromium/tools/json_schema_compiler/idl_schema_test.py b/chromium/tools/json_schema_compiler/idl_schema_test.py
index 32550c9d931..efac48dc033 100755
--- a/chromium/tools/json_schema_compiler/idl_schema_test.py
+++ b/chromium/tools/json_schema_compiler/idl_schema_test.py
@@ -456,6 +456,22 @@ class IdlSchemaTest(unittest.TestCase):
])),
]), schema.get('properties'))
+ def testManifestKeys(self):
+ schema = self.idl_basics
+ self.assertEquals(
+ OrderedDict([('key_str',
+ OrderedDict([('description', 'String manifest key.'),
+ ('jsexterns', None), ('name', 'key_str'),
+ ('type', 'string')])),
+ ('key_ref',
+ OrderedDict([('name', 'key_ref'),
+ ('$ref', 'MyType2')]))]),
+ schema.get('manifest_keys'))
+
+ def testNoManifestKeys(self):
+ schema = idl_schema.Load('test/idl_properties.idl')[0]
+ self.assertIsNone(schema.get('manifest_keys'))
+
if __name__ == '__main__':
unittest.main()
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 797456e36cf..af8264ba061 100755
--- a/chromium/tools/json_schema_compiler/js_externs_generator_test.py
+++ b/chromium/tools/json_schema_compiler/js_externs_generator_test.py
@@ -84,6 +84,8 @@ namespace fakeApi {
static void instanceOfObjectParam([instanceOf=SomeType] object obj);
+ static void instanceOfBarObjectParam([instanceOf=Bar] object barObj);
+
static void optionalParam(optional OptionalParamCallback callback);
static void nonFinalOptionalParams(
@@ -242,6 +244,12 @@ chrome.fakeApi.returnString = function() {};
chrome.fakeApi.instanceOfObjectParam = function(obj) {};
/**
+ * @param {chrome.fakeApi.Bar} barObj
+ * @see https://developer.chrome.com/extensions/fakeApi#method-instanceOfBarObjectParam
+ */
+chrome.fakeApi.instanceOfBarObjectParam = function(barObj) {};
+
+/**
* @param {function((!chrome.fakeApi.Qux|undefined)): void=} callback
* @see https://developer.chrome.com/extensions/fakeApi#method-optionalParam
*/
diff --git a/chromium/tools/json_schema_compiler/js_util.py b/chromium/tools/json_schema_compiler/js_util.py
index a6c72a67e39..dd373641a64 100644
--- a/chromium/tools/json_schema_compiler/js_util.py
+++ b/chromium/tools/json_schema_compiler/js_util.py
@@ -163,7 +163,14 @@ class JsUtil(object):
c = Code()
self.AppendObjectDefinition(c, namespace_name, js_type.properties)
return c
+
+ # Support instanceof for types in the same namespace and built-in
+ # types. This doesn't support types in another namespace e.g. if
+ # js_type.instanceof is 'tabs.Tab'.
if js_type.instance_of:
+ if js_type.instance_of in js_type.namespace.types:
+ return Code().Append('chrome.%s.%s' %
+ (namespace_name, js_type.instance_of))
return Code().Append(js_type.instance_of)
return Code().Append('Object')
if js_type.property_type is PropertyType.ARRAY:
diff --git a/chromium/tools/json_schema_compiler/manifest_parse_util.cc b/chromium/tools/json_schema_compiler/manifest_parse_util.cc
new file mode 100644
index 00000000000..ae41bbc62e1
--- /dev/null
+++ b/chromium/tools/json_schema_compiler/manifest_parse_util.cc
@@ -0,0 +1,139 @@
+// 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.
+
+#include "tools/json_schema_compiler/manifest_parse_util.h"
+
+#include "base/strings/string_util.h"
+#include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
+
+namespace json_schema_compiler {
+namespace manifest_parse_util {
+
+namespace {
+
+// Alias for a pointer to a base::Value const function which converts the
+// base::Value into type T. This is used by ParseHelper below.
+template <typename T>
+using ValueTypeConverter = T (base::Value::*)() const;
+
+template <typename T, typename U>
+bool ParseHelper(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ base::Value::Type expected_type,
+ ValueTypeConverter<U> type_converter,
+ T* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ DCHECK(type_converter);
+ DCHECK(out);
+
+ const base::Value* value =
+ FindKeyOfType(dict, key, expected_type, error, error_path_reversed);
+ if (!value)
+ return false;
+
+ *out = (value->*type_converter)();
+ return true;
+}
+
+} // namespace
+
+void PopulateArrayParseError(
+ base::StringPiece key,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ DCHECK(error);
+ DCHECK(error_path_reversed);
+ DCHECK(!error->empty());
+ DCHECK(error_path_reversed->empty());
+
+ error_path_reversed->push_back(key);
+ *error = base::ASCIIToUTF16(base::StringPrintf(
+ "Parsing array failed: %s.", base::UTF16ToASCII(*error).c_str()));
+}
+
+void PopulateFinalError(base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ DCHECK(error);
+ DCHECK(error_path_reversed);
+ DCHECK(!error->empty());
+ DCHECK(!error_path_reversed->empty());
+
+ // Reverse the path to ensure the constituent keys are in the correct order.
+ std::reverse(error_path_reversed->begin(), error_path_reversed->end());
+ *error = base::ASCIIToUTF16(
+ base::StringPrintf("Error at key '%s'. %s",
+ base::JoinString(*error_path_reversed, ".").c_str(),
+ base::UTF16ToASCII(*error).c_str()));
+}
+
+const base::Value* FindKeyOfType(
+ const base::DictionaryValue& dict,
+ base::StringPiece key,
+ base::Value::Type expected_type,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ DCHECK(error);
+ DCHECK(error_path_reversed);
+ DCHECK(error->empty());
+ DCHECK(error_path_reversed->empty());
+
+ const base::Value* value = dict.FindKey(key);
+ if (!value) {
+ error_path_reversed->push_back(key);
+ *error = base::ASCIIToUTF16("Manifest key is required.");
+ return nullptr;
+ }
+
+ if (value->type() != expected_type) {
+ error_path_reversed->push_back(key);
+ *error = base::ASCIIToUTF16(
+ base::StringPrintf("Type is invalid. Expected %s, found %s.",
+ base::Value::GetTypeName(expected_type),
+ base::Value::GetTypeName(value->type())));
+ return nullptr;
+ }
+
+ return value;
+}
+
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ int* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ return ParseHelper(dict, key, base::Value::Type::INTEGER,
+ &base::Value::GetInt, out, error, error_path_reversed);
+}
+
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ bool* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ return ParseHelper(dict, key, base::Value::Type::BOOLEAN,
+ &base::Value::GetBool, out, error, error_path_reversed);
+}
+
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ double* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ return ParseHelper(dict, key, base::Value::Type::DOUBLE,
+ &base::Value::GetDouble, out, error, error_path_reversed);
+}
+
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::string* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ return ParseHelper(dict, key, base::Value::Type::STRING,
+ &base::Value::GetString, out, error, error_path_reversed);
+}
+
+} // namespace manifest_parse_util
+} // namespace json_schema_compiler
diff --git a/chromium/tools/json_schema_compiler/manifest_parse_util.h b/chromium/tools/json_schema_compiler/manifest_parse_util.h
new file mode 100644
index 00000000000..31923cc8a18
--- /dev/null
+++ b/chromium/tools/json_schema_compiler/manifest_parse_util.h
@@ -0,0 +1,135 @@
+// 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.
+
+#ifndef TOOLS_JSON_SCHEMA_COMPILER_MANIFEST_PARSE_UTIL_H_
+#define TOOLS_JSON_SCHEMA_COMPILER_MANIFEST_PARSE_UTIL_H_
+
+#include <vector>
+
+#include "base/strings/string16.h"
+#include "base/strings/string_piece_forward.h"
+#include "base/values.h"
+#include "tools/json_schema_compiler/util.h"
+
+namespace json_schema_compiler {
+namespace manifest_parse_util {
+
+// This file contains helpers used by auto-generated manifest parsing code.
+
+// Populates |error| and |error_path_reversed| denoting array parse error at the
+// given |key|. Note |error| should already contain the specific parse error for
+// the array item.
+void PopulateArrayParseError(
+ base::StringPiece key,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// Populates manifest parse |error| for the given path in |error_path_reversed|.
+void PopulateFinalError(base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// Returns the value at the given |key| in |dict|, ensuring that it's of the
+// |expected_type|. On failure, returns false and populates |error| and
+// |error_path_reversed|.
+const base::Value* FindKeyOfType(
+ const base::DictionaryValue& dict,
+ base::StringPiece key,
+ base::Value::Type expected_type,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// Parses |out| from |dict| at the given |key|. On failure, returns false and
+// populates |error| and |error_path_reversed|.
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ int* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ bool* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ double* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::string* out,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// This overload is used for lists/arrays.
+template <typename T>
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::vector<T>* out_ptr,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// This overload is used for optional values.
+template <typename T>
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::unique_ptr<T>* out_ptr,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed);
+
+// This overload is used for generated types.
+template <typename T>
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ T* out_ptr,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ return T::ParseFromDictionary(dict, key, out_ptr, error, error_path_reversed);
+}
+
+template <typename T>
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::vector<T>* out_ptr,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ const base::Value* value = FindKeyOfType(dict, key, base::Value::Type::LIST,
+ error, error_path_reversed);
+ if (!value)
+ return false;
+
+ bool result = json_schema_compiler::util::PopulateArrayFromList(
+ value->AsListValue(*value), out_ptr, error);
+ if (!result)
+ PopulateArrayParseError(key, error, error_path_reversed);
+
+ return result;
+}
+
+template <typename T>
+bool ParseFromDictionary(const base::DictionaryValue& dict,
+ base::StringPiece key,
+ std::unique_ptr<T>* out_ptr,
+ base::string16* error,
+ std::vector<base::StringPiece>* error_path_reversed) {
+ DCHECK(out_ptr);
+
+ // Ignore optional keys if they are not present without raising an error.
+ if (!dict.FindKey(key))
+ return true;
+
+ // Parse errors for optional keys which are specified should still cause a
+ // failure.
+ auto result = std::make_unique<T>();
+ if (!ParseFromDictionary(dict, key, result.get(), error, error_path_reversed))
+ return false;
+
+ *out_ptr = std::move(result);
+ return true;
+}
+
+} // namespace manifest_parse_util
+} // namespace json_schema_compiler
+
+#endif // TOOLS_JSON_SCHEMA_COMPILER_MANIFEST_PARSE_UTIL_H_
diff --git a/chromium/tools/json_schema_compiler/model.py b/chromium/tools/json_schema_compiler/model.py
index cafd0e1db7c..cfd6fbd6e67 100644
--- a/chromium/tools/json_schema_compiler/model.py
+++ b/chromium/tools/json_schema_compiler/model.py
@@ -10,6 +10,15 @@ from json_parse import OrderedDict
from memoize import memoize
+def _IsTypeFromManifestKeys(namespace, typename, fallback):
+ # type(Namespace, str, bool) -> bool
+ """Computes whether 'from_manifest_keys' is true for the given type.
+ """
+ if typename in namespace._manifest_referenced_types:
+ return True
+
+ return fallback
+
class ParseException(Exception):
"""Thrown when data in the model is invalid.
"""
@@ -103,6 +112,7 @@ class Namespace(object):
- |properties| a map of property names to their model.Property
- |compiler_options| the compiler_options dict, only not empty if
|include_compiler_options| is True
+ - |manifest_keys| is a Type representing the manifest keys for this namespace.
"""
def __init__(self,
json,
@@ -126,6 +136,13 @@ class Namespace(object):
self.allow_inline_enums = allow_inline_enums
self.platforms = _GetPlatforms(json)
toplevel_origin = Origin(from_client=True, from_json=True)
+
+ # While parsing manifest keys, we store all the types referenced by manifest
+ # keys. This is useful for computing the correct Origin for types in the
+ # namespace. This also necessitates parsing manifest keys before types.
+ self._manifest_referenced_types = set()
+ self.manifest_keys = _GetManifestKeysType(self, json)
+
self.types = _GetTypes(self, json, self, toplevel_origin)
self.functions = _GetFunctions(self, json, self)
self.events = _GetEvents(self, json, self)
@@ -145,16 +162,24 @@ class Origin(object):
generated code (for example, function results), or
|from_json| indicating that instances can originate from the JSON (for
example, function parameters)
+ |from_manifest_keys| indicating that instances for this type can be parsed
+ from manifest keys.
It is possible for model objects to originate from both the client and json,
for example Types defined in the top-level schema, in which case both
|from_client| and |from_json| would be True.
"""
- def __init__(self, from_client=False, from_json=False):
- if not from_client and not from_json:
- raise ValueError('One of from_client or from_json must be true')
+
+ def __init__(self,
+ from_client=False,
+ from_json=False,
+ from_manifest_keys=False):
+ if not from_client and not from_json and not from_manifest_keys:
+ raise ValueError(
+ 'One of (from_client, from_json, from_manifest_keys) must be true')
self.from_client = from_client
self.from_json = from_json
+ self.from_manifest_keys = from_manifest_keys
class Type(object):
@@ -179,31 +204,49 @@ class Type(object):
name,
json,
namespace,
- origin):
+ input_origin):
self.name = name
+
+ # The typename "ManifestKeys" is reserved.
+ if name is 'ManifestKeys':
+ assert parent == namespace and input_origin.from_manifest_keys, \
+ 'ManifestKeys type is reserved'
+
self.namespace = namespace
self.simple_name = _StripNamespace(self.name, namespace)
self.unix_name = UnixName(self.name)
self.description = json.get('description', None)
self.jsexterns = json.get('jsexterns', None)
- self.origin = origin
+
+ # Copy the Origin and override the |from_manifest_keys| value as necessary.
+ # We need to do this to ensure types reference by manifest types have the
+ # correct value for |origin.from_manifest_keys|.
+ self.origin = Origin(
+ input_origin.from_client, input_origin.from_json,
+ _IsTypeFromManifestKeys(namespace, name, input_origin.from_manifest_keys))
+
self.parent = parent
self.instance_of = json.get('isInstanceOf', None)
-
# TODO(kalman): Only objects need functions/events/properties, but callers
# assume that all types have them. Fix this.
self.functions = _GetFunctions(self, json, namespace)
self.events = _GetEvents(self, json, namespace)
- self.properties = _GetProperties(self, json, namespace, origin)
+ self.properties = _GetProperties(self, json, namespace, self.origin)
json_type = json.get('type', None)
if json_type == 'array':
self.property_type = PropertyType.ARRAY
- self.item_type = Type(
- self, '%sType' % name, json['items'], namespace, origin)
+ self.item_type = Type(self, '%sType' % name, json['items'], namespace,
+ self.origin)
elif '$ref' in json:
self.property_type = PropertyType.REF
self.ref_type = json['$ref']
+
+ # Record all types referenced by manifest types so that the proper Origin
+ # can be set for them during type parsing.
+ if self.origin.from_manifest_keys:
+ namespace._manifest_referenced_types.add(self.ref_type)
+
elif 'enum' in json and json_type == 'string':
if not namespace.allow_inline_enums and not isinstance(parent, Namespace):
raise ParseException(
@@ -241,7 +284,7 @@ class Type(object):
generate_type_name(choice) or 'choice%s' % i,
choice,
namespace,
- origin)
+ self.origin)
for i, choice in enumerate(json['choices'])]
elif json_type == 'object':
if not (
@@ -258,7 +301,7 @@ class Type(object):
'additionalProperties',
additional_properties_json,
namespace,
- origin)
+ self.origin)
else:
self.additional_properties = None
elif json_type == 'function':
@@ -266,10 +309,17 @@ class Type(object):
# Sometimes we might have an unnamed function, e.g. if it's a property
# of an object. Use the name of the property in that case.
function_name = json.get('name', name)
- self.function = Function(self, function_name, json, namespace, origin)
+ self.function = Function(
+ self, function_name, json, namespace, self.origin)
else:
raise ParseException(self, 'Unsupported JSON type %s' % json_type)
+ def IsRootManifestKeyType(self):
+ # type: () -> boolean
+ ''' Returns true if this type corresponds to the top level ManifestKeys
+ type.
+ '''
+ return self.name == 'ManifestKeys'
class Function(object):
"""A Function defined in the API.
@@ -551,6 +601,9 @@ def _GetModelHierarchy(entity):
def _GetTypes(parent, json, namespace, origin):
"""Creates Type objects extracted from |json|.
"""
+ assert hasattr(namespace, 'manifest_keys'), \
+ 'Types should be parsed after parsing manifest keys.'
+
types = OrderedDict()
for type_json in json.get('types', []):
type_ = Type(parent, type_json['id'], type_json, namespace, origin)
@@ -595,6 +648,23 @@ def _GetProperties(parent, json, namespace, origin):
return properties
+def _GetManifestKeysType(self, json):
+ # type: (OrderedDict) -> Type
+ """Returns the Type for manifest keys parsing, or None if there are no
+ manifest keys in this namespace.
+ """
+ if not json.get('manifest_keys'):
+ return None
+
+ # Create a dummy object to parse "manifest_keys" as a type.
+ manifest_keys_type = {
+ 'type': 'object',
+ 'properties': json['manifest_keys'],
+ }
+ return Type(self, 'ManifestKeys', manifest_keys_type, self,
+ Origin(from_manifest_keys=True))
+
+
class _PlatformInfo(_Enum):
def __init__(self, name):
_Enum.__init__(self, name)
@@ -605,6 +675,7 @@ class Platforms(object):
"""
CHROMEOS = _PlatformInfo("chromeos")
CHROMEOS_TOUCH = _PlatformInfo("chromeos_touch")
+ LACROS = _PlatformInfo("lacros")
LINUX = _PlatformInfo("linux")
MAC = _PlatformInfo("mac")
WIN = _PlatformInfo("win")
diff --git a/chromium/tools/json_schema_compiler/test/BUILD.gn b/chromium/tools/json_schema_compiler/test/BUILD.gn
index f22096109c3..f25cc9e3757 100644
--- a/chromium/tools/json_schema_compiler/test/BUILD.gn
+++ b/chromium/tools/json_schema_compiler/test/BUILD.gn
@@ -76,6 +76,7 @@ source_set("unit_tests") {
deps = [
":generated_types",
"//base",
+ "//testing/gmock",
"//testing/gtest",
]
}
diff --git a/chromium/tools/json_schema_compiler/util.h b/chromium/tools/json_schema_compiler/util.h
index 9bee95ed86a..4136cc879f9 100644
--- a/chromium/tools/json_schema_compiler/util.h
+++ b/chromium/tools/json_schema_compiler/util.h
@@ -71,11 +71,8 @@ template <class T>
bool PopulateItem(const base::Value& from,
std::unique_ptr<T>* out,
base::string16* error) {
- const base::DictionaryValue* dict = nullptr;
- if (!from.GetAsDictionary(&dict))
- return false;
std::unique_ptr<T> obj(new T());
- if (!T::Populate(*dict, obj.get(), error))
+ if (!T::Populate(from, obj.get(), error))
return false;
*out = std::move(obj);
return true;
@@ -85,11 +82,8 @@ bool PopulateItem(const base::Value& from,
// error generation enabled.
template <class T>
bool PopulateItem(const base::Value& from, T* out, base::string16* error) {
- const base::DictionaryValue* dict = nullptr;
- if (!from.GetAsDictionary(&dict))
- return false;
T obj;
- if (!T::Populate(*dict, &obj, error))
+ if (!T::Populate(from, &obj, error))
return false;
*out = std::move(obj);
return true;
diff --git a/chromium/tools/licenses.py b/chromium/tools/licenses.py
index fb1762f5cf0..5d27b2ec233 100755
--- a/chromium/tools/licenses.py
+++ b/chromium/tools/licenses.py
@@ -104,9 +104,7 @@ PRUNE_PATHS = set([
# Directories we don't scan through.
VCS_METADATA_DIRS = ('.svn', '.git')
-PRUNE_DIRS = (VCS_METADATA_DIRS +
- ('out', 'Debug', 'Release', # build files
- 'layout_tests')) # lots of subdirs
+PRUNE_DIRS = VCS_METADATA_DIRS + ('layout_tests', ) # lots of subdirs
# A third_party directory can define this file, containing a list of
# subdirectories to process in addition to itself. Intended for directories
@@ -330,7 +328,6 @@ KNOWN_NON_IOS_LIBRARIES = set([
os.path.join('third_party', 'ashmem'),
os.path.join('third_party', 'blink'),
os.path.join('third_party', 'bspatch'),
- os.path.join('third_party', 'cacheinvalidation'),
os.path.join('third_party', 'cld'),
os.path.join('third_party', 'flot'),
os.path.join('third_party', 'gtk+'),
@@ -488,7 +485,8 @@ def FindThirdPartyDirs(prune_paths, root):
for path, dirs, files in os.walk(root):
path = path[len(root) + 1:] # Pretty up the path.
- if path in prune_paths:
+ # .gitignore ignores /out*/, so do the same here.
+ if path in prune_paths or path.startswith('out'):
dirs[:] = []
continue
diff --git a/chromium/tools/mac/show_mod_init_func.py b/chromium/tools/mac/show_mod_init_func.py
index 6774b6a6bd7..1dea3515203 100755
--- a/chromium/tools/mac/show_mod_init_func.py
+++ b/chromium/tools/mac/show_mod_init_func.py
@@ -17,31 +17,37 @@ dump-static-initializers.py instead.
from __future__ import print_function
import optparse
+import os
import subprocess
import sys
-def ShowModuleInitializers(binary):
+def ShowModuleInitializers(binary, xcode_path):
"""Gathers the module initializers for |binary| and symbolizes the addresses.
"""
- initializers = GetModuleInitializers(binary)
+ initializers = GetModuleInitializers(binary, xcode_path)
if not initializers:
# atos will do work even if there are no addresses, so bail early.
return
- symbols = SymbolizeAddresses(binary, initializers)
+ symbols = SymbolizeAddresses(binary, initializers, xcode_path)
print(binary)
for initializer in zip(initializers, symbols):
print('%s @ %s' % initializer)
-def GetModuleInitializers(binary):
+def GetModuleInitializers(binary, xcode_path):
"""Parses the __DATA,__mod_init_func segment of |binary| and returns a list
of string hexadecimal addresses of the module initializers.
"""
+ if xcode_path:
+ otool_path = os.path.join(xcode_path, 'Contents', 'Developer',
+ 'Toolchains', 'XcodeDefault.xctoolchain', 'usr', 'bin', 'otool')
+ else:
+ otool_path = 'otool'
# The -v flag will display the addresses in a usable form (as opposed to
# just its on-disk little-endian byte representation).
- otool = ['otool', '-v', '-s', '__DATA', '__mod_init_func', binary]
+ otool = [otool_path, '-v', '-s', '__DATA', '__mod_init_func', binary]
lines = subprocess.check_output(otool).strip().split('\n')
# Skip the first two header lines and then get the address of the
@@ -53,22 +59,34 @@ def GetModuleInitializers(binary):
return [line.split(' ')[1] for line in lines[2:]]
-def SymbolizeAddresses(binary, addresses):
+def SymbolizeAddresses(binary, addresses, xcode_path):
"""Given a |binary| and a list of |addresses|, symbolizes them using atos.
"""
- atos = ['xcrun', 'atos', '-o', binary] + addresses
+ if xcode_path:
+ atos_path = os.path.join(xcode_path, 'Contents', 'Developer', 'usr',
+ 'bin', 'atos')
+ else:
+ atos_path = 'atos'
+
+ atos = [atos_path, '-o', binary] + addresses
lines = subprocess.check_output(atos).strip().split('\n')
return lines
def Main():
parser = optparse.OptionParser(usage='%prog filename')
+ parser.add_option(
+ '--xcode-path',
+ default=None,
+ help='Optional custom path to xcode binaries. By default, commands such '
+ 'as `otool` will be run as `/usr/bin/otool` which only works '
+ 'if there is a system-wide install of Xcode.')
opts, args = parser.parse_args()
if len(args) != 1:
parser.error('missing binary filename')
return 1
- ShowModuleInitializers(args[0])
+ ShowModuleInitializers(args[0], opts.xcode_path)
return 0
if __name__ == '__main__':
diff --git a/chromium/tools/mb/mb.py b/chromium/tools/mb/mb.py
index f79ff0bf0fd..cb3b0aef821 100755
--- a/chromium/tools/mb/mb.py
+++ b/chromium/tools/mb/mb.py
@@ -48,8 +48,6 @@ def DefaultVals():
"""Default mixin values"""
return {
'args_file': '',
- # TODO(crbug.com/937821): Get rid of 'cros_passthrough'.
- 'cros_passthrough': False,
'gn_args': '',
}
@@ -1148,12 +1146,13 @@ class MetaBuildWrapper(object):
label = labels[0]
build_dir = self.args.path
+
command, extra_files = self.GetIsolateCommand(target, vals)
- # Any warning for an unused arg will get interleaved into the cmd's stdout.
- # When that happens, the isolate step below will fail with an obscure error
- # when it tries processing the lines of the warning. Fail quickly in that
- # case to avoid confusion.
+ # Any warning for an unused arg will get interleaved into the cmd's
+ # stdout. When that happens, the isolate step below will fail with an
+ # obscure error when it tries processing the lines of the warning. Fail
+ # quickly in that case to avoid confusion
cmd = self.GNCmd('desc', build_dir, label, 'runtime_deps',
'--fail-on-unused-args')
ret, out, _ = self.Call(cmd)
@@ -1190,8 +1189,7 @@ class MetaBuildWrapper(object):
# https://crbug.com/912946
is_android = 'target_os="android"' in vals['gn_args']
is_cros = ('target_os="chromeos"' in vals['gn_args']
- or 'is_chromeos_device=true' in vals['gn_args']
- or vals.get('cros_passthrough', False))
+ or 'is_chromeos_device=true' in vals['gn_args'])
is_mac = self.platform == 'darwin'
is_msan = 'is_msan=true' in vals['gn_args']
is_ios = 'target_os="ios"' in vals['gn_args']
@@ -1328,17 +1326,7 @@ class MetaBuildWrapper(object):
def GNArgs(self, vals, expand_imports=False):
- if vals['cros_passthrough']:
- if not 'GN_ARGS' in os.environ:
- raise MBErr('MB is expecting GN_ARGS to be in the environment')
- gn_args = os.environ['GN_ARGS']
- if not re.search('target_os.*=.*"chromeos"', gn_args):
- raise MBErr('GN_ARGS is missing target_os = "chromeos": (GN_ARGS=%s)' %
- gn_args)
- if vals['gn_args']:
- gn_args += ' ' + vals['gn_args']
- else:
- gn_args = vals['gn_args']
+ gn_args = vals['gn_args']
if self.args.goma_dir:
gn_args += ' goma_dir="%s"' % self.args.goma_dir
@@ -1354,16 +1342,6 @@ class MetaBuildWrapper(object):
args_gn_lines = []
parsed_gn_args = {}
- # If we're using the Simple Chrome SDK, add a comment at the top that
- # points to the doc. This must happen after the gn_helpers.ToGNString()
- # call above since gn_helpers strips comments.
- if vals['cros_passthrough']:
- args_gn_lines.extend([
- '# These args are generated via the Simple Chrome SDK. See the link',
- '# below for more details:',
- '# https://chromium.googlesource.com/chromiumos/docs/+/master/simple_chrome_workflow.md', # pylint: disable=line-too-long
- ])
-
args_file = vals.get('args_file', None)
if args_file:
if expand_imports:
@@ -1385,12 +1363,31 @@ class MetaBuildWrapper(object):
is_android = 'target_os="android"' in vals['gn_args']
is_fuchsia = 'target_os="fuchsia"' in vals['gn_args']
- is_cros = 'target_os="chromeos"' in vals['gn_args']
+ is_cros = ('target_os="chromeos"' in vals['gn_args']
+ or 'is_chromeos_device=true' in vals['gn_args'])
+ is_cros_device = 'is_chromeos_device=true' in vals['gn_args']
is_ios = 'target_os="ios"' in vals['gn_args']
- is_cros_device = ('is_chromeos_device=true' in vals['gn_args']
- or vals.get('cros_passthrough', False))
- is_mac = self.platform == 'darwin'
+ is_mac = self.platform == 'darwin' and not is_ios
is_win = self.platform == 'win32' or 'target_os="win"' in vals['gn_args']
+ is_lacros = 'chromeos_is_browser_only=true' in vals['gn_args']
+
+ test_type = isolate_map[target]['type']
+
+ if self.use_luci_auth:
+ cmdline = ['luci-auth.exe' if is_win else 'luci-auth', 'context', '--']
+ else:
+ cmdline = []
+
+ if test_type == 'generated_script' or is_ios or is_lacros:
+ script = isolate_map[target].get('script', 'bin/run_{}'.format(target))
+ if is_win:
+ script += '.bat'
+ cmdline += [script]
+ return cmdline, []
+
+
+ # TODO(crbug.com/816629): Convert all targets to generated_scripts
+ # and delete the rest of this function.
# This should be true if tests with type='windowed_test_launcher' are
# expected to run using xvfb. For example, Linux Desktop, X11 CrOS and
@@ -1410,50 +1407,16 @@ class MetaBuildWrapper(object):
clang_coverage = 'use_clang_coverage=true' in vals['gn_args']
java_coverage = 'use_jacoco_coverage=true' in vals['gn_args']
- test_type = isolate_map[target]['type']
- use_python3 = isolate_map[target].get('use_python3', False)
-
executable = isolate_map[target].get('executable', target)
executable_suffix = isolate_map[target].get(
'executable_suffix', '.exe' if is_win else '')
-
- # TODO(crbug.com/1060857): Remove this once swarming task templates
- # support command prefixes.
- if self.use_luci_auth:
- cmdline = ['luci-auth.exe' if is_win else 'luci-auth', 'context', '--']
- else:
- cmdline = []
-
- if use_python3:
- cmdline += ['vpython3']
- extra_files = ['../../.vpython3']
- else:
- cmdline += ['vpython']
- extra_files = ['../../.vpython']
+ cmdline += ['vpython']
+ extra_files = ['../../.vpython']
extra_files += [
'../../testing/test_env.py',
]
- if test_type == 'nontest':
- self.WriteFailureAndRaise('We should not be isolating %s.' % target,
- output_path=None)
-
- if test_type == 'generated_script':
- script = isolate_map[target]['script']
- if self.platform == 'win32':
- script += '.bat'
- cmdline += [
- '../../testing/test_env.py',
- script,
- ]
- elif is_ios and test_type != "raw":
- # iOS commands are all wrapped with generate_wrapper. Some targets
- # shared with iOS aren't defined with generated_script (ie/ basic_
- # unittests) so we force those to follow iOS' execution process by
- # mimicking what generated_script would do
- script = 'bin/run_{}'.format(target)
- cmdline += ['../../testing/test_env.py', script]
- elif is_android and test_type != 'script':
+ if is_android and test_type != 'script':
if asan:
cmdline += [os.path.join('bin', 'run_with_asan'), '--']
cmdline += [
@@ -1475,6 +1438,7 @@ class MetaBuildWrapper(object):
cmdline += [
'../../testing/test_env.py',
os.path.join('bin', 'run_%s' % target),
+ '--flash',
]
elif use_xvfb and test_type == 'windowed_test_launcher':
extra_files.append('../../testing/xvfb.py')
@@ -1514,6 +1478,8 @@ class MetaBuildWrapper(object):
cmdline += [
os.path.join('bin', 'cros_test_wrapper'),
'--logs-dir=${ISOLATED_OUTDIR}',
+ '--flash',
+ '--',
]
cmdline += [
'../../testing/test_env.py',
@@ -1894,8 +1860,6 @@ def FlattenMixins(mixin_pool, mixins_to_flatten, vals, visited):
mixin_vals = mixin_pool[m]
- if 'cros_passthrough' in mixin_vals:
- vals['cros_passthrough'] = mixin_vals['cros_passthrough']
if 'args_file' in mixin_vals:
if vals['args_file']:
raise MBErr('args_file specified multiple times in mixins '
diff --git a/chromium/tools/mb/mb_config.pyl b/chromium/tools/mb/mb_config.pyl
index f7f300daaa5..ffed0e13467 100644
--- a/chromium/tools/mb/mb_config.pyl
+++ b/chromium/tools/mb/mb_config.pyl
@@ -15,20 +15,32 @@
'masters': {
'chrome': {
'chromeos-arm-generic-cfi-thin-lto-chrome': 'chromeos_arm-generic_cfi_thin_lto_official',
- 'chromeos-betty-cfi-thin-lto-chrome': 'chromeos_betty_cfi_thin_lto_official',
- '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-betty-pi-arc-chrome': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
+ 'chromeos-betty-pi-arc-chrome-beta': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
+ 'chromeos-betty-pi-arc-chrome-ltc': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
+ 'chromeos-betty-pi-arc-chrome-lts': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
+ 'chromeos-betty-pi-arc-chrome-stable': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
'chromeos-eve-chrome': 'chromeos_eve_include_unwind_tables_official',
'chromeos-eve-arc-r-chrome': 'chromeos_eve-arc-r_include_unwind_tables_official',
+ 'chromeos-eve-chrome-beta': 'chromeos_eve_include_unwind_tables_official',
+ 'chromeos-eve-chrome-ltc': 'chromeos_eve_include_unwind_tables_official',
+ 'chromeos-eve-chrome-lts': 'chromeos_eve_include_unwind_tables_official',
+ 'chromeos-eve-chrome-stable': 'chromeos_eve_include_unwind_tables_official',
'chromeos-kevin-chrome': 'chromeos_kevin_include_unwind_tables_official',
+ 'chromeos-kevin-chrome-beta': 'chromeos_kevin_include_unwind_tables_official',
+ 'chromeos-kevin-chrome-ltc': 'chromeos_kevin_include_unwind_tables_official',
+ 'chromeos-kevin-chrome-lts': 'chromeos_kevin_include_unwind_tables_official',
+ 'chromeos-kevin-chrome-stable': '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.
'linux-chrome': 'official_goma',
+ 'linux-chrome-beta': 'official_goma',
+ 'linux-chrome-stable': 'official_goma',
'linux-chromeos-chrome': 'official_goma_chromeos',
- 'mac-chrome': 'official_goma',
- 'mac-chrome-beta': 'official_goma',
- 'mac-chrome-stable': 'official_goma',
+ 'mac-chrome': 'official_goma_mac',
+ 'mac-chrome-beta': 'official_goma_mac',
+ 'mac-chrome-stable': 'official_goma_mac',
'win-chrome': 'official_goma_x86',
'win-chrome-beta': 'official_goma_x86',
'win-chrome-stable': 'official_goma_x86',
@@ -38,6 +50,9 @@
},
'chrome.pgo': {
+ 'linux-pgo-beta': 'official_goma_linux_pgo',
+ 'linux-pgo-stable': 'official_goma_linux_pgo',
+ 'linux-pgo-trunk': 'official_goma_linux_pgo',
'mac-pgo-beta': 'official_goma_mac_pgo',
'mac-pgo-stable': 'official_goma_mac_pgo',
'mac-pgo-trunk': 'official_goma_mac_pgo',
@@ -60,13 +75,15 @@
'fuchsia-official': 'fuchsia_official_optimize_goma',
'linux-archive-rel': 'release_bot',
'linux-archive-dbg': 'debug_bot',
- 'linux-official': 'official_optimize_goma',
+ 'linux-official': 'linux_official_optimize_goma',
'mac-archive-rel': 'release_bot_mac_strip_minimal_symbols',
'mac-archive-dbg': 'debug_bot',
+ 'win32-official': 'x86_official_optimize_goma',
'win32-archive-rel': 'release_bot_x86_minimal_symbols_enable_archive_compression',
'win32-archive-dbg': 'debug_bot_x86',
'win-archive-rel': 'release_bot_minimal_symbols_enable_archive_compression',
'win-archive-dbg': 'debug_bot',
+ 'win-official': 'official_optimize_goma',
},
'chromium.android': {
@@ -80,6 +97,7 @@
'Deterministic Android (dbg)': 'android_debug_bot',
'android-arm64-proguard-rel': 'android_release_bot_minimal_symbols_arm64_webview_google',
+ 'android-bfcache-rel': 'android_release_bot_minimal_symbols',
'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',
@@ -90,7 +108,7 @@
'android-cronet-x86-dbg': 'android_cronet_debug_static_bot_x86',
'android-cronet-x86-rel': 'android_cronet_release_bot_minimal_symbols_x86',
'android-incremental-dbg': 'android_incremental_debug_bot',
- 'android-lollipop-arm-rel': 'android_release_bot_minimal_symbols_fastbuild_webview_google',
+ 'android-lollipop-arm-rel': 'android_release_bot_minimal_symbols_webview_google',
# This bot must use the gpu_tests mixin to match 'Android FYI Release (Nexus 5X)'
# on the chromium.gpu waterfall, which it mirrors via trybots.pyl.
@@ -105,10 +123,8 @@
'chromium.android.fyi': {
'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_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',
},
@@ -125,12 +141,14 @@
'chromeos-amd64-generic-asan-rel': 'chromeos_amd64-generic_asan',
'chromeos-amd64-generic-cfi-thin-lto-rel': 'chromeos_amd64-generic_cfi_thin_lto',
'chromeos-amd64-generic-dbg': 'chromeos_amd64-generic_dbg',
- 'chromeos-amd64-generic-rel': 'chromeos_amd64-generic',
+ 'chromeos-amd64-generic-rel': 'chromeos_amd64-generic_use_fake_dbus_clients',
'chromeos-arm-generic-dbg': 'chromeos_arm-generic_dbg',
'chromeos-arm-generic-rel': 'chromeos_arm-generic',
'chromeos-kevin-rel': 'chromeos_kevin',
'linux-chromeos-rel': 'chromeos_with_codecs_release_bot',
'linux-chromeos-dbg': 'chromeos_with_codecs_debug_bot',
+ 'linux-lacros-builder-rel': 'lacros_on_linux_release_bot',
+ 'linux-lacros-tester-rel': 'lacros_on_linux_release_bot',
},
'chromium.clang': {
@@ -156,7 +174,7 @@
'ToTLinuxASanLibfuzzer': 'libfuzzer_asan_clang_tot_release',
'ToTLinuxMSan': 'clang_tot_msan_release',
'ToTLinuxTSan': 'clang_tot_tsan_release',
- 'ToTLinuxThinLTO': 'clang_tot_release_minimal_symbols_thin_lto_static',
+ 'ToTLinuxThinLTO': 'clang_tot_release_minimal_symbols_thin_lto_opt_static',
'ToTLinuxUBSanVptr': 'clang_tot_ubsan_no_recover_hack_static_release',
'ToTMac': 'clang_tot_minimal_symbols_shared_release',
'ToTMacOfficial': 'clang_tot_official',
@@ -174,8 +192,8 @@
'ToTWinCFI': 'clang_tot_win_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_x86',
'ToTWinCFI64': 'clang_tot_win_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on',
'ToTWinThinLTO64': 'clang_tot_win_official_full_symbols_thin_lto_static',
- 'ToTiOS': 'ios_clang_tot',
- 'ToTiOSDevice': 'ios_clang_device_tot',
+ 'ToTiOS': 'ios_clang_tot_xctest',
+ 'ToTiOSDevice': 'ios_clang_device_tot_xctest',
'UBSanVptr Linux': 'ubsan_vptr_release_bot',
},
@@ -195,7 +213,7 @@
},
'chromium.devtools-frontend': {
- 'DevTools Linux (chromium)': 'release_trybot',
+ 'DevTools Linux (chromium)': 'release_trybot_blink',
},
'chromium.fuzz': {
@@ -246,6 +264,9 @@
'Linux remote_run Builder': 'release_bot',
'Linux remote_run Tester': 'release_bot',
'Linux Viz': 'release_trybot',
+ 'linux-ash-chromium-builder-fyi-rel': 'chromeos_with_codecs_release_bot',
+ 'linux-lacros-builder-fyi-rel': 'lacros_on_linux_release_bot',
+ 'linux-lacros-tester-fyi-rel': 'lacros_on_linux_release_bot',
'Mac Builder Next': 'gpu_tests_release_bot_minimal_symbols_no_nacl',
'Mac deterministic': 'release_bot_mac_strip_minimal_symbols_deterministic',
'Mac deterministic (dbg)': 'debug_bot_deterministic',
@@ -261,23 +282,23 @@
'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',
+ 'fuchsia-fyi-arm64-dbg': 'debug_bot_fuchsia_arm64',
'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',
+ 'ios13-beta-simulator': 'ios_simulator_debug_static_bot_xctest',
+ 'ios13-sdk-device': 'ios_device_release_static_rbe_bot_xctest',
+ 'ios13-sdk-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios14-beta-simulator': 'ios_simulator_debug_static_bot_xctest',
+ 'ios14-sdk-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios-asan': 'ios_simulator_release_static_asan_bot_xctest',
'ios-simulator': 'ios_error',
- 'ios-simulator-code-coverage': 'clang_code_coverage_ios',
- 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot',
- 'ios-simulator-cronet': 'ios_cronet',
- 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window',
- 'ios-webkit-tot': 'ios_simulator_debug_static_rbe_bot',
+ 'ios-simulator-code-coverage': 'clang_code_coverage_ios_xctest',
+ 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot_xctest',
+ 'ios-simulator-cronet': 'ios_cronet_xctest',
+ 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window_xctest',
+ 'ios-webkit-tot': 'ios_simulator_debug_static_rbe_bot_xctest',
'linux-annotator-rel': 'release_bot',
- 'linux-bfcache-rel': 'release_bot',
'linux-blink-animation-use-time-delta': 'debug_bot_enable_blink_animation_use_time_delta',
'linux-blink-heap-concurrent-marking-tsan-rel': 'release_trybot_tsan',
'linux-blink-heap-verification': 'release_bot_enable_blink_heap_verification_dcheck_always_on',
@@ -288,13 +309,13 @@
'linux-perfetto-rel': 'perfetto_release_bot',
'linux-upload-perfetto': 'release_bot',
'linux-wpt-fyi-rel': 'release_bot_minimal_symbols',
- '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-celab-builder-rel': 'release_bot_minimal_symbols',
+ 'win-omaha-builder-rel': 'omaha_release_bot',
'win-pixel-builder-rel': 'release_bot',
'win-upload-perfetto': 'release_bot',
'win10-code-coverage': 'clang_code_coverage',
@@ -440,6 +461,7 @@
'GPU FYI XR Win x64 Builder': 'gpu_fyi_tests_release_trybot',
'Linux FYI GPU TSAN Release': 'gpu_fyi_tests_release_trybot_tsan',
'Linux FYI SkiaRenderer Dawn Release (Intel HD 630)': 'gpu_tests_sk_dawn_release_trybot',
+ 'Mac FYI arm64 Release (Apple DTK)': 'gpu_fyi_tests_release_trybot_arm64',
'Mac FYI GPU ASAN Release': 'gpu_fyi_tests_release_trybot_asan',
'Optional Android Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
'Win10 FYI x64 SkiaRenderer Dawn Release (NVIDIA)': 'gpu_tests_sk_dawn_release_trybot',
@@ -449,6 +471,7 @@
'codesearch-gen-chromium-android': 'codesearch_gen_chromium_android_bot',
'codesearch-gen-chromium-chromiumos': 'codesearch_gen_chromium_chromiumos_bot',
'codesearch-gen-chromium-fuchsia': 'codesearch_gen_chromium_fuchsia_bot',
+ 'codesearch-gen-chromium-lacros': 'codesearch_gen_chromium_lacros_bot',
'codesearch-gen-chromium-linux': 'codesearch_gen_chromium_bot',
'codesearch-gen-chromium-win': 'codesearch_gen_chromium_bot',
},
@@ -472,7 +495,7 @@
'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-bfcache-rel': 'release_bot',
'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',
@@ -482,10 +505,10 @@
'Mac Builder': 'gpu_tests_release_bot_minimal_symbols_no_nacl',
'Mac Builder (dbg)': 'gpu_tests_debug_bot',
'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',
+ 'ios-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios-simulator-full-configs': 'ios_simulator_debug_static_bot_xctest',
+ 'ios-simulator-noncq': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'mac-arm64-rel': 'mac_arm64_release_bot',
},
'chromium.memory': {
@@ -541,7 +564,7 @@
'chromium.dev': {
# This should be the same with 'android-lollipop-arm-rel'.
- 'android-lollipop-arm-rel-swarming': 'android_release_bot_minimal_symbols_fastbuild_webview_google',
+ 'android-lollipop-arm-rel-swarming': 'android_release_bot_minimal_symbols_webview_google',
# This should be the same with 'android-marshmallow-arm64-rel'.
'android-marshmallow-arm64-rel-swarming': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild',
@@ -569,7 +592,7 @@
},
'client.devtools-frontend.integration': {
- 'DevTools Linux': 'release_trybot',
+ 'DevTools Linux': 'release_trybot_blink',
},
'client.openscreen.chromium': {
@@ -586,22 +609,18 @@
'client.v8.fyi': {
'Android V8 FYI Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
'Linux ASAN Builder': 'asan_lsan_release_trybot',
- 'Linux Debug Builder': 'debug_bot',
+ 'Linux Debug Builder': 'debug_bot_blink',
'Linux V8 FYI Release (NVIDIA)': 'gpu_tests_release_trybot',
'Linux V8 FYI Release - pointer compression (NVIDIA)': 'gpu_tests_release_trybot_ptr_comp',
'Mac V8 FYI Release (Intel)': 'gpu_tests_release_trybot',
'V8 Android GN (dbg)': 'android_debug_bot',
- 'V8 Blink Linux': 'release_bot',
- 'V8 Blink Linux Debug': 'release_bot_v8_debug',
- 'V8 Blink Linux Future': 'release_bot',
- 'V8 Blink Linux Layout NG': 'release_bot',
- 'V8 Blink Mac': 'release_bot',
- 'V8 Blink Win': 'release_bot',
+ 'V8 Blink Linux': 'release_bot_blink',
+ 'V8 Blink Linux Debug': 'release_bot_blink_v8_debug',
+ 'V8 Blink Linux Future': 'release_bot_blink',
+ 'V8 Blink Linux Layout NG': 'release_bot_blink',
+ 'V8 Blink Mac': 'release_bot_blink',
+ 'V8 Blink Win': 'release_bot_blink',
'V8 Linux GN': 'release_bot',
- 'V8-Blink Linux 64': 'release_bot',
- 'V8-Blink Linux 64 (dbg)': 'release_bot_v8_debug',
- 'V8-Blink Mac': 'release_bot',
- 'V8-Blink Win': 'release_bot_x86_minimal_symbols',
'Win V8 FYI Release (NVIDIA)': 'gpu_tests_release_trybot_x86_resource_whitelisting',
},
@@ -611,7 +630,6 @@
'WebKit Linux Trusty Leak': 'release_bot',
'WebKit Linux Trusty MSAN': 'msan_release_bot',
'WebKit Mac Builder': 'release_bot',
- 'WebKit Mac10.13 (retina)': 'release_bot',
'WebKit Win Builder': 'release_bot_x86_minimal_symbols',
},
@@ -648,6 +666,7 @@
'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',
+ 'lorenz-graph-dbg': 'android_debug_static_bot',
'mac-autofill-captured-sites-rel': 'release_bot',
'win-autofill-captured-sites-rel': 'release_bot',
'win-celab-rel': 'official_celab_release_bot',
@@ -680,11 +699,8 @@
# waterfall bots, and run_web_tests.py can't handle that (by design).
'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',
@@ -694,7 +710,9 @@
'tryserver.chromium': {
'android-official': 'android_official_optimize_goma_trybot',
'fuchsia-official': 'fuchsia_official_optimize_goma_trybot',
- 'linux-official': 'official_optimize_goma_trybot'
+ 'linux-official': 'official_optimize_goma_trybot',
+ 'win-official': 'official_optimize_goma_trybot',
+ 'win32-official': 'x86_official_optimize_goma_trybot',
},
'tryserver.chromium.android': {
@@ -704,7 +722,7 @@
# TODO(crbug/597596): Switch this back to debug_trybot when cronet's
# shared library loading is fixed.
'android-cronet-arm-dbg': 'android_cronet_debug_static_bot_arm_no_neon',
- 'android-lollipop-arm-rel': 'android_release_trybot_fastbuild_webview_google',
+ 'android-lollipop-arm-rel': 'android_release_trybot_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_webview_google',
'android-marshmallow-x86-rel': 'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google',
@@ -781,20 +799,20 @@
'tryserver.chrome': {
'chromeos-arm-generic-cfi-thin-lto-chrome': 'chromeos_arm-generic_cfi_thin_lto_official',
- 'chromeos-betty-cfi-thin-lto-chrome': 'chromeos_betty_cfi_thin_lto_official',
- '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-betty-pi-arc-chrome': 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients',
'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',
'chromeos-kevin-compile-chrome': 'chromeos_kevin_include_unwind_tables_official',
'linux-chrome': 'official_goma',
+ 'linux-chrome-beta': 'official_goma',
+ 'linux-chrome-stable': 'official_goma',
'linux-chromeos-chrome': 'official_goma_chromeos_include_unwind_tables',
- 'mac-chrome': 'official_goma',
- 'mac-chrome-beta': 'official_goma',
- 'mac-chrome-stable': 'official_goma',
+ 'mac-chrome': 'official_goma_mac',
+ 'mac-chrome-beta': 'official_goma_mac',
+ 'mac-chrome-stable': 'official_goma_mac',
'win-celab-try-rel': 'official_celab_release_bot',
'win-chrome': 'official_goma_x86',
'win-chrome-beta': 'official_goma_x86',
@@ -809,7 +827,7 @@
# and two kevin bots when the PFQ has it enabled.
'chromeos-amd64-generic-cfi-thin-lto-rel': 'chromeos_amd64-generic_cfi_thin_lto',
'chromeos-amd64-generic-dbg': 'chromeos_amd64-generic_dbg',
- 'chromeos-amd64-generic-rel': 'chromeos_amd64-generic',
+ 'chromeos-amd64-generic-rel': 'chromeos_amd64-generic_use_fake_dbus_clients',
'chromeos-arm-generic-dbg': 'chromeos_arm-generic_dbg',
'chromeos-arm-generic-rel': 'chromeos_arm-generic_dcheck_always_on',
'chromeos-kevin-compile-rel': 'chromeos_kevin',
@@ -819,6 +837,17 @@
'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',
+ 'linux-lacros-compile-rel': 'lacros_on_linux_release_bot',
+ 'linux-lacros-rel': 'lacros_on_linux_release_bot',
+ },
+
+ 'tryserver.chromium.codesearch': {
+ 'gen-android-try': 'codesearch_gen_chromium_android_bot',
+ 'gen-chromiumos-try': 'codesearch_gen_chromium_chromiumos_bot',
+ 'gen-fuchsia-try': 'codesearch_gen_chromium_fuchsia_bot',
+ 'gen-lacros-try': 'codesearch_gen_chromium_lacros_bot',
+ 'gen-linux-try': 'codesearch_gen_chromium_bot',
+ 'gen-win-try': 'codesearch_gen_chromium_bot',
},
'tryserver.chromium.dawn': {
@@ -841,6 +870,7 @@
'fuchsia_arm64': 'release_trybot_fuchsia_arm64',
'fuchsia-arm64-cast': 'release_trybot_fuchsia_arm64_cast',
'fuchsia-compile-x64-dbg': 'debug_bot_fuchsia_compile_only',
+ 'fuchsia-fyi-arm64-dbg': 'debug_bot_fuchsia_arm64',
'fuchsia-fyi-arm64-rel': 'release_trybot_fuchsia_arm64',
'fuchsia-fyi-x64-dbg': 'debug_bot_fuchsia',
'fuchsia-fyi-x64-rel': 'release_trybot_fuchsia',
@@ -870,6 +900,7 @@
'linux-clang-tidy-rel': 'release_trybot',
'linux-dcheck-off-rel': 'release_trybot_dcheck_off',
'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11',
+ 'linux-lacros-fyi-rel': 'lacros_on_linux_release_bot',
'linux-libfuzzer-asan-rel': 'libfuzzer_asan_release_trybot',
'linux-ozone-rel': 'ozone_linux_release_trybot',
'linux-perfetto-rel': 'perfetto_release_trybot',
@@ -919,6 +950,7 @@
'gpu-fyi-try-mac-amd-retina-dbg': 'gpu_fyi_tests_debug_trybot',
'gpu-fyi-try-mac-amd-retina-exp': 'gpu_fyi_tests_release_trybot',
'gpu-fyi-try-mac-amd-retina-rel': 'gpu_fyi_tests_release_trybot',
+ 'gpu-fyi-try-mac-arm64-apple-dtk-rel': 'gpu_fyi_tests_release_trybot_arm64',
'gpu-fyi-try-mac-asan': 'gpu_fyi_tests_release_trybot_asan',
'gpu-fyi-try-mac-intel-dbg': 'gpu_fyi_tests_debug_trybot',
'gpu-fyi-try-mac-intel-dqp': 'angle_deqp_release_trybot',
@@ -930,16 +962,16 @@
'gpu-try-mac-amd-retina-dbg': 'gpu_tests_debug_bot',
'gpu-try-mac-intel-dbg': 'gpu_tests_debug_bot',
'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_partial_instrumentation',
- 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot',
- 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window',
+ 'ios13-beta-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios13-sdk-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios14-beta-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios14-sdk-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios-simulator': 'ios_simulator_debug_static_rbe_bot_xctest',
+ 'ios-simulator-full-configs': 'ios_simulator_debug_static_bot_xctest',
+ 'ios-simulator-cronet': 'ios_cronet_xctest',
+ 'ios-simulator-code-coverage': 'clang_code_coverage_ios_partial_instrumentation_xctest',
+ 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot_xctest',
+ 'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_multi_window_xctest',
'mac-osxbeta-rel': 'gpu_tests_release_trybot_deterministic_mac',
'mac_chromium_10.10': 'gpu_tests_release_trybot_deterministic_mac',
'mac_chromium_10.12_rel_ng': 'gpu_tests_release_trybot_deterministic_mac',
@@ -955,6 +987,7 @@
'mac_upload_clang': 'release_bot',
'mac-coverage-rel': 'gpu_tests_release_trybot_deterministic_mac_code_coverage',
'mac-rel': 'gpu_tests_release_trybot_deterministic_mac',
+ 'mac-arm64-rel': 'mac_arm64_release_trybot',
},
'tryserver.chromium.perf': {
@@ -1024,12 +1057,12 @@
'tryserver.devtools-frontend': {
# Align devtools blink builders with chromium linux-rel
- 'devtools_frontend_linux_blink_light_rel': 'release_trybot',
- 'devtools_frontend_linux_blink_rel': 'release_trybot',
+ 'devtools_frontend_linux_blink_light_rel': 'release_trybot_blink',
+ 'devtools_frontend_linux_blink_rel': 'release_trybot_blink',
},
'tryserver.v8': {
- 'v8_linux_blink_rel': 'release_trybot',
+ 'v8_linux_blink_rel': 'release_trybot_blink',
'v8_linux_chromium_gn_rel': 'release_trybot',
},
@@ -1187,7 +1220,7 @@
],
'android_debug_trybot_compile_only': [
- 'android', 'debug_bot', 'compile_only', 'java_warnings_as_errors',
+ 'android', 'debug_bot', 'compile_only',
],
'android_debug_trybot_compile_only_arm64_fastbuild': [
@@ -1243,9 +1276,9 @@
'strip_debug_info', 'webview_google',
],
- 'android_release_bot_minimal_symbols_fastbuild_webview_google': [
- 'android', 'release_bot', 'minimal_symbols',
- 'strip_debug_info', 'android_fastbuild', 'webview_google',
+ 'android_release_bot_minimal_symbols_webview_google': [
+ 'android', 'release_bot', 'minimal_symbols', 'strip_debug_info',
+ 'webview_google',
],
'android_release_bot_minimal_symbols_x86_fastbuild_resource_whitelisting_webview_google': [
@@ -1287,9 +1320,9 @@
'use_clang_coverage', 'partial_code_coverage_instrumentation',
],
- 'android_release_trybot_fastbuild_webview_google': [
- 'android', 'release_trybot', 'strip_debug_info', 'android_fastbuild',
- 'android_no_proguard', 'webview_google',
+ 'android_release_trybot_webview_google': [
+ 'android', 'release_trybot', 'strip_debug_info', 'android_no_proguard',
+ 'webview_google',
],
'android_release_trybot_x86_fastbuild_resource_whitelisting_webview_google': [
@@ -1480,6 +1513,10 @@
'chromeos_amd64-generic', 'debug',
],
+ 'chromeos_amd64-generic_use_fake_dbus_clients': [
+ 'chromeos_amd64-generic', 'use_fake_dbus_clients',
+ ],
+
'chromeos_arm-generic': [
'chromeos_device', 'arm-generic',
],
@@ -1500,14 +1537,6 @@
'chromeos', 'asan', 'lsan', 'fuzzer', 'v8_heap', 'release_bot',
],
- 'chromeos_betty_cfi_thin_lto_official': [
- 'chromeos_device', 'betty', 'cfi_full', 'thin_lto', 'official',
- ],
-
- 'chromeos_betty_include_unwind_tables_official': [
- 'chromeos_device', 'betty', 'include_unwind_tables', 'official',
- ],
-
'chromeos_betty-pi-arc_cfi_thin_lto_official': [
'chromeos_device', 'betty-pi-arc', 'cfi_full', 'thin_lto', 'official',
# The CrOS ebuild pins concurrent_links to just 1 on LTO builds.
@@ -1515,8 +1544,8 @@
'chromeos_lto_link_jobs',
],
- 'chromeos_betty-pi-arc_include_unwind_tables_official': [
- 'chromeos_device', 'betty-pi-arc', 'include_unwind_tables', 'official',
+ 'chromeos_betty-pi-arc_include_unwind_tables_official_use_fake_dbus_clients': [
+ 'chromeos_device', 'betty-pi-arc', 'include_unwind_tables', 'official', 'use_fake_dbus_clients',
],
'chromeos_eve-arc-r_include_unwind_tables_official': [
@@ -1535,6 +1564,10 @@
'chromeos_kevin', 'include_unwind_tables', 'official',
],
+ 'lacros_on_linux_release_bot': [
+ 'lacros_on_linux', 'release_bot',
+ ],
+
'chromeos_msan_release_bot': [
'chromeos', 'msan', 'release_bot',
],
@@ -1565,12 +1598,12 @@
'release_bot', 'clang', 'use_clang_coverage', 'no_symbols',
],
- 'clang_code_coverage_ios': [
- 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe',
+ 'clang_code_coverage_ios_xctest': [
+ 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe', 'xctest',
],
- 'clang_code_coverage_ios_partial_instrumentation': [
- 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe', 'partial_code_coverage_instrumentation',
+ 'clang_code_coverage_ios_partial_instrumentation_xctest': [
+ 'use_clang_coverage', 'debug_static_bot', 'x64', 'ios', 'ios_use_goma_rbe', 'partial_code_coverage_instrumentation', 'xctest',
],
'clang_tot_asan_lsan_static_release': [
@@ -1641,8 +1674,8 @@
'clang_tot', 'official', 'minimal_symbols', 'static', 'release', 'x86',
],
- 'clang_tot_release_minimal_symbols_thin_lto_static': [
- 'clang_tot', 'release', 'minimal_symbols', 'thin_lto', 'static',
+ 'clang_tot_release_minimal_symbols_thin_lto_opt_static': [
+ 'clang_tot', 'release', 'minimal_symbols', 'thin_lto_opt', 'static',
],
'clang_tot_shared_debug': [
@@ -1678,6 +1711,12 @@
'codesearch_release', 'fuchsia',
],
+ # Lacros uses different gn args to build for chromeOS device vs. Linux. For
+ # simplicity, we only generate codesearch x-refs for lacros on Linux.
+ 'codesearch_gen_chromium_lacros_bot': [
+ 'codesearch', 'lacros_on_linux',
+ ],
+
'codesearch_gen_chromium_bot': [
'codesearch',
],
@@ -1698,6 +1737,10 @@
'debug_bot',
],
+ 'debug_bot_blink': [
+ 'debug_bot_blink',
+ ],
+
'debug_bot_deterministic': [
'debug_bot', 'mac_deterministic_build',
],
@@ -1714,6 +1757,10 @@
'debug_bot', 'fuchsia',
],
+ 'debug_bot_fuchsia_arm64': [
+ 'debug_bot', 'fuchsia', 'arm64',
+ ],
+
'debug_bot_fuchsia_compile_only': [
'debug_bot', 'fuchsia', 'compile_only',
],
@@ -1768,6 +1815,10 @@
'gpu_fyi_tests', 'release_trybot',
],
+ 'gpu_fyi_tests_release_trybot_arm64': [
+ 'gpu_fyi_tests', 'release_trybot', 'arm64',
+ ],
+
'gpu_fyi_tests_release_trybot_asan': [
'gpu_fyi_tests', 'release_trybot', 'asan', 'disable_nacl',
],
@@ -1786,8 +1837,8 @@
'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild': [
'gpu_tests', 'android', 'release_bot', 'minimal_symbols', 'arm64',
- 'resource_whitelisting', 'static_angle', 'android_fastbuild', 'webview_google',
- 'android_no_proguard',
+ 'resource_whitelisting', 'static_angle', 'android_fastbuild',
+ 'webview_google',
],
'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_java_coverage': [
@@ -1819,7 +1870,6 @@
'gpu_tests_android_release_trybot_arm64_resource_whitelisting_fastbuild_java_coverage': [
'gpu_tests', 'android', 'release_trybot', 'arm64', 'static_angle',
'resource_whitelisting', 'android_fastbuild', 'webview_google',
- 'android_no_proguard',
'use_java_coverage', 'partial_code_coverage_instrumentation',
],
@@ -1937,17 +1987,17 @@
# build files.
'ios_error': [ 'error'],
- 'ios_clang_tot': [
- 'clang_tot', 'ios_simulator', 'ios_disable_code_signing', 'release', 'static',
+ 'ios_clang_tot_xctest': [
+ 'clang_tot', 'ios_simulator', 'ios_disable_code_signing', 'release', 'static', 'xctest',
],
- 'ios_clang_device_tot': [
- 'clang_tot', 'ios_device', 'release', 'ios_chromium_cert'
+ 'ios_clang_device_tot_xctest': [
+ 'clang_tot', 'ios_device', 'release', 'ios_chromium_cert', 'xctest',
],
- 'ios_cronet': [
+ 'ios_cronet_xctest': [
'additional_target_cpus_x86', 'cronet_ios', 'debug_static_bot',
- 'ios_deployment_target_9_0', 'ios_simulator'
+ 'ios_deployment_target_10_0', 'ios_simulator', 'xctest',
],
'ios_device_release_compile_only': [
@@ -1959,24 +2009,24 @@
],
# doesn't have symbol_level=0
- 'ios_device_release_static_rbe_bot': [
- 'ios_device', 'ios_disable_code_signing', 'ios_use_goma_rbe', 'release_bot',
+ 'ios_device_release_static_rbe_bot_xctest': [
+ 'ios_device', 'ios_disable_code_signing', 'ios_use_goma_rbe', 'release_bot', 'xctest',
],
- 'ios_simulator_debug_static_bot': [
- 'debug_static_bot', 'ios_simulator',
+ 'ios_simulator_debug_static_bot_xctest': [
+ 'debug_static_bot', 'ios_simulator', 'xctest',
],
- 'ios_simulator_debug_static_bot_multi_window': [
- 'debug_static_bot', 'ios_enable_multi_window', 'ios_simulator',
+ 'ios_simulator_debug_static_bot_multi_window_xctest': [
+ 'debug_static_bot', 'ios_enable_multi_window', 'ios_simulator', 'xctest',
],
- 'ios_simulator_debug_static_rbe_bot': [
- 'debug_static_bot', 'ios_simulator', 'ios_use_goma_rbe'
+ 'ios_simulator_debug_static_rbe_bot_xctest': [
+ 'debug_static_bot', 'ios_simulator', 'ios_use_goma_rbe', 'xctest',
],
- 'ios_simulator_release_static_asan_bot': [
- 'ios_simulator', 'release_bot', 'asan'
+ 'ios_simulator_release_static_asan_bot_xctest': [
+ 'ios_simulator', 'release_bot', 'asan', 'xctest',
],
'libfuzzer_asan_debug_bot': [
@@ -2000,7 +2050,7 @@
],
'libfuzzer_asan_release_bot': [
- 'libfuzzer', 'asan', 'shared_release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
+ 'libfuzzer', 'asan', 'shared_release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'mojo_fuzzer',
],
'libfuzzer_asan_release_bot_v8_arm64': [
@@ -2016,7 +2066,7 @@
],
'libfuzzer_asan_release_trybot': [
- 'libfuzzer', 'asan', 'shared_release_trybot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
+ 'libfuzzer', 'asan', 'shared_release_trybot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'mojo_fuzzer',
],
'libfuzzer_asan_clang_tot_release': [
@@ -2039,7 +2089,7 @@
# with other libFuzzer builds. optimize_for_fuzzing is used by the other
# libFuzzer build configs but it does not work on Windows.
'libfuzzer_windows_asan_release_bot': [
- 'libfuzzer', 'asan', 'release_bot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'minimal_symbols',
+ 'libfuzzer', 'asan', 'release_bot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'minimal_symbols', 'mojo_fuzzer',
],
'libfuzzer_windows_asan_clang_tot_release_bot': [
@@ -2047,13 +2097,21 @@
],
'libfuzzer_windows_asan_release_trybot': [
- 'libfuzzer', 'asan', 'release_trybot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl',
+ 'libfuzzer', 'asan', 'release_trybot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'mojo_fuzzer',
+ ],
+
+ 'linux_official_optimize_goma': [
+ 'official_optimize_goma', 'linux_official_link_jobs',
],
'mac_arm64_release_bot': [
'release_bot', 'arm64',
],
+ 'mac_arm64_release_trybot': [
+ 'release_trybot', 'arm64',
+ ],
+
'msan_no_origins_release_bot': [
'msan_no_origins', 'release_bot',
@@ -2075,6 +2133,10 @@
'official', 'goma',
],
+ 'official_goma_mac': [
+ 'official', 'goma', 'no_widevine_cdm_host_verification', 'disable_widevine_signing'
+ ],
+
'official_goma_perf': [
'official', 'goma', 'minimal_symbols',
],
@@ -2084,13 +2146,17 @@
],
'official_goma_mac_pgo': [
- 'official', 'goma', 'no_keystone_registration_framework', 'static', 'no_symbols', 'pgo_phase_1'
+ 'official', 'goma', 'no_keystone_registration_framework', 'no_widevine_cdm_host_verification', 'disable_widevine_signing', 'static', 'no_symbols', 'pgo_phase_1'
],
'official_goma_linux_perf': [
'official', 'goma', 'no_gnome_keyring', 'minimal_symbols',
],
+ 'official_goma_linux_pgo': [
+ 'official', 'goma', 'static', 'no_symbols', 'pgo_phase_1',
+ ],
+
'official_goma_chromeos': [
'official', 'goma', 'chromeos',
],
@@ -2143,6 +2209,10 @@
'official_optimize_goma_trybot',
],
+ 'omaha_release_bot': [
+ 'omaha_on_win_mac', 'release',
+ ],
+
'ozone_linux_release_bot': [
'ozone_linux', 'release_bot',
],
@@ -2187,6 +2257,10 @@
'release_bot_blink', 'x86', 'minimal_symbols',
],
+ 'release_bot_blink_v8_debug': [
+ 'release_bot_blink', 'v8_enable_debugging_features',
+ ],
+
'release_bot_enable_blink_heap_verification_dcheck_always_on': [
'release_bot_blink', 'enable_blink_heap_verification', 'dcheck_always_on',
],
@@ -2219,10 +2293,6 @@
'release_bot', 'minimal_symbols',
],
- 'release_bot_v8_debug': [
- 'release_bot', 'v8_enable_debugging_features',
- ],
-
'release_bot_x86': [
'release_bot', 'x86',
],
@@ -2247,6 +2317,10 @@
'release_trybot',
],
+ 'release_trybot_blink': [
+ 'release_trybot_blink',
+ ],
+
'release_trybot_dcheck_off': [
'release_trybot_dcheck_off',
],
@@ -2331,6 +2405,14 @@
'win32_arm64_release_bot': [
'arm64', 'disable_nacl', 'minimal_symbols', 'release_bot',
],
+
+ 'x86_official_optimize_goma': [
+ 'official_optimize_goma', 'x86',
+ ],
+
+ 'x86_official_optimize_goma_trybot': [
+ 'official_optimize_goma_trybot', 'x86',
+ ],
},
# This is a dict mapping a given 'mixin' name to a dict of settings that
@@ -2415,10 +2497,6 @@
'gn_args': 'enable_autofill_assistant_api=true',
},
- 'betty': {
- 'args_file': '//build/args/chromeos/betty.gni',
- },
-
'betty-pi-arc': {
'args_file': '//build/args/chromeos/betty-pi-arc.gni',
},
@@ -2548,6 +2626,10 @@
'mixins': ['debug', 'shared', 'goma', 'minimal_symbols'],
},
+ 'debug_bot_blink': {
+ 'mixins': ['debug', 'shared', 'goma', 'minimal_symbols', 'chrome_with_codecs' ],
+ },
+
'debug_bot_local_build': {
'mixins': ['debug', 'shared', 'minimal_symbols'],
},
@@ -2564,6 +2646,10 @@
'gn_args': 'archive_seed_corpus=false',
},
+ 'disable_widevine_signing': {
+ 'gn_args': 'enable_widevine_cdm_host_verification = false'
+ },
+
'dx12vk': {
# TODO(https://crbug.com/1010584): Explicitly enable DirectX 12.
'mixins': ['enable_vulkan'],
@@ -2592,10 +2678,6 @@
'args_file': '//build/args/chromeos/eve-arc-r.gni',
},
- 'java_warnings_as_errors': {
- 'gn_args': ('java_warnings_as_errors=true'),
- },
-
'enable_vulkan': {
'gn_args': 'enable_vulkan=true',
},
@@ -2685,8 +2767,8 @@
'gn_args': 'ios_code_signing_identity_description=\"iPhone Developer\"',
},
- 'ios_deployment_target_9_0': {
- 'gn_args': 'ios_deployment_target=\"9.0\"',
+ 'ios_deployment_target_10_0': {
+ 'gn_args': 'ios_deployment_target=\"10.0\"',
},
'ios_device': {
@@ -2712,16 +2794,32 @@
'gn_args': 'ios_use_goma_rbe=true'
},
+ 'mojo_fuzzer': {
+ 'gn_args': 'enable_mojom_fuzzer=true',
+ },
+
'kevin': {
'args_file': '//build/args/chromeos/kevin.gni',
},
+ 'lacros_on_linux': {
+ 'gn_args': 'use_ozone=true ozone_platform_wayland=true ozone_platform="wayland" use_gtk=false chromeos_is_browser_only=true'
+ },
+
'libfuzzer': { 'gn_args': 'use_libfuzzer=true' },
'link_jobs_32': {
'gn_args': 'max_jobs_per_link=32',
},
+ # Without this, linux-official uses too many concurrent links with the
+ # available RAM. We want to adjust this number to mitigate possible memory
+ # issues related to linking.
+ # See https://bugs.chromium.org/p/chromium/issues/detail?id=1103490
+ 'linux_official_link_jobs': {
+ 'gn_args': 'concurrent_links=6',
+ },
+
'lsan': {
'gn_args': 'is_lsan=true',
},
@@ -2774,13 +2872,17 @@
'gn_args': 'symbol_level=0',
},
+ 'no_widevine_cdm_host_verification': {
+ 'gn_args': 'ignore_missing_widevine_signing_cert=true',
+ },
+
'official': {
'mixins': ['official_optimize'],
'gn_args': 'is_chrome_branded=true',
},
'official_optimize': {
- 'gn_args': 'is_official_build=true is_debug=false',
+ 'gn_args': 'is_official_build=true',
},
'official_optimize_goma': {
@@ -2791,6 +2893,10 @@
'mixins': ['official_optimize_goma', 'minimal_symbols', 'dcheck_always_on'],
},
+ 'omaha_on_win_mac': {
+ 'gn_args': 'is_google_branded=true',
+ },
+
'optimize_for_fuzzing': {
'gn_args': 'optimize_for_fuzzing=true',
},
@@ -2880,7 +2986,7 @@
},
'sk_dawn': {
- 'gn_args': 'skia_use_dawn=true',
+ 'gn_args': 'skia_use_dawn=true enable_skia_dawn_gtests=true',
},
'stable_channel': {
@@ -2950,6 +3056,10 @@
'gn_args': 'use_dummy_lastchange=true',
},
+ 'use_fake_dbus_clients': {
+ 'gn_args': 'use_real_dbus_clients=false',
+ },
+
'use_java_coverage': {
'gn_args': 'use_jacoco_coverage=true',
},
@@ -3005,6 +3115,10 @@
'gn_args': 'win_linker_timing=true',
},
+ 'xctest' : {
+ 'gn_args': 'enable_run_ios_unittests_with_xctest=true',
+ },
+
'x64': {
'gn_args': 'target_cpu="x64"',
},
diff --git a/chromium/tools/mb/mb_unittest.py b/chromium/tools/mb/mb_unittest.py
index 60a74887ae5..03860884b45 100755
--- a/chromium/tools/mb/mb_unittest.py
+++ b/chromium/tools/mb/mb_unittest.py
@@ -140,7 +140,6 @@ TEST_CONFIG = """\
'fake_master': {
'fake_builder': 'rel_bot',
'fake_debug_builder': 'debug_goma',
- 'fake_simplechrome_builder': 'cros_chrome_sdk',
'fake_args_bot': '//build/args/bots/fake_master/fake_args_bot.gn',
'fake_multi_phase': { 'phase_1': 'phase_1', 'phase_2': 'phase_2'},
'fake_args_file': 'args_file_goma',
@@ -149,7 +148,6 @@ TEST_CONFIG = """\
},
'configs': {
'args_file_goma': ['args_file', 'goma'],
- 'cros_chrome_sdk': ['cros_chrome_sdk'],
'rel_bot': ['rel', 'goma', 'fake_feature1'],
'debug_goma': ['debug', 'goma'],
'phase_1': ['phase_1'],
@@ -157,9 +155,6 @@ TEST_CONFIG = """\
'ios_error': ['error'],
},
'mixins': {
- 'cros_chrome_sdk': {
- 'cros_passthrough': True,
- },
'error': {
'gn_args': 'error',
},
@@ -760,12 +755,6 @@ class UnitTest(unittest.TestCase):
'""" to _path_/args.gn.\n\n'
'/fake_src/buildtools/linux64/gn gen _path_\n'))
- def test_lookup_simplechrome(self):
- simplechrome_env = {
- 'GN_ARGS': 'is_chromeos=1 target_os="chromeos"',
- }
- self.check(['lookup', '-c', 'cros_chrome_sdk'], ret=0, env=simplechrome_env)
-
def test_help(self):
orig_stdout = sys.stdout
try:
@@ -818,7 +807,6 @@ class UnitTest(unittest.TestCase):
mbw = self.fake_mbw()
self.check(['validate'], mbw=mbw, ret=0)
-
def test_bad_validate(self):
mbw = self.fake_mbw()
mbw.files[mbw.default_config] = TEST_BAD_CONFIG
diff --git a/chromium/tools/md_browser/OWNERS b/chromium/tools/md_browser/OWNERS
index 453a875de04..b4bc1e99ff9 100644
--- a/chromium/tools/md_browser/OWNERS
+++ b/chromium/tools/md_browser/OWNERS
@@ -1,3 +1,2 @@
-dpranke@chromium.org
dpranke@google.com
nodir@chromium.org
diff --git a/chromium/tools/metrics/BUILD.gn b/chromium/tools/metrics/BUILD.gn
index e5a8e38bfbb..846d5248bfa 100644
--- a/chromium/tools/metrics/BUILD.gn
+++ b/chromium/tools/metrics/BUILD.gn
@@ -2,19 +2,17 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-action("histograms_xml") {
+import("//build/config/python.gni")
+
+# TODO(crbug.com/1118214) - Make work under Python 3.
+python2_action("histograms_xml") {
script = "histograms/merge_xml.py"
- sources = [
- "histograms/enums.xml",
- "histograms/histograms.xml",
- "ukm/ukm.xml",
- ]
output = "$root_out_dir/histograms.xml"
outputs = [ output ]
- args = rebase_path(sources, root_build_dir) + [
- "--output",
- rebase_path(output, root_build_dir),
- ]
+ args = [
+ "--output",
+ rebase_path(output, root_build_dir),
+ ]
}
copy("actions_xml") {
@@ -75,7 +73,8 @@ group("metrics_python_tests") {
"//tools/metrics/metrics_python_tests.py",
"//tools/metrics/actions/action_utils.py",
- "//tools/metrics/actions/actions_print_style.py",
+ "//tools/metrics/actions/actions_model.py",
+ "//tools/metrics/actions/actions_model_test.py",
"//tools/metrics/actions/extract_actions.py",
"//tools/metrics/actions/extract_actions_test.py",
@@ -93,12 +92,15 @@ group("metrics_python_tests") {
"//tools/metrics/histograms/expand_owners.py",
"//tools/metrics/histograms/expand_owners_unittest.py",
"//tools/metrics/histograms/extract_histograms.py",
+ "//tools/metrics/histograms/extract_histograms_test.py",
"//tools/metrics/histograms/generate_expired_histograms_array.py",
"//tools/metrics/histograms/generate_expired_histograms_array_unittest.py",
"//tools/metrics/histograms/histogram_ownership.py",
"//tools/metrics/histograms/histograms.xml",
+ "//tools/metrics/histograms/histogram_configuration_model.py",
+ "//tools/metrics/histograms/histogram_configuration_model_test_enums.py",
+ "//tools/metrics/histograms/histogram_configuration_model_test_histograms.py",
"//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",
diff --git a/chromium/tools/metrics/actions/actions.xml b/chromium/tools/metrics/actions/actions.xml
index cca15bdeb1e..ab3ffad4e5a 100644
--- a/chromium/tools/metrics/actions/actions.xml
+++ b/chromium/tools/metrics/actions/actions.xml
@@ -1370,6 +1370,71 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Accessibility.CaretBrowsing.AcceptDialog">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user pressed the caret browsing shortcut and then enabled the feature by
+ confirming in the dialog.
+ </description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.CancelDialog">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user pressed the caret browsing shortcut and then cancelled without
+ enabling caret browsing.
+ </description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.DisableWithKeyboard">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user disabled caret browsing using keyboard shortcuts.
+ </description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.DisableWithSettings">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>A user disabled caret browsing using settings.</description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.DoNotAsk">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user enabled caret browsing and checked the box to never be prompted
+ again.
+ </description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.EnableWithKeyboard">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user enabled caret browsing using the keyboard shortcut directly, when
+ they had already opted into not showing the confirmation dialog.
+ </description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.EnableWithSettings">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>A user enabled caret browsing using settings.</description>
+</action>
+
+<action name="Accessibility.CaretBrowsing.ShowDialog">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>emilyscharff@google.com</owner>
+ <description>
+ A user pressed the caret browsing shortcut and the confirmation dialog was
+ shown.
+ </description>
+</action>
+
<action
name="Accessibility.ChromeVox.BluetoothBrailleDisplayConnectedButtonClick">
<owner>dtseng@chromium.org</owner>
@@ -4350,6 +4415,24 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="ChromeOS.Settings.Languages">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <description>
+ Records when users select a specific element in the Chrome OS's Languages OS
+ settings page.
+ </description>
+</action>
+
+<action name="ChromeOS.Settings.Languages.Browser">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <description>
+ Records when users select a specific element in the Chrome OS's Languages
+ browser settings page.
+ </description>
+</action>
+
<action name="ChromeOS.Settings.SmartInputs.EmojiSuggestions.Open">
<owner>myy@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
@@ -4923,6 +5006,15 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="ContentSuggestions.Feed.CardAction.ReadLater">
+ <owner>adamta@google.org</owner>
+ <owner>sczs@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <description>
+ The user selected the 'Read Later' option for a Feed card.
+ </description>
+</action>
+
<action name="ContentSuggestions.Feed.CardAction.SendFeedback">
<owner>harringtond@chromium.org</owner>
<owner>carlosk@chromium.org</owner>
@@ -4932,6 +5024,33 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="ContentSuggestions.Feed.HeaderAction.ManageActivity">
+ <owner>adamta@google.org</owner>
+ <owner>sczs@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <description>
+ The user selected the 'Manage Activity' option in the feed header menu.
+ </description>
+</action>
+
+<action name="ContentSuggestions.Feed.HeaderAction.ManageInterests">
+ <owner>adamta@google.org</owner>
+ <owner>sczs@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <description>
+ The user selected the 'Manage Interests' option in the feed header menu.
+ </description>
+</action>
+
+<action name="ContentSuggestions.Feed.InfiniteFeedTriggered">
+ <owner>adamta@google.org</owner>
+ <owner>sczs@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <description>
+ The user has scrolled down enough to trigger the infinite feed pagination.
+ </description>
+</action>
+
<action name="ContentSuggestions.NotificationsPreferenceOff">
<owner>dgn@chromium.org</owner>
<owner>finkm@chromium.org</owner>
@@ -5355,6 +5474,14 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="CryptidRendered">
+ <owner>tmartino@chromium.org</owner>
+ <description>
+ Logged when Probabilistic Cryptid Rendering successfully occurs (i.e., the
+ conditions are satisfied and the NTP injection is completed).
+ </description>
+</action>
+
<action name="Cryptohome.PKCS11InitFail">
<obsolete>Deprecated as of 11/2015.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
@@ -6266,6 +6393,47 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="Extensions.ContextMenu.Hosts.LearnMoreClicked">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user clicked the &quot;Learn more about site access&quot; option in the
+ runtime host permissions section of an extension's context menu. This is
+ recorded for both keyboard and mouse activations.
+ </description>
+</action>
+
+<action name="Extensions.ContextMenu.Hosts.OnAllSitesClicked">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user clicked the &quot;On all sites&quot; option in the runtime host
+ permissions section of an extension's context menu. This is recorded for
+ both keyboard and mouse activations.
+ </description>
+</action>
+
+<action name="Extensions.ContextMenu.Hosts.OnClickClicked">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user clicked the &quot;When you click the extension&quot; option in the
+ runtime host permissions section of an extension's context menu. This is
+ recorded for both keyboard and mouse activations.
+ </description>
+</action>
+
+<action name="Extensions.ContextMenu.Hosts.OnSiteClicked">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user clicked the &quot;On {site}&quot; option in the runtime host
+ permissions section of an extension's context menu, where &quot;{site}&quot;
+ is the domain of the current page. This is recorded for both keyboard and
+ mouse activations.
+ </description>
+</action>
+
<action name="Extensions.ExtensionDisabled">
<owner>archanasimha@chromium.org</owner>
<description>
@@ -6325,6 +6493,114 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Extensions.Settings.Hosts.ActionMenuEditActivated">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the &quot;Edit&quot; option in the context menu for a
+ specific host entry in the site access section of an extension's settings
+ page.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.ActionMenuOpened">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ While having the site access on an extension's setting page set to &quot;On
+ specific sites&quot;, the user activated the three dot button on a specific
+ host entry.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.ActionMenuRemoveActivated">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the &quot;Remove&quot; option in the context menu for a
+ specific host entry in the site access section of an extension's settings
+ page.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.AddHostActivated">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the link to add a new host to the list of sites an
+ extension is allowed to access, on an extesion's settings page. Note that
+ this is only visible and can only be activated when the extension is already
+ set to run only on a specific list of sites.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.AddHostDialogCanceled">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user closed the dialog for adding a specific host to the list of sites
+ an extension is allowed to access, on an extension's settings page. This can
+ be triggered either by activating the cancel button on the dialog, or by
+ pressing escape to dismiss it.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.AddHostDialogSubmitted">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the confirmation button on the dialog for adding or
+ editing a specific host in the list of sites an extension is allowed to
+ access, on an extension's settings page. Note that this button is only
+ enabled when a host pattern entered into the textbox of the dialog is valid.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.LearnMoreActivated">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the learn more icon on the site access section of an
+ extension's settings page, for an extension which requested an
+ &quot;all_urls&quot; type permission.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.OnAllSitesSelected">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user changed the site access setting for an extension to the &quot;On
+ all sites&quot; radio option on an extension's settings page. This is only
+ recorded when the user choses to change to this option and not if it is
+ automatically changed back when canceling a change to the &quot;specific
+ sites&quot; option.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.OnClickSelected">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user changed the site access setting for an extension to the &quot;On
+ click&quot; radio option on an extension's settings page. This is only
+ recorded when the user choses to change to this option and not if it is
+ automatically changed back when canceling a change to the &quot;specific
+ sites&quot; option.
+ </description>
+</action>
+
+<action name="Extensions.Settings.Hosts.OnSpecificSitesSelected">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user changed the site access setting for an extension to the &quot;On
+ specific sites&quot; radio option on an extension's settings page. Note that
+ on changing to this selection, a dialog pops up for entering a specfic host
+ pattern.
+ </description>
+</action>
+
<action name="Extensions.Toolbar.ExtensionActivatedFromMenu">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -6352,6 +6628,15 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Extensions.Toolbar.MoreActionsButtonPressedFromMenu">
+ <owner>tjudkins@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <description>
+ The user activated the more actions button for an extension in the
+ Extensions Menu. This is recorded for both keyboard and mouse activation.
+ </description>
+</action>
+
<action name="Extensions.Toolbar.PinButtonPressed">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -6397,6 +6682,17 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="FamilyUser.SessionEngagement.Start">
+ <owner>xiqiruan@chromium.org</owner>
+ <owner>agawronska@chromium.org</owner>
+ <owner>tobyhuang@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
+ <description>
+ Emitted every time when the Chrome OS users' usage time state changes to
+ UsageTimeStateNotifier::UsageTimeState::ACTIVE.
+ </description>
+</action>
+
<action name="Feedback">
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
@@ -6851,6 +7147,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.ButtonClicked0">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6859,6 +7156,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.ButtonClicked1">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6867,12 +7165,14 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.Dismissed">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>User dismissed a Now Notification.</description>
</action>
<action name="GoogleNow.MessageCenter.NotificationPoppedUp">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6881,6 +7181,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.MessageClicked">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6889,6 +7190,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.WelcomeToastClickedNo">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6898,6 +7200,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.WelcomeToastClickedYes">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -6906,6 +7209,7 @@ should be able to be added at any place in this file.
</action>
<action name="GoogleNow.WelcomeToastDismissed">
+ <obsolete>Feature removed March 2017.</obsolete>
<owner>robliao@chromium.org</owner>
<owner>skare@chromium.org</owner>
<description>
@@ -7160,6 +7464,11 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="IncognitoMenu_ExitClicked">
+ <owner>rhalavati@chromium.org</owner>
+ <description>User clicked on Exit Incognito button.</description>
+</action>
+
<action name="IncognitoMenu_Show">
<owner>rhalavati@chromium.org.</owner>
<description>The user opened incognito menu.</description>
@@ -8632,6 +8941,21 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="IOS.DefaultBrowserFullscreenPromoMoreInfoTapped">
+ <owner>thegreenfrog@chromium.org</owner>
+ <description>
+ The user tapped on the more information icon on the default browser
+ fullscreen promo modal. iOS only.
+ </description>
+</action>
+
+<action name="IOS.DefaultBrowserNTPPromoTapped">
+ <owner>thegreenfrog@chromium.org</owner>
+ <description>
+ The user tapped on default browser NTP promo link. iOS only.
+ </description>
+</action>
+
<action name="IOS.NTP.Doodle.Tapped">
<owner>gambard@chromium.org</owner>
<owner>justincohen@chromium.org</owner>
@@ -8673,6 +8997,23 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="IOS.SearchEngines.RecentlyViewed.Delete">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <description>
+ Recorded when user deletes for recently viewed search engines. iOS only.
+ </description>
+</action>
+
+<action name="IOS.SearchEngines.RecentlyViewed.Edit">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <description>
+ Recorded when user enters edit mode for recently viewed search engines. iOS
+ only.
+ </description>
+</action>
+
<action name="IOSAccountsSettingsCloseWithSwipe">
<owner>msarda@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
@@ -8817,6 +9158,15 @@ should be able to be added at any place in this file.
<description>User opened a URL in Chrome via Apple Shortcuts.</description>
</action>
+<action name="IOSLaunchedByOpenInIncognitoIntent">
+ <owner>gujen@chromium.org</owner>
+ <owner>rohitrao@chromium.org</owner>
+ <description>
+ User opened a URL/a list of URLs in Chrome in Incognito mode via Apple
+ Shortcuts.
+ </description>
+</action>
+
<action name="IOSLaunchedBySearchInChromeIntent">
<owner>justincohen@chromium.org</owner>
<description>
@@ -13042,6 +13392,13 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="MobileDefaultBrowserViewIntent">
+ <owner>thegreenfrog@chromium.org</owner>
+ <description>
+ Records when an iOS user opens the app from the default browser URL open.
+ </description>
+</action>
+
<action name="MobileDownloadFileUIInstallGoogleDrive">
<obsolete>
Removed in 12/2019 after adds of IOSDownloadFileUIGoogleDrive's histogram.
@@ -13123,6 +13480,13 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="MobileFirstPartyViewIntent">
+ <owner>thegreenfrog@chromium.org</owner>
+ <description>
+ Records when an iOS user opens the app from a Google first party app.
+ </description>
+</action>
+
<action name="MobileFocusedFakeboxOnNtp">
<obsolete>Deprecated as of 12/2015</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
@@ -13300,6 +13664,11 @@ should be able to be added at any place in this file.
<description>User pressed the back icon in the app menu.</description>
</action>
+<action name="MobileMenuBackward">
+ <owner>gangwu@chromium.org</owner>
+ <description>User pressed the back icon in the app menu.</description>
+</action>
+
<action name="MobileMenuCloseAllIncognitoTabs">
<owner>gambard@chromium.org</owner>
<description>
@@ -14467,6 +14836,14 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="MobileSingleScreenScreenshot">
+ <owner>jmentasti@google.com</owner>
+ <owner>seblalancette@chromium.org</owner>
+ <description>
+ The user took a screenshot of a single chrome window. iOS only.
+ </description>
+</action>
+
<action name="MobileStackViewCloseTab">
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
@@ -18313,6 +18690,80 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="PaintPreview.Player.Flung">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user fling-scrolls the paint preview player.
+ </description>
+</action>
+
+<action name="PaintPreview.Player.LinkClicked">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when a link is clicked in the paint preview player.
+ </description>
+</action>
+
+<action name="PaintPreview.Player.LongPress">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user long presses on the paint preview player.
+ </description>
+</action>
+
+<action name="PaintPreview.Player.Scrolled">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user scrolls the paint preview player.
+ </description>
+</action>
+
+<action name="PaintPreview.Player.UnconsumedTap">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user taps on an area in the paint preview player that is
+ not a link.
+ </description>
+</action>
+
+<action name="PaintPreview.Player.Zoomed">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user zooms in/out the paint preview player.
+ </description>
+</action>
+
+<action name="PaintPreview.TabbedPlayer.Actionbar.Action">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the user clicks on the actionbar action in
+ TabbedPaintPreviewPlayer.
+ </description>
+</action>
+
+<action name="PaintPreview.TabbedPlayer.Removed">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <description>
+ Records when the tabbed paint preview player is removed.
+ </description>
+</action>
+
<action name="Panel_Minimize_Caption_Click">
<obsolete>Removed 07/2018 since panels were deprecated in M-69.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
@@ -19266,6 +19717,30 @@ should be able to be added at any place in this file.
<description>The user opened the regular profile menu.</description>
</action>
+<action name="ProfilePicker_AddClicked">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <description>
+ The user clicked the add button in chrome://profile-picker.
+ </description>
+</action>
+
+<action name="ProfilePicker_RemoveOptionClicked">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <description>
+ The user clicked remove in the three dotted menu in chrome://profile-picker.
+ </description>
+</action>
+
+<action name="ProfilePicker_ThreeDottedMenuClicked">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <description>
+ The user clicked the three dotted menu in chrome://profile-picker.
+ </description>
+</action>
+
<action name="PWAInstallIcon">
<owner>alancutter@chromium.org</owner>
<description>
@@ -20005,6 +20480,14 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Settings.DefaultBrowser">
+ <owner>gambard@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <description>
+ Reported when user opens DefaultBrowser screen. iOS only.
+ </description>
+</action>
+
<action name="Settings.GoogleServices">
<owner>jlebel@chromium.org</owner>
<owner>fernandex@chromium.org</owner>
@@ -20068,6 +20551,22 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Settings.SafetyCheck.ChromeCleanerReboot">
+ <owner>rainhard@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <description>
+ User clicks the safety check Chrome cleaner reboot button.
+ </description>
+</action>
+
+<action name="Settings.SafetyCheck.ChromeCleanerReviewInfectedState">
+ <owner>rainhard@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <description>
+ User clicks the review button in an CCT infected state.
+ </description>
+</action>
+
<action name="Settings.SafetyCheck.ManagePasswords">
<owner>rainhard@chromium.org</owner>
<owner>andzaytsev@google.com</owner>
@@ -20281,6 +20780,14 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="SharingHubAndroid.CopyImageSelected">
+ <owner>sophey@chromium.org</owner>
+ <owner>src/components/send_tab_to_self/OWNERS</owner>
+ <description>
+ The &quot;Copy Image&quot; option was selected in the sharing hub.
+ </description>
+</action>
+
<action name="SharingHubAndroid.CopyTextSelected">
<owner>sophey@chromium.org</owner>
<owner>src/components/send_tab_to_self/OWNERS</owner>
@@ -20297,6 +20804,14 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="SharingHubAndroid.LinkToTextSelected">
+ <owner>gayane@chromium.org</owner>
+ <owner>src/components/send_tab_to_self/OWNERS</owner>
+ <description>
+ The &quot;Link to text&quot; option was selected in the sharing hub.
+ </description>
+</action>
+
<action name="SharingHubAndroid.MoreSelected">
<owner>kmilka@chromium.org</owner>
<owner>src/components/send_tab_to_self/OWNERS</owner>
@@ -20377,12 +20892,31 @@ should be able to be added at any place in this file.
</action>
<action name="SharingQRCode.DialogLaunched">
+ <owner>skare@chromium.org</owner>
<owner>src/components/send_tab_to_self/OWNERS</owner>
<description>
User launched the QR Generator dialog (desktop platforms).
</description>
</action>
+<action name="SharingQRCode.DialogLaunched.ContextMenuImage">
+ <owner>skare@chromium.org</owner>
+ <owner>src/components/send_tab_to_self/OWNERS</owner>
+ <description>
+ User launched the QR Generator dialog for an image via the context menu on
+ desktop.
+ </description>
+</action>
+
+<action name="SharingQRCode.DialogLaunched.ContextMenuPage">
+ <owner>skare@chromium.org</owner>
+ <owner>src/components/send_tab_to_self/OWNERS</owner>
+ <description>
+ User launched the QR Generator dialog for a page via the context menu on
+ desktop.
+ </description>
+</action>
+
<action name="SharingQRCode.DownloadQRCode">
<owner>tgupta@chromium.org</owner>
<owner>src/components/send_tab_to_self/OWNERS</owner>
@@ -21150,6 +21684,17 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Signin_Interrupt_Signin">
+ <owner>jlebel@chromium.org</owner>
+ <owner>fernandex@chromium.org</owner>
+ <owner>msarda@chromium.org</owner>
+ <description>
+ Recorded when the user chooses to interrupt the sign in process. It closes
+ the sign in page without signing the user in and opens the new flow, e.g.
+ when clicking 'Open in Chrome' from an app.
+ </description>
+</action>
+
<action name="Signin_MoreButton_Shown">
<owner>gogerald@chromium.org</owner>
<owner>bzanotti@chromium.org</owner>
@@ -22666,24 +23211,20 @@ should be able to be added at any place in this file.
<action name="StartSurface.Hidden">
<owner>gogerald@chromium.org</owner>
- <description>
- Metric record when the StartSurface overview is hidden.
- </description>
+ <description>The start surface overview is hidden.</description>
</action>
<action name="StartSurface.OmniboxOnly">
<owner>wychen@chromium.org</owner>
<description>
- Metric record when the omnibox only start surface is shown (the user taps
- the tab switcher button or on chrome start).
+ The omnibox-only start surface is shown (the user taps the tab switcher
+ button or on Chrome start).
</description>
</action>
<action name="StartSurface.Shown">
<owner>gogerald@chromium.org</owner>
- <description>
- Metric record when the StartSurface overview is shown.
- </description>
+ <description>The start surface overview is shown.</description>
</action>
<action name="StartSurface.SinglePane">
@@ -22693,40 +23234,39 @@ should be able to be added at any place in this file.
</obsolete>
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the single pane start surface is shown (the user taps the
- tab switcher button or on chrome start).
+ The single-pane start surface is shown (the user taps the tab switcher
+ button or on Chrome start).
</description>
</action>
<action name="StartSurface.SinglePane.Home">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the single pane home surface is shown (the user taps the
- home button or on chrome start).
+ The single-pane home surface is shown (the user taps the home button or on
+ Chrome start).
</description>
</action>
<action name="StartSurface.SinglePane.MoreTabs">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the user taps the more tabs button on the single pane
- start surface.
+ The user taps the more tabs button on the single pane start surface.
</description>
</action>
<action name="StartSurface.SinglePane.Tabswitcher">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the single pane tabswitcher surface is shown (the user
- taps the tabswitcher button or more tabs button).
+ The single-pane tabswitcher surface is shown (the user taps the tabswitcher
+ button or more tabs button).
</description>
</action>
<action name="StartSurface.TasksOnly">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the tasks only start surface is shown (the user taps the
- tab switcher button or on chrome start).
+ The tasks only start surface is shown (the user taps the tab switcher button
+ or on chrome start).
</description>
</action>
@@ -22734,8 +23274,8 @@ should be able to be added at any place in this file.
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<description>
- Metric record when the trendy terms start surface is shown (the user taps
- the tab switcher button or on chrome start).
+ The trendy terms start surface is shown (the user taps the tab switcher
+ button or on Chrome start).
</description>
</action>
@@ -22748,40 +23288,37 @@ should be able to be added at any place in this file.
<action name="StartSurface.TwoPanes">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the two panes start surface is shown (the user taps the
- tab switcher button or on chrome start).
+ The two panes start surface is shown (the user taps the tab switcher button
+ or on chrome start).
</description>
</action>
<action name="StartSurface.TwoPanes.BottomBar.TapExploreSurface">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the user taps the explore button on the two panes start
- surface.
+ The user taps the explore button on the two panes start surface.
</description>
</action>
<action name="StartSurface.TwoPanes.BottomBar.TapHome">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the user taps the home button on the two panes start
- surface
+ The user taps the home button on the two panes start surface
</description>
</action>
<action name="StartSurface.TwoPanes.DefaultOnExploreSurface">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the two panes start surface is shown with explore surface
- visible by default.
+ The two panes start surface is shown with explore surface visible by
+ default.
</description>
</action>
<action name="StartSurface.TwoPanes.DefaultOnHomeSurface">
<owner>gogerald@chromium.org</owner>
<description>
- Metric record when the two panes start surface is shown with home surface
- visible by default.
+ The two panes start surface is shown with home surface visible by default.
</description>
</action>
@@ -23102,6 +23639,27 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="StatusArea_Mic_Gain_Changed">
+ <owner>amehfooz@chromium.org tengs@chromium.org</owner>
+ <description>
+ The user changed the slider for mic gain in the audio detailed view.
+ </description>
+</action>
+
+<action name="StatusArea_Mic_Muted">
+ <owner>amehfooz@chromium.org tengs@chromium.org</owner>
+ <description>
+ The user muted the mic by pressing the mic mute button.
+ </description>
+</action>
+
+<action name="StatusArea_Mic_Unmuted">
+ <owner>amehfooz@chromium.org tengs@chromium.org</owner>
+ <description>
+ The user unmuted the mic by pressing the mic mute button
+ </description>
+</action>
+
<action name="StatusArea_MonoAudioDisabled">
<owner>minch@chromium.org</owner>
<description>Ash system menu: Accessibility: Disable mono audio</description>
@@ -23568,8 +24126,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<description>
- Android: The suggestions section is collapsed by user click on the section
- header.
+ The suggestions section is collapsed through the section header.
</description>
</action>
@@ -23577,8 +24134,7 @@ should be able to be added at any place in this file.
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<description>
- Android: The suggestions section is expanded by user click on the section
- header.
+ The suggestions section is expanded through the section header.
</description>
</action>
@@ -24480,6 +25036,9 @@ should be able to be added at any place in this file.
</action>
<action name="TabsSuggestions.Close.Accepted">
+ <obsolete>
+ This is renamed to TabSuggestions.Considered.Accepted.Closing on 07/2020.
+ </obsolete>
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<description>
@@ -24489,6 +25048,9 @@ should be able to be added at any place in this file.
</action>
<action name="TabsSuggestions.Close.Dismissed">
+ <obsolete>
+ This is renamed to TabSuggestions.Considered.Dismissed.Closing on 07/2020.
+ </obsolete>
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<description>
@@ -24498,6 +25060,7 @@ should be able to be added at any place in this file.
</action>
<action name="TabsSuggestions.Close.SuggestionsReview.Accepted">
+ <obsolete>This is removed as 07/2020.</obsolete>
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<description>
@@ -24507,6 +25070,9 @@ should be able to be added at any place in this file.
</action>
<action name="TabsSuggestions.Close.SuggestionsReview.Dismissed">
+ <obsolete>
+ This is renamed to TabsSuggestions.NotConsidered.Closing on 07/2020.
+ </obsolete>
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<description>
@@ -24515,6 +25081,36 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="TabsSuggestions.Considered.Accepted">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <owner>meiliang@chromium.org</owner>
+ <description>
+ The tab suggestions were considered and accepted by the user (with some
+ possible editing).
+ </description>
+</action>
+
+<action name="TabsSuggestions.Considered.Dismissed">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <owner>meiliang@chromiu.org</owner>
+ <description>
+ The tab suggestions were considered and dismissed by the user (with some
+ possible editing).
+ </description>
+</action>
+
+<action name="TabsSuggestions.NotConsidered">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <owner>meiliang@chromium.org</owner>
+ <description>
+ The tab suggestions were not considered at all by the user by dismissing the
+ tab suggestion card indicating tab suggestions are available.
+ </description>
+</action>
+
<action name="TabStrip">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
@@ -24974,6 +25570,15 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
+<action name="Tray_StopRecording">
+ <owner>afakhry@chromium.org</owner>
+ <owner>sammiequon@chromium.org</owner>
+ <description>
+ Records when the user presses the stop recording button in the Ash system
+ tray to stop the current screen recording session.
+ </description>
+</action>
+
<action name="Tray_SwipeToClose_Successful">
<obsolete>
No longer needed since swipe on the tray bubble to close it has been
@@ -26223,4 +26828,23 @@ should be able to be added at any place in this file.
<affected-action name="TabGridDialog"/>
</action-suffix>
+<action-suffix separator="." ordering="suffix">
+ <suffix name="Closing"
+ label="Users took action on the closing tabs suggestion."/>
+ <suffix name="Grouping"
+ label="Users took action on the grouping tabs suggestion."/>
+ <affected-action name="TabsSuggestions.Considered.Accepted"/>
+ <affected-action name="TabsSuggestions.Considered.Dismissed"/>
+ <affected-action name="TabsSuggestions.NotConsidered"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="AddInputMethod" label="Users tapped 'Add input method'"/>
+ <suffix name="AddLanguages" label="Users tapped 'Add languages'"/>
+ <suffix name="ManageInputMethods"
+ label="Users tapped 'Manage Input Methods'"/>
+ <affected-action name="ChromeOS.Settings.Languages"/>
+ <affected-action name="ChromeOS.Settings.Languages.Browser"/>
+</action-suffix>
+
</actions>
diff --git a/chromium/tools/metrics/actions/actions_model.py b/chromium/tools/metrics/actions/actions_model.py
new file mode 100644
index 00000000000..a5ecd352f00
--- /dev/null
+++ b/chromium/tools/metrics/actions/actions_model.py
@@ -0,0 +1,108 @@
+# 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.
+"""Model objects for actions.xml contents."""
+
+import os
+import sys
+import re
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+import models
+
+_OBSOLETE_TYPE = models.TextNodeType('obsolete', single_line=True)
+_OWNER_TYPE = models.TextNodeType('owner', single_line=True)
+_DESCRIPTION_TYPE = models.TextNodeType('description', single_line=True)
+
+# A key for sorting XML nodes by the value of |attribute|.
+# Used for sorting tags by their name attribute
+_LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower())
+
+# A constant function as the sorting key for nodes whose orderings should be
+# kept as given in the XML file within their parent node.
+_KEEP_ORDER = lambda node: 1
+
+_ACTION_TYPE = models.ObjectNodeType(
+ 'action',
+ attributes=[
+ ('name', str, None),
+ ('not_user_triggered', str, r'^$|^true|false|True|False$'),
+ ],
+ required_attributes=['name'],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+ (_OWNER_TYPE.tag, _KEEP_ORDER),
+ (_DESCRIPTION_TYPE.tag, _KEEP_ORDER),
+ ],
+ extra_newlines=(1, 1, 1),
+ children=[models.ChildType(_OBSOLETE_TYPE.tag,
+ _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_OWNER_TYPE.tag,
+ _OWNER_TYPE, multiple=True),
+ models.ChildType(_DESCRIPTION_TYPE.tag,
+ _DESCRIPTION_TYPE, multiple=False),
+ ])
+
+_SUFFIX_TYPE = models.ObjectNodeType(
+ 'suffix',
+ attributes=[
+ ('name', str, r'^[A-Za-z0-9.-_]*$'),
+ ('label', str, None),
+ ],
+ required_attributes=['name', 'label'],
+)
+
+_AFFECTED_ACTION_TYPE = models.ObjectNodeType(
+ 'affected-action',
+ attributes=[
+ ('name', str, r'^[A-Za-z0-9.-_]*$'),
+ ],
+ required_attributes=['name'],
+)
+
+_ACTION_SUFFIX_TYPE = models.ObjectNodeType(
+ 'action-suffix',
+ attributes=[
+ ('separator', str, r'^$|^[\._]+$'),
+ ('ordering', str, r'^$|^suffix$'),
+ ],
+ required_attributes=['separator'],
+ alphabetization=[
+ (_SUFFIX_TYPE.tag, _LOWERCASE_FN('name')),
+ (_AFFECTED_ACTION_TYPE.tag, _LOWERCASE_FN('name')),
+ ],
+ extra_newlines=(1, 1, 1),
+ children=[
+ models.ChildType(_SUFFIX_TYPE.tag, _SUFFIX_TYPE, multiple=True),
+ models.ChildType(_AFFECTED_ACTION_TYPE.tag,
+ _AFFECTED_ACTION_TYPE, multiple=True),
+ ])
+
+_ACTIONS_TYPE = models.ObjectNodeType(
+ 'actions',
+ alphabetization=[
+ (_ACTION_TYPE.tag, _LOWERCASE_FN('name')),
+ (_ACTION_SUFFIX_TYPE.tag, lambda n: None),
+ ],
+ extra_newlines=(2, 1, 1),
+ indent=False,
+ children=[
+ models.ChildType(_ACTION_TYPE.tag, _ACTION_TYPE, multiple=True),
+ models.ChildType(_ACTION_SUFFIX_TYPE.tag,
+ _ACTION_SUFFIX_TYPE, multiple=True),
+ ])
+
+ACTION_XML_TYPE = models.DocumentType(_ACTIONS_TYPE)
+
+def PrettifyTree(minidom_doc):
+ """Parses the input minidom document and return a pretty-printed
+ version.
+
+ Args:
+ minidom_doc: A minidom document.
+
+ Returns:
+ A pretty-printed xml string, or None if the config contains errors.
+ """
+ actions = ACTION_XML_TYPE.Parse(minidom_doc)
+ return ACTION_XML_TYPE.PrettyPrint(actions)
diff --git a/chromium/tools/metrics/actions/actions_model_test.py b/chromium/tools/metrics/actions/actions_model_test.py
new file mode 100644
index 00000000000..9c0a304a1b5
--- /dev/null
+++ b/chromium/tools/metrics/actions/actions_model_test.py
@@ -0,0 +1,309 @@
+# 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.
+
+from parameterized import parameterized
+import unittest
+import xml.dom.minidom
+
+import actions_model
+
+PRETTY_XML = """
+<actions>
+
+<action name="Action1">
+ <owner>owner@chromium.org</owner>
+ <description>Description1</description>
+</action>
+
+<action name="Action2" not_user_triggered="true">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <description>Description3</description>
+</action>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu" label="Users closed a tab by long tap menu"/>
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+</action-suffix>
+
+</actions>
+""".strip()
+
+XML_WITH_WRONG_INDENT = """
+<actions>
+
+ <action name="Action1">
+ <owner>owner@chromium.org</owner>
+ <description>Description1</description>
+ </action>
+
+<action name="Action2" not_user_triggered="true">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+
+<action name="Action3">
+<obsolete>Obsolete text</obsolete>
+<owner>owner@chromium.org</owner>
+<owner>owner2@chromium.org</owner>
+<description>Description3</description>
+</action>
+
+ <action-suffix separator="." ordering="suffix">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+ </action-suffix>
+
+ <action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu" label="Users closed a tab by long tap menu"/>
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+ </action-suffix>
+
+</actions>
+""".strip()
+
+XML_WITH_WRONG_SINGLELINE = """
+<actions>
+
+<action name="Action1">
+ <owner>
+ owner@chromium.org
+ </owner>
+ <description>Description1</description>
+</action>
+
+<action name="Action2" not_user_triggered="true">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <description>
+ Description3
+ </description>
+</action>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu" label="Users closed a tab by long tap menu"/>
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+</action-suffix>
+
+</actions>
+""".strip()
+
+XML_WITH_WRONG_LINE_BREAK = """
+<actions>
+<action name="Action1">
+ <owner>owner@chromium.org</owner>
+ <description>Description1</description>
+</action>
+
+<action name="Action2" not_user_triggered="true">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+
+ <owner>owner2@chromium.org</owner>
+ <description>Description3</description>
+</action>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu"
+ label="Users closed a tab by long tap menu"/>
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+</action-suffix>
+</actions>
+""".strip()
+
+XML_WITH_WRONG_ORDER = """
+<actions>
+
+<action name="Action2" not_user_triggered="true">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+
+<action name="Action1">
+ <owner>owner@chromium.org</owner>
+ <description>Description1</description>
+</action>
+
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <description>Description3</description>
+</action>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="LongTapMenu" label="Users closed a tab by long tap menu"/>
+ <affected-action name="MobileMenuCloseTab"/>
+ <affected-action name="AnAction"/>
+</action-suffix>
+
+</actions>
+""".strip()
+
+XML_WITH_WRONG_CHILDREN_ORDER = """
+<actions>
+
+<action name="Action1">
+ <description>Description1</description>
+ <owner>owner@chromium.org</owner>
+</action>
+
+<action name="Action2" not_user_triggered="true">
+ <owner>owner@chromium.org</owner>
+ <obsolete>Obsolete text</obsolete>
+ <description>Description2</description>
+</action>
+
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description3</description>
+ <owner>owner2@chromium.org</owner>
+</action>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+ <suffix name="LongTapMenu" label="Users closed a tab by long tap menu"/>
+</action-suffix>
+
+</actions>
+""".strip()
+
+XML_WITH_WRONG_ATTRIBUTE_ORDER = """
+<actions>
+
+<action name="Action1">
+ <owner>owner@chromium.org</owner>
+ <description>Description1</description>
+</action>
+
+<action not_user_triggered="true" name="Action2">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <description>Description2</description>
+</action>
+
+<action name="Action3">
+ <obsolete>Obsolete text</obsolete>
+ <owner>owner@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <description>Description3</description>
+</action>
+
+<action-suffix ordering="suffix" separator=".">
+ <suffix name="AppMenu" label="Users opened a new incognito tab by app menu"/>
+ <suffix name="LongTapMenu"
+ label="Users opened a new incognito tab by long tap menu"/>
+</action-suffix>
+
+<action-suffix separator="." ordering="suffix">
+ <suffix label="Users closed a tab by long tap menu" name="LongTapMenu"/>
+ <affected-action name="AnAction"/>
+ <affected-action name="MobileMenuCloseTab"/>
+</action-suffix>
+
+</actions>
+""".strip()
+
+
+class ActionXmlTest(unittest.TestCase):
+ def __init__(self, *args, **kwargs):
+ super(ActionXmlTest, self).__init__(*args, **kwargs)
+ self.maxDiff = None
+
+ @parameterized.expand([
+ # Test prettify already pretty XML to verify the pretty-printed version
+ # is the same.
+ ('AlreadyPrettyXml', PRETTY_XML, PRETTY_XML),
+ ('Indent', XML_WITH_WRONG_INDENT, PRETTY_XML),
+ ('SingleLine', XML_WITH_WRONG_SINGLELINE, PRETTY_XML),
+ ('LineBreak', XML_WITH_WRONG_LINE_BREAK, PRETTY_XML),
+ ('Order', XML_WITH_WRONG_ORDER, PRETTY_XML),
+ # The children of <action> should be sorted in the order of <obsolete>,
+ # <owner> and <description>
+ ('ChildrenOrder', XML_WITH_WRONG_CHILDREN_ORDER, PRETTY_XML),
+ ])
+ def testPrettify(self, _, input_xml, expected_xml):
+ result = actions_model.PrettifyTree(xml.dom.minidom.parseString(input_xml))
+ self.assertMultiLineEqual(result.strip(), expected_xml)
+
+ @parameterized.expand([
+ ('BadAttributeBoolean', PRETTY_XML, 'true', 'hello', 'hello'),
+ ('BadSuffixNameWithSpace', PRETTY_XML, 'AppMenu', 'App Menu', 'App Menu'),
+ ('BadAffectedActionNameWithSpace', PRETTY_XML, 'AnAction', 'An Action',
+ 'An Action'),
+ ('SuffixWithBadSeparator', PRETTY_XML, '.', '-', '-'),
+ ('BadOrdering_IllegalWord', PRETTY_XML, 'ordering="suffix"',
+ 'ordering="hello"', 'hello'),
+ ])
+ def testRegex(self, _, pretty_input_xml, original_string, bad_string,
+ error_string):
+ BAD_XML = pretty_input_xml.replace(original_string, bad_string)
+ with self.assertRaises(ValueError) as context:
+ actions_model.PrettifyTree(xml.dom.minidom.parseString(BAD_XML))
+ self.assertIn(error_string, str(context.exception))
+ self.assertIn('does not match regex', str(context.exception))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/tools/metrics/actions/actions_print_style.py b/chromium/tools/metrics/actions/actions_print_style.py
deleted file mode 100644
index 8d1278e0247..00000000000
--- a/chromium/tools/metrics/actions/actions_print_style.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# 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.
-
-"""Holds the constants for pretty printing actions.xml."""
-
-import os
-import sys
-
-# Import the metrics/common module for pretty print xml.
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
-import pretty_print_xml
-
-# Desired order for tag and tag attributes. The *_ATTRIBUTE_ORDER maps are also
-# used to determine the validity of tag names.
-# { tag_name: [attribute_name, ...] }
-ATTRIBUTE_ORDER = {
- 'action': ['name', 'not_user_triggered'],
- 'action-suffix': ['separator', 'ordering'],
- 'actions': [],
- 'actions-suffixes': [],
- 'affected-action': ['name'],
- 'description': [],
- 'obsolete': [],
- 'owner': [],
- 'suffix': ['name', 'label'],
- 'with-suffix': ['name'],
-}
-
-# Attribute names that must be explicitly specified on nodes that support them.
-REQUIRED_ATTRIBUTES = [
- 'label',
- 'name',
- 'separator',
-]
-
-# Tag names for top-level nodes whose children we don't want to indent.
-TAGS_THAT_DONT_INDENT = [
- 'actions',
-]
-
-# Extra vertical spacing rules for special tag names.
-# {tag_name: (newlines_after_open, newlines_before_close, newlines_after_close)}
-TAGS_THAT_HAVE_EXTRA_NEWLINE = {
- 'actions': (2, 1, 1),
- 'action': (1, 1, 1),
- 'action-suffix': (1, 1, 1),
-}
-
-# Tags that we allow to be squished into a single line for brevity.
-TAGS_THAT_ALLOW_SINGLE_LINE = ['obsolete', 'owner', 'description']
-
-LOWERCASE_NAME_FN = lambda n: n.get('name').lower()
-
-# Tags whose children we want to alphabetize. The key is the parent tag name,
-# and the value is a list of pairs of tag name and key functions that maps each
-# child node to the desired sort key.
-TAGS_ALPHABETIZATION_RULES = {
- 'actions': [
- ('action', LOWERCASE_NAME_FN),
- ('action-suffix', lambda n: None),
- ],
- 'action-suffix': [
- ('suffix', LOWERCASE_NAME_FN),
- ('affected-action', LOWERCASE_NAME_FN),
- ],
-}
-
-
-def GetPrintStyle():
- """Returns an XmlStyle object for pretty printing actions."""
- return pretty_print_xml.XmlStyle(ATTRIBUTE_ORDER,
- REQUIRED_ATTRIBUTES,
- TAGS_THAT_HAVE_EXTRA_NEWLINE,
- TAGS_THAT_DONT_INDENT,
- TAGS_THAT_ALLOW_SINGLE_LINE,
- TAGS_ALPHABETIZATION_RULES)
diff --git a/chromium/tools/metrics/actions/extract_actions.py b/chromium/tools/metrics/actions/extract_actions.py
index 7df8675ae55..11982d5995c 100755
--- a/chromium/tools/metrics/actions/extract_actions.py
+++ b/chromium/tools/metrics/actions/extract_actions.py
@@ -34,7 +34,7 @@ import sys
from xml.dom import minidom
import action_utils
-import actions_print_style
+import actions_model
# Import the metrics/common module for pretty print xml.
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
@@ -760,7 +760,7 @@ def PrettyPrint(actions_dict, comment_nodes, suffixes):
for suffix_tag in suffixes:
actions_element.appendChild(suffix_tag)
- return actions_print_style.GetPrintStyle().PrettyPrintXml(doc)
+ return actions_model.PrettifyTree(doc)
def UpdateXml(original_xml):
@@ -770,12 +770,7 @@ def UpdateXml(original_xml):
AddComputedActions(actions)
AddWebUIActions(actions)
AddDevToolsActions(actions)
-
AddLiteralActions(actions)
-
- # print("Scanned {0} number of files".format(number_of_files_total))
- # print("Found {0} entries".format(len(actions)))
-
AddAutomaticResetBannerActions(actions)
AddBookmarkManagerActions(actions)
AddChromeOSActions(actions)
diff --git a/chromium/tools/metrics/common/models.py b/chromium/tools/metrics/common/models.py
index 56d84c5d1a2..625bbe2ff1c 100644
--- a/chromium/tools/metrics/common/models.py
+++ b/chromium/tools/metrics/common/models.py
@@ -14,14 +14,15 @@ those files, or convert content back into a canonicalized version of the file.
import abc
import re
+import xml.etree.ElementTree as ET
from xml.dom import minidom
-
import pretty_print_xml
-# A non-basic type key for storing comments, so they don't conflict with
-# regular keys, and can be skipped in JSON serialization.
-COMMENT_KEY = ('comment',)
+# Non-basic type keys for storing comments and text attributes, so they don't
+# conflict with regular keys, and can be skipped in JSON serialization.
+COMMENT_KEY = ('comment')
+TEXT_KEY = ('text')
def GetCommentsForNode(node):
@@ -149,6 +150,14 @@ class NodeType(object):
"""
return []
+ def GetRequiredAttributes(self):
+ """Gets a list of required attributes that this node has.
+
+ Returns:
+ A list of names of required attributes of the node.
+ """
+ return []
+
def GetNodeTypes(self):
"""Gets a map of tags to node types for all dependent types.
@@ -178,28 +187,46 @@ class TextNodeType(NodeType):
node: The XML node to extract data from.
Returns:
- The string content of the node.
+ The object representation of the node.
"""
+
+ obj = {}
+ obj[COMMENT_KEY] = GetCommentsForNode(node)
+
if not node.firstChild:
- return ''
+ return obj
text = node.firstChild.nodeValue
- return '\n\n'.join(pretty_print_xml.SplitParagraphs(text))
+ obj[TEXT_KEY] = '\n\n'.join(pretty_print_xml.SplitParagraphs(text))
+
+ return obj
def Marshall(self, doc, obj):
"""Converts an object into an XML node of this type.
Args:
- doc: A document create an XML node in.
- obj: A string to be encoded into the XML.
+ doc: A document to create an XML node in.
+ obj: An object to be encoded into the XML.
Returns:
An XML node encoding the object.
"""
node = doc.createElement(self.tag)
- if obj:
- node.appendChild(doc.createTextNode(obj))
+ text = obj.get(TEXT_KEY)
+ if text:
+ node.appendChild(doc.createTextNode(text))
return node
+ def GetComments(self, obj):
+ """Gets comments for the object being encoded.
+
+ Args:
+ obj: The object to be encoded into the XML.
+
+ Returns:
+ A list of comment nodes for the object.
+ """
+ return obj[COMMENT_KEY]
+
class ChildType(object):
"""Metadata about a node type's children.
@@ -234,13 +261,16 @@ class ObjectNodeType(NodeType):
ValueError: Attributes contains duplicate definitions.
"""
- def __init__(self, tag,
+ def __init__(self,
+ tag,
attributes=None,
+ required_attributes=None,
children=None,
text_attribute=None,
**kwargs):
NodeType.__init__(self, tag, **kwargs)
self.attributes = attributes or []
+ self.required_attributes = required_attributes or []
self.children = children or []
self.text_attribute = text_attribute
if len(self.attributes) != len(set(a for a, _, _ in self.attributes)):
@@ -262,7 +292,6 @@ class ObjectNodeType(NodeType):
ValueError: The node is missing required children.
"""
obj = {}
-
obj[COMMENT_KEY] = GetCommentsForNode(node)
for attr, attr_type, attr_re in self.attributes:
@@ -274,8 +303,19 @@ class ObjectNodeType(NodeType):
raise ValueError('%s "%s" does not match regex "%s"' %
(attr, attr_val, attr_re))
- if self.text_attribute and node.firstChild:
- obj[self.text_attribute] = node.firstChild.nodeValue
+ # We need to iterate through all the children and get their nodeValue,
+ # to account for the cases where other children node precedes the text
+ # attribute.
+ obj[self.text_attribute] = ''
+ child = node.firstChild
+ while child:
+ obj[self.text_attribute] += (child.nodeValue.strip()
+ if child.nodeValue else '')
+ child = child.nextSibling
+
+ # This prevents setting a None key with empty string value
+ if obj[self.text_attribute] == '':
+ del obj[self.text_attribute]
for child in self.children:
nodes = GetChildrenByTag(node, child.node_type.tag)
@@ -284,6 +324,7 @@ class ObjectNodeType(NodeType):
child.node_type.Unmarshall(n) for n in nodes]
elif nodes:
obj[child.attr] = child.node_type.Unmarshall(nodes[0])
+
return obj
def Marshall(self, doc, obj):
@@ -331,6 +372,15 @@ class ObjectNodeType(NodeType):
"""
return [attr for attr, _, _ in self.attributes]
+ def GetRequiredAttributes(self):
+ """Gets a list of required attributes that this node has.
+
+ Returns:
+ A list of names of required attributes, or an empty list if there is no
+ required attribute.
+ """
+ return self.required_attributes or []
+
def GetNodeTypes(self):
"""Get a map of tags to node types for all dependent types.
@@ -354,20 +404,40 @@ class DocumentType(object):
def __init__(self, root_type):
self.root_type = root_type
- def Parse(self, input_file):
- """Parses the data out of an XML file's contents.
+ def _ParseMinidom(self, minidom_doc):
+ """Parses the input minidom document
Args:
- input_file: The content of an XML file, as a string.
+ minidom_doc: The input minidom document
Returns:
An object representing the unmarshalled content of the document's root
node.
"""
- tree = minidom.parseString(input_file)
- root = tree.getElementsByTagName(self.root_type.tag)[0]
+ root = minidom_doc.getElementsByTagName(self.root_type.tag)[0]
return self.root_type.Unmarshall(root)
+ def Parse(self, input_file):
+ """Parses the input file, which can be minidom, ET or xml string.
+
+ The flexibility of input is to accommodate the currently different
+ representations of ukm, enums, histograms and actions in their
+ respective pretty_print.py.
+
+ Args:
+ input_file: The input file can be given in the form of minidom, ET
+ or xml string.
+
+ Returns:
+ An object representing the unmarshalled content of the document's root
+ node.
+ """
+ if not isinstance(input_file, minidom.Document):
+ if isinstance(input_file, ET.Element):
+ input_file = ET.tostring(input_file, encoding='utf-8', method='xml')
+ input_file = minidom.parseString(input_file)
+ return self._ParseMinidom(input_file)
+
def GetPrintStyle(self):
"""Gets an XmlStyle object for pretty printing a document of this type.
@@ -376,14 +446,22 @@ class DocumentType(object):
"""
types = self.root_type.GetNodeTypes()
return pretty_print_xml.XmlStyle(
- attribute_order={t: types[t].GetAttributes() for t in types},
- required_attributes=[],
- tags_that_have_extra_newline={t: types[t].extra_newlines for t in types
- if types[t].extra_newlines},
+ attribute_order={t: types[t].GetAttributes()
+ for t in types},
+ required_attributes={
+ t: types[t].GetRequiredAttributes()
+ for t in types
+ },
+ tags_that_have_extra_newline={
+ t: types[t].extra_newlines
+ for t in types if types[t].extra_newlines
+ },
tags_that_dont_indent=[t for t in types if not types[t].indent],
tags_that_allow_single_line=[t for t in types if types[t].single_line],
- tags_alphabetization_rules={t: types[t].alphabetization for t in types
- if types[t].alphabetization})
+ tags_alphabetization_rules={
+ t: types[t].alphabetization
+ for t in types if types[t].alphabetization
+ })
def _ToXML(self, obj):
"""Converts an object into an XML document.
diff --git a/chromium/tools/metrics/common/pretty_print_xml.py b/chromium/tools/metrics/common/pretty_print_xml.py
index 15ab216d0a7..15b1e5ee0bd 100644
--- a/chromium/tools/metrics/common/pretty_print_xml.py
+++ b/chromium/tools/metrics/common/pretty_print_xml.py
@@ -200,10 +200,10 @@ class XmlStyle(object):
closing_chars = 1
attributes = node.keys()
- required_attributes = [attribute for attribute in self.required_attributes
- if attribute in self.attribute_order[node.tag]]
- missing_attributes = [attribute for attribute in required_attributes
- if attribute not in attributes]
+ missing_attributes = [
+ attribute for attribute in self.required_attributes[node.tag]
+ if attribute not in attributes
+ ]
for attribute in missing_attributes:
logging.error(
diff --git a/chromium/tools/metrics/histograms/OWNERS b/chromium/tools/metrics/histograms/OWNERS
index dd81623be7c..e5347597dc9 100644
--- a/chromium/tools/metrics/histograms/OWNERS
+++ b/chromium/tools/metrics/histograms/OWNERS
@@ -6,6 +6,10 @@
# helps our team to load-balance incoming reviews. Googlers can read more about
# this at go/gwsq-gerrit.
per-file histograms.xml=file://base/metrics/OWNERS
+# Extending enums by adding new buckets is allowed without OWNERS review, but
+# you should add a metrics reviewer if you are changing the semantics of existing
+# buckets.
+per-file enums.xml=*
# Use the following owners only if:
# - You work in the same area as them.
@@ -21,9 +25,4 @@ per-file histograms.xml=tby@chromium.org # For chrome knowledge team metrics onl
per-file histograms.xml=chrome-metrics-team+robot@google.com # For bot updates to expiry.
per-file histograms.xml=set noparent
-# Extending enums by adding new buckets is allowed without OWNERS review, but
-# you should add a metrics team OWNER if you are changing the semantics of
-# existing buckets.
-per-file enums.xml=*
-
# COMPONENT: Internals>Metrics
diff --git a/chromium/tools/metrics/histograms/README.md b/chromium/tools/metrics/histograms/README.md
index c0ef689dbc7..b5a7185068c 100644
--- a/chromium/tools/metrics/histograms/README.md
+++ b/chromium/tools/metrics/histograms/README.md
@@ -535,6 +535,10 @@ coming in. It's also useful to keep obsolete histogram descriptions in
histogram to answer a particular question, they can learn if there was a
histogram at some point that did so even if it isn't active now.
+*Exception:* It is ok to delete the metadata for any histogram that has never
+been recorded to. For example, it's fine to correct a typo where the histogram
+name in the metadata does not match the name in the Chromium source code.
+
### Histogram Suffixes
It is sometimes useful to record several closely related metrics, which measure
diff --git a/chromium/tools/metrics/histograms/enums.xml b/chromium/tools/metrics/histograms/enums.xml
index c394f02fb8d..af4de7f4f23 100644
--- a/chromium/tools/metrics/histograms/enums.xml
+++ b/chromium/tools/metrics/histograms/enums.xml
@@ -897,6 +897,7 @@ Unknown properties are collapsed to zero. -->
<int value="4" label="'Manage all addresses' link"/>
<int value="5" label="Manual password generation"/>
<int value="6" label="Save passwords toggle"/>
+ <int value="7" label="'Show other passwords' link"/>
</enum>
<enum name="AccessoryBarContents">
@@ -1307,6 +1308,20 @@ Unknown properties are collapsed to zero. -->
<int value="4" label="Not QUIC, destination different from origin"/>
</enum>
+<enum name="AmbientModePhotoSource">
+ <int value="0" label="Default"/>
+ <int value="1" label="Art Gallery"/>
+ <int value="2" label="Google Photos Recent Highlights Only"/>
+ <int value="3" label="Google Photos Personal Albums Only"/>
+ <int value="4" label="Google Photos Recent Highlights plus Personal Album"/>
+ <int value="5" label="Google Photos No Albums"/>
+</enum>
+
+<enum name="AmbientUiMode">
+ <int value="0" label="Lock Screen"/>
+ <int value="1" label="In Session Idle"/>
+</enum>
+
<enum name="Android.ChildProcessBindingStateCombination">
<int value="0" label="No waived no moderate no strong"/>
<int value="1" label="No waived no moderate has strong"/>
@@ -1854,6 +1869,7 @@ Unknown properties are collapsed to zero. -->
<int value="16" label="All renderer allocation failure"/>
<int value="17" label="Utility process foreground OOM"/>
<int value="18" label="All utility process crashes"/>
+ <int value="19" label="Renderer shutdown from RenderProcessHost::Shutdown"/>
</enum>
<enum name="AndroidProcessedMinidumps">
@@ -2181,7 +2197,7 @@ Unknown properties are collapsed to zero. -->
<int value="25" label="SET_PROXY_OVERRIDE">
ProxyController#setProxyOverride(Executor,Runnable)
</int>
- <int value="26" label="SET_SAFE_BROWSING_WHITELIST">
+ <int value="26" label="SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME">
WebViewCompat#setSafeBrowsingWhitelist(List(String),ValueCallback(Boolean))
</int>
<int value="27" label="SET_SERVICE_WORKER_CLIENT">
@@ -2257,6 +2273,15 @@ Unknown properties are collapsed to zero. -->
<int value="51" label="WEBVIEW_RENDERER_TERMINATE">
WebViewRenderProcess#terminate()
</int>
+ <int value="52" label="ADD_DOCUMENT_START_SCRIPT">
+ WebViewCompat#addDocumentStartJavaScript(String,String[])
+ </int>
+ <int value="53" label="REMOVE_DOCUMENT_START_SCRIPT">
+ ScriptReference#remove()
+ </int>
+ <int value="54" label="SET_SAFE_BROWSING_ALLOWLIST">
+ WebViewCompat#setSafeBrowsingAllowlist(Set(String),ValueCallback(Boolean))
+ </int>
</enum>
<enum name="ANGLEProgramCacheResult">
@@ -2308,6 +2333,7 @@ Unknown properties are collapsed to zero. -->
<int value="5" label="NOT_SENT_FAILED_TO_SERIALIZE"/>
<int value="6" label="NOT_SENT_FEATURE_NOT_ENABLED"/>
<int value="7" label="SENT"/>
+ <int value="8" label="NOT_SENT_UNCONSENTED"/>
</enum>
<enum name="AppBannersBeforeInstallEvent">
@@ -2386,6 +2412,11 @@ Unknown properties are collapsed to zero. -->
<int value="34" label="App install dialog shown"/>
<int value="35" label="Cannot check service worker for null start URL"/>
<int value="36" label="prefer_related_applications set to true"/>
+ <int value="37"
+ label="prefer_related_applications is only supported on Chrome Beta
+ &amp; Stable on Android"/>
+ <int value="38" label="Manifest URL was changed during fetch"/>
+ <int value="39" label="Manifest display_override value not supported"/>
</enum>
<enum name="AppBannersInstallEvent">
@@ -2841,6 +2872,7 @@ Unknown properties are collapsed to zero. -->
<int value="32" label="OS Settings"/>
<int value="33" label="Plugin VM App"/>
<int value="34" label="LaCrOS"/>
+ <int value="35" label="Remote App"/>
</enum>
<enum name="AppListSearchResultDisplayType">
@@ -2887,6 +2919,7 @@ Unknown properties are collapsed to zero. -->
<int value="0" label="Impression"/>
<int value="1" label="Launch"/>
<int value="2" label="Abandon"/>
+ <int value="3" label="Ignore"/>
</enum>
<enum name="AppListUserEventError">
@@ -3233,6 +3266,46 @@ Unknown properties are collapsed to zero. -->
<int value="9" label="Timeout"/>
</enum>
+<!-- These values must be in sync with ProvisionConstants in CloudDPC code -->
+
+<enum name="ArcProvisioningCloudFlowError">
+ <summary>Defines Arc Cloud DPC Provisioning failure reasons</summary>
+ <int value="0" label="Unknown or uncommon error"/>
+ <int value="1" label="Enrollment token provided was invalid"/>
+ <int value="2" label="Enterprise hit device quota"/>
+ <int value="3"
+ label="CloudDPS could not fulfill request because of a transient error"/>
+ <int value="4" label="Account could not be added"/>
+ <int value="5" label="Could not get Android ID"/>
+ <int value="6" label="Device got stuck in quarantine mode"/>
+ <int value="7" label="Setup step timed out"/>
+ <int value="8"
+ label="There was no network, so device couldn't fulfill a request"/>
+ <int value="9" label="Enterprise is not registered with CloudDPx"/>
+ <int value="10" label="User cancelled the step"/>
+ <int value="11"
+ label="Either account migration failed or account was deleted by user
+ during provisioning"/>
+ <int value="12" label="Policy got stuck in invalid state"/>
+ <int value="13" label="Issues with DpcSupport"/>
+ <int value="14" label="Account wad not ready"/>
+ <int value="15" label="Checkin failed"/>
+ <int value="16" label="Issues with whitelisting work account"/>
+ <int value="17" label="Error parsing JSON, most likely policy JSON"/>
+ <int value="18" label="ManagedProvisioning failed"/>
+ <int value="19" label="Setup intent could not be parsed"/>
+ <int value="20" label="CloudDPS exception with an uncommon server code"/>
+ <int value="21"
+ label="Removing a previously existing unmanaged account failed"/>
+ <int value="22" label="Error with getting OAuth token"/>
+ <int value="23" label="AccountException with no exception details"/>
+ <int value="24"
+ label="Error with getting OAuth token due to AuthenticatorException"/>
+ <int value="25" label="Error with getting OAuth token due to IOException"/>
+ <int value="26"
+ label="Error with getting OAuth token due to OperationCanceledException"/>
+</enum>
+
<enum name="ArcProvisioningResult">
<summary>Defines Arc Provisioning success and failure reasons</summary>
<int value="0" label="Success"/>
@@ -3243,7 +3316,7 @@ Unknown properties are collapsed to zero. -->
<int value="5" label="GMS check-in was failed"/>
<int value="6" label="Cloud provision flow failed"/>
<int value="7" label="Mojo version mistmached"/>
- <int value="8" label="Mojo call timeout"/>
+ <int value="8" label="Provisioning timeout"/>
<int value="9" label="GMS check-in was timed out"/>
<int value="10" label="GMS check-in reported internal error"/>
<int value="11" label="GMS core sign in procedure was failed"/>
@@ -3253,11 +3326,13 @@ Unknown properties are collapsed to zero. -->
<int value="15" label="Cloud provision flow reporeted internal error"/>
<int value="16" label="ARC instance is stopped before complete provisioning"/>
<int value="17" label="Overall sign in timeout"/>
+ <int value="18" label="Chrome server communication error"/>
<int value="19" label="Network is unavailable"/>
<int value="20" label="Disabled"/>
<int value="21" label="Already provisioned"/>
<int value="22" label="Unsupported account type"/>
<int value="23" label="Account is not present in Chrome"/>
+ <int value="24" label="Cloud provision flow failed"/>
</enum>
<enum name="ArcSdkVersionUpgradeType">
@@ -3341,6 +3416,7 @@ Unknown properties are collapsed to zero. -->
<int value="18" label="App started from Kiosk Next Home"/>
<int value="19" label="Interaction with gamepad"/>
<int value="20" label="App started from URL in the Omnibox"/>
+ <int value="21" label="App started from sharesheet"/>
</enum>
<enum name="ArcVideoDecodeAcceleratorResult">
@@ -3447,6 +3523,23 @@ Unknown properties are collapsed to zero. -->
<int value="8" label="Bottom right"/>
</enum>
+<enum name="AssistantBetterOnboardingMode">
+ <int value="0" label="kDefault"/>
+ <int value="1" label="kEdu"/>
+</enum>
+
+<enum name="AssistantBetterOnboardingType">
+ <int value="0" label="kUnspecified"/>
+ <int value="1" label="kMath"/>
+ <int value="2" label="kKnowledgeEdu"/>
+ <int value="3" label="kConversion"/>
+ <int value="4" label="kKnowledge"/>
+ <int value="5" label="kProductivity"/>
+ <int value="6" label="kPersonality"/>
+ <int value="7" label="kLanguage"/>
+ <int value="8" label="kTechnical"/>
+</enum>
+
<enum name="AssistantButtonId">
<int value="1" label="kBackDeprecated"/>
<int value="2" label="kCloseDeprecated"/>
@@ -3494,6 +3587,14 @@ Unknown properties are collapsed to zero. -->
<int value="2" label="Closed shape"/>
</enum>
+<enum name="AssistantInteractionResolution">
+ <int value="0" label="kNormal"/>
+ <int value="1" label="kInterruption"/>
+ <int value="2" label="kError"/>
+ <int value="3" label="kMicTimeout"/>
+ <int value="4" label="kMultiDeviceHotwordLoss"/>
+</enum>
+
<enum name="AssistantOptInFlowStatus">
<int value="0" label="FLOW_STARTED"/>
<int value="1" label="ACTIVITY_CONTROL_SHOWN"/>
@@ -4248,7 +4349,8 @@ Unknown properties are collapsed to zero. -->
<int value="21" label="User navigation to a different domain in BROWSE mode"/>
<int value="22" label="User clicked back button"/>
<int value="23" label="User clicked back button during onboarding"/>
- <int value="24" label="User navigatioin in RUNNING state"/>
+ <int value="24" label="User navigation in RUNNING state"/>
+ <int value="25" label="The UI was closed unexpectedly"/>
</enum>
<enum name="AutofillAssistantFeatureModuleInstallation">
@@ -4258,6 +4360,37 @@ Unknown properties are collapsed to zero. -->
<int value="3" label="Already installed"/>
</enum>
+<enum name="AutofillAssistantLiteScriptFinished">
+ <int value="0" label="Unknown failure"/>
+ <int value="1" label="Service deleted"/>
+ <int value="2" label="Script path mismatch"/>
+ <int value="3" label="GetActions failed"/>
+ <int value="4" label="Proto parse error"/>
+ <int value="5" label="Script contained unsafe actions"/>
+ <int value="6" label="Invalid script"/>
+ <int value="7" label="Navigation to external domain while in BROWSE"/>
+ <int value="8" label="Unknown failure in BROWSE"/>
+ <int value="9" label="Navigation to external domain while in PROMPT"/>
+ <int value="10" label="PROMPT condition no longer true"/>
+ <int value="11" label="User explicitly canceled the PROMPT"/>
+ <int value="12" label="Unknown failure in PROMPT"/>
+ <int value="13" label="User explicitly accepted the PROMPT"/>
+</enum>
+
+<enum name="AutofillAssistantLiteScriptOnboarding">
+ <int value="0" label="Seen and accepted"/>
+ <int value="1" label="Seen and rejected"/>
+ <int value="2" label="Already accepted"/>
+</enum>
+
+<enum name="AutofillAssistantLiteScriptStarted">
+ <int value="0" label="DFM unavailable"/>
+ <int value="1" label="Canceled &gt;= 2 times"/>
+ <int value="2" label="Onboarding rejected"/>
+ <int value="3" label="Success, first time user"/>
+ <int value="4" label="Success, returning user"/>
+</enum>
+
<enum name="AutofillAssistantOnBoarding">
<int value="0" label="Shown"/>
<int value="1" label="Not shown (returning user)"/>
@@ -5617,6 +5750,14 @@ Unknown properties are collapsed to zero. -->
<int value="5" label="Overlay Insecure Non-player-element Fullscreen"/>
</enum>
+<enum name="BackForwardCacheActionAfterPagehide">
+ <int value="0" label="Navigation"/>
+ <int value="1" label="Ssent postMessage"/>
+ <int value="2" label="Received postMessage"/>
+ <int value="3" label="Modified localStorage"/>
+ <int value="4" label="Modified sessionStorage"/>
+</enum>
+
<enum name="BackForwardCacheBrowsingInstanceNotSwappedReason">
<int value="0" label="Swapped"/>
<int value="1" label="Proactive swap disabled"/>
@@ -5625,11 +5766,19 @@ Unknown properties are collapsed to zero. -->
<int value="4" label="Does not have a site"/>
<int value="5" label="Source URL scheme is not HTTP(S)"/>
<int value="6" label="Destination URL scheme is not HTTP(S)"/>
- <int value="7" label="Same site navigation"/>
+ <int value="7"
+ label="Same site navigation, same-site proactive swap disabled"/>
<int value="8" label="Error page"/>
<int value="9" label="Already has matching browsing instance"/>
<int value="10" label="Renderer debug URL"/>
<int value="11" label="Not enabled and not needed for back-forward cache"/>
+ <int value="14" label="Same-document navigation"/>
+ <int value="15" label="Same-page navigation"/>
+ <int value="16" label="The current history entry will get replaced"/>
+ <int value="17" label="Reload"/>
+ <int value="18" label="Guest"/>
+ <int value="19" label="The frame has not comitted any navigations yet"/>
+ <int value="20" label="Same-site navigation on page that has unload handler"/>
</enum>
<enum name="BackForwardCacheDisabledForRenderFrameHostReason">
@@ -5658,6 +5807,31 @@ Unknown properties are collapsed to zero. -->
label="password_manager::ContentPasswordManagerDriver"/>
</enum>
+<enum name="BackForwardCacheDisabledForRenderFrameHostReasonShort">
+ <int value="4520" label="PopupBlockerTabHelper"/>
+ <int value="8169" label="SafeBrowsingTriggeredPopupBlocker"/>
+ <int value="12795" label="banners::AppBannerManager"/>
+ <int value="14149" label="OfflinePage"/>
+ <int value="15533" label="WebAuthenticationAPI"/>
+ <int value="17667" label="PermissionServiceContext"/>
+ <int value="25206" label="Serial"/>
+ <int value="26854" label="OomInterventionTabHelper"/>
+ <int value="29532" label="MediaSessionImpl::OnServiceCreated"/>
+ <int value="30041" label="NativeFileSystem"/>
+ <int value="31177" label="safe_browsing::ThreatDetails"/>
+ <int value="31230" label="autofill::ContentAutofillDriver"/>
+ <int value="36734" label="RenderFrameDevToolsAgentHost"/>
+ <int value="36798" label="WebBluetooth"/>
+ <int value="37928" label="content::protocol::SecurityHandler"/>
+ <int value="41719"
+ label="ChromePasswordManagerClient::BindCredentialManager"/>
+ <int value="44443" label="PermissionRequestManager"/>
+ <int value="49166" label="password_manager::ContentPasswordManagerDriver"/>
+ <int value="51814" label="MixedContentSettingsTabHelper"/>
+ <int value="55334" label="WebUSB"/>
+ <int value="58230" label="MediaWebContentsObserver::OnMediaPlaying"/>
+</enum>
+
<enum name="BackForwardCacheEvictedAfterDocumentRestoredReason">
<int value="0" label="Restored"/>
<int value="1" label="By JavaScript"/>
@@ -5702,6 +5876,15 @@ Unknown properties are collapsed to zero. -->
<int value="30" label="ServiceWorker claim"/>
<int value="31"
label="IsInactiveAndDisallowReactivation() was called when in bfcache"/>
+ <int value="32" label="RenderFrameHost has inner WebContents attached"/>
+ <int value="33"
+ label="Timed out while waiting for page to acknowledge freezing"/>
+ <int value="34"
+ label="BackForwardCache is disabled due to low memory of the device"/>
+ <int value="35"
+ label="BackForwardCache is disabled through command line (may include
+ cases where the embedder disabled it due to, e.g., enterprise
+ policy)"/>
</enum>
<enum name="BackForwardCacheReloadsAfterHistoryNavigation">
@@ -5889,6 +6072,8 @@ Unknown properties are collapsed to zero. -->
<int value="11" label="Trace upload succeeded"/>
<int value="12" label="Startup scenario triggered"/>
<int value="13" label="Large upload waiting to retry"/>
+ <int value="14" label="System scenario triggered"/>
+ <int value="15" label="Reached code scenario triggered"/>
</enum>
<enum name="BackingStoreResults">
@@ -5899,7 +6084,8 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BadMessageReasonChrome">
-<!-- Generated from chrome/browser/bad_message.h.-->
+<!-- Generated from chrome/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="0" label="WRLHH_LOGGING_STOPPED_BAD_STATE"/>
<int value="1" label="PPH_EXTRA_PREVIEW_MESSAGE"/>
@@ -5908,7 +6094,8 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BadMessageReasonContent">
-<!-- Generated from content/browser/bad_message.h.-->
+<!-- Generated from content/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="0" label="NC_IN_PAGE_NAVIGATION"/>
<int value="1" label="RFH_CAN_COMMIT_URL_BLOCKED"/>
@@ -6153,11 +6340,17 @@ Unknown properties are collapsed to zero. -->
<int value="226" label="RFMF_INVALID_PLUGIN_EMBEDDER_ORIGIN"/>
<int value="227" label="RFH_INVALID_CALL_FROM_NOT_MAIN_FRAME"/>
<int value="228" label="INPUT_ROUTER_INVALID_EVENT_SOURCE"/>
+ <int value="229" label="RFH_INACTIVE_CHECK_FROM_SPECULATIVE_RFH"/>
+ <int value="230" label="RFH_SUBFRAME_CAPTURE_ON_MAIN_FRAME"/>
+ <int value="231" label="RFH_CSP_ATTRIBUTE"/>
+ <int value="232" label="RFH_RECEIVED_ASSOCIATED_MESSAGE_WHILE_BFCACHED"/>
<int value="233" label="RWH_CLOSE_PORTAL"/>
+ <int value="234" label="MSDH_INVALID_STREAM_TYPE"/>
</enum>
<enum name="BadMessageReasonExtensions">
-<!-- Generated from extensions/browser/bad_message.h.-->
+<!-- Generated from extensions/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="0" label="EOG_BAD_ORIGIN"/>
<int value="1" label="EVG_BAD_ORIGIN"/>
@@ -6176,7 +6369,8 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BadMessageReasonGuestView">
-<!-- Generated from components/guest_view/browser/bad_message.h.-->
+<!-- Generated from components/guest_view/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="0" label="GVM_EMBEDDER_FORBIDDEN_ACCESS_TO_GUEST"/>
<int value="1" label="GVM_INVALID_GUESTVIEW_TYPE"/>
@@ -6184,7 +6378,8 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BadMessageReasonNaCl">
-<!-- Generated from components/nacl/browser/bad_message.h.-->
+<!-- Generated from components/nacl/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="0" label="NFH_OPEN_EXECUTABLE_BAD_ROUTING_ID"/>
<int value="1" label="NHMF_LAUNCH_CONTINUATION_BAD_ROUTING_ID"/>
@@ -6192,7 +6387,8 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BadMessageReasonPasswordManager">
-<!-- Generated from components/password_manager/content/browser/bad_message.h.-->
+<!-- Generated from components/password_manager/content/browser/bad_message.h.
+Called by update_bad_message_reasons.py.-->
<int value="1" label="CPMD_BAD_ORIGIN_FORMS_PARSED"/>
<int value="2" label="CPMD_BAD_ORIGIN_FORMS_RENDERED"/>
@@ -6430,13 +6626,13 @@ Unknown properties are collapsed to zero. -->
</enum>
<enum name="BluetoothSocketServiceHash">
+ <obsolete>
+ No longer used by active histograms in M73.
+ </obsolete>
<summary>
31-bit hash of the service UUID. Values here are populated from
https://www.bluetooth.com/specifications/assigned-numbers/service-discovery
</summary>
- <obsolete>
- No longer used by active histograms in M73.
- </obsolete>
<int value="27577045"
label="SIM_Access; 0000112d-0000-1000-8000-00805f9b34fb"/>
<int value="46048502"
@@ -7342,6 +7538,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="User edited the generated password"/>
</enum>
+<enum name="BooleanGreaterOrEqualThan200MB">
+ <int value="0" label="lt; 200MB"/>
+ <int value="1" label="gt;= 200MB"/>
+</enum>
+
<enum name="BooleanHadAddress">
<int value="0" label="Did not have address."/>
<int value="1" label="Had address."/>
@@ -7530,6 +7731,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Invalid"/>
</enum>
+<enum name="BooleanIsAdaptiveIcon">
+ <int value="0" label="Non adaptive icon"/>
+ <int value="1" label="Adaptive icon"/>
+</enum>
+
<enum name="BooleanIsGenerationTriggeredManually">
<int value="0" label="Password generation was triggered automatically"/>
<int value="1" label="A user triggered password generation"/>
@@ -7658,6 +7864,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Using native notifications"/>
</enum>
+<enum name="BooleanNavigated">
+ <int value="0" label="Navigation did not occur"/>
+ <int value="1" label="Navigation occurred"/>
+</enum>
+
<enum name="BooleanNavPreloadFinishedFirst">
<int value="0" label="Worker preparation finished first"/>
<int value="1" label="Navigation preload response arrived first"/>
@@ -7836,6 +8047,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Present"/>
</enum>
+<enum name="BooleanPreviouslyShown">
+ <int value="0" label="Never shown"/>
+ <int value="1" label="Previously shown"/>
+</enum>
+
<enum name="BooleanPreviouslyVisited">
<int value="0" label="Was not visited before"/>
<int value="1" label="Was visited before"/>
@@ -8189,6 +8405,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="WebAPK notification permission enabled"/>
</enum>
+<enum name="BooleanWillReadFrequently">
+ <int value="0" label="Not initialized to be read frequently"/>
+ <int value="1" label="Initialized to be read frequently"/>
+</enum>
+
<enum name="BooleanWiped">
<int value="0" label="Re-enabled"/>
<int value="1" label="Wiped out"/>
@@ -8586,6 +8807,11 @@ Unknown properties are collapsed to zero. -->
<int value="7" label="Running on low-end device"/>
</enum>
+<enum name="CanvasGPUFallbackToCPUScenario">
+ <int value="0" label="Large pattern drawn onto a GPU canvas"/>
+ <int value="1" label="Slow getImageData on GPU canvases"/>
+</enum>
+
<enum name="CanvasHibernationEvent">
<int value="0" label="Scheduled"/>
<int value="1"
@@ -8886,6 +9112,12 @@ histogram as enum -->
<int value="9" label="Ignored Locally Trusted Leaf Cert"/>
</enum>
+<enum name="ChangePasswordUrlFetchResult">
+ <int value="0" label="Fetch succeeded"/>
+ <int value="1" label="Fetch failed"/>
+ <int value="2" label="Response is malformed"/>
+</enum>
+
<enum name="ChannelLayout">
<int value="0" label="CHANNEL_LAYOUT_NONE"/>
<int value="1" label="CHANNEL_LAYOUT_UNSUPPORTED"/>
@@ -9027,6 +9259,7 @@ histogram as enum -->
</enum>
<enum name="ChromeColorsInfo">
+ <int value="-1" label="Default"/>
<int value="0" label="Other"/>
<int value="1" label="Warm grey"/>
<int value="2" label="Cool grey"/>
@@ -9352,6 +9585,12 @@ histogram as enum -->
<int value="11" label="salesforce"/>
</enum>
+<enum name="ChromeOSSharesheetAction">
+ <summary>Defines Chrome OS sharesheet actions.</summary>
+ <int value="0" label="Cancelled by user"/>
+ <int value="1" label="Launch ARC app"/>
+</enum>
+
<enum name="ChromeOSUICommands">
<!-- Please put in checks to ensure Command IDs are stable before adding them to this enum. -->
@@ -9468,6 +9707,8 @@ histogram as enum -->
<int value="40" label="ZoomIn"/>
<int value="41" label="ZoomOutFirst"/>
<int value="42" label="ZoomOut"/>
+ <int value="43" label="ZoomCustomFirst"/>
+ <int value="44" label="ZoomCustom"/>
</enum>
<enum name="ChromePDFViewerAnnotationType">
@@ -11538,6 +11779,8 @@ Called by update_net_error_codes.py.-->
<int value="67" label="Storage Access Grants"/>
<int value="68" label="Camera pan tilt zoom"/>
<int value="69" label="Window placement"/>
+ <int value="70" label="Insecure private network requests"/>
+ <int value="71" label="Font Access"/>
</enum>
<enum name="ContentTypeParseableResult">
@@ -12210,6 +12453,7 @@ Called by update_net_error_codes.py.-->
<int value="1" label="Lax mode"/>
<int value="2" label="Strict mode"/>
<int value="3" label="Lax mode allow unsafe"/>
+ <int value="4" label="Undefined"/>
</enum>
<enum name="CookieLoadProblem">
@@ -12375,8 +12619,8 @@ Called by update_net_error_codes.py.-->
<enum name="CorbResultVsInitiatorLockCompatibility">
<summary>
Whether CORB blocking might have been caused by treating |request_initiator|
- as opaque when |request_initiator_site_lock| is incompatible (as may be the
- case for HTML Imports).
+ as opaque when |request_initiator_origin_lock| is incompatible (as may be
+ the case for HTML Imports).
</summary>
<int value="0" label="NoBlocking"/>
<int value="1" label="BenignBlocking">
@@ -12384,7 +12628,7 @@ Called by update_net_error_codes.py.-->
</int>
<int value="2" label="BlockingWhenIncorrectLock">
CORB blocked a response after forcing |request_initiator| to be treated as
- opaque (because it was incompatible with |request_initiator_site_lock|).
+ opaque (because it was incompatible with |request_initiator_origin_lock|).
This case is most likely to be hit with HTML Imports.
</int>
<int value="3" label="BlockingWhenCompatibleLock"/>
@@ -12489,6 +12733,9 @@ Called by update_net_error_codes.py.-->
</enum>
<enum name="CorsCompletionStatus">
+ <obsolete>
+ Removed at 06/2019 with Net.Cors.CompletionStatus histogram.
+ </obsolete>
<summary>The completion status of CorsURLLoader request.</summary>
<int value="0"
label="A request finished successfully when CORS flag was not set"/>
@@ -13271,6 +13518,27 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="6" label="UPDATE_IN_PROGRESS"/>
</enum>
+<enum name="CrosCrashSenderRemoveReason">
+<!-- TotalRemoval should be the total of other values -->
+
+ <int value="0" label="TotalRemoval"/>
+ <int value="1" label="NotOfficialImage"/>
+<!-- NoMetricsConsent is included only for completeness; if we don't have
+metrics consent we also won't be able to send UMA metrics. -->
+
+ <int value="2" label="NoMetricsConsent"/>
+ <int value="3" label="ProcessingFileExists"/>
+ <int value="4" label="LargeMetaFile"/>
+ <int value="5" label="UnparseableMetaFile"/>
+ <int value="6" label="PayloadUnspecified"/>
+ <int value="7" label="PayloadAbsolute"/>
+ <int value="8" label="PayloadNonexistent"/>
+ <int value="9" label="PayloadKindUnknown"/>
+ <int value="10" label="OSVersionTooOld"/>
+ <int value="11" label="OldIncompleteMeta"/>
+ <int value="12" label="FinishedUploading"/>
+</enum>
+
<enum name="CrosDictationToggleDictationMethod">
<int value="0" label="Search+D"/>
<int value="1" label="Click onscreen button"/>
@@ -13320,6 +13588,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="14" label="Unknown filesystem"/>
<int value="15" label="Unsupported filesystem"/>
<int value="16" label="Invalid archive"/>
+ <int value="17" label="Need password"/>
</enum>
<enum name="CrosDisksDeviceMediaType">
@@ -13397,6 +13666,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="214" label="Archive - Unknown filesystem"/>
<int value="215" label="Archive - Unsupported filesystem"/>
<int value="216" label="Archive - Invalid archive"/>
+ <int value="217" label="Archive - Need password"/>
<int value="300" label="Network - Success"/>
<int value="301" label="Network - Unknown"/>
<int value="302" label="Network - Internal"/>
@@ -13455,6 +13725,9 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="26" label="Crash.Chrome.MissedCrashes"/>
<int value="27" label="Crash.Collector.CollectionCount"/>
<int value="28" label="Cryptohome.DoubleMountRequest"/>
+ <int value="29" label="SessionManager.SafeModeEnabled"/>
+ <int value="30" label="Crash.Sender.FailedCrashRemoval"/>
+ <int value="31" label="Crash.Sender.AttemptedCrashRemoval"/>
</enum>
<enum name="CrosFirstRunTutorialCompletionType">
@@ -13662,11 +13935,23 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
</enum>
<enum name="CrostiniFailureClasses">
- <int value="0" label="Concierge stopped"/>
- <int value="1" label="Cicerone stopped"/>
- <int value="2" label="Seneschal stopped"/>
- <int value="3" label="Chunneld stopped"/>
- <int value="4" label="VM hypervisor stopped"/>
+ <int value="0" label="Concierge"/>
+ <int value="1" label="Cicerone"/>
+ <int value="2" label="Seneschal"/>
+ <int value="3" label="Chunneld"/>
+ <int value="4" label="VM hypervisor"/>
+ <int value="5" label="In-VM syslog daemon"/>
+ <int value="6" label="VM ssh daemon"/>
+ <int value="7" label="LXCFS daemon"/>
+ <int value="8" label="Tremplin"/>
+ <int value="9" label="Ndproxyd"/>
+ <int value="10" label="Mcastd"/>
+ <int value="11" label="Lxd"/>
+ <int value="12" label="Garcon"/>
+ <int value="13" label="Sommelier wayland proxy"/>
+ <int value="14" label="Sommelier X11 proxy"/>
+ <int value="15" label="Cros-Sftp"/>
+ <int value="16" label="Cros-Notificationd"/>
</enum>
<enum name="CrostiniImportContainerResult">
@@ -13850,6 +14135,13 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="2" label="UnsupportedIME"/>
</enum>
+<enum name="CrostiniUpgradeAvailableNotificationClosed">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="By User"/>
+ <int value="2" label="Upgrade Clicked"/>
+ <int value="3" label="Notification Body Clicked"/>
+</enum>
+
<enum name="CrostiniUpgradeDialogEvent">
<int value="0" label="Dialog Shown"/>
<int value="1" label="Upgrade Succeeded"/>
@@ -14108,6 +14400,19 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="15" label="Proximity periodic"/>
</enum>
+<enum name="CryptidRenderResult">
+ <int value="0" label="Success">
+ The asset was successfully fetched and rendered.
+ </int>
+ <int value="1" label="Failure">
+ Rendering was attempted but the asset could not be fetched.
+ </int>
+ <int value="2" label="Disabled">
+ Rendering was not attempted because the flag was disabled or the
+ probabilistic check failed.
+ </int>
+</enum>
+
<enum name="CryptohomeChecksumStatus">
<int value="0" label="Checksum OK"/>
<int value="1" label="Checksum does not exist"/>
@@ -15445,6 +15750,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="35" label="Slides"/>
<int value="36" label="Web Store"/>
<int value="37" label="YouTube"/>
+ <int value="38" label="YouTube Music"/>
</enum>
<enum name="DefaultBrowserAsyncAttemptResult">
@@ -15828,6 +16134,9 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="38" label="Settings opened via command menu"/>
<int value="39" label="Tab moved to drawer"/>
<int value="40" label="Tab moved to main panel"/>
+ <int value="41" label="Capture CSS Overview clicked"/>
+ <int value="42" label="Virtual authenticator environment enabled"/>
+ <int value="43" label="Source Order Overlay Activated"/>
</enum>
<enum name="DevToolsBackgroundService">
@@ -15839,12 +16148,79 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="7" label="Periodic Background Sync"/>
</enum>
+<enum name="DevToolsColorPickerFixedColor">
+ <int value="0" label="AA"/>
+ <int value="1" label="AAA"/>
+</enum>
+
<enum name="DevToolsDualScreenDeviceEmulated">
<int value="0" label="Dual-screen or fold device selected"/>
<int value="1" label="Dual-screen span mode selected"/>
<int value="2" label="Platform dual-screen support used"/>
</enum>
+<enum name="DevtoolsExperiments">
+ <int value="0" label="applyCustomStylesheet"/>
+ <int value="1" label="captureNodeCreationStacks"/>
+ <int value="2" label="sourcesPrettyPrint"/>
+ <int value="3" label="backgroundServices"/>
+ <int value="4" label="backgroundServicesNotifications"/>
+ <int value="5" label="backgroundServicesPaymentHandler"/>
+ <int value="6" label="backgroundServicesPushMessaging"/>
+ <int value="7" label="blackboxJSFramesOnTimeline"/>
+ <int value="8" label="cssOverview"/>
+ <int value="9" label="emptySourceMapAutoStepping"/>
+ <int value="10" label="inputEventsOnTimelineOverview"/>
+ <int value="11" label="liveHeapProfile"/>
+ <int value="12" label="nativeHeapProfiler"/>
+ <int value="13" label="protocolMonitor"/>
+ <int value="14" label="issuesPane"/>
+ <int value="15" label="developerResourcesView"/>
+ <int value="16" label="recordCoverageWithPerformanceTracing"/>
+ <int value="17" label="samplingHeapProfilerTimeline"/>
+ <int value="18" label="showOptionToNotTreatGlobalObjectsAsRoots"/>
+ <int value="19" label="sourceDiff"/>
+ <int value="20" label="sourceOrderViewer"/>
+ <int value="21" label="spotlight"/>
+ <int value="22" label="webauthnPane"/>
+ <int value="23" label="customKeyboardShortcuts"/>
+ <int value="24" label="timelineEventInitiators"/>
+ <int value="25" label="timelineFlowEvents"/>
+ <int value="26" label="timelineInvalidationTracking"/>
+ <int value="27" label="timelineShowAllEvents"/>
+ <int value="28" label="timelineV8RuntimeCallStats"/>
+ <int value="29" label="timelineWebGL"/>
+ <int value="30" label="timelineReplayEvent"/>
+ <int value="31" label="wasmDWARFDebugging"/>
+ <int value="32" label="dualScreenSupport"/>
+ <int value="33" label="cssGridFeatures"/>
+ <int value="34" label="movableTabs"/>
+</enum>
+
+<enum name="DevtoolsGridSettingChanged">
+ <int value="0" label="showGridBorder.none"/>
+ <int value="1" label="showGridBorder.dashed"/>
+ <int value="2" label="showGridBorder.solid"/>
+ <int value="3" label="showGridLines.none"/>
+ <int value="4" label="showGridLines.dashed"/>
+ <int value="5" label="showGridLines.solid"/>
+ <int value="6" label="showGridLines.extended-dashed"/>
+ <int value="7" label="showGridLines.extended-solid"/>
+ <int value="8" label="showGridLineNumbers.none"/>
+ <int value="9" label="showGridLineNumbers.positive"/>
+ <int value="10" label="showGridLineNumbers.negative"/>
+ <int value="11" label="showGridLineNumbers.both"/>
+ <int value="12" label="showGridGaps.none"/>
+ <int value="13" label="showGridGaps.row-gaps"/>
+ <int value="14" label="showGridGaps.column-gaps"/>
+ <int value="15" label="showGridGaps.both"/>
+ <int value="16" label="showGridAreas.false"/>
+ <int value="17" label="showGridAreas.true"/>
+ <int value="18" label="showGridLineNumbers.names"/>
+ <int value="19" label="showGridTrackSizes.false"/>
+ <int value="20" label="showGridTrackSizes.true"/>
+</enum>
+
<enum name="DevToolsIssuesPanelOpenedFrom">
<int value="0" label="Console Info Bar"/>
<int value="1" label="Learn More Link COEP"/>
@@ -15883,6 +16259,75 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="21" label="quickOpen.show"/>
<int value="22" label="settings.show"/>
<int value="23" label="sources.search"/>
+ <int value="24" label="background-service.toggle-recording"/>
+ <int value="25" label="components.collect-garbage"/>
+ <int value="26" label="console.clear.history"/>
+ <int value="27" label="console.create-pin"/>
+ <int value="28" label="coverage.start-with-reload"/>
+ <int value="29" label="coverage.toggle-recording"/>
+ <int value="30" label="debugger.breakpoint-input-window"/>
+ <int value="31" label="debugger.evaluate-selection"/>
+ <int value="32" label="debugger.next-call-frame"/>
+ <int value="33" label="debugger.previous-call-frame"/>
+ <int value="34" label="debugger.run-snippet"/>
+ <int value="35" label="debugger.toggle-breakpoints-active"/>
+ <int value="36" label="elements.capture-area-screenshot"/>
+ <int value="37" label="emulation.capture-full-height-screenshot"/>
+ <int value="38" label="emulation.capture-node-screenshot"/>
+ <int value="39" label="emulation.capture-screenshot"/>
+ <int value="40" label="emulation.show-sensors"/>
+ <int value="41" label="emulation.toggle-device-mode"/>
+ <int value="42" label="help.release-notes"/>
+ <int value="43" label="help.report-issue"/>
+ <int value="44" label="input.start-replaying"/>
+ <int value="45" label="input.toggle-pause"/>
+ <int value="46" label="input.toggle-recording"/>
+ <int value="47" label="inspector_main.focus-debuggee"/>
+ <int value="48" label="inspector_main.hard-reload"/>
+ <int value="49" label="inspector_main.reload"/>
+ <int value="50" label="live-heap-profile.start-with-reload"/>
+ <int value="51" label="live-heap-profile.toggle-recording"/>
+ <int value="52" label="main.debug-reload"/>
+ <int value="53" label="main.next-tab"/>
+ <int value="54" label="main.previous-tab"/>
+ <int value="55" label="main.search-in-panel.cancel"/>
+ <int value="56" label="main.search-in-panel.find-next"/>
+ <int value="57" label="main.search-in-panel.find-previous"/>
+ <int value="58" label="main.toggle-dock"/>
+ <int value="59" label="main.zoom-in"/>
+ <int value="60" label="main.zoom-out"/>
+ <int value="61" label="main.zoom-reset"/>
+ <int value="62" label="network-conditions.network-low-end-mobile"/>
+ <int value="63" label="network-conditions.network-mid-tier-mobile"/>
+ <int value="64" label="network-conditions.network-offline"/>
+ <int value="65" label="network-conditions.network-online"/>
+ <int value="66" label="profiler.heap-toggle-recording"/>
+ <int value="67" label="profiler.js-toggle-recording"/>
+ <int value="68" label="resources.clear"/>
+ <int value="69" label="settings.documentation"/>
+ <int value="70" label="settings.shortcuts"/>
+ <int value="71" label="sources.add-folder-to-workspace"/>
+ <int value="72" label="sources.add-to-watch"/>
+ <int value="73" label="sources.close-all"/>
+ <int value="74" label="sources.close-editor-tab"/>
+ <int value="75" label="sources.create-snippet"/>
+ <int value="76" label="sources.go-to-line"/>
+ <int value="77" label="sources.go-to-member"/>
+ <int value="78" label="sources.jump-to-next-location"/>
+ <int value="79" label="sources.jump-to-previous-location"/>
+ <int value="80" label="sources.rename"/>
+ <int value="81" label="sources.save"/>
+ <int value="82" label="sources.save-all"/>
+ <int value="83" label="sources.switch-file"/>
+ <int value="84" label="timeline.jump-to-next-frame"/>
+ <int value="85" label="timeline.jump-to-previous-frame"/>
+ <int value="86" label="timeline.load-from-file"/>
+ <int value="87" label="timeline.next-recording"/>
+ <int value="88" label="timeline.previous-recording"/>
+ <int value="89" label="timeline.record-reload"/>
+ <int value="90" label="timeline.save-to-file"/>
+ <int value="91" label="timeline.show-history"/>
+ <int value="92" label="timeline.toggle-recording"/>
</enum>
<enum name="DevToolsPanel">
@@ -15924,6 +16369,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="36" label="Settings - Shortcuts"/>
<int value="37" label="Drawer - Issues"/>
<int value="38" label="Settings - Shortcuts (custom)"/>
+ <int value="39" label="CSS Overview"/>
</enum>
<enum name="DevToolsSetting">
@@ -16392,6 +16838,26 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="4" label="Not rejected"/>
</enum>
+<enum name="DlcService.InstallResult">
+ <int value="0" label="Unknown error"/>
+ <int value="1" label="Success - New install"/>
+ <int value="2" label="Success - Already installed"/>
+ <int value="3" label="Failed to create directory"/>
+ <int value="4" label="Failure reported by Update Engine"/>
+ <int value="5" label="Invalid DLC submitted"/>
+ <int value="6" label="Failed because a reboot is needed"/>
+ <int value="7" label="Failed because Update Engine is busy"/>
+ <int value="8" label="Failed to verify image"/>
+ <int value="9" label="Failed to mount image"/>
+</enum>
+
+<enum name="DlcService.UninstallResult">
+ <int value="0" label="Unknown error"/>
+ <int value="1" label="Success"/>
+ <int value="2" label="Invalid DLC submitted"/>
+ <int value="3" label="Failed because Update Engine is busy"/>
+</enum>
+
<enum name="DllHash">
<obsolete>
The blacklist is deprecated in favor of third-party DLL blocking.
@@ -16445,6 +16911,13 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="3" label="No addresses in common"/>
</enum>
+<enum name="DNS.AttemptType">
+ <int value="0" label="DnsUDPAttempt"/>
+ <int value="1" label="DnsTCPAttempt due to low UDP entropy"/>
+ <int value="2" label="DnsTCPAttempt due to retry due to UDP trucation"/>
+ <int value="3" label="DnsHTTPAttempt"/>
+</enum>
+
<enum name="DNS.HostCache.EraseReason">
<int value="0" label="Entry evicted"/>
<int value="1" label="Cache cleared"/>
@@ -16487,6 +16960,17 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="2" label="ID mismatch with an unrecognized response ID"/>
</enum>
+<enum name="DNS.UdpLowEntropyReason">
+ <int value="0" label="Multiple recent reassignments of the same UDP port"/>
+ <int value="1"
+ label="DNS query/response ID mismatches, where response ID is
+ recognized from a recent query"/>
+ <int value="2"
+ label="DNS query/response ID mismatches, where response ID is
+ unrecognized"/>
+ <int value="3" label="Exhaustion of process-wide UDP socket limit"/>
+</enum>
+
<enum name="DNSEmptyAddressListAndNoError">
<int value="0" label="Error reported or Address List is not empty"/>
<int value="1" label="Success reported but Address List is empty"/>
@@ -16551,14 +17035,118 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<!-- Generated from third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom.
Called by update_document_policy_enum.py.-->
- <int value="0" label="NotFound"/>
+ <int value="0" label="Default"/>
<int value="1" label="FontDisplay"/>
- <int value="2" label="UnoptimizedLosslessImages"/>
+ <int value="2" label="LosslessImagesMaxBpp"/>
<int value="3" label="ForceLoadAtTop"/>
- <int value="4" label="UnoptimizedLosslessImagesStrict"/>
+ <int value="4" label="LosslessImagesStrictMaxBpp"/>
<int value="5" label="UnoptimizedLossyImages"/>
<int value="6" label="OversizedImages"/>
<int value="7" label="UnsizedMedia"/>
+ <int value="8" label="LayoutAnimations"/>
+</enum>
+
+<enum name="DocumentScanSaneBackend">
+ <summary>
+ Various SANE backends (effectively scanner drivers) that can be used to scan
+ a document in Chrome OS. These values are defined in the SaneBackend enum in
+ chromeos/src/platform2/lorgnette/enums.h.
+ </summary>
+ <int value="0" label="UnknownBackend"/>
+ <int value="1" label="Abaton"/>
+ <int value="2" label="Agfafocus"/>
+ <int value="3" label="AirscanBrother"/>
+ <int value="4" label="AirscanCanon"/>
+ <int value="5" label="AirscanEpson"/>
+ <int value="6" label="AirscanHp"/>
+ <int value="7" label="AirscanKodak"/>
+ <int value="8" label="AirscanKonicaMinolta"/>
+ <int value="9" label="AirscanKyocera"/>
+ <int value="10" label="AirscanLexmark"/>
+ <int value="11" label="AirscanOther"/>
+ <int value="12" label="AirscanRicoh"/>
+ <int value="13" label="AirscanSamsung"/>
+ <int value="14" label="AirscanXerox"/>
+ <int value="15" label="Apple"/>
+ <int value="16" label="Artec"/>
+ <int value="17" label="ArtecEplus48U"/>
+ <int value="18" label="As6E"/>
+ <int value="19" label="Avision"/>
+ <int value="20" label="Bh"/>
+ <int value="21" label="Canon"/>
+ <int value="22" label="Canon630U"/>
+ <int value="23" label="CanonDr"/>
+ <int value="24" label="Cardscan"/>
+ <int value="25" label="Coolscan"/>
+ <int value="26" label="Coolscan2"/>
+ <int value="27" label="Coolscan3"/>
+ <int value="28" label="Dc210"/>
+ <int value="29" label="Dc240"/>
+ <int value="30" label="Dc25"/>
+ <int value="31" label="Dell1600NNet"/>
+ <int value="32" label="Dmc"/>
+ <int value="33" label="Epjitsu"/>
+ <int value="34" label="Epson"/>
+ <int value="35" label="Epson2"/>
+ <int value="36" label="Escl"/>
+ <int value="37" label="Fujitsu"/>
+ <int value="38" label="Genesys"/>
+ <int value="39" label="Gt68Xx"/>
+ <int value="40" label="Hp"/>
+ <int value="41" label="Hp3500"/>
+ <int value="42" label="Hp3900"/>
+ <int value="43" label="Hp4200"/>
+ <int value="44" label="Hp5400"/>
+ <int value="45" label="Hp5590"/>
+ <int value="46" label="Hpljm1005"/>
+ <int value="47" label="Hs2P"/>
+ <int value="48" label="Ibm"/>
+ <int value="49" label="Kodak"/>
+ <int value="50" label="Kodakaio"/>
+ <int value="51" label="Kvs1025"/>
+ <int value="52" label="Kvs20Xx"/>
+ <int value="53" label="Kvs40Xx"/>
+ <int value="54" label="Leo"/>
+ <int value="55" label="Lexmark"/>
+ <int value="56" label="Ma1509"/>
+ <int value="57" label="Magicolor"/>
+ <int value="58" label="Matsushita"/>
+ <int value="59" label="Microtek"/>
+ <int value="60" label="Microtek2"/>
+ <int value="61" label="Mustek"/>
+ <int value="62" label="MustekUsb"/>
+ <int value="63" label="MustekUsb2"/>
+ <int value="64" label="Nec"/>
+ <int value="65" label="Net"/>
+ <int value="66" label="Niash"/>
+ <int value="67" label="P5"/>
+ <int value="68" label="Pie"/>
+ <int value="69" label="Pixma"/>
+ <int value="70" label="Plustek"/>
+ <int value="71" label="PlustekPp"/>
+ <int value="72" label="Qcam"/>
+ <int value="73" label="Ricoh"/>
+ <int value="74" label="Ricoh2"/>
+ <int value="75" label="Rts8891"/>
+ <int value="76" label="S9036"/>
+ <int value="77" label="Sceptre"/>
+ <int value="78" label="Sharp"/>
+ <int value="79" label="Sm3600"/>
+ <int value="80" label="Sm3840"/>
+ <int value="81" label="Snapscan"/>
+ <int value="82" label="Sp15C"/>
+ <int value="83" label="St400"/>
+ <int value="84" label="Stv680"/>
+ <int value="85" label="Tamarack"/>
+ <int value="86" label="Teco1"/>
+ <int value="87" label="Teco2"/>
+ <int value="88" label="Teco3"/>
+ <int value="89" label="Test"/>
+ <int value="90" label="U12"/>
+ <int value="91" label="Umax"/>
+ <int value="92" label="Umax1220U"/>
+ <int value="93" label="UmaxPp"/>
+ <int value="94" label="XeroxMfp"/>
</enum>
<enum name="DocumentStateForDeferredLoading">
@@ -18374,6 +18962,9 @@ Called by update_document_policy_enum.py.-->
</enum>
<enum name="DumpWithoutCrashingResult">
+ <obsolete>
+ Obsolete July 2020.
+ </obsolete>
<int value="0" label="Failure from Crashpad"/>
<int value="1" label="Success from Crashpad"/>
<int value="2" label="Failure from Breakpad"/>
@@ -20885,7 +21476,7 @@ Called by update_document_policy_enum.py.-->
<int value="667" label="AdvancedProtectionDeepScanningEnabled"/>
<int value="668" label="BlockUnsupportedFiletypes"/>
<int value="669" label="URLsToNotCheckForMalwareOfDownloadedContent"/>
- <int value="670" label="MinimumChromeVersionEnforced"/>
+ <int value="670" label="DeviceMinimumVersion"/>
<int value="671" label="ReportDeviceTimezoneInfo"/>
<int value="672" label="SystemProxySettings"/>
<int value="673" label="UserDataSnapshotRetentionLimit"/>
@@ -20929,7 +21520,7 @@ Called by update_document_policy_enum.py.-->
<int value="711" label="EnableExperimentalPolicies"/>
<int value="712" label="PluginVmDataCollectionAllowed"/>
<int value="713" label="IntensiveWakeUpThrottlingEnabled"/>
- <int value="714" label="MinimumChromeVersionEolMessage"/>
+ <int value="714" label="DeviceMinimumVersionAueMessage"/>
<int value="715" label="DefaultSearchProviderContextMenuAccessAllowed"/>
<int value="716" label="CrostiniPortForwardingAllowed"/>
<int value="717" label="VirtualKeyboardFeatures"/>
@@ -20943,6 +21534,61 @@ Called by update_document_policy_enum.py.-->
<int value="725" label="UserAgentClientHintsEnabled"/>
<int value="726" label="SuggestedContentEnabled"/>
<int value="727" label="ExtensionInstallEventLoggingEnabled"/>
+ <int value="728" label="EnterpriseRealTimeUrlCheckMode"/>
+ <int value="729" label="AssistantOnboardingMode"/>
+ <int value="730" label="DeviceExternalPrintServers"/>
+ <int value="731" label="DeviceExternalPrintServersAllowlist"/>
+ <int value="732" label="SafeBrowsingAllowlistDomains"/>
+ <int value="733" label="DevicePrintersAccessMode"/>
+ <int value="734" label="DevicePrintersBlocklist"/>
+ <int value="735" label="DevicePrintersAllowlist"/>
+ <int value="736" label="URLBlocklist"/>
+ <int value="737" label="URLAllowlist"/>
+ <int value="738" label="ExtensionInstallAllowlist"/>
+ <int value="739" label="ShowFullUrlsInAddressBar"/>
+ <int value="740" label="ExtensionInstallBlocklist"/>
+ <int value="741" label="ReportDeviceSystemInfo"/>
+ <int value="742" label="AutoplayAllowlist"/>
+ <int value="743" label="DevicePrinters"/>
+ <int value="744" label="NativeMessagingBlocklist"/>
+ <int value="745" label="NativeMessagingAllowlist"/>
+ <int value="746" label="AuthNegotiateDelegateAllowlist"/>
+ <int value="747" label="AuthServerAllowlist"/>
+ <int value="748" label="InsecureFormsWarningsEnabled"/>
+ <int value="749" label="SpellcheckLanguageBlocklist"/>
+ <int value="750" label="ExternalPrintServersAllowlist"/>
+ <int value="751" label="DefaultSerialGuardSetting"/>
+ <int value="752" label="SerialAskForUrls"/>
+ <int value="753" label="SerialBlockedForUrls"/>
+ <int value="754" label="DefaultSensorsSetting"/>
+ <int value="755" label="SensorsAllowedForUrls"/>
+ <int value="756" label="SensorsBlockedForUrls"/>
+ <int value="757" label="DeviceChannelDowngradeBehavior"/>
+ <int value="758" label="BackForwardCacheEnabled"/>
+ <int value="759" label="NoteTakingAppsLockScreenAllowlist"/>
+ <int value="760" label="CCTToSDialogEnabled"/>
+ <int value="761" label="NearbyShareAllowed"/>
+ <int value="762" label="PerAppTimeLimitsAllowlist"/>
+ <int value="763" label="DeviceShowLowDiskSpaceNotification"/>
+ <int value="764" label="DeviceUserAllowlist"/>
+ <int value="765" label="UsbDetachableAllowlist"/>
+ <int value="766" label="InsecurePrivateNetworkRequestsAllowed"/>
+ <int value="767" label="InsecurePrivateNetworkRequestsAllowedForUrls"/>
+ <int value="768" label="UserPrintersAllowed"/>
+ <int value="769" label="Printers"/>
+ <int value="770" label="PrintersBulkConfiguration"/>
+ <int value="771" label="DeviceReleaseLtsTag"/>
+ <int value="772" label="PrintersBulkAccessMode"/>
+ <int value="773" label="DefaultFileSystemReadGuardSetting"/>
+ <int value="774" label="DefaultFileSystemWriteGuardSetting"/>
+ <int value="775" label="FileSystemReadAskForUrls"/>
+ <int value="776" label="FileSystemReadBlockedForUrls"/>
+ <int value="777" label="FileSystemWriteAskForUrls"/>
+ <int value="778" label="FileSystemWriteBlockedForUrls"/>
+ <int value="779" label="PrintersBulkBlocklist"/>
+ <int value="780" label="PrintersBulkAllowlist"/>
+ <int value="781" label="CloudPrintWarningsSuppressed"/>
+ <int value="782" label="LookalikeWarningAllowlistDomains"/>
</enum>
<enum name="EnterprisePolicyDeviceIdValidity">
@@ -21659,6 +22305,7 @@ Called by update_document_policy_enum.py.-->
<int value="65536" label="BLOCKED_BY_POLICY"/>
<int value="131072" label="DEPRECATED_BLOCKED_MATURE"/>
<int value="262144" label="DISABLE_REMOTELY_FOR_MALWARE"/>
+ <int value="524288" label="DISABLE_REINSTALL"/>
</enum>
<enum name="ExtensionEvents">
@@ -22146,6 +22793,12 @@ Called by update_extension_histograms.py.-->
<int value="455" label="PASSWORDS_PRIVATE_ON_PASSWORD_CHECK_STATUS_CHANGED"/>
<int value="456" label="INPUT_IME_ON_ASSISTIVE_WINDOW_BUTTON_CLICKED"/>
<int value="457" label="INPUT_IME_ON_SUGGESTIONS_CHANGED"/>
+ <int value="458" label="INPUT_IME_ON_INPUT_METHOD_OPTIONS_CHANGED"/>
+ <int value="459"
+ label="CERTIFICATEPROVIDER_ON_CERTIFICATES_UPDATE_REQUESTED"/>
+ <int value="460" label="CERTIFICATEPROVIDER_ON_SIGNATURE_REQUESTED"/>
+ <int value="461" label="WINDOWS_ON_BOUNDS_CHANGED"/>
+ <int value="462" label="WALLPAPER_PRIVATE_ON_CLOSE_PREVIEW_WALLPAPER"/>
</enum>
<enum name="ExtensionFileWriteResult">
@@ -23241,11 +23894,11 @@ Called by update_extension_histograms.py.-->
<int value="1042" label="DEVELOPERPRIVATE_SETSHORTCUTHANDLINGSUSPENDED"/>
<int value="1043" label="DEVELOPERPRIVATE_UPDATEEXTENSIONCOMMAND"/>
<int value="1044" label="INPUTMETHODPRIVATE_GETENCRYPTSYNCENABLED"/>
- <int value="1045" label="USERSPRIVATE_GETWHITELISTEDUSERS"/>
- <int value="1046" label="USERSPRIVATE_ADDWHITELISTEDUSER"/>
- <int value="1047" label="USERSPRIVATE_REMOVEWHITELISTEDUSER"/>
+ <int value="1045" label="USERSPRIVATE_GETUSERS"/>
+ <int value="1046" label="USERSPRIVATE_ADDUSER"/>
+ <int value="1047" label="USERSPRIVATE_REMOVEUSER"/>
<int value="1048" label="USERSPRIVATE_ISCURRENTUSEROWNER"/>
- <int value="1049" label="USERSPRIVATE_ISWHITELISTMANAGED"/>
+ <int value="1049" label="USERSPRIVATE_ISUSERLISTMANAGED"/>
<int value="1050" label="PRINTERPROVIDERINTERNAL_REPORTUSBPRINTERINFO"/>
<int value="1051" label="WEBCAMPRIVATE_OPENSERIALWEBCAM"/>
<int value="1052" label="WEBCAMPRIVATE_CLOSEWEBCAM"/>
@@ -23599,7 +24252,7 @@ Called by update_extension_histograms.py.-->
<int value="1382" label="AUTOTESTPRIVATE_SETOVERVIEWMODESTATE"/>
<int value="1383" label="AUTOTESTPRIVATE_TAKESCREENSHOTFORDISPLAY"/>
<int value="1384" label="AUTOFILLPRIVATE_SETCREDITCARDFIDOAUTHENABLEDSTATE"/>
- <int value="1385" label="USERSPRIVATE_ISWHITELISTEDUSER"/>
+ <int value="1385" label="USERSPRIVATE_ISUSERINLIST"/>
<int value="1386" label="PRINTINGMETRICS_GETPRINTJOBS"/>
<int value="1387" label="AUTOTESTPRIVATE_WAITFORASSISTANTQUERYSTATUS"/>
<int value="1388" label="AUTOTESTPRIVATE_GETCLIPBOARDTEXTDATA"/>
@@ -23699,6 +24352,23 @@ Called by update_extension_histograms.py.-->
<int value="1482" label="ENTERPRISE_NETWORKINGATTRIBUTES_GETNETWORKDETAILS"/>
<int value="1483" label="INPUTMETHODPRIVATE_SETAUTOCORRECTRANGE"/>
<int value="1484" label="PLATFORMKEYSINTERNAL_GETPUBLICKEYBYSPKI"/>
+ <int value="1485" label="CERTIFICATEPROVIDER_SETCERTIFICATES"/>
+ <int value="1486" label="AUTOTESTPRIVATE_DISABLEAUTOMATION"/>
+ <int value="1487" label="INPUT_IME_SETASSISTIVEWINDOWBUTTONHIGHLIGHTED"/>
+ <int value="1488" label="CERTIFICATEPROVIDER_REPORTSIGNATURE"/>
+ <int value="1489" label="QUICKUNLOCKPRIVATE_SETPINAUTOSUBMITENABLED"/>
+ <int value="1490" label="QUICKUNLOCKPRIVATE_CANAUTHENTICATEPIN"/>
+ <int value="1491" label="INPUTMETHODPRIVATE_GETAUTOCORRECTCHARACTERBOUNDS"/>
+ <int value="1492"
+ label="AUTOTESTPRIVATE_STARTTHROUGHPUTTRACKERDATACOLLECTION"/>
+ <int value="1493"
+ label="AUTOTESTPRIVATE_STOPTHROUGHPUTTRACKERDATACOLLECTION"/>
+ <int value="1494" label="INPUTMETHODPRIVATE_GETAUTOCORRECTRANGE"/>
+ <int value="1495" label="FILEMANAGERPRIVATEINTERNAL_SHARESHEETHASTARGETS"/>
+ <int value="1496" label="FILEMANAGERPRIVATEINTERNAL_INVOKESHARESHEET"/>
+ <int value="1497" label="FILEMANAGERPRIVATEINTERNAL_GETCONTENTMIMETYPE"/>
+ <int value="1498" label="FILEMANAGERPRIVATEINTERNAL_GETCONTENTMETADATA"/>
+ <int value="1499" label="SEARCH_QUERY"/>
</enum>
<enum name="ExtensionIconState">
@@ -24060,7 +24730,8 @@ Called by update_extension_histograms.py.-->
</enum>
<enum name="ExtensionPermission3">
-<!-- Generated from extensions/common/permissions/api_permission.h.-->
+<!-- Generated from extensions/common/permissions/api_permission.h.
+Called by update_extension_permission.py.-->
<int value="0" label="kInvalid"/>
<int value="1" label="kUnknown"/>
@@ -24218,7 +24889,7 @@ Called by update_extension_histograms.py.-->
<int value="153" label="kWallpaper"/>
<int value="154" label="kWallpaperPrivate"/>
<int value="155" label="kWebcamPrivate"/>
- <int value="156" label="kWebConnectable"/>
+ <int value="156" label="kDeleted_kWebConnectable"/>
<int value="157" label="kWebNavigation"/>
<int value="158" label="kWebRequest"/>
<int value="159" label="kWebRequestBlocking"/>
@@ -24290,6 +24961,7 @@ Called by update_extension_histograms.py.-->
<int value="225" label="kCrashReportPrivate"/>
<int value="226" label="kAutofillAssistantPrivate"/>
<int value="227" label="kEnterpriseNetworkingAttributes"/>
+ <int value="228" label="kSearch"/>
</enum>
<enum name="ExtensionPolicyReinstallReason">
@@ -27698,7 +28370,7 @@ Called by update_use_counter_feature_enum.py.-->
<int value="2877" label="VerticalScrollbarThumbScrollingWithTouch"/>
<int value="2878" label="HorizontalScrollbarThumbScrollingWithMouse"/>
<int value="2879" label="HorizontalScrollbarThumbScrollingWithTouch"/>
- <int value="2880" label="SMSReceiverStart"/>
+ <int value="2880" label="WebOTP"/>
<int value="2881" label="V8Animation_Pending_AttributeGetter"/>
<int value="2882" label="FocusWithoutUserActivationNotSandboxedNotAdFrame"/>
<int value="2883" label="FocusWithoutUserActivationNotSandboxedAdFrame"/>
@@ -28032,7 +28704,7 @@ Called by update_use_counter_feature_enum.py.-->
<int value="3198" label="CrossOriginOpenerPolicySameOriginAllowPopups"/>
<int value="3199" label="CrossOriginEmbedderPolicyRequireCorp"/>
<int value="3200" label="CoopAndCoepIsolated"/>
- <int value="3201" label="WrongBaselineOfButtonElement"/>
+ <int value="3201" label="OBSOLETE_WrongBaselineOfButtonElement"/>
<int value="3202" label="V8Document_HasTrustToken_Method"/>
<int value="3203" label="ForceLoadAtTop"/>
<int value="3204" label="LegacyLayoutByButton"/>
@@ -28040,11 +28712,11 @@ Called by update_use_counter_feature_enum.py.-->
<int value="3206" label="LegacyLayoutByDetailsMarker"/>
<int value="3207" label="LegacyLayoutByEditing"/>
<int value="3208" label="LegacyLayoutByFieldSet"/>
- <int value="3209" label="LegacyLayoutByFileUploadControl"/>
+ <int value="3209" label="OBSOLETE_LegacyLayoutByFileUploadControl"/>
<int value="3210" label="LegacyLayoutByFlexBox"/>
<int value="3211" label="LegacyLayoutByFrameSet"/>
<int value="3212" label="LegacyLayoutByGrid"/>
- <int value="3213" label="LegacyLayoutByMenuList"/>
+ <int value="3213" label="OBSOLETE_LegacyLayoutByMenuList"/>
<int value="3214" label="LegacyLayoutByMultiCol"/>
<int value="3215" label="LegacyLayoutByPrinting"/>
<int value="3216" label="LegacyLayoutByRuby"/>
@@ -28118,7 +28790,7 @@ Called by update_use_counter_feature_enum.py.-->
label="V8HTMLVideoElement_RequestVideoFrameCallback_Method"/>
<int value="3281" label="V8HTMLVideoElement_CancelVideoFrameCallback_Method"/>
<int value="3282" label="RubyElementWithDisplayBlock"/>
- <int value="3283" label="LocationFragmentDirectiveAccessed"/>
+ <int value="3283" label="OBSOLETE_LocationFragmentDirectiveAccessed"/>
<int value="3284" label="CanvasRenderingContext"/>
<int value="3285" label="SchemefulSameSiteContextDowngrade"/>
<int value="3286" label="OriginIsolationHeader"/>
@@ -28177,11 +28849,116 @@ Called by update_use_counter_feature_enum.py.-->
<int value="3336" label="InlineOverflowScrollWithInlineEndPadding"/>
<int value="3337" label="CSSSelectorPseudoWebKitDetailsMarker"/>
<int value="3338" label="SerialPortGetInfo"/>
+ <int value="3339" label="FileSystemPickerMethod"/>
+ <int value="3340" label="V8Window_ShowOpenFilePicker_Method"/>
+ <int value="3341" label="V8Window_ShowSaveFilePicker_Method"/>
+ <int value="3342" label="V8Window_ShowDirectoryPicker_Method"/>
+ <int value="3343" label="V8Window_GetOriginPrivateDirectory_Method"/>
+ <int value="3344" label="RTCConstraintEnableRtpDataChannelsTrue"/>
+ <int value="3345" label="RTCConstraintEnableRtpDataChannelsFalse"/>
+ <int value="3346" label="NativeFileSystemDragAndDrop"/>
<int value="3347" label="RTCAdaptivePtime"/>
+ <int value="3348"
+ label="HTMLMetaElementReferrerPolicyMultipleTokensAffectingRequest"/>
+ <int value="3349" label="NavigationTimingL2"/>
+ <int value="3350" label="ResourceTiming"/>
+ <int value="3351" label="V8PointerEvent_AzimuthAngle_AttributeGetter"/>
+ <int value="3352" label="V8PointerEvent_AltitudeAngle_AttributeGetter"/>
+ <int value="3353"
+ label="CrossBrowsingContextGroupMainFrameNulledNonEmptyNameAccessed"/>
+ <int value="3354" label="PositionSticky"/>
<int value="3355" label="CommaSeparatorInAllowAttribute"/>
+ <int value="3359" label="MainFrameCSPViaHTTP"/>
+ <int value="3360" label="MainFrameCSPViaMeta"/>
+ <int value="3361" label="MainFrameCSPViaOriginPolicy"/>
+ <int value="3362" label="HtmlClipboardApiRead"/>
+ <int value="3363" label="HtmlClipboardApiWrite"/>
+ <int value="3364" label="CSSSystemColorComputeToSelf"/>
<int value="3365" label="ConversionAPIAll"/>
<int value="3366" label="ImpressionRegistration"/>
<int value="3367" label="ConversionRegistration"/>
+ <int value="3368" label="WebSharePolicyAllow"/>
+ <int value="3369" label="WebSharePolicyDisallow"/>
+ <int value="3370" label="FormAssociatedCustomElement"/>
+ <int value="3371" label="WindowClosed"/>
+ <int value="3372" label="WrongBaselineOfMultiLineButton"/>
+ <int value="3373" label="WrongBaselineOfEmptyLineButton"/>
+ <int value="3374" label="V8RTCRtpTransceiver_Stopped_AttributeGetter"/>
+ <int value="3375" label="V8RTCRtpTransceiver_Stop_Method"/>
+ <int value="3376" label="SecurePaymentConfirmation"/>
+ <int value="3377" label="CSSInvalidVariableUnset"/>
+ <int value="3378" label="ElementInternalsShadowRoot"/>
+ <int value="3379" label="AnyPiiFieldDetected_PredictedTypeMatch"/>
+ <int value="3380" label="EmailFieldDetected_PredictedTypeMatch"/>
+ <int value="3381" label="PhoneFieldDetected_PredictedTypeMatch"/>
+ <int value="3382" label="EmailFieldDetected_PatternMatch"/>
+ <int value="3383" label="LastLetterSpacingAffectsRendering"/>
+ <int value="3384" label="V8FontMetadata_GetTables_Method"/>
+ <int value="3385" label="V8FontMetadata_Blob_Method"/>
+ <int value="3386" label="V8FontManager_Query_Method"/>
+ <int value="3387" label="AudioContextBaseLatency"/>
+ <int value="3388" label="V8Window_GetScreens_Method"/>
+ <int value="3389" label="V8Window_IsMultiScreen_Method"/>
+ <int value="3390" label="V8Window_Onscreenschange_AttributeGetter"/>
+ <int value="3391" label="V8Window_Onscreenschange_AttributeSetter"/>
+ <int value="3392" label="DOMWindowOpenPositioningFeaturesCrossScreen"/>
+ <int value="3393" label="DOMWindowSetWindowRectCrossScreen"/>
+ <int value="3394" label="FullscreenCrossScreen"/>
+ <int value="3395" label="BatterySavingsMeta"/>
+ <int value="3396" label="DigitalGoodsGetDigitalGoodsService"/>
+ <int value="3397" label="DigitalGoodsGetDetails"/>
+ <int value="3398" label="DigitalGoodsAcknowledge"/>
+ <int value="3399" label="MediaRecorder_MimeType"/>
+ <int value="3400" label="MediaRecorder_VideoBitsPerSecond"/>
+ <int value="3401" label="MediaRecorder_AudioBitsPerSecond"/>
+ <int value="3402" label="BluetoothRemoteGATTCharacteristic_Uuid"/>
+ <int value="3403" label="BluetoothRemoteGATTDescriptor_Uuid"/>
+ <int value="3404" label="BluetoothRemoteGATTService_Uuid"/>
+ <int value="3405" label="GPUAdapter_Name"/>
+ <int value="3406" label="WindowScreenInternal"/>
+ <int value="3407" label="WindowScreenPrimary"/>
+ <int value="3408" label="ThirdPartyCookieRead"/>
+ <int value="3409" label="ThirdPartyCookieWrite"/>
+ <int value="3410" label="RTCLegacyRtpDataChannelNegotiated"/>
+ <int value="3411" label="CrossSitePostMessage"/>
+ <int value="3412" label="SchemelesslySameSitePostMessage"/>
+ <int value="3413" label="SchemefulSameSitePostMessage"/>
+ <int value="3414" label="UnspecifiedTargetOriginPostMessage"/>
+ <int value="3415" label="SchemelesslySameSitePostMessageSecureToInsecure"/>
+ <int value="3416" label="SchemelesslySameSitePostMessageInsecureToSecure"/>
+ <int value="3417" label="BCPBroadcast"/>
+ <int value="3418" label="BCPRead"/>
+ <int value="3419" label="BCPWriteWithoutResponse"/>
+ <int value="3420" label="BCPWrite"/>
+ <int value="3421" label="BCPNotify"/>
+ <int value="3422" label="BCPIndicate"/>
+ <int value="3423" label="BCPAuthenticatedSignedWrites"/>
+ <int value="3424" label="BCPReliableWrite"/>
+ <int value="3425" label="BCPWritableAuxiliaries"/>
+ <int value="3426" label="TextAlignSpecifiedToLegend"/>
+ <int value="3427" label="V8Document_FragmentDirective_AttributeGetter"/>
+ <int value="3428" label="V8StorageManager_GetDirectory_Method"/>
+ <int value="3429" label="BeforematchHandlerRegistered"/>
+ <int value="3430" label="BluetoothAdvertisingEventName"/>
+ <int value="3431" label="BluetoothAdvertisingEventAppearance"/>
+ <int value="3432" label="BluetoothAdvertisingEventTxPower"/>
+ <int value="3433" label="CrossOriginOpenerPolicyReporting"/>
+ <int value="3434" label="GamepadId"/>
+ <int value="3435" label="ElementAttachInternals"/>
+ <int value="3436" label="BluetoothDeviceName"/>
+ <int value="3437" label="RTCIceCandidateAddress"/>
+ <int value="3438" label="RTCIceCandidateCandidate"/>
+ <int value="3439" label="RTCIceCandidatePort"/>
+ <int value="3440" label="RTCIceCandidateRelatedAddress"/>
+ <int value="3441" label="RTCIceCandidateRelatedPort"/>
+ <int value="3442" label="SlotAssignNode"/>
+ <int value="3456" label="WebCodecsAudioDecoder"/>
+ <int value="3457" label="WebCodecsVideoDecoder"/>
+ <int value="3458" label="WebCodecsVideoEncoder"/>
+ <int value="3459" label="WebCodecsVideoTrackReader"/>
+ <int value="3460" label="WebCodecsImageDecoder"/>
+ <int value="3461" label="BackForwardCacheExperimentHTTPHeader"/>
+ <int value="3464" label="WebCodecs"/>
</enum>
<enum name="FeaturePolicyAllowlistType">
@@ -28276,8 +29053,11 @@ Called by update_feature_policy_enum.py.-->
<int value="72" label="TrustTokenRedemption"/>
<int value="73" label="ConversionMeasurement"/>
<int value="74" label="ClientHintUAPlatformVersion"/>
+ <int value="75" label="CrossOriginIsolated"/>
<int value="76" label="ClipboardRead"/>
<int value="77" label="ClipboardWrite"/>
+ <int value="78" label="WebShare"/>
+ <int value="79" label="Gamepad"/>
</enum>
<enum name="FeaturePolicyImageCompressionFormat">
@@ -28311,7 +29091,8 @@ Called by update_feature_policy_enum.py.-->
<int value="0" label="Engaged - scrolled an inch or interacted"/>
<int value="1" label="Engaged Simple - scrolled any amount or interacted"/>
<int value="2" label="Interacted - opened page or used menu"/>
- <int value="3" label="Scrolled - scrolled any amount"/>
+ <int value="3" label="DEPRECATED: Scrolled - scrolled any amount"/>
+ <int value="4" label="Scrolled - scrolled any amount"/>
</enum>
<enum name="FeedHostMismatch">
@@ -28436,6 +29217,8 @@ Called by update_feature_policy_enum.py.-->
<int value="5"
label="Updated and tried to upload all pending actions and finished
without receiving a new consistency token"/>
+ <int value="6"
+ label="Upload attempt was aborted because the account is now signed-out"/>
</enum>
<enum name="FeedUserActionType">
@@ -28450,6 +29233,16 @@ Called by update_feature_policy_enum.py.-->
<int value="8" label="Tapped Open in New Tab"/>
<int value="9" label="Opened context menu"/>
<int value="10" label="Opened feed surface"/>
+ <int value="11" label="Tapped Open in Incognito tab"/>
+ <int value="12"
+ label="Ephemeral change, likely due to hide story or not interested in"/>
+ <int value="13"
+ label="Ephemeral change undone, likely due to pressing 'undo' on the
+ snackbar"/>
+ <int value="14" label="Turn on"/>
+ <int value="15" label="Turn off"/>
+ <int value="16" label="Tapped Manage Activity"/>
+ <int value="17" label="Added to Read Later"/>
</enum>
<enum name="FeedZeroStateShowReason">
@@ -29566,6 +30359,32 @@ Called by update_feature_policy_enum.py.-->
<int value="4" label="Download"/>
</enum>
+<enum name="FilePrefetchResult">
+ <int value="0" label="Success"/>
+ <int value="1" label="Invalid file"/>
+ <int value="2" label="Slow prefetch success">
+ Only slow prefetch was supported.
+ </int>
+ <int value="3" label="Slow prefetch failed">
+ Only slow prefetch was supported, but it failed.
+ </int>
+ <int value="4" label="Memory map failed, slow prefetch used">
+ Mapping file into memory failed; slow prefetch was used as a fallback.
+ </int>
+ <int value="5" label="Memory map failed, slow prefetch failed">
+ Mapping file into memory failed; slow prefetch was attempted as a fallback,
+ but it failed.
+ </int>
+ <int value="6" label="Fast prefetch failed"/>
+ <int value="7" label="Fast prefetch failed, slow prefetch used">
+ Fast prefetch failed; slow prefetch was used as a fallback.
+ </int>
+ <int value="8" label="Fast prefetch failed, slow prefetch failed">
+ Fast prefetch failed; slow prefetch was attempted as a fallback, but it
+ failed.
+ </int>
+</enum>
+
<enum name="FileReaderLoaderFailureType">
<int value="0" label="Mojo pipe creation failed"/>
<int value="1" label="Data incomplete after synchronous reading"/>
@@ -30117,6 +30936,43 @@ Called by update_feature_policy_enum.py.-->
<int value="2" label="Failed / credentials rejected"/>
</enum>
+<enum name="FuseZipError">
+ <int value="0" label="Success">Hardcoded in fuse-zip</int>
+ <int value="11" label="Multipart ZIP">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_MULTIDISK from libzip
+ </int>
+ <int value="15" label="Cannot read">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_READ from libzip
+ </int>
+ <int value="21" label="Cannot open">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_OPEN from libzip
+ </int>
+ <int value="29" label="Not a ZIP">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_NOZIP from libzip
+ </int>
+ <int value="36" label="Missing password">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_NOPASSWD from libzip
+ </int>
+ <int value="37" label="Bad password">
+ ZIP_ER_BASE from fuse-zip + ZIP_ER_WRONGPASSWD from libzip
+ </int>
+ <int value="132" label="Terminated by SIGILL">
+ MINIJAIL_ERR_SIG_BASE + SIGILL from libminijail
+ </int>
+ <int value="134" label="Terminated by SIGABRT">
+ MINIJAIL_ERR_SIG_BASE + SIGABRT from libminijail
+ </int>
+ <int value="139" label="Terminated by SIGSEGV">
+ MINIJAIL_ERR_SIG_BASE + SIGSEGV from libminijail
+ </int>
+ <int value="251" label="Cannot mount file in mount namespace">
+ MINIJAIL_ERR_MOUNT from libminijail
+ </int>
+ <int value="253" label="Seccomp violation">
+ MINIJAIL_ERR_JAIL from libminijail
+ </int>
+</enum>
+
<enum name="GaiaPasswordHashChange">
<int value="0" label="Saved on Chrome sign-in (syncing)"/>
<int value="1" label="Saved in the content area"/>
@@ -30701,7 +31557,8 @@ Called by update_feature_policy_enum.py.-->
<enum name="GamepadSource">
<summary>
Gamepad data fetcher, defined as GamepadSource in
- device/gamepad/gamepad_pad_state_provider.h.
+ device/gamepad/gamepad_pad_state_provider.h. Note that the labeling is off
+ for data recorded prior to 73.0.3683.10. See https://crbug.com/984786
</summary>
<int value="0" label="GAMEPAD_SOURCE_NONE"/>
<int value="1" label="GAMEPAD_SOURCE_ANDROID"/>
@@ -30711,13 +31568,15 @@ Called by update_feature_policy_enum.py.-->
<int value="5" label="GAMEPAD_SOURCE_MAC_GC"/>
<int value="6" label="GAMEPAD_SOURCE_MAC_HID"/>
<int value="7" label="GAMEPAD_SOURCE_MAC_XBOX"/>
- <int value="8" label="GAMEPAD_SOURCE_OCULUS"/>
- <int value="9" label="GAMEPAD_SOURCE_OPENVR"/>
- <int value="10" label="GAMEPAD_SOURCE_TEST"/>
- <int value="11" label="GAMEPAD_SOURCE_WIN_XINPUT"/>
- <int value="12" label="GAMEPAD_SOURCE_WIN_RAW"/>
- <int value="13" label="GAMEPAD_SOURCE_WIN_MR"/>
- <int value="14" label="GAMEPAD_SOURCE_OPENXR"/>
+ <int value="8" label="GAMEPAD_SOURCE_NINTENDO"/>
+ <int value="9" label="GAMEPAD_SOURCE_OCULUS"/>
+ <int value="10" label="GAMEPAD_SOURCE_OPENVR"/>
+ <int value="11" label="GAMEPAD_SOURCE_TEST"/>
+ <int value="12" label="GAMEPAD_SOURCE_WIN_XINPUT"/>
+ <int value="13" label="GAMEPAD_SOURCE_WIN_RAW"/>
+ <int value="14" label="GAMEPAD_SOURCE_WIN_MR"/>
+ <int value="15" label="GAMEPAD_SOURCE_OPENXR"/>
+ <int value="16" label="GAMEPAD_SOURCE_WIN_WGI"/>
</enum>
<enum name="GamepadVendorProduct">
@@ -31469,6 +32328,8 @@ Called by update_feature_policy_enum.py.-->
label="PocketLab; f000aa32-0452-4000-b000-000000000000"/>
<int value="252638028" label="fe9c"/>
<int value="253001319" label="fe84"/>
+ <int value="265147461"
+ label="Root Robot; 48c5d828-ac2a-442d-97a3-0c9822b04979"/>
<int value="267848299" label="fe3e"/>
<int value="270670950" label="fe62"/>
<int value="272049750"
@@ -32303,6 +33164,12 @@ Called by update_feature_policy_enum.py.-->
<int value="27" label="kCanceled"/>
</enum>
+<enum name="GetChangePasswordUrlMetric">
+ <int value="0" label="Gstatic file was not fetched yet"/>
+ <int value="1" label="Url override was available and used"/>
+ <int value="2" label="No url override was available"/>
+</enum>
+
<enum name="GetEncryptionKeyAction">
<int value="0" label="Key is successfully found - not first time"/>
<int value="1" label="Key is successfully found for the first time"/>
@@ -32599,6 +33466,9 @@ Called by update_feature_policy_enum.py.-->
</enum>
<enum name="GoogleUpdateNotificationLaunchEvent">
+ <obsolete>
+ Removed 08/2020
+ </obsolete>
<int value="0" label="Start"/>
<int value="1" label="Start activity failed"/>
</enum>
@@ -33493,7 +34363,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="6" label="ContinueOnNonHostServerTty"/>
<int value="7" label="LessThanFullThreadTimeAfterCapped"/>
<int value="8" label="KillOnLessThreadTime"/>
- <int value="9" label="kSlowWatchdogThread"/>
+ <int value="9" label="SlowWatchdogThread"/>
</enum>
<enum name="GPUWebGraphicsContext3D_Init_CanLoseContext">
@@ -33628,6 +34498,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="13" label="Survey over capacity">
The survey is over its capacity.
</int>
+ <int value="14" label="A survey is already in progress"/>
</enum>
<enum name="HardwareVerifierQualificationStatus">
@@ -33844,10 +34715,10 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
</enum>
<enum name="HistoryFaviconsRecoveryEnum">
- <summary>Error states noted in thumbnail_database.cc recovery code.</summary>
<obsolete>
History.FaviconsRecovery no longer tracked as of March 2017.
</obsolete>
+ <summary>Error states noted in thumbnail_database.cc recovery code.</summary>
<int value="0" label="RECOVERY_EVENT_RECOVERED">Successful recovery.</int>
<int value="1" label="RECOVERY_EVENT_FAILED_SCOPER">
sql::Recovery failed init.
@@ -34128,6 +34999,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-2147167998" label="ITF_E_EXTRACT_LOCALIZED_STRINGS_FAILED"/>
<int value="-2147167997"
label="ITF_E_EXTRACT_NO_FULL_NAME_OR_POSTSCRIPT_NAME"/>
+ <int value="-2147167996" label="ITF_E_EXTRACT_NO_FAMILY_NAME"/>
<int value="-2147024894" label="ERROR_FILE_NOT_FOUND"/>
<int value="-2147024893" label="ERROR_PATH_NOT_FOUND"/>
<int value="-2147024891" label="E_ACCESSDENIED"/>
@@ -35014,6 +35886,14 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="9" label="PERSONAL_LAST_NAME"/>
</enum>
+<enum name="IMEAssistiveDisabledReason">
+ <int value="0" label="None"/>
+ <int value="1" label="Feature flag off"/>
+ <int value="2" label="Enterprise settings off"/>
+ <int value="3" label="User settings off"/>
+ <int value="4" label="Url or App not allowed"/>
+</enum>
+
<enum name="IMECommitType">
<obsolete>
Deprecated 03/2015, and replaced by IMECommitType2.
@@ -35139,6 +36019,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
</int>
</enum>
+<enum name="IMETextInputClient">
+ <int value="0" label="RenderWidgetHostViewAura"/>
+ <int value="1" label="ArcImeService"/>
+ <int value="2" label="Textfield"/>
+</enum>
+
<enum name="IMEVKLayout">
<int value="0" label="Compact"/>
<int value="1" label="CompactSymbol"/>
@@ -36565,6 +37451,11 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<enum name="IOSActivityScenario">
<int value="0" label="Tab Share Button"/>
<int value="1" label="QR Code Image"/>
+ <int value="2" label="History Entry"/>
+ <int value="3" label="Reading List Entry"/>
+ <int value="4" label="Bookmarks Entry"/>
+ <int value="5" label="Most Visited Tile"/>
+ <int value="6" label="Recent Tabs Entry"/>
</enum>
<enum name="IOSContentSizeCategory">
@@ -36590,6 +37481,11 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="3" label="Store Busy"/>
</enum>
+<enum name="IOSDefaultBrowserFullscreenPromoAction">
+ <int value="0" label="Action Button"/>
+ <int value="1" label="Cancel"/>
+</enum>
+
<enum name="IOSDeviceThermalState">
<int value="0" label="Unknown"/>
<int value="1" label="Nominal"/>
@@ -36665,6 +37561,30 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="4" label="Authorized when Chrome is in use"/>
</enum>
+<enum name="IOSMenuAction">
+ <int value="0" label="Open in New Tab"/>
+ <int value="1" label="Open in New Incognito Tab"/>
+ <int value="2" label="Open in New Window"/>
+ <int value="3" label="Open all in New Tabs"/>
+ <int value="4" label="Copy"/>
+ <int value="5" label="Edit"/>
+ <int value="6" label="Move"/>
+ <int value="7" label="Share"/>
+ <int value="8" label="Delete"/>
+ <int value="9" label="Remove"/>
+ <int value="10" label="Hide"/>
+</enum>
+
+<enum name="IOSMenuScenario">
+ <int value="0" label="Bookmark Entry"/>
+ <int value="1" label="Bookmark Folder"/>
+ <int value="2" label="Reading List Entry"/>
+ <int value="3" label="Recent Tabs Header"/>
+ <int value="4" label="Recent Tabs Entry"/>
+ <int value="5" label="History Entry"/>
+ <int value="6" label="Most Visited Entry"/>
+</enum>
+
<enum name="IOSNTPImpression">
<int value="0" label="Local suggestions"/>
<int value="1" label="Remote suggestions"/>
@@ -38316,6 +39236,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="57" label="SBOX_ERROR_CANNOT_WRITE_VARIABLE_VALUE"/>
<int value="58" label="SBOX_ERROR_INVALID_WRITE_VARIABLE_SIZE"/>
<int value="59" label="SBOX_ERROR_CANNOT_INIT_BROKERSERVICES"/>
+ <int value="60" label="SBOX_ERROR_CANNOT_UPDATE_JOB_PROCESS_LIMIT"/>
<int value="1002" label="LAUNCH_RESULT_SUCCESS"/>
<int value="1003" label="LAUNCH_RESULT_FAILURE"/>
</enum>
@@ -38449,6 +39370,8 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="5" label="Non-integral x offset"/>
<int value="6" label="Non-integral y offset"/>
<int value="7" label="Will-change: transform"/>
+ <int value="8" label="Pixel or color effect"/>
+ <int value="9" label="Transform animation"/>
</enum>
<enum name="LevelDBCorruptionRestoreValue">
@@ -38976,7 +39899,10 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="1" label="Allowed"/>
<int value="2" label="Navigation not eligibile"/>
<int value="3" label="Blocklisted due to rebuffers"/>
- <int value="4" label="Blocklisted due to reloads/back-forwards"/>
+ <int value="4" label="Blocklisted due to frequent reloads/back-forwards"/>
+ <int value="5" label="Blocklisted because page transition was a reload"/>
+ <int value="6" label="Blocklisted because page transition was back-forwards"/>
+ <int value="7" label="Blocklisted because the host was permanently blocked"/>
</enum>
<enum name="LiteVideoDecision">
@@ -39326,7 +40252,6 @@ from previous Chrome versions.
<int value="-2105133782" label="GesturePropertiesDBusService:enabled"/>
<int value="-2104950596" label="HandwritingGesture:enabled"/>
<int value="-2104654357" label="GamesHub:enabled"/>
- <int value="-2103664329" label="EnableHighResolutionMouseScrolling:disabled"/>
<int value="-2101682955" label="EnableNotificationIndicator:enabled"/>
<int value="-2101337189" label="AutofillOffNoServerData:disabled"/>
<int value="-2099486626" label="DownloadLater:enabled"/>
@@ -39343,6 +40268,7 @@ from previous Chrome versions.
<int value="-2090484194" label="ContextualSearchUrlActions:disabled"/>
<int value="-2088555929" label="EnableAppGridGhost:enabled"/>
<int value="-2088472280" label="KeyboardShortcutViewerApp:disabled"/>
+ <int value="-2084849051" label="TabGroupsCollapseFreezing:disabled"/>
<int value="-2083998415" label="VrLaunchIntent:enabled"/>
<int value="-2083195884" label="enable-firewall-hole-punching"/>
<int value="-2082462043" label="ViewPasswords:disabled"/>
@@ -39386,6 +40312,7 @@ from previous Chrome versions.
<int value="-2044001553"
label="disable-experimental-accessibility-chromevox-language-switching"/>
<int value="-2043128632" label="enable-tab-switcher-in-document-mode"/>
+ <int value="-2041281386" label="MultiPaste:disabled"/>
<int value="-2040471724" label="CrOSComponent:disabled"/>
<int value="-2040115518" label="load-media-router-component-extension"/>
<int value="-2039439354"
@@ -39409,10 +40336,14 @@ from previous Chrome versions.
<int value="-2020721975" label="smart-virtual-keyboard"/>
<int value="-2020024440" label="scroll-end-effect"/>
<int value="-2017953534" label="enable-hosted-app-shim-creation"/>
+ <int value="-2017778637" label="PrintSaveToDrive:disabled"/>
<int value="-2015293660" label="AccessibilityExposeDisplayNone:disabled"/>
<int value="-2013551096" label="ViewsSimplifiedFullscreenUI:disabled"/>
<int value="-2013124655" label="EnableEphemeralFlashPermission:disabled"/>
<int value="-2012990889" label="SpannableInlineAutocomplete:enabled"/>
+ <int value="-2012449550" label="OmniboxMostVisitedTiles:enabled"/>
+ <int value="-2012266745"
+ label="OmniboxLocalZeroSuggestFrecencyRanking:disabled"/>
<int value="-2011532551" label="SignedExchangeSubresourcePrefetch:disabled"/>
<int value="-2010634516" label="OmniboxLocalEntitySuggestions:disabled"/>
<int value="-2009622663" label="WebRtcHWH264Encoding:enabled"/>
@@ -39462,7 +40393,6 @@ from previous Chrome versions.
<int value="-1962588488" label="SpeculativePreconnect:disabled"/>
<int value="-1961931929" label="ContextualSuggestionsBottomSheet:enabled"/>
<int value="-1961648833" label="show_summary"/>
- <int value="-1961497025" label="tint-gl-composited-content"/>
<int value="-1961062505" label="VrBrowsingInCustomTab:disabled"/>
<int value="-1960567385" label="KeepPrefetchedContentSuggestions:enabled"/>
<int value="-1959563554" label="ChromeOSAccountManager:enabled"/>
@@ -39470,6 +40400,7 @@ from previous Chrome versions.
<int value="-1957328398" label="MacSystemShareMenu:disabled"/>
<int value="-1956747298" label="LayeredAPI:enabled"/>
<int value="-1956349722" label="disable-smooth-scrolling"/>
+ <int value="-1956231275" label="ForceSpectreVariant2Mitigation:enabled"/>
<int value="-1955923385" label="EnableGamepadButtonAxisEvents:enabled"/>
<int value="-1954246274"
label="enable-experimental-accessibility-switch-access"/>
@@ -39493,12 +40424,14 @@ from previous Chrome versions.
<int value="-1940377152" label="MacRTL:enabled"/>
<int value="-1940291343" label="SpeculativeResourcePrefetching:enabled"/>
<int value="-1939533266" label="LauncherSettingsSearch:enabled"/>
+ <int value="-1939525844" label="AssistantTimersV2:enabled"/>
<int value="-1939016096"
label="OmniboxUIExperimentHideSuggestionUrlTrivialSubdomains:enabled"/>
<int value="-1939003674" label="NetworkServiceInProcess:disabled"/>
<int value="-1938263248" label="enable-extension-info-dialog"/>
<int value="-1937077699" label="http-form-warning"/>
<int value="-1936032607" label="enable-experimental-webassembly-features"/>
+ <int value="-1935055754" label="WebShare:enabled"/>
<int value="-1934661084" label="ForceUnifiedConsentBump:disabled"/>
<int value="-1933425042" label="OfflinePreviews:enabled"/>
<int value="-1932609987" label="CSSBackdropFilter:disabled"/>
@@ -39535,6 +40468,7 @@ from previous Chrome versions.
<int value="-1896871201" label="CrossOriginOpenerPolicyReporting:enabled"/>
<int value="-1896394207" label="PasswordChange:disabled"/>
<int value="-1895719323" label="VrBrowsingTabsView:enabled"/>
+ <int value="-1895050832" label="GlobalMediaControlsCastStartStop:disabled"/>
<int value="-1894699049" label="AudioFocusEnforcement:disabled"/>
<int value="-1894054576" label="FontAccess:enabled"/>
<int value="-1893668420"
@@ -39577,6 +40511,7 @@ from previous Chrome versions.
<int value="-1867342522" label="MaterialDesignHistory:enabled"/>
<int value="-1865155026" label="AutoFetchOnNetErrorPage:enabled"/>
<int value="-1863962664" label="LockScreenNotifications:enabled"/>
+ <int value="-1863020461" label="PasswordChangeInSettings:enabled"/>
<int value="-1861814223" label="MidiManagerDynamicInstantiation:enabled"/>
<int value="-1860481724" label="ChromeHomeExpandButton:enabled"/>
<int value="-1859421131" label="BackForwardCache:disabled"/>
@@ -39607,11 +40542,13 @@ from previous Chrome versions.
<int value="-1837401779" label="EnableFileManagerFormatDialog:enabled"/>
<int value="-1837329460" label="NewEncodeCpuLoadEstimator:enabled"/>
<int value="-1836854634" label="CloseTabSuggestions:enabled"/>
+ <int value="-1836412886" label="UseChimeAndroidSdk:disabled"/>
<int value="-1835975804" label="disable-offline-auto-reload"/>
<int value="-1835905702" label="FilesZipNoNaCl:enabled"/>
<int value="-1835608319" label="EnableHeuristicPalmDetectionFilter:disabled"/>
<int value="-1834841895" label="CrostiniWebUIUpgrader:enabled"/>
<int value="-1834536026" label="AppServiceIntentHandling:enabled"/>
+ <int value="-1834151268" label="OmniboxDynamicMaxAutocomplete:disabled"/>
<int value="-1833149810" label="enable-accessibility-tab-switcher"/>
<int value="-1832575380" label="show-saved-copy"/>
<int value="-1832221649" label="disable-out-of-process-pac"/>
@@ -39632,6 +40569,7 @@ from previous Chrome versions.
<int value="-1809891158" label="WebAuthenticationCable:enabled"/>
<int value="-1809865209" label="KernelnextVMs:enabled"/>
<int value="-1809835803" label="LayoutNG:disabled"/>
+ <int value="-1809060811" label="EyeDropper:disabled"/>
<int value="-1808576075" label="SystemTrayUnified:enabled"/>
<int value="-1808477331" label="MidiManagerCros:disabled"/>
<int value="-1807797669" label="google-doodle-url"/>
@@ -39672,6 +40610,8 @@ from previous Chrome versions.
<int value="-1755301960" label="ClearOldBrowsingData:enabled"/>
<int value="-1754262889" label="RemoteCopyPersistentNotification:enabled"/>
<int value="-1753458842" label="OfflinePagesLivePageSharing:disabled"/>
+ <int value="-1752853388"
+ label="OmniboxUIExperimentElideToRegistrableDomain:enabled"/>
<int value="-1751928267" label="disable-icon-ntp"/>
<int value="-1750008152" label="UsernameFirstFlow:enabled"/>
<int value="-1749176684" label="PauseBackgroundTabs:disabled"/>
@@ -39684,11 +40624,14 @@ from previous Chrome versions.
<int value="-1740519217" label="disable-software-rasterizer"/>
<int value="-1740093155" label="UnifiedMediaView:disabled"/>
<int value="-1738416948" label="OptimizationHints:enabled"/>
+ <int value="-1737769448" label="WebUITabStripTabDragIntegration:disabled"/>
<int value="-1736075054" label="EnableFullscreenAppList:enabled"/>
<int value="-1735643253" label="enable-display-list-2d-canvas"/>
<int value="-1734885284" label="enable-navigation-predictor"/>
+ <int value="-1734666001" label="SafeBrowsingEnhancedProtection:enabled"/>
<int value="-1734254845" label="ash-enable-night-light"/>
<int value="-1732888954" label="UseButtonTranslateBubbleUI:enabled"/>
+ <int value="-1732777136" label="SignInProfileCreationFlow:disabled"/>
<int value="-1732561795" label="ConsistentOmniboxGeolocation:enabled"/>
<int value="-1731267886" label="AutofillEnableStickyPaymentsBubble:enabled"/>
<int value="-1731149013" label="AndroidMessagesIntegration:enabled"/>
@@ -39707,6 +40650,7 @@ from previous Chrome versions.
<int value="-1715180530"
label="OmniboxUIExperimentShowSuffixOnAllSearchSuggestions:disabled"/>
<int value="-1714128884" label="disable-launcher-search-provider-api"/>
+ <int value="-1713602121" label="BentoOffline:enabled"/>
<int value="-1713564656" label="ProtectSyncCredentialOnReauth:enabled"/>
<int value="-1711751318" label="enable-data-reduction-proxy-lo-fi-preview"/>
<int value="-1710772665" label="disable-my-files-navigation"/>
@@ -39714,11 +40658,13 @@ from previous Chrome versions.
<int value="-1703709912" label="enable-new-ntp"/>
<int value="-1703308540" label="disable-webaudio"/>
<int value="-1701123067" label="ShowManagedUi:enabled"/>
+ <int value="-1698438797" label="TabGroupsCollapseFreezing:enabled"/>
<int value="-1696778023"
label="HappinessTrackingSurveysForDesktopSettings:disabled"/>
<int value="-1696619241" label="OmniboxWrapPopupPosition:disabled"/>
<int value="-1696366449" label="disable-permissions-bubbles"/>
<int value="-1695774453" label="skip-extra-ash-window-positioning"/>
+ <int value="-1693498375" label="CdmFactoryDaemon:enabled"/>
<int value="-1692967465"
label="ContextMenuPerformanceInfoAndRemoteHintFetching:enabled"/>
<int value="-1692384483" label="disambiguate-autofill-server-name-types"/>
@@ -39744,6 +40690,9 @@ from previous Chrome versions.
<int value="-1670137340"
label="OptimizeLoadingIPCForSmallResources:disabled"/>
<int value="-1669486359" label="ImportantSitesInCBD:enabled"/>
+ <int value="-1668306615" label="CrostiniUseDlc:enabled"/>
+ <int value="-1665720309"
+ label="ArcNativeBridge64BitSupportExperiment:disabled"/>
<int value="-1664795930" label="StorageAccessAPI:disabled"/>
<int value="-1663410466" label="top-document-isolation"/>
<int value="-1663125441" label="OptInImeMenu:enabled"/>
@@ -39752,6 +40701,7 @@ from previous Chrome versions.
<int value="-1660972490" label="gpu-rasterization-msaa-sample-count"/>
<int value="-1655535052" label="enable-pointer-events"/>
<int value="-1654344175" label="disable-extension-info-dialog"/>
+ <int value="-1653991213" label="CrossOriginIsolated:disabled"/>
<int value="-1653838003" label="PauseBackgroundTabs:enabled"/>
<int value="-1652173255"
label="OmniboxUIExperimentShowPlaceholderWhenCaretShowing:enabled"/>
@@ -39769,6 +40719,7 @@ from previous Chrome versions.
label="AutofillCreditCardLocalCardMigration:disabled"/>
<int value="-1634154256" label="ZeroSuggestRedirectToChrome:enabled"/>
<int value="-1633586675" label="TabModalJsDialog:enabled"/>
+ <int value="-1632828661" label="PrivacyReorderedAndroid:disabled"/>
<int value="-1631329950" label="ssl-version-max"/>
<int value="-1630419335" label="enable-download-notification"/>
<int value="-1626110605" label="WebBundles:disabled"/>
@@ -39828,10 +40779,13 @@ from previous Chrome versions.
<int value="-1573468162" label="ClientStorageAccessContextAuditing:enabled"/>
<int value="-1572010356" label="enable-privet-v3"/>
<int value="-1571841513" label="enable-devtools-experiments"/>
+ <int value="-1571525676" label="FilesSWA:disabled"/>
+ <int value="-1568737447" label="InsecureFormSubmissionInterstitial:enabled"/>
<int value="-1568559155" label="WebSocketHandshakeReuseConnection:enabled"/>
<int value="-1567727398" label="DesktopPWAsWithoutExtensions:disabled"/>
<int value="-1564232131"
label="OmniboxOnDeviceHeadProviderNonIncognito:enabled"/>
+ <int value="-1562065709" label="ForceEnableDevicesPage:enabled"/>
<int value="-1561360053" label="LauncherSettingsSearch:disabled"/>
<int value="-1561252720" label="AutofillCreditCardUploadFeedback:disabled"/>
<int value="-1560729847" label="AutofillCacheQueryResponses:enabled"/>
@@ -39841,13 +40795,16 @@ from previous Chrome versions.
<int value="-1557527869" label="LoadingWithMojo:disabled"/>
<int value="-1555510175" label="PasswordImport:enabled"/>
<int value="-1553477903" label="ash-disable-text-filtering-in-overview-mode"/>
+ <int value="-1553280810" label="PromoBrowserCommands:enabled"/>
<int value="-1552898031" label="SingleTabMode:enabled"/>
<int value="-1550760918" label="PipRoundedCorners:disabled"/>
+ <int value="-1550675387" label="CriticalPersistedTabData:enabled"/>
<int value="-1550541457" label="DisplayIdentification:disabled"/>
<int value="-1549871007" label="OneGoogleBarOnLocalNtp:disabled"/>
<int value="-1549356351" label="SyncPseudoUSSExtensionSettings:enabled"/>
<int value="-1547247328" label="OverrideTranslateTriggerInIndia:disabled"/>
<int value="-1546903171" label="enable-touch-drag-drop"/>
+ <int value="-1546351452" label="CrossOriginIsolated:enabled"/>
<int value="-1546029755" label="OverrideTranslateTriggerInIndia:enabled"/>
<int value="-1545595496" label="RendererSideResourceScheduler:enabled"/>
<int value="-1544248549" label="ArcUseAuthEndpoint:enabled"/>
@@ -39855,6 +40812,7 @@ from previous Chrome versions.
label="DisplayPersistenceToggleInPermissionPrompts:disabled"/>
<int value="-1541362086" label="NearbySharing:disabled"/>
<int value="-1541187160" label="UsernameFirstFlow:disabled"/>
+ <int value="-1539513973" label="ContentSettingsRedesign:disabled"/>
<int value="-1538492024" label="OmniboxReverseAnswers:enabled"/>
<int value="-1537773844"
label="ContextualSuggestionsAlternateCardLayout:disabled"/>
@@ -39864,10 +40822,14 @@ from previous Chrome versions.
<int value="-1535758690" label="AutoplayIgnoreWebAudio:disabled"/>
<int value="-1535694535" label="PageInfoPerformanceHints:enabled"/>
<int value="-1533258008" label="CalculateNativeWinOcclusion:enabled"/>
+ <int value="-1532720464" label="WellKnownChangePassword:enabled"/>
+ <int value="-1532645183" label="ReleaseNotesNotification:enabled"/>
<int value="-1532035450" label="DragTabsInTabletMode:disabled"/>
<int value="-1532014193" label="disable-encryption-migration"/>
<int value="-1530711962" label="PrivacyElevatedAndroid:disabled"/>
<int value="-1529907580" label="ImeServiceConnectable:disabled"/>
+ <int value="-1529899201" label="H264DecoderBufferIsCompleteFrame:disabled"/>
+ <int value="-1529140321" label="ReadLater:enabled"/>
<int value="-1528455406" label="OmniboxPedalSuggestions:enabled"/>
<int value="-1525129540"
label="OmniboxUIExperimentRevealSteadyStateUrlPathQueryAndRefOnHover:disabled"/>
@@ -39893,8 +40855,10 @@ from previous Chrome versions.
<int value="-1498334893" label="ExperimentalVRFeatures:enabled"/>
<int value="-1497450774" label="TreatUnsafeDownloadsAsActive:disabled"/>
<int value="-1497338981" label="disable-accelerated-overflow-scroll"/>
+ <int value="-1496106797" label="IPH_PasswordsAccountStorage:enabled"/>
<int value="-1492934655" label="TabSwitcherOnReturn:enabled"/>
<int value="-1492589689" label="ContentSuggestionsCategories:enabled"/>
+ <int value="-1492211482" label="EnableWindowsGamingInputDataFetcher:enabled"/>
<int value="-1491417046" label="enable-fullscreen-toolbar-reveal"/>
<int value="-1491304576" label="ProgressBarThrottle:disabled"/>
<int value="-1490298774" label="enable-captive-portal-bypass-proxy-option"/>
@@ -39910,6 +40874,7 @@ from previous Chrome versions.
<int value="-1480926949" label="MaterialDesignBookmarks:enabled"/>
<int value="-1480866718" label="ash-disable-login-dim-and-blur"/>
<int value="-1478876902" label="disable-permission-action-reporting"/>
+ <int value="-1478137998" label="lite-video-default-downlink-bandwidth-kbps"/>
<int value="-1477686864" label="OmniboxRichAutocompletion:enabled"/>
<int value="-1477560322" label="kiosk"/>
<int value="-1476930281" label="Windows10CustomTitlebar:enabled"/>
@@ -39948,6 +40913,7 @@ from previous Chrome versions.
<int value="-1453647118" label="PasswordLeakDetection:disabled"/>
<int value="-1451644187" label="OverviewSwipeToClose:enabled"/>
<int value="-1450576851" label="OmniboxUIExperimentVerticalLayout:enabled"/>
+ <int value="-1449590570" label="RestrictGamepadAccess:enabled"/>
<int value="-1448511207" label="UseMessagesStagingUrl:disabled"/>
<int value="-1447147245" label="VideoPlayerNativeControls:enabled"/>
<int value="-1446625028" label="CrostiniUsbAllowUnsupported:enabled"/>
@@ -39960,10 +40926,12 @@ from previous Chrome versions.
<int value="-1440440375" label="WebVrAutopresent:enabled"/>
<int value="-1440152291" label="disable-gesture-typing"/>
<int value="-1438279809" label="GamepadExtensions:disabled"/>
+ <int value="-1437526584" label="HelpAppReleaseNotes:enabled"/>
<int value="-1436251034" label="VoiceSearchOnLocalNtp:disabled"/>
<int value="-1433719718" label="enable-webrtc-stun-origin"/>
<int value="-1433452630" label="AllowRemoteContextForNotifications:enabled"/>
<int value="-1433087548" label="enable-app-install-alerts"/>
+ <int value="-1432246303" label="FilesZipPack:enabled"/>
<int value="-1431722713" label="TabFreeze:disabled"/>
<int value="-1431563697" label="WebPaymentsMethodSectionOrderV2:enabled"/>
<int value="-1430090822" label="EnableSharedImageForWebview:disabled"/>
@@ -39992,6 +40960,8 @@ from previous Chrome versions.
<int value="-1410001116"
label="EnableAmbientAuthenticationInGuestSession:disabled"/>
<int value="-1409643943" label="enable-child-account-detection"/>
+ <int value="-1408981164"
+ label="DesktopPWAsMigrationUserDisplayModeCleanUp:enabled"/>
<int value="-1408869905"
label="AutofillEnforceMinRequiredFieldsForQuery:disabled"/>
<int value="-1408370474" label="AssistantRoutines:enabled"/>
@@ -40015,6 +40985,7 @@ from previous Chrome versions.
<int value="-1388817073" label="OmniboxReverseAnswers:disabled"/>
<int value="-1386966873" label="disable-mac-views-native-app-windows"/>
<int value="-1386790338" label="ImeMozcProto:disabled"/>
+ <int value="-1386776772" label="FilesZipPack:disabled"/>
<int value="-1385221197"
label="AllowSignedHTTPExchangeCertsWithoutExtension:enabled"/>
<int value="-1384426209" label="SharingDeviceRegistration:disabled"/>
@@ -40026,11 +40997,14 @@ from previous Chrome versions.
<int value="-1376510363" label="ServiceWorkerScriptFullCodeCache:disabled"/>
<int value="-1376006534" label="WinUseBrowserSpellChecker:disabled"/>
<int value="-1375111024" label="enable-fixed-position-compositing"/>
+ <int value="-1374048865" label="CpuAffinityRestrictToLittleCores:enabled"/>
<int value="-1373942769" label="WebAuthenticationCtap2:disabled"/>
<int value="-1373705581" label="ManualSaving:enabled"/>
+ <int value="-1372926635" label="AndroidManagedByMenuItem:disabled"/>
<int value="-1371984027" label="CrostiniWebUIUpgrader:disabled"/>
<int value="-1371239786" label="EnablePasswordsAccountStorage:enabled"/>
<int value="-1370532920" label="AppServiceAsh:enabled"/>
+ <int value="-1368913664" label="TabSearch:disabled"/>
<int value="-1368499577" label="OnTheFlyMhtmlHashComputation:enabled"/>
<int value="-1365795470"
label="ServiceWorkerImportedScriptUpdateCheck:disabled"/>
@@ -40042,6 +41016,7 @@ from previous Chrome versions.
<int value="-1357778876" label="ExplicitLanguageAsk:enabled"/>
<int value="-1357655121" label="enable-iframe-based-signin"/>
<int value="-1357008397" label="ContextualSuggestionsCarousel:disabled"/>
+ <int value="-1356379431" label="GlobalMediaControlsOverlayControls:enabled"/>
<int value="-1353714232" label="FilesTransferDetails:enabled"/>
<int value="-1353195918" label="UseSkiaRenderer:enabled"/>
<int value="-1351968795" label="SingleProcessMash:enabled"/>
@@ -40053,6 +41028,7 @@ from previous Chrome versions.
<int value="-1349826793" label="ArcInputMethod:disabled"/>
<int value="-1349532167" label="enable-wifi-credential-sync"/>
<int value="-1346722635" label="gesture-selection"/>
+ <int value="-1345931804" label="TabbedAppOverflowMenuIcons:disabled"/>
<int value="-1344375439" label="ServiceWorkerPaymentApps:disabled"/>
<int value="-1343259222" label="RegionalLocalesAsDisplayUI:disabled"/>
<int value="-1342961844" label="InlineUpdateFlow:disabled"/>
@@ -40077,6 +41053,9 @@ from previous Chrome versions.
<int value="-1324634193" label="EnablePalmOnMaxTouchMajor:disabled"/>
<int value="-1324029365" label="EnableTLS13EarlyData:enabled"/>
<int value="-1322882747" label="disable-datasaver-prompt"/>
+ <int value="-1321640296"
+ label="AutofillDownstreamCvcPromptUseGooglePayLogo:enabled"/>
+ <int value="-1320181781" label="ChromeOSDirectVideoDecoder:disabled"/>
<int value="-1319688939" label="ignore-gpu-blacklist"/>
<int value="-1318914924" label="OverflowIconsForMediaControls:enabled"/>
<int value="-1316769004" label="CrossOriginOpenerPolicyReporting:disabled"/>
@@ -40090,6 +41069,7 @@ from previous Chrome versions.
label="AutofillSaveCreditCardUsesImprovedMessaging:enabled"/>
<int value="-1309066678" label="ServiceWorkerOnUI:enabled"/>
<int value="-1308600417" label="NewNetErrorPageUI:disabled"/>
+ <int value="-1308184869" label="MediaFeedsBackgroundFetching:enabled"/>
<int value="-1304957199" label="OfflinePagesShowAlternateDinoPage:enabled"/>
<int value="-1304758527" label="SyncSendTabToSelf:disabled"/>
<int value="-1302904242" label="enable-navigation-tracing"/>
@@ -40117,6 +41097,7 @@ from previous Chrome versions.
<int value="-1278796760" label="QueryInOmnibox:enabled"/>
<int value="-1276912933" label="enable-quick-unlock-pin"/>
<int value="-1276579737" label="PictureInPictureAPI:disabled"/>
+ <int value="-1275552094" label="SpectreVariant2Mitigation:disabled"/>
<int value="-1274502866" label="AllowDisableMouseAcceleration:enabled"/>
<int value="-1272593346" label="NewTabLoadingAnimation:disabled"/>
<int value="-1271563519" label="enable-appcontainer"/>
@@ -40141,6 +41122,7 @@ from previous Chrome versions.
<int value="-1255427595" label="HomePageButtonForceEnabled:enabled"/>
<int value="-1254640444"
label="OmniboxEnableClipboardProviderTextSuggestions:disabled"/>
+ <int value="-1254221389" label="AssistantBetterOnboarding:enabled"/>
<int value="-1254070521" label="enable-slimming-paint-invalidation"/>
<int value="-1253608371" label="IncognitoStrings:disabled"/>
<int value="-1252976780" label="ShillSandboxing:disabled"/>
@@ -40212,6 +41194,7 @@ from previous Chrome versions.
<int value="-1195194959" label="XGEOVisibleNetworks:disabled"/>
<int value="-1191258368" label="PageInfoPerformanceHints:disabled"/>
<int value="-1190174011" label="enable-hdr"/>
+ <int value="-1186760297" label="ForceSpectreVariant2Mitigation:disabled"/>
<int value="-1185477291" label="ImeDecoderWithSandbox:enabled"/>
<int value="-1184904651" label="enable-npapi"/>
<int value="-1184480269" label="LsdPermissionPrompt:enabled"/>
@@ -40255,6 +41238,9 @@ from previous Chrome versions.
<int value="-1153892430"
label="AlignFontDisplayAutoTimeoutWithLCPGoal:enabled"/>
<int value="-1151766565" label="enable-fullscreen-tab-detaching"/>
+ <int value="-1150881704"
+ label="ArcNativeBridge64BitSupportExperiment:enabled"/>
+ <int value="-1146814438" label="TabbedAppOverflowMenuIcons:enabled"/>
<int value="-1145905507" label="SendTabToSelfWhenSignedIn:disabled"/>
<int value="-1145702446" label="ChromeHomeInactivitySheetExpansion:enabled"/>
<int value="-1145246849" label="ThirdPartyDoodles:enabled"/>
@@ -40269,6 +41255,7 @@ from previous Chrome versions.
<int value="-1137442543" label="enable-slimming-paint"/>
<int value="-1136627751" label="ignore-autocomplete-off-autofill"/>
<int value="-1136509631" label="ssl-interstitial-v1"/>
+ <int value="-1134420065" label="CriticalPersistedTabData:disabled"/>
<int value="-1134307340" label="stop-loading-in-background:enabled"/>
<int value="-1132704128" label="AndroidPaymentAppsFilter:disabled"/>
<int value="-1128912963" label="MediaControlsExpandGesture:disabled"/>
@@ -40293,6 +41280,7 @@ from previous Chrome versions.
<int value="-1107762575" label="enable-data-reduction-proxy-config-client"/>
<int value="-1107103335" label="FsNosymfollow:enabled"/>
<int value="-1105637876" label="FilteringScrollPrediction:enabled"/>
+ <int value="-1104914981" label="frame-throttle-fps"/>
<int value="-1103099187" label="NotificationStackingBarRedesign:disabled"/>
<int value="-1102212525" label="enable-tcp-fastopen"/>
<int value="-1101334831" label="SyncSupportTrustedVaultPassphrase:disabled"/>
@@ -40312,10 +41300,13 @@ from previous Chrome versions.
<int value="-1083736482" label="OmniboxCompactSuggestions:enabled"/>
<int value="-1083547717" label="NotificationExpansionAnimation:disabled"/>
<int value="-1082302549" label="scan-cards-in-web-payments"/>
+ <int value="-1082053427"
+ label="OmniboxUIExperimentElideToRegistrableDomain:disabled"/>
<int value="-1081295536"
label="ContextMenuSearchAndShopWithGoogleLens:enabled"/>
<int value="-1078093206" label="ash-debug-shortcuts"/>
<int value="-1077752943" label="enable-password-generation"/>
+ <int value="-1077534880" label="OmniboxDynamicMaxAutocomplete:enabled"/>
<int value="-1075156797" label="enable-brotli"/>
<int value="-1075089382" label="enable-physical-web"/>
<int value="-1074257709" label="ScalableAppList:enabled"/>
@@ -40324,10 +41315,13 @@ from previous Chrome versions.
<int value="-1069628248" label="OmniboxZeroSuggestionsOnSERP:enabled"/>
<int value="-1069453905" label="CCTModuleUseIntentExtras:disabled"/>
<int value="-1067635248" label="SpeculativeResourcePrefetching:disabled"/>
+ <int value="-1065227777" label="CrOSAutoSelect:disabled"/>
<int value="-1064733740" label="ui-show-composited-layer-borders"/>
<int value="-1064302126"
label="OmniboxAlternateMatchDescriptionSeparator:enabled"/>
<int value="-1062119671" label="enable-password-force-saving"/>
+ <int value="-1061203892" label="VideoToolboxVp9Decoding:disabled"/>
+ <int value="-1060541241" label="ForcePreferredIntervalForVideo:enabled"/>
<int value="-1060395248" label="PasswordSearchMobile:enabled"/>
<int value="-1056860259"
label="OmniboxEnableClipboardProviderImageSuggestions:enabled"/>
@@ -40366,6 +41360,7 @@ from previous Chrome versions.
<int value="-1027254093" label="LockScreenNotifications:disabled"/>
<int value="-1027124889" label="NtlmV2Enabled:enabled"/>
<int value="-1026192558" label="OopRasterizationDDL:enabled"/>
+ <int value="-1025125875" label="AssistantTimersV2:disabled"/>
<int value="-1022971520" label="enable-search-button-in-omnibox-for-str"/>
<int value="-1022165708" label="BreakingNewsPush:disabled"/>
<int value="-1021097344" label="PolicyAtomicGroup:disabled"/>
@@ -40473,6 +41468,7 @@ from previous Chrome versions.
<int value="-913294939" label="DriveFS:enabled"/>
<int value="-912456561" label="MidiManagerWinrt:enabled"/>
<int value="-910452816" label="ChromeOSParentalControlsSettings:disabled"/>
+ <int value="-909905655" label="AllowAllSitesToInitiateMirroring:disabled"/>
<int value="-909351661" label="OmniboxOnFocusSuggestions:disabled"/>
<int value="-908421850" label="PointerEvent:enabled"/>
<int value="-907234795" label="NewAudioRenderingMixingStrategy:disabled"/>
@@ -40490,6 +41486,7 @@ from previous Chrome versions.
label="kAutofillRationalizeRepeatedServerPredictions:disabled"/>
<int value="-894214299" label="fill-on-account-select:enabled"/>
<int value="-894185031" label="HighDynamicRange:disabled"/>
+ <int value="-893673593" label="BentoOffline:disabled"/>
<int value="-892428689" label="ManualPasswordGenerationAndroid:enabled"/>
<int value="-891856063" label="MidiManagerAndroid:enabled"/>
<int value="-889670978" label="AssistantRoutines:disabled"/>
@@ -40497,6 +41494,7 @@ from previous Chrome versions.
<int value="-886912558" label="ChromeHomePromo:enabled"/>
<int value="-886898803" label="CooperativeScheduling:enabled"/>
<int value="-885601782" label="enable-contextual-search"/>
+ <int value="-885209667" label="FilesZipMount:disabled"/>
<int value="-884864731" label="WebPaymentsSingleAppUiSkip:enabled"/>
<int value="-883694393" label="SyncPseudoUSSSupervisedUsers:disabled"/>
<int value="-883608641" label="enable-cros-action-recorder"/>
@@ -40506,6 +41504,7 @@ from previous Chrome versions.
<int value="-880201293" label="OmniboxAssistantVoiceSearch:disabled"/>
<int value="-879055117" label="ClipboardContentSetting:enabled"/>
<int value="-879031960" label="FetchKeepaliveTimeoutSetting:disabled"/>
+ <int value="-876773120" label="TabbedAppOverflowMenuActionBar:enabled"/>
<int value="-876148583" label="ArcBootCompletedBroadcast:disabled"/>
<int value="-875217114"
label="OmniboxEnableClipboardProviderTextSuggestions:enabled"/>
@@ -40536,7 +41535,6 @@ from previous Chrome versions.
<int value="-850821337" label="WebContentsForceDark:enabled"/>
<int value="-848691867" label="DesktopPWAWindowing:enabled"/>
<int value="-847216521" label="ChromeDuplex:enabled"/>
- <int value="-847200849" label="EnableHighResolutionMouseScrolling:enabled"/>
<int value="-844537521" label="HttpFormWarning:disabled"/>
<int value="-844381918" label="ArcNativeBridgeExperiment:disabled"/>
<int value="-843496368" label="AutofillRejectCompanyBirthyear:disabled"/>
@@ -40549,11 +41547,13 @@ from previous Chrome versions.
<int value="-835331907" label="TabOutlinesInLowContrastThemes:disabled"/>
<int value="-835242361" label="OmniboxAdaptiveSuggestionsCount:enabled"/>
<int value="-834661509" label="ModalPermissionPrompts:disabled"/>
+ <int value="-832780530" label="SecurePaymentConfirmationDebug:enabled"/>
<int value="-832561975" label="enable-picture-in-picture"/>
<int value="-825942229" label="tab-management-experiment-type-elderberry"/>
<int value="-824199802" label="ContextualSearchSimplifiedServer:enabled"/>
<int value="-823394398" label="TargetEmbeddingLookalikes:enabled"/>
<int value="-823165021" label="MaterialDesignUserMenu:enabled"/>
+ <int value="-821635312" label="EyeDropper:enabled"/>
<int value="-820041355" label="enable-transition-compositing"/>
<int value="-816984237" label="OfflinePagesAsyncDownload:enabled"/>
<int value="-816895294" label="DiscoverApp:disabled"/>
@@ -40569,6 +41569,7 @@ from previous Chrome versions.
<int value="-806480547" label="SyncDeviceInfoInTransportMode:enabled"/>
<int value="-805480822" label="RemoteCopyImageNotification:disabled"/>
<int value="-803233334" label="AutofillRefreshStyleAndroid:disabled"/>
+ <int value="-803206774" label="TabbedAppOverflowMenuActionBar:disabled"/>
<int value="-802348444" label="disable-site-engagement-service"/>
<int value="-799931058" label="UseMultiloginEndpoint:disabled"/>
<int value="-798187384" label="try-supported-channel-layouts"/>
@@ -40605,6 +41606,7 @@ from previous Chrome versions.
<int value="-763640405" label="WebXRARModule:enabled"/>
<int value="-762738927" label="LogJsConsoleMessages:enabled"/>
<int value="-762687134" label="ExperimentalCrostiniUI:enabled"/>
+ <int value="-762541013" label="enable-bluetooth-spp-in-serial-api"/>
<int value="-759830869" label="enable-tab-discarding"/>
<int value="-758999727" label="ContentIndexingNTP:disabled"/>
<int value="-758917191" label="AccountIdMigration:enabled"/>
@@ -40618,7 +41620,9 @@ from previous Chrome versions.
<int value="-749048160" label="enable-panels"/>
<int value="-748571227"
label="AssistantEnableMediaSessionIntegration:enabled"/>
+ <int value="-747919789" label="VideoToolboxVp9Decoding:enabled"/>
<int value="-747463111" label="ContentSuggestionsNotifications:disabled"/>
+ <int value="-747072690" label="NtpRepeatableQueries:disabled"/>
<int value="-746328467" label="ExpensiveBackgroundTimerThrottling:disabled"/>
<int value="-745082968" label="SyncDeviceInfoInTransportMode:disabled"/>
<int value="-744159181" label="disable-spdy-proxy-dev-auth-origin"/>
@@ -40764,10 +41768,13 @@ from previous Chrome versions.
<int value="-593536514" label="ExperimentalTabController:enabled"/>
<int value="-591874964" label="LiteVideo:enabled"/>
<int value="-589096918" label="ash-enable-fullscreen-app-list"/>
+ <int value="-588669613"
+ label="OmniboxClobberIsZeroSuggestEntrypoint:enabled"/>
<int value="-582870536" label="BluetoothNextHandsfreeProfile:enabled"/>
<int value="-579192400" label="disable-input-view"/>
<int value="-577982497" label="CupsPrintersUiOverhaul:enabled"/>
<int value="-574354898" label="PostQuantumCECPQ2:enabled"/>
+ <int value="-574000901" label="AVIF:enabled"/>
<int value="-572112724" label="DialogTouchBar:disabled"/>
<int value="-572012175" label="AssistantEnableStereoAudioInput:disabled"/>
<int value="-571236436" label="AppManagement:disabled"/>
@@ -40794,6 +41801,8 @@ from previous Chrome versions.
<int value="-538141684" label="SafetyTip:enabled"/>
<int value="-536289234" label="ssl-interstitial-v2-colorful"/>
<int value="-536230323" label="SingleClickAutofill:disabled"/>
+ <int value="-536003711"
+ label="OmniboxClobberTriggersContextualWebZeroSuggest:enabled"/>
<int value="-535662704" label="BundledConnectionHelp:enabled"/>
<int value="-535208779" label="enable-native-cups"/>
<int value="-534470003" label="OmniboxOnDeviceHeadProviderIncognito:enabled"/>
@@ -40814,6 +41823,7 @@ from previous Chrome versions.
<int value="-520221221" label="UserDataSnapshot:enabled"/>
<int value="-520004021" label="WebXRHitTest:disabled"/>
<int value="-519960638" label="enable-site-engagement-service"/>
+ <int value="-519844731" label="SignInProfileCreationFlow:enabled"/>
<int value="-518104091" label="NewAudioRenderingMixingStrategy:enabled"/>
<int value="-516845951" label="enable-embedded-extension-options"/>
<int value="-515913489" label="EphemeralTabUsingBottomSheet:disabled"/>
@@ -40849,8 +41859,8 @@ from previous Chrome versions.
<int value="-491546546" label="MeteredShowToggle:enabled"/>
<int value="-491131428" label="OmniboxNewAnswerLayout:disabled"/>
<int value="-488779992" label="blink-settings"/>
+ <int value="-488744544" label="PromoBrowserCommands:disabled"/>
<int value="-488449930" label="SafetyCheckAndroid:enabled"/>
- <int value="-483290305" label="WebUITabStripDemoOptions:enabled"/>
<int value="-482494879"
label="OmniboxHistoryQuickProviderAllowMidwordContinuations:disabled"/>
<int value="-482259889" label="MacMDDownloadShelf:disabled"/>
@@ -40863,6 +41873,7 @@ from previous Chrome versions.
<int value="-474806100" label="DataReductionProxyMainMenu:enabled"/>
<int value="-474322576" label="disable-quick-unlock-pin"/>
<int value="-473087416" label="DragTabsInTabletMode:enabled"/>
+ <int value="-473052940" label="ContextualSearchLegacyHttpPolicy:enabled"/>
<int value="-472477695" label="AutofillSaveCardImprovedUserConsent:enabled"/>
<int value="-472014137" label="HomepageTile:disabled"/>
<int value="-472013317" label="WebRTC-H264WithOpenH264FFmpeg:disabled"/>
@@ -40883,6 +41894,7 @@ from previous Chrome versions.
<int value="-460702745" label="ExportTaggedPDF:disabled"/>
<int value="-460313418" label="ProgressBarThrottle:enabled"/>
<int value="-460081932" label="CustomFeedbackUi:disabled"/>
+ <int value="-459318667" label="AccessiblePDFForm:enabled"/>
<int value="-457292000" label="HappinessTrackingSurveysForDesktop:enabled"/>
<int value="-457174225" label="Av1Decoder:enabled"/>
<int value="-456321929" label="ForceEnableSystemAec:disabled"/>
@@ -40892,6 +41904,7 @@ from previous Chrome versions.
label="AutofillSaveCreditCardUsesImprovedMessaging:disabled"/>
<int value="-449465495" label="disable-browser-task-scheduler"/>
<int value="-446560063" label="finch-seed-min-update-period"/>
+ <int value="-446220201" label="EnableIncognitoShortcutOnDesktop:enabled"/>
<int value="-444867364" label="Metal:enabled"/>
<int value="-442352394" label="IframeOneGoogleBar:disabled"/>
<int value="-438379844" label="SwapSideVolumeButtonsForOrientation:enabled"/>
@@ -40899,6 +41912,7 @@ from previous Chrome versions.
<int value="-435914745" label="ClipboardContentSetting:disabled"/>
<int value="-433879402"
label="EnableAmbientAuthenticationInIncognito:disabled"/>
+ <int value="-432612065" label="AImageReader:enabled"/>
<int value="-430369215" label="AssistPersonalInfo:disabled"/>
<int value="-430360431" label="disable-password-generation"/>
<int value="-428599163" label="NTPDownloadSuggestions:enabled"/>
@@ -40925,16 +41939,20 @@ from previous Chrome versions.
<int value="-400584764" label="ChromeHomeNtpRedesign:enabled"/>
<int value="-400572959" label="UseDownloadOfflineContentProvider:enabled"/>
<int value="-400098787" label="QuietNotificationPrompts:enabled"/>
+ <int value="-399333540" label="FiltersInRecents:disabled"/>
<int value="-398922143" label="IframeOneGoogleBar:enabled"/>
<int value="-398623652" label="CCTTargetTranslateLanguage:enabled"/>
+ <int value="-397959190" label="ClipboardHistory:enabled"/>
<int value="-397392156" label="FtpProtocol:disabled"/>
<int value="-396994784" label="enable-vr-shell"/>
<int value="-396496344" label="ViewsTaskManager:enabled"/>
<int value="-396046249" label="PhotoPickerVideoSupport:enabled"/>
<int value="-395606844" label="enable-site-settings"/>
<int value="-395454065" label="DisablePostScriptPrinting:disabled"/>
+ <int value="-394734604" label="FillingPasswordsFromAnyOrigin:disabled"/>
<int value="-389664522"
label="OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRefOnInteraction:enabled"/>
+ <int value="-389283574" label="IPH_PasswordsAccountStorage:disabled"/>
<int value="-387606010" label="ArcBootCompletedBroadcast:enabled"/>
<int value="-386971711" label="ChromeSharingHubV15:disabled"/>
<int value="-385337473" label="enable-fast-unload"/>
@@ -40978,6 +41996,8 @@ from previous Chrome versions.
<int value="-345838366" label="enable-hosted-apps-in-windows"/>
<int value="-345324571" label="enable-quirks-client"/>
<int value="-345181892" label="new-tab-button-position"/>
+ <int value="-344357771"
+ label="WebAuthenticationCrosPlatformAuthenticator:enabled"/>
<int value="-344343842" label="disable-experimental-app-list"/>
<int value="-343769596" label="ServiceWorkerScriptStreaming:disabled"/>
<int value="-342421456" label="EnableOverviewRoundedCorners:disabled"/>
@@ -40993,6 +42013,7 @@ from previous Chrome versions.
<int value="-328361990" label="enable-experimental-extension-apis"/>
<int value="-327272022" label="AutofillRejectCompanyBirthyearName:enabled"/>
<int value="-326083626" label="AppBanners:disabled"/>
+ <int value="-325271559" label="NtpRepeatableQueries:enabled"/>
<int value="-324786035"
label="EnableAmbientAuthenticationInGuestSession:enabled"/>
<int value="-323831744" label="token-binding:enabled"/>
@@ -41008,9 +42029,11 @@ from previous Chrome versions.
<int value="-315333837" label="AutofillEnableCardNicknameUpstream:enabled"/>
<int value="-314910380" label="disable-distance-field-text"/>
<int value="-314605926" label="protect-sync-credential-on-reauth:enabled"/>
+ <int value="-313812707" label="VideoTutorials:disabled"/>
<int value="-311148335" label="v8-pac-mojo-out-of-process"/>
<int value="-310908854" label="new-wallpaper-picker"/>
<int value="-310615515" label="EnableSuggestedFiles:disabled"/>
+ <int value="-308793293" label="WebShare:disabled"/>
<int value="-307260007" label="ExtensionsCheckup:disabled"/>
<int value="-306935714" label="lite-video-force-override-decision"/>
<int value="-304951461" label="TextSuggestionsTouchBar:enabled"/>
@@ -41045,17 +42068,23 @@ from previous Chrome versions.
<int value="-275164173" label="QuickUnlockPinSignin:enabled"/>
<int value="-273821346"
label="MaintainShelfStateWhenEnteringOverview:disabled"/>
+ <int value="-273570157" label="EnableBloom:enabled"/>
<int value="-271790049" label="ArcUsbHost:enabled"/>
<int value="-271084069" label="ClickToCallUI:enabled"/>
<int value="-270626757" label="log-net-log"/>
<int value="-270261701" label="WebRtcEnableCaptureMultiChannelApm:disabled"/>
+ <int value="-269440655"
+ label="AutofillDownstreamCvcPromptUseGooglePayLogo:disabled"/>
+ <int value="-268897347" label="DisableCameraFrameRotationAtSource:disabled"/>
<int value="-268549184"
label="AutofillSaveCreditCardUsesStrikeSystemV2:enabled"/>
<int value="-268357961" label="enable-feature-policy"/>
+ <int value="-265697837" label="PhoneHub:disabled"/>
<int value="-263150202" label="BundledConnectionHelp:disabled"/>
<int value="-262122630" label="ArcEnableDocumentsProviderInFilesApp:enabled"/>
<int value="-258081634" label="AutofillAssistantDirectActions:disabled"/>
<int value="-257478609" label="TextfieldFocusOnTapUp:enabled"/>
+ <int value="-256940675" label="HelpAppSearchServiceIntegration:disabled"/>
<int value="-255264176" label="OmniboxSearchEngineLogo:disabled"/>
<int value="-254887599" label="google-profile-info"/>
<int value="-254158542" label="SubresourceRedirectPreviews:enabled"/>
@@ -41076,11 +42105,14 @@ from previous Chrome versions.
<int value="-234231190" label="SharingDeviceRegistration:enabled"/>
<int value="-231967261" label="AutofillUpdatedCardUnmaskPromptUi:disabled"/>
<int value="-231922000" label="enable-renderer-mojo-channel"/>
+ <int value="-231642350" label="EnableWindowsGamingInputDataFetcher:disabled"/>
<int value="-231426350" label="AutofillEnableToolbarStatusChip:enabled"/>
<int value="-230824955" label="NTPMostLikelyFaviconsFromServer:enabled"/>
<int value="-225505731" label="CCTModule:enabled"/>
+ <int value="-225228149" label="ContentSettingsRedesign:enabled"/>
<int value="-222296540" label="VirtualKeyboardBorderedKey:disabled"/>
<int value="-220599034" label="UsePdfCompositorServiceForPrint:enabled"/>
+ <int value="-217885320" label="CdmFactoryDaemon:disabled"/>
<int value="-216219963" label="ash-shelf-color-scheme"/>
<int value="-215580565"
label="OmniboxEnableClipboardProviderImageSuggestions:disabled"/>
@@ -41093,6 +42125,7 @@ from previous Chrome versions.
<int value="-204355195" label="secondary-ui-md"/>
<int value="-203968600" label="SyncSupportSecondaryAccount:disabled"/>
<int value="-202007318" label="AndroidAIAFetching:enabled"/>
+ <int value="-201633741" label="DisplayAlignAssist:enabled"/>
<int value="-200805659" label="ContextualSuggestionsButton:enabled"/>
<int value="-199690952" label="PageInfoV2:enabled"/>
<int value="-196110497" label="force-text-direction"/>
@@ -41110,6 +42143,7 @@ from previous Chrome versions.
label="AutofillEnforceMinRequiredFieldsForHeuristics:enabled"/>
<int value="-181279574" label="NativeFilesystemAPI:enabled"/>
<int value="-181093956" label="ScrollAnchoring:enabled"/>
+ <int value="-180658998" label="ReadLater:disabled"/>
<int value="-180481252" label="CompositorThreadedScrollbarScrolling:enabled"/>
<int value="-179580377" label="CrossOriginOpenerPolicy:enabled"/>
<int value="-178364053" label="TerminalSystemAppLegacySettings:enabled"/>
@@ -41120,6 +42154,7 @@ from previous Chrome versions.
label="WebPaymentsPerMethodCanMakePaymentQuota:enabled"/>
<int value="-174564579"
label="ServiceWorkerImportedScriptUpdateCheck:enabled"/>
+ <int value="-174425466" label="ContextualSearchLegacyHttpPolicy:disabled"/>
<int value="-174319545" label="BulkPrinters:enabled"/>
<int value="-173268856" label="GesturePropertiesDBusService"/>
<int value="-171232290" label="ListAllDisplayModes:disabled"/>
@@ -41153,6 +42188,7 @@ from previous Chrome versions.
<int value="-138773929" label="PassiveDocumentEventListeners:enabled"/>
<int value="-138760381" label="AutofillManualFallbackAndroid:enabled"/>
<int value="-137303226" label="enable-chromevox-developer-option"/>
+ <int value="-136485076" label="NtpModules:disabled"/>
<int value="-135584721"
label="OmniboxUIExperimentBoldUserTextOnSearchSuggestions:disabled"/>
<int value="-135584175" label="EnableAggregatedMlAppRanking:enabled"/>
@@ -41164,6 +42200,7 @@ from previous Chrome versions.
label="OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRef:disabled"/>
<int value="-127666141" label="TabGroups:disabled"/>
<int value="-127231994" label="VrBrowsingNativeAndroidUi:disabled"/>
+ <int value="-124604792" label="LanguageSettingsUpdate:enabled"/>
<int value="-122492389" label="enable-browser-task-scheduler"/>
<int value="-120521482" label="DirectManipulationStylus:enabled"/>
<int value="-120091289" label="CrostiniAppSearch:enabled"/>
@@ -41203,6 +42240,7 @@ from previous Chrome versions.
<int value="-86243376" label="LayoutNG:enabled"/>
<int value="-85706353" label="VirtualDesksGestures:enabled"/>
<int value="-82530769" label="WebXRPlaneDetection:enabled"/>
+ <int value="-82266557" label="SafeBrowsingSecuritySectionUIAndroid:disabled"/>
<int value="-80501013" label="AutofillOffNoServerData:enabled"/>
<int value="-80353187" label="disable-display-color-calibration"/>
<int value="-79327236" label="ModeSpecificPowerButton:enabled"/>
@@ -41248,10 +42286,10 @@ from previous Chrome versions.
<int value="-45074716" label="SystemDownloadManager:disabled"/>
<int value="-45067971" label="NewPrintPreview:disabled"/>
<int value="-43428597" label="ClickToCallDetectionV2:enabled"/>
- <int value="-41672681" label="WebUITabStripDemoOptions:disabled"/>
<int value="-40935502" label="ContextualSuggestionsSlimPeekUI:enabled"/>
<int value="-36503306" label="HomepageLocationPolicy:enabled"/>
<int value="-36234530" label="PluginVmShowMicrophonePermissions:enabled"/>
+ <int value="-35745997" label="TabSearch:enabled"/>
<int value="-35388407" label="AshNewSystemMenu:disabled"/>
<int value="-31444029" label="MediaInspectorLogging:disabled"/>
<int value="-30966385" label="enable-hardware-overlays"/>
@@ -41333,6 +42371,7 @@ from previous Chrome versions.
<int value="44240181" label="SharingQRCodeGenerator:disabled"/>
<int value="48159177" label="reduced-referrer-granularity"/>
<int value="51793504" label="protect-sync-credential-on-reauth:disabled"/>
+ <int value="52150780" label="OsSettingsPolymer3:disabled"/>
<int value="52368742" label="enable-pixel-canvas-recording:disabled"/>
<int value="54258707" label="NewTabstripAnimation:enabled"/>
<int value="54571864" label="EnableDisplayZoomSetting:enabled"/>
@@ -41356,6 +42395,7 @@ from previous Chrome versions.
<int value="64942701" label="OfflinePagesSvelteConcurrentLoading:disabled"/>
<int value="66897259" label="ModalPermissionDialogView:enabled"/>
<int value="67639499" label="stop-loading-in-background:disabled"/>
+ <int value="73436710" label="EditPasswordsInDesktopSettings:disabled"/>
<int value="73929836" label="VrBrowsingInCustomTab:enabled"/>
<int value="75207621" label="enable-stylus-virtual-keyboard:enabled"/>
<int value="75237697" label="ash-enable-new-overview-ui"/>
@@ -41390,6 +42430,7 @@ from previous Chrome versions.
<int value="110888614" label="ReduceDisplayNotifications:enabled"/>
<int value="112140177" label="DesktopPWAsUnifiedInstall:disabled"/>
<int value="114541256" label="HomepagePromoCard:disabled"/>
+ <int value="114657517" label="SecurePaymentConfirmationDebug:disabled"/>
<int value="115915570"
label="OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRef:enabled"/>
<int value="116287989"
@@ -41440,6 +42481,7 @@ from previous Chrome versions.
<int value="173339199" label="SmsReceiverCrossDevice:disabled"/>
<int value="174759256" label="LockScreenMediaControls:enabled"/>
<int value="174917935" label="ReengagementNotification:disabled"/>
+ <int value="175254474" label="SpectreVariant2Mitigation:enabled"/>
<int value="178337215" label="enable-md-history"/>
<int value="178693406" label="LockScreenMediaControls:disabled"/>
<int value="180074362" label="memory-pressure-thresholds"/>
@@ -41452,6 +42494,7 @@ from previous Chrome versions.
<int value="189777537" label="DisableInitialMostVisitedFadeIn:enabled"/>
<int value="191737931" label="enable-mark-http-as"/>
<int value="192167036" label="LogJsConsoleMessages:disabled"/>
+ <int value="192320180" label="ignore-gpu-blocklist"/>
<int value="194573877" label="MacViewsNativeDialogs:disabled"/>
<int value="194895489" label="passive-listeners-default"/>
<int value="195335115" label="AudioWorkletRealtimeThread:disabled"/>
@@ -41505,10 +42548,12 @@ from previous Chrome versions.
<int value="272631627" label="BookmarkAppsMac:enabled"/>
<int value="273489120" label="CrostiniDiskResizing:disabled"/>
<int value="274103741" label="enable-ntp-popular-sites"/>
+ <int value="277483398" label="ClipboardHistory:disabled"/>
<int value="277565405" label="ContextualSearchDefinitions:disabled"/>
<int value="278756320" label="disable-app-list-app-info"/>
<int value="280644887" label="mash"/>
<int value="280925459" label="LiveCaption:disabled"/>
+ <int value="282582564" label="DisableCameraFrameRotationAtSource:enabled"/>
<int value="282636212" label="VideoPlayerNativeControls:disabled"/>
<int value="283182071" label="SecurityInterstitialsDarkMode:enabled"/>
<int value="283232244" label="OmniboxUIExperimentNarrowDropdown:enabled"/>
@@ -41523,6 +42568,7 @@ from previous Chrome versions.
<int value="291866104" label="WebAuthenticationPhoneSupport:enabled"/>
<int value="291968978" label="HomepagePromoCard:enabled"/>
<int value="292560715" label="ViewsCastDialog:disabled"/>
+ <int value="292731264" label="PasswordChangeInSettings:disabled"/>
<int value="293134455" label="AutofillSendBillingCustomerNumber:disabled"/>
<int value="293996306" label="ArrayPrototypeValues:disabled"/>
<int value="295661985" label="video-capture-use-gpu-memory-buffer"/>
@@ -41565,6 +42611,7 @@ from previous Chrome versions.
<int value="328722396" label="NTPCondensedLayout:disabled"/>
<int value="330138076" label="enable-clear-browsing-data-counters"/>
<int value="330439654" label="SyncPseudoUSSExtensions:enabled"/>
+ <int value="330653520" label="ChromeShareHighlightsAndroid:enabled"/>
<int value="331770879" label="CrostiniAppSearch:disabled"/>
<int value="332391072" label="cs-contextual-cards-bar-integration"/>
<int value="334802038" label="OfflinePreviews:disabled"/>
@@ -41578,6 +42625,8 @@ from previous Chrome versions.
<int value="342431487" label="VizForWebView:enabled"/>
<int value="342960463" label="SharingQRCodeGenerator:enabled"/>
<int value="343445783" label="AllowScrollSettings:enabled"/>
+ <int value="345611669"
+ label="OmniboxLocalZeroSuggestFrecencyRanking:enabled"/>
<int value="345664265" label="BlinkHeapIncrementalMarking:disabled"/>
<int value="346711293" label="enable-save-password-bubble"/>
<int value="347981012" label="TabToGTSAnimation:disabled"/>
@@ -41613,6 +42662,7 @@ from previous Chrome versions.
<int value="373177941" label="DockedMagnifier:enabled"/>
<int value="373193557" label="LongPressBackNewDesign:enabled"/>
<int value="373275338" label="AndroidPartnerCustomizationPhenotype:disabled"/>
+ <int value="373578344" label="SafeBrowsingSecuritySectionUIAndroid:enabled"/>
<int value="375485858" label="EnableZeroStateMixedTypesRanker:disabled"/>
<int value="375785554" label="UserActivationV2:disabled"/>
<int value="375934458" label="PortalsCrossOrigin:enabled"/>
@@ -41634,6 +42684,7 @@ from previous Chrome versions.
<int value="393704200" label="account-consistency"/>
<int value="398903399" label="GenericSensorExtraClasses:disabled"/>
<int value="399039205" label="enable-webrtc-hw-vp9-encoding"/>
+ <int value="399177140" label="FillingPasswordsFromAnyOrigin:enabled"/>
<int value="399398207"
label="OmniboxUIExperimentVerticalMarginLimitToNonTouchOnly:enabled"/>
<int value="400272381" label="LazyFrameLoading:disabled"/>
@@ -41650,6 +42701,7 @@ from previous Chrome versions.
<int value="413081240" label="enable-new-md-input-view"/>
<int value="413695227" label="NTPSuggestionsStandaloneUI:enabled"/>
<int value="414114078" label="LitePageServerPreviews:disabled"/>
+ <int value="414937629" label="MediaNotificationsCounter:enabled"/>
<int value="415154056" label="enable-physical-keyboard-autocorrect"/>
<int value="415395210" label="TrimOnMemoryPressure:enabled"/>
<int value="416691040" label="SendTabToSelfOmniboxSendingAnimation:disabled"/>
@@ -41672,6 +42724,7 @@ from previous Chrome versions.
label="HappinessTrackingSurveysForDesktopMigration:disabled"/>
<int value="436682243" label="TabGroupsAndroid:disabled"/>
<int value="439525862" label="GlobalMediaControlsForCast:disabled"/>
+ <int value="444411390" label="enable-incognito-shortcut-on-desktop"/>
<int value="444754854" label="LegacyTLSWarnings:disabled"/>
<int value="446316019" label="enable-threaded-compositing"/>
<int value="448463569" label="NewShortcutMapping:disabled"/>
@@ -41712,15 +42765,21 @@ from previous Chrome versions.
<int value="480677983" label="WebXRARDOMOverlay:disabled"/>
<int value="481506759" label="ServiceWorkerScriptStreaming:enabled"/>
<int value="482232604" label="PercentBasedScrolling:enabled"/>
+ <int value="482429100"
+ label="OmniboxClobberIsZeroSuggestEntrypoint:disabled"/>
<int value="485957747" label="finch-seed-ignore-pending-download"/>
<int value="487810392" label="EnablePalmOnToolTypePalm:enabled"/>
<int value="491334698" label="ConditionalTabStripAndroid:enabled"/>
<int value="492113129" label="ExperimentalAppBanners:enabled"/>
<int value="492985975" label="use-monitor-color-space"/>
+ <int value="493758709" label="RestrictGamepadAccess:disabled"/>
<int value="493903641" label="disable-appcontainer"/>
<int value="494733611" label="disable-drop-sync-credential"/>
+ <int value="494939785" label="InsecureFormSubmissionInterstitial:disabled"/>
<int value="497137719" label="OmniboxVoiceSearchAlwaysVisible:disabled"/>
<int value="500177932" label="ArcSmartTextSelection:disabled"/>
+ <int value="500947367"
+ label="WebAuthenticationCrosPlatformAuthenticator:disabled"/>
<int value="501477022" label="DrawOcclusion:enabled"/>
<int value="502551931" label="IncognitoStrings:enabled"/>
<int value="503189154" label="ViewsBrowserWindows:disabled"/>
@@ -41736,12 +42795,14 @@ from previous Chrome versions.
<int value="513258875" label="WinrtSensorsImplementation:disabled"/>
<int value="513356954" label="InstantTethering:disabled"/>
<int value="513372959" label="ViewsProfileChooser:enabled"/>
+ <int value="513728926" label="OsSettingsPolymer3:enabled"/>
<int value="514569020" label="RemoteCopyImageNotification:enabled"/>
<int value="516603570" label="QuickAnswersRichUi:disabled"/>
<int value="517429103" label="AutofillImportDynamicForms:enabled"/>
<int value="517568645" label="AnimatedAppMenuIcon:disabled"/>
<int value="518419320" label="RemoteCopyProgressNotification:disabled"/>
<int value="520982116" label="BuiltInModuleAll:enabled"/>
+ <int value="529235584" label="PhoneHub:enabled"/>
<int value="530828403" label="AllowStartingServiceManagerOnly:disabled"/>
<int value="533064367" label="WebRtcHideLocalIpsWithMdns:disabled"/>
<int value="535131384" label="OmniboxTailSuggestions:enabled"/>
@@ -41768,11 +42829,15 @@ from previous Chrome versions.
<int value="557200974" label="WebSocketHandshakeReuseConnection:disabled"/>
<int value="557915559" label="CCTModuleCustomRequestHeader:enabled"/>
<int value="558873715" label="SiteDetails:disabled"/>
+ <int value="559695461" label="UseChimeAndroidSdk:enabled"/>
+ <int value="561951500" label="GlobalMediaControlsCastStartStop:enabled"/>
<int value="562979188" label="DesktopIOSPromotion:enabled"/>
<int value="564355877" label="OopRasterizationDDL:disabled"/>
<int value="564522013" label="Av1Decoder:disabled"/>
<int value="565406673" label="EnableVirtualKeyboardMdUi:enabled"/>
<int value="567368307" label="enable-experimental-canvas-features"/>
+ <int value="571349694" label="AllowAllSitesToInitiateMirroring:enabled"/>
+ <int value="572915501" label="FilesZipUnpack:disabled"/>
<int value="573385109" label="SharedClipboardUI:enabled"/>
<int value="575380532" label="ExperimentalAccessibilityLabels:disabled"/>
<int value="575394365" label="AndroidPaymentApps:disabled"/>
@@ -41791,11 +42856,14 @@ from previous Chrome versions.
<int value="589394614" label="OmniboxSuggestionButtonRow:enabled"/>
<int value="589924262" label="CryptAuthV2DeviceActivityStatus:enabled"/>
<int value="592050831" label="disable-slimming-paint"/>
+ <int value="592414224"
+ label="OmniboxTrendingZeroPrefixSuggestionsOnNTP:enabled"/>
<int value="593707592" label="disable-network-portal-notification"/>
<int value="594756372" label="MyFilesVolume:disabled"/>
<int value="595168244" label="NotificationExpansionAnimation:enabled"/>
<int value="595371145" label="OmniboxRichEntitySuggestions:disabled"/>
<int value="596106994" label="CustomFeedbackUi:enabled"/>
+ <int value="597542937" label="TabbedAppOverflowMenuRegroup:enabled"/>
<int value="598827460" label="enable-roboto-font-ui"/>
<int value="598926697" label="VrLaunchIntent:disabled"/>
<int value="600037637" label="AndroidSigninPromos:enabled"/>
@@ -41811,10 +42879,12 @@ from previous Chrome versions.
<int value="606723570" label="SharingUseDeviceInfo:disabled"/>
<int value="606834606" label="force-color-profile"/>
<int value="606969417" label="DiscoverApp:enabled"/>
+ <int value="608761130" label="PrintSaveToDrive:enabled"/>
<int value="609112512" label="touch-selection-strategy"/>
<int value="609580715" label="ArcCupsApi:disabled"/>
<int value="610545308" label="enable-potentially-annoying-security-features"/>
<int value="613629912" label="LookalikeUrlNavigationSuggestions:enabled"/>
+ <int value="614174812" label="GlobalMediaControlsOverlayControls:disabled"/>
<int value="616660621" label="ImeInputLogicFst:disabled"/>
<int value="617762656" label="FirstScrollLatencyMeasurement:enabled"/>
<int value="618532343" label="DesktopPWAsLocalUpdating:disabled"/>
@@ -41825,6 +42895,7 @@ from previous Chrome versions.
<int value="624317932" label="print-pdf-as-image"/>
<int value="624368375" label="OmniboxEntitySuggestions:enabled"/>
<int value="625273056" label="disable-boot-animation"/>
+ <int value="626605468" label="FilesZipUnpack:enabled"/>
<int value="628302973" label="NTPSnippets:enabled"/>
<int value="628570445" label="AndroidAutofillAccessibility:enabled"/>
<int value="629549626" label="ContextualSearchMlTapSuppression:enabled"/>
@@ -41838,6 +42909,7 @@ from previous Chrome versions.
<int value="635533110" label="ReleaseNotes:disabled"/>
<int value="635971109" label="PrintPdfAsImage:disabled"/>
<int value="636341169" label="ExploreSites:disabled"/>
+ <int value="636413416" label="OmniboxKeywordSearchButton:disabled"/>
<int value="636425179" label="mhtml-generator-option"/>
<int value="637396292" label="AllBookmarks:enabled"/>
<int value="637452937" label="ChromeHomeSurvey:enabled"/>
@@ -41860,11 +42932,13 @@ from previous Chrome versions.
<int value="651562604" label="RawClipboard:enabled"/>
<int value="651844675" label="EasyUnlockPromotions:enabled"/>
<int value="652561231" label="CustomContextMenu:enabled"/>
+ <int value="653795860" label="HelpAppReleaseNotes:disabled"/>
<int value="654199907" label="AllowSyncXHRInPageDismissal:disabled"/>
<int value="656864700" label="FillOnAccountSelectHttp:disabled"/>
<int value="659086147" label="OverlayScrollbarFlashWhenMouseEnter:enabled"/>
<int value="661020875" label="AutofillSaveCardShowNoThanks:disabled"/>
<int value="662331859" label="ConversionMeasurement:enabled"/>
+ <int value="662935193" label="MultiPaste:enabled"/>
<int value="663027937" label="NewTabPageCustomLinks:enabled"/>
<int value="663069508" label="TabToGTSAnimation:enabled"/>
<int value="663294302" label="ForceUseAPDownloadProtection:disabled"/>
@@ -41881,6 +42955,7 @@ from previous Chrome versions.
<int value="679931272" label="DcheckIsFatal:enabled"/>
<int value="680070635"
label="enable-fullscreen-handwriting-virtual-keyboard:disabled"/>
+ <int value="680300401" label="DisplayAlignAssist:disabled"/>
<int value="681622885" label="FullscreenExitUI:enabled"/>
<int value="682549212" label="ash-enable-cursor-motion-blur"/>
<int value="683013217" label="AllowPopupsDuringPageUnload:disabled"/>
@@ -41904,6 +42979,7 @@ from previous Chrome versions.
<int value="701766325" label="PerNavigationMojoInterface:enabled"/>
<int value="703469777" label="AndroidNightModeTabReparenting:enabled"/>
<int value="705407202" label="AutofillSaveCardImprovedUserConsent:disabled"/>
+ <int value="705411729" label="AccessiblePDFForm:disabled"/>
<int value="705712478" label="EnablePalmOnToolTypePalm:disabled"/>
<int value="705713283" label="EasyUnlockPromotions:disabled"/>
<int value="705946076"
@@ -41984,6 +43060,7 @@ from previous Chrome versions.
<int value="773743944" label="show-android-files-in-files-app"/>
<int value="773919225" label="disable-office-editing-component-extension"/>
<int value="775075949" label="ImeInputLogicHmm:enabled"/>
+ <int value="775148009" label="OsSettingsDeepLinking:disabled"/>
<int value="777667507" label="DesktopPWAsLinkCapturing:enabled"/>
<int value="779086132" label="enable-data-reduction-proxy-alt"/>
<int value="779703052" label="ChromeOSAmbientMode:enabled"/>
@@ -41996,7 +43073,6 @@ from previous Chrome versions.
<int value="798696013" label="ImeInputLogicMozc:enabled"/>
<int value="799680074" label="ContextualSearchTranslationModel:enabled"/>
<int value="803282885" label="PreferHtmlOverPlugins:disabled"/>
- <int value="805661595" label="ChromeosVideoDecoder:enabled"/>
<int value="805882800" label="SafetyCheckChromeCleanerChild:disabled"/>
<int value="806035639" label="EnableNeuralPalmDetectionFilter:disabled"/>
<int value="806334184" label="AndroidSpellChecker:enabled"/>
@@ -42059,6 +43135,8 @@ from previous Chrome versions.
<int value="871435095" label="EnableAggregatedMlAppRanking:disabled"/>
<int value="871713352" label="ImprovedLanguageSettings:enabled"/>
<int value="876879670" label="OfflinePagesInDownloadHomeOpenInCct:enabled"/>
+ <int value="877059804" label="AutofillPreventMixedFormsFilling:disabled"/>
+ <int value="877238334" label="WebUITabStripTabDragIntegration:enabled"/>
<int value="878773995" label="ChromeHomeBottomNavLabels:disabled"/>
<int value="879699575" label="disable-gesture-tap-highlight"/>
<int value="879992337" label="disable-pull-to-refresh-effect"/>
@@ -42077,6 +43155,7 @@ from previous Chrome versions.
<int value="902209599" label="ShelfHotseat:enabled"/>
<int value="902839593" label="WebContentsForceDark:disabled"/>
<int value="903267263" label="disable-offline-pages"/>
+ <int value="904811479" label="query-tiles-enable-trending"/>
<int value="908302031"
label="OmniboxUIExperimentElideSuggestionUrlAfterHost:enabled"/>
<int value="908370794" label="UserActivityPredictionMlService:enabled"/>
@@ -42135,6 +43214,7 @@ from previous Chrome versions.
<int value="975463471" label="WebViewExtraHeadersSameOriginOnly:enabled"/>
<int value="976079108" label="TouchpadOverscrollHistoryNavigation:disabled"/>
<int value="976278412" label="google-password-manager:enabled"/>
+ <int value="977140835" label="OmniboxMostVisitedTiles:disabled"/>
<int value="977968353" label="WebUITabStrip:disabled"/>
<int value="978712907" label="PrintServerUi:disabled"/>
<int value="979445973" label="OmniboxSpareRenderer:enabled"/>
@@ -42165,12 +43245,14 @@ from previous Chrome versions.
<int value="1004909189"
label="ContentSuggestionsThumbnailDominantColor:disabled"/>
<int value="1005684777" label="PictureInPicture:disabled"/>
+ <int value="1006080779" label="ForcePreferredIntervalForVideo:disabled"/>
<int value="1006608931" label="ArcEnableUnifiedAudioFocus:disabled"/>
<int value="1006691801" label="ConditionalTabStripAndroid:disabled"/>
<int value="1007444341" label="enable-prefixed-encrypted-media"/>
<int value="1008677979"
label="AutofillUseImprovedLabelDisambiguation:disabled"/>
<int value="1012942422" label="HorizontalTabSwitcherAndroid:disabled"/>
+ <int value="1015012662" label="ChromeOSDirectVideoDecoder:enabled"/>
<int value="1015895665" label="drop-sync-credential:enabled"/>
<int value="1017364362" label="VrIconInDaydreamHome:enabled"/>
<int value="1018165268" label="InterestFeedFeedback:enabled"/>
@@ -42213,8 +43295,12 @@ from previous Chrome versions.
<int value="1053743655" label="NewOverviewAnimations:enabled"/>
<int value="1054910800" label="enable-timezone-tracking-option"/>
<int value="1057014709" label="EnforceTLS13Downgrade:enabled"/>
+ <int value="1057741107"
+ label="OmniboxTrendingZeroPrefixSuggestionsOnNTP:disabled"/>
<int value="1057887829" label="AutofillScanThemeDialog:disabled"/>
<int value="1059007599" label="enable-gpu-appcontainer"/>
+ <int value="1059283439"
+ label="OmniboxClobberTriggersContextualWebZeroSuggest:disabled"/>
<int value="1059698271" label="EnableZeroStateSuggestions:disabled"/>
<int value="1060319397" label="enable-data-reduction-proxy-carrier-test"/>
<int value="1060780557" label="DynamicColorGamut:disabled"/>
@@ -42239,6 +43325,7 @@ from previous Chrome versions.
<int value="1082054180" label="PersistentWindowBounds:disabled"/>
<int value="1083020187" label="FractionalScrollOffsets:enabled"/>
<int value="1083201516" label="PersistentWindowBounds:enabled"/>
+ <int value="1084365949" label="ReleaseNotesNotification:disabled"/>
<int value="1084972292" label="WebXRAnchors:enabled"/>
<int value="1085130793" label="LongPressBackForHistory:disabled"/>
<int value="1087235172" label="file-manager-enable-new-audio-player"/>
@@ -42276,6 +43363,8 @@ from previous Chrome versions.
<int value="1114629582" label="enable-floating-virtual-keyboard"/>
<int value="1115635149" label="EnableUnifiedMultiDeviceSetup:enabled"/>
<int value="1116593018" label="CaptureThumbnailOnLoadFinished:disabled"/>
+ <int value="1117534750"
+ label="ForceSecurePaymentConfirmationDialog:disabled"/>
<int value="1117795262" label="BloatedRendererDetection:disabled"/>
<int value="1118109174" label="enable-launcher-search-provider-api"/>
<int value="1120428727" label="TabGridLayoutAndroid:enabled"/>
@@ -42321,6 +43410,7 @@ from previous Chrome versions.
<int value="1166897718" label="TextSuggestionsTouchBar:disabled"/>
<int value="1167350114" label="AndroidNightMode:enabled"/>
<int value="1167613030" label="enable-permission-action-reporting"/>
+ <int value="1168226627" label="OmniboxMaxZeroSuggestMatches:enabled"/>
<int value="1169418814" label="ManualFallbacksFilling:enabled"/>
<int value="1173244409" label="AutofillUseMobileLabelDisambiguation:enabled"/>
<int value="1174088940" label="enable-wasm"/>
@@ -42365,6 +43455,7 @@ from previous Chrome versions.
<int value="1214455758" label="VideoRotateToFullscreen:disabled"/>
<int value="1215531732" label="OmniboxUIExperiments:disabled"/>
<int value="1215768255" label="AutofillCreditCardLocalCardMigration:enabled"/>
+ <int value="1216286283" label="tint-composited-content"/>
<int value="1216452475" label="SyncUSSAutofillProfile:disabled"/>
<int value="1217907443" label="spurious-power-button-keyboard-accel"/>
<int value="1219317631" label="ContextualSuggestionsAboveArticles:disabled"/>
@@ -42440,7 +43531,9 @@ from previous Chrome versions.
<int value="1283960113" label="disable-fixed-position-compositing"/>
<int value="1284910808" label="disable-checker-imaging"/>
<int value="1285905715" label="WebXRHitTest:enabled"/>
+ <int value="1287625114" label="EnableIncognitoShortcutOnDesktop:disabled"/>
<int value="1289433604" label="RecoverFromNeverSaveAndroid:enabled"/>
+ <int value="1289495171" label="AssistantBetterOnboarding:disabled"/>
<int value="1291257442" label="TabsInCBD:disabled"/>
<int value="1291761696" label="CCTModuleDexLoading:disabled"/>
<int value="1291966558" label="ScrollAnchoring:disabled"/>
@@ -42456,6 +43549,7 @@ from previous Chrome versions.
<int value="1302421166" label="NativeNotifications:disabled"/>
<int value="1303260487" label="UsageStats:enabled"/>
<int value="1304636193" label="ArcEnableUnifiedAudioFocus:enabled"/>
+ <int value="1305792241" label="SafeBrowsingEnhancedProtection:disabled"/>
<int value="1307003774" label="AutofillEnableCompanyName:disabled"/>
<int value="1308537004" label="force-pnacl-subzero"/>
<int value="1311860720" label="ChromeHomeNtpRedesign:disabled"/>
@@ -42484,6 +43578,7 @@ from previous Chrome versions.
<int value="1334185492" label="TurnOffStreamingMediaCaching:disabled"/>
<int value="1338356182" label="AutofillAssistantChromeEntry:disabled"/>
<int value="1338864675" label="EnableTouchableAppContextMenu:disabled"/>
+ <int value="1339191800" label="OmniboxMaxZeroSuggestMatches:disabled"/>
<int value="1339426771" label="TopSitesFromSiteEngagement:disabled"/>
<int value="1340690624" label="WebPaymentsMethodSectionOrderV2:disabled"/>
<int value="1343050930" label="ContextualSearchUnityIntegration:enabled"/>
@@ -42501,6 +43596,8 @@ from previous Chrome versions.
label="AutofillDoNotUploadSaveUnsupportedCards:enabled"/>
<int value="1353113954" label="EnableMDRoundedCornersOnDialogs:enabled"/>
<int value="1353629763" label="MediaSessionAccelerators:enabled"/>
+ <int value="1355656242"
+ label="DesktopPWAsMigrationUserDisplayModeCleanUp:disabled"/>
<int value="1355923367" label="CrOSContainer:disabled"/>
<int value="1356161410" label="VizHitTestSurfaceLayer:enabled"/>
<int value="1359972809" label="enable-gesture-deletion"/>
@@ -42543,8 +43640,9 @@ from previous Chrome versions.
<int value="1393500952" label="EnableVirtualKeyboardUkm:disabled"/>
<int value="1393722373" label="SaveEditedPDFForm:disabled"/>
<int value="1397069250" label="NetworkService:disabled"/>
+ <int value="1398148960" label="LanguageSettingsUpdate:disabled"/>
+ <int value="1398333721" label="ForceEnableDevicesPage:disabled"/>
<int value="1399950951" label="AutofillTokenPrefixMatching:disabled"/>
- <int value="1399992739" label="ChromeosVideoDecoder:disabled"/>
<int value="1403195370" label="ArcCupsApi:enabled"/>
<int value="1405459667" label="enable-fast-text-autosizing"/>
<int value="1406046556" label="enable-slimming-paint-v175"/>
@@ -42564,6 +43662,7 @@ from previous Chrome versions.
<int value="1413158119" label="WebRtcRemoteEventLog:disabled"/>
<int value="1413334779" label="WebPaymentsMinimalUI:enabled"/>
<int value="1413948819" label="NupPrinting:enabled"/>
+ <int value="1414918327" label="enable-accelerated-video-decode"/>
<int value="1416592483" label="ash-enable-mirrored-screen"/>
<int value="1418054870" label="SpecialLocale:enabled"/>
<int value="1421620678" label="simple-clear-browsing-data-support-string"/>
@@ -42576,6 +43675,7 @@ from previous Chrome versions.
<int value="1436454450" label="InterestFeedV2:disabled"/>
<int value="1437413720" label="CooperativeScheduling:disabled"/>
<int value="1441897340" label="AndroidSpellCheckerNonLowEnd:enabled"/>
+ <int value="1441978318" label="WifiSyncAndroid:disabled"/>
<int value="1442129147"
label="OmniboxRemoveSuggestionsFromClipboard:disabled"/>
<int value="1442798825" label="enable-quic"/>
@@ -42600,11 +43700,14 @@ from previous Chrome versions.
<int value="1460958818" label="NTPForeignSessionsSuggestions:enabled"/>
<int value="1461581256" label="MovablePartialScreenshot:enabled"/>
<int value="1464028544" label="WinUseHybridSpellChecker:disabled"/>
+ <int value="1464610065" label="TabbedAppOverflowMenuRegroup:disabled"/>
<int value="1465624446" label="disable-zero-copy"/>
<int value="1466380480" label="enable-device-discovery-notifications"/>
<int value="1466502102" label="DelayNavigation:disabled"/>
<int value="1467322206" label="AssistAutoCorrect:enabled"/>
+ <int value="1467583815" label="AVIF:disabled"/>
<int value="1469407485" label="disable-accelerated-2d-canvas"/>
+ <int value="1472938299" label="WellKnownChangePassword:disabled"/>
<int value="1473838479" label="EnableVirtualKeyboardMdUi:disabled"/>
<int value="1473967338" label="OmniboxShortBookmarkSuggestions:enabled"/>
<int value="1474861626" label="disable-multi-mirroring"/>
@@ -42692,8 +43795,11 @@ from previous Chrome versions.
<int value="1579084737" label="TemporaryUnexpireFlagsM80:disabled"/>
<int value="1579461102" label="MemoryCoordinator:disabled"/>
<int value="1581002467" label="enable-explicit-dma-fences"/>
+ <int value="1582400283" label="VideoTutorials:enabled"/>
<int value="1584039096" label="highlight-all-webviews"/>
+ <int value="1584425198" label="NtpModules:enabled"/>
<int value="1584536816" label="LimitAltTabToActiveDesk:enabled"/>
+ <int value="1585990408" label="AImageReader:disabled"/>
<int value="1586022426" label="AutofillCreditCardAssist:enabled"/>
<int value="1587521886" label="SSLCommittedInterstitials:enabled"/>
<int value="1589341623" label="disable-easy-unlock"/>
@@ -42743,7 +43849,9 @@ from previous Chrome versions.
<int value="1627666567" label="ChromeOSAmbientMode:disabled"/>
<int value="1628259213" label="DuetTabStripIntegrationAndroid:enabled"/>
<int value="1628831121" label="SafeBrowsingUseLocalBlacklistsV2:enabled"/>
+ <int value="1629289109" label="EnableBloom:disabled"/>
<int value="1630159957" label="SharingSendViaSync:disabled"/>
+ <int value="1630283072" label="CrOSAutoSelect:enabled"/>
<int value="1630988998" label="VrBrowsingExperimentalRendering:disabled"/>
<int value="1632112977" label="ash-disable-tablet-autohide-titlebars"/>
<int value="1632176267" label="PDFViewerUpdate:enabled"/>
@@ -42778,6 +43886,7 @@ from previous Chrome versions.
<int value="1661925474" label="silent-debugger-extension-api"/>
<int value="1664401033" label="ColorCorrectRendering:enabled"/>
<int value="1665349789" label="spurious-power-button-window"/>
+ <int value="1665400247" label="OsSettingsDeepLinking:enabled"/>
<int value="1667584730" label="WebXR:disabled"/>
<int value="1668611601" label="enable-encrypted-media"/>
<int value="1669767166" label="NewTabPageBackgrounds:disabled"/>
@@ -42789,8 +43898,10 @@ from previous Chrome versions.
<int value="1677258310" label="DragAppsInTabletMode:disabled"/>
<int value="1679558835" label="ArcAvailableForChildAccount:enabled"/>
<int value="1680248931" label="use-fake-device-for-media-stream:enabled"/>
+ <int value="1683560662" label="ChromeShareHighlightsAndroid:disabled"/>
<int value="1684043382" label="AssistantKeyRemapping:enabled"/>
<int value="1685280468" label="AppServiceShelf:enabled"/>
+ <int value="1687544136" label="AndroidManagedByMenuItem:enabled"/>
<int value="1688075820" label="OmniboxExperimentalKeywordMode:disabled"/>
<int value="1689123607" label="enable-app-link"/>
<int value="1689183477" label="enable-merge-key-char-events"/>
@@ -42808,15 +43919,18 @@ from previous Chrome versions.
<int value="1698089268" label="WebXRMultiGpu:disabled"/>
<int value="1699180023" label="PaymentRequestOptionalTotal:disabled"/>
<int value="1699182601" label="DockedMagnifier:disabled"/>
+ <int value="1700117535" label="MediaFeedsBackgroundFetching:disabled"/>
<int value="1700394127" label="OverlayScrollbar:disabled"/>
<int value="1701972870" label="NTPSnippetsIncreasedVisibility:enabled"/>
<int value="1702090999" label="ClearOldBrowsingData:disabled"/>
<int value="1703927420" label="PiexWasm:enabled"/>
+ <int value="1705332854" label="H264DecoderBufferIsCompleteFrame:enabled"/>
<int value="1705724232" label="use-android-midi-api"/>
<int value="1706682238" label="ContextualSearchTranslations:disabled"/>
<int value="1707283026" label="SyncPseudoUSSExtensions:disabled"/>
<int value="1708118086" label="TextFragmentAnchor:disabled"/>
<int value="1711286384" label="ContextMenuCopyImage:disabled"/>
+ <int value="1712880335" label="FiltersInRecents:enabled"/>
<int value="1713230497" label="ColorCorrectRendering:disabled"/>
<int value="1714016217" label="EnableHeuristicPalmDetectionFilter:enabled"/>
<int value="1714922056" label="GlobalMediaControls:disabled"/>
@@ -42850,6 +43964,7 @@ from previous Chrome versions.
<int value="1747279677" label="disable-delegated-renderer"/>
<int value="1748481830" label="AppManagement:enabled"/>
<int value="1749028785" label="SubresourceRedirect:disabled"/>
+ <int value="1750693293" label="AutofillPreventMixedFormsFilling:enabled"/>
<int value="1752168018" label="enable-stale-while-revalidate"/>
<int value="1755024316" label="HostWindowsInAppShimProcess:disabled"/>
<int value="1758262950"
@@ -42863,6 +43978,7 @@ from previous Chrome versions.
<int value="1771548551" label="DisableKeepaliveFetch:enabled"/>
<int value="1772454319" label="enable-storage-manager"/>
<int value="1775475563" label="malware-interstitial-v3"/>
+ <int value="1775730290" label="OmniboxKeywordSearchButton:enabled"/>
<int value="1776475705" label="show-composited-layer-borders"/>
<int value="1777059507" label="trust-autofill-server-name-types"/>
<int value="1777695562" label="SendTabToSelfShowSendingUI:disabled"/>
@@ -42901,8 +44017,10 @@ from previous Chrome versions.
<int value="1812368073" label="enable-new-app-list-mixer"/>
<int value="1814671708" label="disable-password-manager-reauthentication"/>
<int value="1816174635" label="RequestUnbufferedDispatch:enabled"/>
+ <int value="1816723085" label="SchemefulSameSite:enabled"/>
<int value="1816843861" label="ServiceWorkerServicification:enabled"/>
<int value="1817312143" label="num-raster-threads"/>
+ <int value="1817420759" label="CpuAffinityRestrictToLittleCores:disabled"/>
<int value="1818829958" label="IdentityDisc:enabled"/>
<int value="1819256299" label="disable-webrtc-hw-decoding"/>
<int value="1819536169" label="disable-cast-streaming-hw-encoding"/>
@@ -42918,6 +44036,7 @@ from previous Chrome versions.
<int value="1827369558" label="AndroidPayIntegrationV1:disabled"/>
<int value="1828660283" label="enable-webfonts-intervention-trigger"/>
<int value="1830460973" label="disable-network-settings-config"/>
+ <int value="1831103529" label="MediaNotificationsCounter:disabled"/>
<int value="1831545645" label="query-tiles-single-tier"/>
<int value="1831593339" label="stop-in-background:disabled"/>
<int value="1831835753" label="MaterialDesignIncognitoNTP:enabled"/>
@@ -42937,6 +44056,7 @@ from previous Chrome versions.
<int value="1848974467" label="DelayAsyncScriptExecution:disabled"/>
<int value="1849379463" label="OfflinePagesCTV2:enabled"/>
<int value="1849580433" label="disable-oop-rasterization"/>
+ <int value="1850641630" label="ForceSecurePaymentConfirmationDialog:enabled"/>
<int value="1851358497" label="enable-ash-sidebar"/>
<int value="1851746253" label="ReducedReferrerGranularity:disabled"/>
<int value="1852630189" label="NTPBookmarkSuggestions:disabled"/>
@@ -42949,7 +44069,6 @@ from previous Chrome versions.
<int value="1861251313"
label="enable-message-center-always-scroll-up-upon-notification-removal"/>
<int value="1861521561" label="OmniboxLocalEntitySuggestions:enabled"/>
- <int value="1861954820" label="HighResolutionMouseScrolling:enabled"/>
<int value="1862126613" label="DesktopPWAsRunOnOsLogin:enabled"/>
<int value="1862207743" label="enable-android-spellchecker"/>
<int value="1863622457" label="WebAuthentication:enabled"/>
@@ -43005,6 +44124,8 @@ from previous Chrome versions.
<int value="1919917329" label="ImplicitRootScroller:disabled"/>
<int value="1920894670"
label="OmniboxPreserveDefaultMatchAgainstAsyncUpdate:enabled"/>
+ <int value="1923052799" label="CrostiniUseDlc:disabled"/>
+ <int value="1923780021" label="PrivacyReorderedAndroid:enabled"/>
<int value="1924192543" label="ProactiveTabFreezeAndDiscard:enabled"/>
<int value="1925627218" label="FullscreenToolbarReveal:disabled"/>
<int value="1926524951" label="SystemWebApps:disabled"/>
@@ -43020,6 +44141,7 @@ from previous Chrome versions.
<int value="1933376478" label="IsolatePrerenders:enabled"/>
<int value="1935405622" label="AppServiceInstanceRegistry:disabled"/>
<int value="1936810062" label="WebVrVsyncAlign:enabled"/>
+ <int value="1936816247" label="EditPasswordsInDesktopSettings:enabled"/>
<int value="1938279796" label="PromosOnLocalNtp:disabled"/>
<int value="1939413645" label="enable-invalid-cert-collection"/>
<int value="1939884866" label="web-otp-backend"/>
@@ -43066,6 +44188,7 @@ from previous Chrome versions.
<int value="1974776131" label="MediaFeeds:disabled"/>
<int value="1975657253" label="ScalableAppList:disabled"/>
<int value="1976644015" label="enable-forbid-sync-xhr-in-page-dismissal"/>
+ <int value="1978548617" label="FilesZipMount:enabled"/>
<int value="1979222611" label="XRSandbox:disabled"/>
<int value="1979472169" label="TabGroupsFeedback:disabled"/>
<int value="1980011075" label="debug-packed-apps"/>
@@ -43075,6 +44198,7 @@ from previous Chrome versions.
<int value="1988810119" label="AutofillDropdownLayout:enabled"/>
<int value="1989051182" label="view-passwords:enabled"/>
<int value="1989877708" label="PostScriptPrinting:enabled"/>
+ <int value="1990528959" label="SchemefulSameSite:disabled"/>
<int value="1990562608"
label="LinkManagedNoticeToChromeUIManagementURL:enabled"/>
<int value="1990670943"
@@ -43120,6 +44244,7 @@ from previous Chrome versions.
<int value="2018386804" label="IPH_ReopenTab:disabled"/>
<int value="2018956925" label="UseAAudioDriver:disabled"/>
<int value="2020107447" label="AndroidPayIntegrationV1:enabled"/>
+ <int value="2022294878" label="WifiSyncAndroid:enabled"/>
<int value="2024172900" label="KidsManagementUrlClassification:disabled"/>
<int value="2032558514"
label="RemoveUsageOfDeprecatedGaiaSigninEndpoint:enabled"/>
@@ -43131,6 +44256,7 @@ from previous Chrome versions.
<int value="2041570184" label="UsePreferredIntervalForVideo:enabled"/>
<int value="2043141918" label="DnsOverHttps:enabled"/>
<int value="2043321329" label="OfflinePagesPrefetchingUI:disabled"/>
+ <int value="2047503404" label="FilesSWA:enabled"/>
<int value="2047695652" label="DelegateOverscrollSwipes:enabled"/>
<int value="2049432745" label="VaapiWebPImageDecodeAcceleration:enabled"/>
<int value="2050985807" label="AllowPopupsDuringPageUnload:enabled"/>
@@ -43188,6 +44314,7 @@ from previous Chrome versions.
<int value="2113804526" label="EnableAppShortcutSearch:enabled"/>
<int value="2114843059" label="ContextualSuggestionsOptOut:enabled"/>
<int value="2115848376" label="LacrosSupport:disabled"/>
+ <int value="2118287149" label="HelpAppSearchServiceIntegration:enabled"/>
<int value="2119964154" label="enable-download-resumption"/>
<int value="2120659210" label="BackForwardCache:enabled"/>
<int value="2121056855" label="IncreaseInputAudioBufferSize:disabled"/>
@@ -43868,7 +44995,7 @@ from previous Chrome versions.
<int value="15" label="Has sticky position objects (obsolete)"/>
<int value="16" label="Requires hit testing on custom scrollbars (obsolete)"/>
<int value="17" label="Has opacity (obsolete)"/>
- <int value="18" label="Has transform"/>
+ <int value="18" label="Has transform (obsolete)"/>
<int value="19" label="Not opaque for text"/>
<int value="20" label="Can't paint scrolling background"/>
<int value="21" label="Has clip related property (obsolete)"/>
@@ -43937,6 +45064,7 @@ from previous Chrome versions.
<int value="5" label="Profile Chooser"/>
<int value="6" label="Passwords Accessory Sheet"/>
<int value="7" label="Touch To Fill"/>
+ <int value="8" label="Safe state bubble"/>
</enum>
<enum name="ManifestFetchResultType">
@@ -43946,6 +45074,13 @@ from previous Chrome versions.
<int value="3" label="Fetch failed because the document origin is opaque"/>
</enum>
+<enum name="ManifestInvalidAppStatusError">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Error unknown application"/>
+ <int value="2" label="Error invalid app id"/>
+ <int value="3" label="Error restricted"/>
+</enum>
+
<enum name="ManifestInvalidError">
<int value="0" label="XML Parsing failed"/>
<int value="1" label="Invalid xlmns on gupdate tag"/>
@@ -43960,6 +45095,7 @@ from previous Chrome versions.
<int value="10" label="Missing version for update check"/>
<int value="11" label="Invalid version"/>
<int value="12" label="Bad Update specification"/>
+ <int value="13" label="Bad App Status"/>
</enum>
<enum name="MappedAndResidentPagesDumpState">
@@ -44643,6 +45779,10 @@ Called by update_use_counter_css.py.-->
<int value="669" label="end"/>
<int value="670" label="time-range"/>
<int value="671" label="scrollbar-gutter"/>
+ <int value="672" label="ascent-override"/>
+ <int value="673" label="descent-override"/>
+ <int value="674" label="advance-override"/>
+ <int value="675" label="line-gap-override"/>
</enum>
<enum name="MappedEditingCommands">
@@ -44803,8 +45943,8 @@ Called by update_use_counter_css.py.-->
<enum name="MarketingOptInGeolocationEvent">
<summary>Geolocation resolve status on OOBE MarketingOptInScreen.</summary>
- <int value="0" label="Country determined successfully."/>
- <int value="1" label="Country could not be determined."/>
+ <int value="0" label="Country could not be determined."/>
+ <int value="1" label="Country determined successfully."/>
</enum>
<enum name="MarketingOptInScreenEvent">
@@ -45917,6 +47057,19 @@ Called by update_use_counter_css.py.-->
<int value="6" label="XHTML-MP document type"/>
</enum>
+<enum name="MetricKitExitData">
+ <int value="0" label="App exited normally"/>
+ <int value="1" label="App exited abnormally"/>
+ <int value="2" label="Watchdog terminated the app"/>
+ <int value="3" label="App used too much CPU time"/>
+ <int value="4" label="App used too much memory"/>
+ <int value="5" label="Terminated to free up memory"/>
+ <int value="6" label="Suspended while having file locks"/>
+ <int value="7" label="Invalid memory access"/>
+ <int value="8" label="Illegal or undefined instruction"/>
+ <int value="9" label="Exceeded allocated time for background task"/>
+</enum>
+
<enum name="MetricsReportingChange">
<int value="0" label="Error">
Error occurred while updating MetricsReporting
@@ -46496,6 +47649,16 @@ Called by update_use_counter_css.py.-->
<int value="2" label="ntdll.dll"/>
</enum>
+<enum name="MojoInterfaceName">
+ <int value="-1403116593" label="content.mojom.FrameHost"/>
+ <int value="-1370606112" label="blink.mojom.LocalFrameHost"/>
+ <int value="-1324568928" label="blink.mojom.LocalMainFrameHost"/>
+ <int value="-1001040796" label="blink.mojom.ManifestUrlChangeObserver"/>
+ <int value="163955581" label="blink.mojom.PortalHost"/>
+ <int value="374886440" label="content.mojom.Echo"/>
+ <int value="1755985492" label="content.mojom.RenderAccessibilityHost"/>
+</enum>
+
<enum name="MojoMachPortRelayBrokerError">
<int value="0" label="SUCCESS">
The Mach port was successfully sent or received.
@@ -46682,6 +47845,7 @@ Called by update_use_counter_css.py.-->
<int value="6" label="Unavailable, insufficient security"/>
<int value="7" label="Unavailable, suite disabled"/>
<int value="8" label="Further setup required"/>
+ <int value="9" label="Unavailable, top-level feature disabled"/>
</enum>
<enum name="MultiDevice_PostOOBESetupFlow_Page">
@@ -47729,13 +48893,13 @@ Called by update_net_error_codes.py.-->
</enum>
<enum name="NetFilterType">
+ <obsolete>
+ Now only NetFilterType2 is used.
+ </obsolete>
<summary>
Specific content decoding filter. See net::Filter::FilterType for more
details
</summary>
- <obsolete>
- Now only NetFilterType2 is used.
- </obsolete>
<int value="0" label="Brotli"/>
<int value="1" label="Deflate"/>
<int value="2" label="GZIP"/>
@@ -49370,7 +50534,7 @@ Called by update_net_trust_anchors.py.-->
</enum>
<enum name="NetworkServiceError">
- <int value="0" label="UNKNOWN"/>
+ <int value="0" label="NONE"/>
<int value="1" label="AAA_FAILED"/>
<int value="2" label="ACTIVATION_FAILED"/>
<int value="3" label="BAD_PASSPHRASE"/>
@@ -49391,6 +50555,11 @@ Called by update_net_trust_anchors.py.-->
<int value="18" label="OUT_OF_RANGE"/>
<int value="19" label="PPP_AUTH_FAILED"/>
<int value="20" label="PIN_MISSING"/>
+ <int value="21" label="UNKNOWN"/>
+ <int value="22" label="NOT_ASSOCIATED"/>
+ <int value="23" label="NOT_AUTHENTICATED"/>
+ <int value="24" label="TOO_MANY_STAS"/>
+ <int value="25" label="DISCONNECT_FAILURE"/>
</enum>
<enum name="NetworkStatus">
@@ -49805,6 +50974,13 @@ Called by update_net_trust_anchors.py.-->
<int value="2" label="Enabled">NPAPI is enabled</int>
</enum>
+<enum name="NQE.ConnectivityMonitor.NetworkChangeType">
+ <int value="0" label="NoEarlyActivation"/>
+ <int value="1" label="EarlyActivationOfUnknownNetwork"/>
+ <int value="2" label="EarlyActivationOfDifferentNetwork"/>
+ <int value="3" label="EarlyActivationOfSameNetwork"/>
+</enum>
+
<enum name="NQEEffectiveConnectionType">
<int value="0" label="Unknown"/>
<int value="1" label="Offline"/>
@@ -50282,7 +51458,9 @@ Called by update_net_trust_anchors.py.-->
<int value="5" label="&quot;issueAdvice&quot; key not found"/>
<int value="6" label="Parse mint token failure"/>
<int value="7" label="Parse issue advice failure"/>
- <int value="8" label="Remote consent fallback"/>
+ <int value="8" label="Remote consent fallback (deprecated 06/2020)"/>
+ <int value="9" label="Parse remote consent failure"/>
+ <int value="10" label="Mint token success with fallback scopes"/>
</enum>
<enum name="OAuthMultiloginResponseStatus">
@@ -50559,6 +51737,9 @@ Called by update_net_trust_anchors.py.-->
</enum>
<enum name="OfflinePagesLoadStatus">
+ <obsolete>
+ OfflinePages.LoadStatus was removed in M65.
+ </obsolete>
<int value="0" label="Success"/>
<int value="1" label="Store init failed"/>
<int value="2" label="Store load failed"/>
@@ -51041,6 +52222,9 @@ Called by update_net_trust_anchors.py.-->
</enum>
<enum name="OmniboxEditUrlSuggestionAction">
+ <obsolete>
+ Deprecated 06/2020 as histogram expired.
+ </obsolete>
<int value="0" label="Edit tapped."/>
<int value="1" label="Copy tapped."/>
<int value="2" label="Share tapped."/>
@@ -51674,6 +52858,7 @@ Called by update_net_trust_anchors.py.-->
<int value="23" label="Disconnect Tether Network"/>
<int value="24" label="Wi-Fi: Metered Network"/>
<int value="25" label="Cellular: Metered Network"/>
+ <int value="26" label="Cellular: Add Network"/>
<int value="100" label="Bluetooth: On/Off"/>
<int value="101" label="Bluetooth: Connect To Device"/>
<int value="102" label="Bluetooth: Disconnect From Device"/>
@@ -51688,6 +52873,10 @@ Called by update_net_trust_anchors.py.-->
<int value="206" label="Messages: On/Off"/>
<int value="207" label="Forget Phone"/>
<int value="208" label="Nearby Share: On/Off"/>
+ <int value="209" label="Phone Hub: On/Off"/>
+ <int value="210" label="Phone Hub Notifications: On/Off"/>
+ <int value="211" label="Phone Hub Notification Badge: On/Off"/>
+ <int value="212" label="Phone Hub Task Continuation: On/Off"/>
<int value="300" label="Add Account"/>
<int value="301" label="Remove Account"/>
<int value="302" label="Split Sync On/Off"/>
@@ -51735,7 +52924,7 @@ Called by update_net_trust_anchors.py.-->
<int value="424" label="Sleep When Laptop Lid is Closed"/>
<int value="425" label="Display: Resolution"/>
<int value="426" label="Display: Refresh Rate"/>
- <int value="427" label="Remove DLC"/>
+ <int value="427" label="Remove DLC (Deprecated)"/>
<int value="428" label="Display: Mirroring"/>
<int value="429" label="Allow Windows To Span Displays"/>
<int value="430" label="Ambient Colors"/>
@@ -51747,7 +52936,7 @@ Called by update_net_trust_anchors.py.-->
<int value="501" label="Ambient Mode On/Off"/>
<int value="502" label="Ambient Mode Source"/>
<int value="503" label="Change Device Account Image"/>
- <int value="504" label="Ambient Mode Update Photos Containers"/>
+ <int value="504" label="Ambient Mode Update Photos Containers (Deprecated)"/>
<int value="600" label="Preferred Search Engine"/>
<int value="601" label="Assistant: On/Off"/>
<int value="602" label="Assistant: Related Info"/>
@@ -51770,12 +52959,16 @@ Called by update_net_trust_anchors.py.-->
<int value="1000" label="24Hour Clock"/>
<int value="1001" label="Change Time Zone"/>
<int value="1101" label="Verified Access"/>
- <int value="1102" label="Keep Wi-Fi On During Sleep"/>
+ <int value="1102" label="Keep Wi-Fi On During Sleep (Deprecated)"/>
<int value="1103" label="Usage Stats And Crash Reports"/>
<int value="1200" label="Add Language"/>
<int value="1201" label="Show Input Options In Shelf"/>
<int value="1202" label="Show Personal Information Suggestions"/>
<int value="1203" label="Show Emoji Suggestions"/>
+ <int value="1204" label="Change System Language"/>
+ <int value="1205" label="Offer Translation"/>
+ <int value="1206" label="Add Input Method"/>
+ <int value="1207" label="Spell Check"/>
<int value="1300" label="Google Drive Connection"/>
<int value="1400" label="Add Printer"/>
<int value="1401" label="Saved Printers"/>
@@ -51900,11 +53093,13 @@ Called by update_net_trust_anchors.py.-->
<int value="403" label="Display"/>
<int value="404" label="Storage"/>
<int value="405" label="External Storage"/>
- <int value="406" label="DLC"/>
+ <int value="406" label="DLC (Deprecated)"/>
<int value="407" label="Power"/>
<int value="500" label="Change Picture"/>
<int value="501" label="Ambient Mode"/>
- <int value="502" label="Ambient Mode Photos"/>
+ <int value="502" label="Ambient Mode Photos (Deprecated)"/>
+ <int value="503" label="Ambient Mode Google Photos Album"/>
+ <int value="504" label="Ambient Mode Art Gallery Album"/>
<int value="600" label="Assistant"/>
<int value="700" label="App Management"/>
<int value="701" label="App Details"/>
@@ -51921,6 +53116,8 @@ Called by update_net_trust_anchors.py.-->
<int value="1201" label="Manage Input Methods"/>
<int value="1202" label="Smart Inputs"/>
<int value="1203" label="Input Method Options"/>
+ <int value="1204" label="Languages"/>
+ <int value="1205" label="Input"/>
<int value="1300" label="Network File Shares"/>
<int value="1400" label="Printing Details"/>
<int value="1500" label="Manage Accessibility"/>
@@ -52498,6 +53695,14 @@ Called by update_net_trust_anchors.py.-->
<int value="5" label="Metric value was less than 10 seconds"/>
</enum>
+<enum name="PageLoadType">
+ <int value="0" label="Never foregrounded"/>
+ <int value="1"
+ label="Aborted: was foregrounded but never reached first contentful
+ paint"/>
+ <int value="2" label="Was foregrounded and reached first contentful paint"/>
+</enum>
+
<enum name="PageScaleFactorRange">
<int value="0" label="&lt;25%"/>
<int value="1" label="25-49%"/>
@@ -52705,6 +53910,7 @@ Called by update_net_trust_anchors.py.-->
<int value="6" label="Magnifying glass mode"/>
<int value="7" label="Laser pointer mode"/>
<int value="8" label="Assistant mode"/>
+ <int value="9" label="Enter capture mode"/>
</enum>
<enum name="PanningModelType">
@@ -52742,6 +53948,8 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Time change on login screen"/>
<int value="2" label="Time change user session"/>
<int value="3" label="Timezone change"/>
+ <int value="4" label="Add user"/>
+ <int value="5" label="Reauthentication"/>
</enum>
<enum name="ParentFrameKnown">
@@ -52813,6 +54021,12 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="DocumentLevelTouchPreventDefaultCalled"/>
</enum>
+<enum name="PasswordAccountStoreClearedOnStartup">
+ <int value="0" label="User is opted in, so no need to clear"/>
+ <int value="1" label="User is not opted in, and store was already empty"/>
+ <int value="2" label="User is not opted in, and store had to be cleared"/>
+</enum>
+
<enum name="PasswordAddLoginSyncError">
<int value="0" label="None"/>
<int value="1" label="DB Not Available"/>
@@ -52855,16 +54069,23 @@ Called by update_net_trust_anchors.py.-->
<int value="6" label="Opened automatically / Auto-signin toast"/>
<int value="7" label="Opened manually / Offering a password to update"/>
<int value="8" label="Opened automatically / Offering a password to update"/>
- <int value="9"
+ <int value="9" label="Opened manually / Confirming generated password saved"/>
+ <int value="10"
label="Opened automatically / Offering to save unsynced passwords
locally"/>
- <int value="10"
- label="Opened automatically / Notification about compromised passwords"/>
<int value="11"
+ label="Opened automatically / Notification about compromised passwords"/>
+ <int value="12"
label="Opened automatically / Offering to move profile password to
account store"/>
</enum>
+<enum name="PasswordBubbleFollowupType">
+ <int value="0" label="Safe state"/>
+ <int value="1" label="More passwords to fix"/>
+ <int value="2" label="Unsafe state"/>
+</enum>
+
<enum name="PasswordBubbleSignInPromoDismissalReason">
<int value="0" label="Dismissed"/>
<int value="1" label="Sign in"/>
@@ -52903,6 +54124,30 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Password Settings"/>
<int value="2" label="Phish Guard Dialog"/>
<int value="3" label="Password Breach Dialog"/>
+ <int value="4" label="More passwords to fix bubble"/>
+ <int value="5" label="Unsafe state bubble"/>
+</enum>
+
+<enum name="PasswordCheckReferrerAndroid">
+ <int value="0" label="Password Settings"/>
+ <int value="1" label="Safety Check"/>
+ <int value="2" label="Password Breach Dialog"/>
+</enum>
+
+<enum name="PasswordCheckUIUserActionAndroid">
+ <int value="0" label="Start check automatically"/>
+ <int value="1" label="Start check manually"/>
+ <int value="2" label="Cancel check"/>
+ <int value="3" label="Change password"/>
+ <int value="4" label="Change password automatically"/>
+ <int value="5" label="Change password manually"/>
+ <int value="6" label="View password click"/>
+ <int value="7" label="Viewed password"/>
+ <int value="8" label="Copied password"/>
+ <int value="9" label="Edit password click"/>
+ <int value="10" label="Edited password"/>
+ <int value="11" label="Delete password click"/>
+ <int value="12" label="Deleted password"/>
</enum>
<enum name="PasswordDecryptionResult">
@@ -53607,6 +54852,12 @@ Called by update_net_trust_anchors.py.-->
<int value="6" label="Fill On Select">
User is browsing with the Fill On Select feature enabled.
</int>
+ <int value="7" label="Reauth required">
+ Re-authenticaion for filling passwords is required.
+ </int>
+ <int value="8" label="Password is already filled">
+ Password field is already filled in and it doesn't look like a placeholder.
+ </int>
</enum>
<enum name="PasswordManagerHttpCredentialType">
@@ -53998,13 +55249,13 @@ Called by update_net_trust_anchors.py.-->
<enum name="PasswordManagerUIDismissalReason">
<int value="0" label="Bubble lost focus / No infobar interaction"/>
- <int value="1" label="Clicked 'Save'"/>
+ <int value="1" label="Clicked 'Save'/'Update'/'Move'/etc"/>
<int value="2" label="Clicked 'Nope'"/>
<int value="3" label="Clicked 'Never'"/>
<int value="4" label="Clicked 'Manage passwords'"/>
- <int value="5" label="Clicked 'Done'"/>
+ <int value="5" label="Clicked 'Done' (obsolete)"/>
<int value="6" label="Clicked 'Unblacklist' (obsolete)"/>
- <int value="7" label="Clicked 'OK'"/>
+ <int value="7" label="Clicked 'OK' (obsolete)"/>
<int value="8" label="Clicked on a credential (obsolete)"/>
<int value="9" label="Auto-signin toast timeout"/>
<int value="10" label="Auto-signin toast clicked (obsolete)"/>
@@ -54042,6 +55293,7 @@ Called by update_net_trust_anchors.py.-->
<int value="19" label="Turned off by enterprise admin"/>
<int value="20" label="SafeBrowsing disabled"/>
<int value="21" label="User not signed in"/>
+ <int value="22" label="Country is excluded from Safe Browsing"/>
</enum>
<enum name="PasswordProtectionSyncAccountType">
@@ -54086,6 +55338,22 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Has password field"/>
</enum>
+<enum name="PasswordScriptsFetcherCacheState">
+ <int value="0" label="Cache is ready"/>
+ <int value="1" label="Cache is stale. Re-fetch needed"/>
+ <int value="2" label="Cache was never set"/>
+ <int value="3" label="Request is in flight"/>
+</enum>
+
+<enum name="PasswordScriptsFetcherParsingResult">
+ <int value="0" label="No response from server"/>
+ <int value="1" label="Invalid JSON string - deprecated"/>
+ <int value="2" label="Not a JSON dictionary - deprecated"/>
+ <int value="3" label="Invalid URLs found"/>
+ <int value="4" label="OK"/>
+ <int value="5" label="Invalid JSON (either syntactically or structurally)"/>
+</enum>
+
<enum name="PasswordStoreChange">
<int value="0" label="Add - If the PasswordForm login was added."/>
<int value="1" label="Update - If the PasswordForm login was updated."/>
@@ -54156,6 +55424,14 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="CanMakePayment() returned true and show() was called"/>
</enum>
+<enum name="PaymentRequestCheckoutFunnelSteps">
+ <int value="0" label="Initiated"/>
+ <int value="1" label="Show() called"/>
+ <int value="2" label="Payment request triggered (shown + skipped show)"/>
+ <int value="3" label="Payment handler invoked"/>
+ <int value="4" label="Completed"/>
+</enum>
+
<enum name="PaymentRequestFlowCompletionStatus">
<int value="0" label="Completed"/>
<int value="1" label="User Aborted"/>
@@ -54720,6 +55996,17 @@ Called by update_net_trust_anchors.py.-->
<int value="6" label="Could Not Create Upload Directory"/>
</enum>
+<enum name="PhoneCollectionState">
+ <int value="0" label="Phone Not Collected, WebOTP Not Used, OTC Not Used"/>
+ <int value="1" label="Phone Not Collected, WebOTP Not Used, OTC Used"/>
+ <int value="2" label="Phone Not Collected, WebOTP Used, OTC Not Used"/>
+ <int value="3" label="Phone Not Collected, WebOTP Used, OTC Used"/>
+ <int value="4" label="Phone Collected, WebOTP Not Used, OTC Not Used"/>
+ <int value="5" label="Phone Collected, WebOTP Not Used, OTC Used"/>
+ <int value="6" label="Phone Collected, WebOTP Used, OTC Not Used"/>
+ <int value="7" label="Phone Collected, WebOTP Used, OTC Used"/>
+</enum>
+
<enum name="PhoneNumberRegexVariantResult">
<obsolete>
Removed in M82 as the experiment has been stopped.
@@ -54865,6 +56152,16 @@ Called by update_net_trust_anchors.py.-->
<int value="204" label="ERR_CHUNKED_TEXT_WITH_SINGLE_CHUNK"/>
</enum>
+<enum name="PinAutosubmitBackfillEvent">
+ <summary>
+ The event generated when backfilling the user preferences for PIN auto
+ submit.
+ </summary>
+ <int value="0" label="Backfilled to enabled"/>
+ <int value="1" label="Backfilled to disabled due to policy"/>
+ <int value="2" label="Backfilled to disabled due to PIN length."/>
+</enum>
+
<enum name="PingResult">
<int value="0" label="Success"/>
<int value="1" label="Response started"/>
@@ -55122,6 +56419,7 @@ Called by update_net_trust_anchors.py.-->
<int value="22" label="DLC_NEED_SPACE"/>
<int value="23" label="INSUFFICIENT_DISK_SPACE"/>
<int value="24" label="INVALID_LICENSE"/>
+ <int value="25" label="OFFLINE"/>
</enum>
<enum name="PluginVmSetupResult">
@@ -55207,6 +56505,8 @@ Called by update_net_trust_anchors.py.-->
<int value="36" label="Display"/>
<int value="37" label="ActiveDirectoryManagement"/>
<int value="38" label="LegacySameSiteCookieBehaviorSettings"/>
+ <int value="39" label="SensorsSettings"/>
+ <int value="40" label="PrivateNetworkRequestSettings"/>
</enum>
<enum name="PolicyLoadStatus">
@@ -55645,6 +56945,7 @@ Called by update_net_trust_anchors.py.-->
<int value="0" label="Add preferred app"/>
<int value="1" label="Delete preferred app"/>
<int value="2" label="Delete preferred app for an app id"/>
+ <int value="3" label="Upgrade preferred app to newer version"/>
</enum>
<enum name="PrefetchRedirect">
@@ -56398,6 +57699,51 @@ Called by update_net_trust_anchors.py.-->
<int value="4" label="Printer was setup via Extensions API"/>
</enum>
+<enum name="PrinterStatusQueryResult">
+ <int value="0" label="UNKNOWN_FAILURE">All other query failures.</int>
+ <int value="1" label="SUCCESS">Printer returned a valid printer status.</int>
+ <int value="2" label="UNREACHABLE">
+ Device could not connect to the printer.
+ </int>
+</enum>
+
+<enum name="PrinterStatusReasons">
+ <int value="0" label="UNKNOWN_REASON"/>
+ <int value="1" label="NONE"/>
+ <int value="2" label="MEDIA_NEEDED"/>
+ <int value="3" label="MEDIA_JAM"/>
+ <int value="4" label="MOVING_TO_PAUSED"/>
+ <int value="5" label="PAUSED"/>
+ <int value="6" label="SHUTDOWN"/>
+ <int value="7" label="CONNECTING_TO_DEVICE"/>
+ <int value="8" label="TIMED_OUT"/>
+ <int value="9" label="STOPPING"/>
+ <int value="10" label="STOPPED_PARTLY"/>
+ <int value="11" label="TONER_LOW"/>
+ <int value="12" label="TONER_EMPTY"/>
+ <int value="13" label="SPOOL_AREA_FULL"/>
+ <int value="14" label="COVER_OPEN"/>
+ <int value="15" label="INTERLOCK_OPEN"/>
+ <int value="16" label="DOOR_OPEN"/>
+ <int value="17" label="INPUT_TRAY_MISSING"/>
+ <int value="18" label="MEDIA_LOW"/>
+ <int value="19" label="MEDIA_EMPTY"/>
+ <int value="20" label="OUTPUT_TRAY_MISSING"/>
+ <int value="21" label="OUTPUT_AREA_ALMOST_FULL"/>
+ <int value="22" label="OUTPUT_AREA_FULL"/>
+ <int value="23" label="MARKER_SUPPLY_LOW"/>
+ <int value="24" label="MARKER_SUPPLY_EMPTY"/>
+ <int value="25" label="MARKER_WASTE_ALMOST_FULL"/>
+ <int value="26" label="MARKER_WASTE_FULL"/>
+ <int value="27" label="FUSER_OVER_TEMP"/>
+ <int value="28" label="FUSER_UNDER_TEMP"/>
+ <int value="29" label="OPC_NEAR_EOL"/>
+ <int value="30" label="OPC_LIFE_OVER"/>
+ <int value="31" label="DEVELOPER_LOW"/>
+ <int value="32" label="DEVELOPER_EMPTY"/>
+ <int value="33" label="INTERPRETER_RESOURCE_UNAVAILABLE"/>
+</enum>
+
<enum name="PrintJobResult">
<int value="0" label="Unknown"/>
<int value="1" label="Successful Finish"/>
@@ -56512,6 +57858,7 @@ Called by update_net_trust_anchors.py.-->
<int value="10" label="PRINT_WITH_EXTENSION"/>
<int value="11" label="OPEN_IN_MAC_PREVIEW"/>
<int value="12" label="PRINT_TO_GOOGLE_DRIVE"/>
+ <int value="13" label="PRINT_TO_GOOGLE_DRIVE_CROS"/>
</enum>
<enum name="PrintSettings">
@@ -56845,11 +58192,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</enum>
<enum name="ProfileAddNewUser">
- <int value="0" label="Add new user from icon menu"/>
+ <int value="0" label="(Deprecated) Add new user from icon menu"/>
<int value="1" label="Add new user from title bar menu"/>
<int value="2" label="Add new user from settings dialog"/>
- <int value="3" label="Add new user from the User Manager"/>
+ <int value="3" label="Add new user from the Profile picker"/>
<int value="4" label="Auto-created after deleting last user"/>
+ <int value="5" label="Add new user from sign-in interception"/>
+ <int value="6" label="Add new user from the sync flow (to avoid data clash)"/>
</enum>
<enum name="ProfileAllAccountsCategories">
@@ -56944,6 +58293,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</enum>
<enum name="ProfileAvatarLoadStatus">
+ <obsolete>
+ Deprecated. Code was deleted in M87.
+ </obsolete>
<int value="0" label="Loaded"/>
<int value="1" label="Loading"/>
<int value="2" label="Missing"/>
@@ -57081,6 +58433,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="15" label="Add new profile button"/>
<int value="16" label="Sync settings(sync on) button"/>
<int value="17" label="Edit profile button"/>
+ <int value="18" label="Create incognito shortcut button"/>
</enum>
<enum name="ProfileNameState">
@@ -57163,6 +58516,28 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="9" label="Switch to profile from context menu"/>
</enum>
+<enum name="ProfilePickerAction">
+ <int value="0" label="Launch existing profile"/>
+ <int value="1" label="Launch existing profile on customize settings page"/>
+ <int value="2" label="Launch guest profile"/>
+ <int value="3" label="Launch new profile"/>
+ <int value="4" label="Delete profile"/>
+</enum>
+
+<enum name="ProfilePickerEntryPoint">
+ <int value="0" label="On startup"/>
+ <int value="1" label="Manage profile button in the profile menu"/>
+ <int value="2" label="Add new profile button in the profile menu"/>
+ <int value="3" label="Open new window after profile deletion"/>
+</enum>
+
+<enum name="ProfilePickerPages">
+ <int value="0" label="mainView"/>
+ <int value="1" label="profileTypeChoice"/>
+ <int value="2" label="localProfileCustomization"/>
+ <int value="3" label="loadSignIn"/>
+</enum>
+
<enum name="ProfileResetRequestOriginEnum">
<int value="0" label="Unspecified"/>
<int value="1" label="Unknown"/>
@@ -57217,6 +58592,10 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="5" label="User elected to send feedback."/>
</enum>
+<enum name="PromoBrowserCommandEnum">
+ <int value="0" label="Unknown Command"/>
+</enum>
+
<enum name="ProtectorError">
<obsolete>
Deprecated 8/2013. No longer generated.
@@ -57632,17 +59011,6 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</int>
</enum>
-<enum name="PushDeliveryStatus">
- <int value="0" label="Successful"/>
- <int value="1" label="Message was invalid"/>
- <int value="2" label="App id was unknown"/>
- <int value="3" label="Origin no longer has permission"/>
- <int value="4" label="Service Worker not found"/>
- <int value="5" label="Service Worker error"/>
- <int value="6" label="event.waitUntil promise rejected"/>
- <int value="7" label="Service Worker timeout while processing event"/>
-</enum>
-
<enum name="PushedStreamVaryResponseHeaderValues">
<int value="0" label="There is no Vary header."/>
<int value="1" label="The value of Vary is empty."/>
@@ -57658,6 +59026,17 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
is not empty, and is not &quot;*&quot;."/>
</enum>
+<enum name="PushEventStatus">
+ <int value="0" label="Successful"/>
+ <int value="1" label="Message was invalid"/>
+ <int value="2" label="App id was unknown"/>
+ <int value="3" label="Origin no longer has permission"/>
+ <int value="4" label="Service Worker not found"/>
+ <int value="5" label="Service Worker error"/>
+ <int value="6" label="event.waitUntil promise rejected"/>
+ <int value="7" label="Service Worker timeout while processing event"/>
+</enum>
+
<enum name="PushGetRegistrationStatus">
<int value="0" label="Successful"/>
<int value="1" label="No push service"/>
@@ -58428,6 +59807,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="139" label="Terminated by SIGSEGV">
MINIJAIL_ERR_SIG_BASE + SIGSEGV from libminijail
</int>
+ <int value="251" label="Cannot mount file in mount namespace">
+ MINIJAIL_ERR_MOUNT from libminijail
+ </int>
<int value="253" label="Seccomp violation">
MINIJAIL_ERR_JAIL from libminijail
</int>
@@ -58490,6 +59872,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
auto-click"/>
</enum>
+<enum name="ReauthenticationEvent">
+ <int value="0" label="Attempt"/>
+ <int value="1" label="Success"/>
+ <int value="2" label="Failure"/>
+ <int value="3" label="Device does't have a passcode set up."/>
+</enum>
+
<enum name="ReceiverAppTypeSet">
<int value="0" label="Other"/>
<int value="1" label="Web"/>
@@ -59566,7 +60955,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="7" label="MediaElementEvent"/>
<int value="8" label="CanvasBlobSerialization"/>
<int value="9" label="Microtask"/>
- <int value="10" label="JavascriptTimer"/>
+ <int value="10" label="JavascriptTimerDelayed"/>
<int value="11" label="RemoteEvent"/>
<int value="12" label="WebSocket"/>
<int value="13" label="PostedMessage"/>
@@ -59627,6 +61016,8 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="68" label="InternalFrameLifecycleControl"/>
<int value="69" label="MainThreadTaskQueueNonWaking"/>
<int value="70" label="InternalFindInPage"/>
+ <int value="71" label="InternalHighPriorityLocalFrame"/>
+ <int value="72" label="JavascriptTimerImmediate"/>
</enum>
<enum name="RendererSchedulerTaskUseCase">
@@ -60122,35 +61513,35 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<enum name="RequestInitiatorOriginLockCompatibility">
<int value="0" label="BrowserProcess">
- Request came from a browser process and so the |request_initiator_site_lock|
- doesn't apply.
+ Request came from a browser process and so the
+ |request_initiator_origin_lock| doesn't apply.
</int>
<int value="1" label="NoLock">
- |request_initiator_site_lock| is missing - see https://crbug.com/891872 and
- RenderProcessHostImpl::CreateURLLoaderFactoryForRendererProcess.
+ |request_initiator_origin_lock| is missing - see https://crbug.com/1098938
+ and RenderProcessHostImpl::CreateURLLoaderFactoryForRendererProcess.
</int>
<int value="2" label="NoInitiator">|request_initiator| is missing.</int>
<int value="3" label="CompatibleLock">
|request.request_initiator| is compatible with
- |factory_params_.request_initiator_site_lock| - either
+ |factory_params_.request_initiator_origin_lock| - either
|request.request_initiator| is opaque or it is equal to
- |request_initiator_site_lock|.
+ |request_initiator_origin_lock|.
</int>
<int value="4" label="IncorrectLock">
|request.request_initiator| is non-opaque/unique and differs from
- |factory_params_.request_initiator_site_lock|.
+ |factory_params_.request_initiator_origin_lock|.
</int>
<int value="5" label="ExcludedScheme">
- Scheme excluded from request_initiator_site_lock checks. Since ~M80 this
+ Scheme excluded from request_initiator_origin_lock checks. Since ~M80 this
value can only be recorded during tests.
</int>
<int value="6" label="ExcludedCorbForPlugin">
Requests from a renderer process that embeds a plugin (e.g. Flash) that
- needs to disable CORB and request_initiator_site_lock enforcement.
+ needs to disable CORB and request_initiator_origin_lock enforcement.
</int>
<int value="7" label="AllowedRequestInitiatorForPlugin">
Requests from a renderer process that embeds a plugin (e.g. PDF) that needs
- to poke small, targeted holes in request_initiator_site_lock enforcement.
+ to poke small, targeted holes in request_initiator_origin_lock enforcement.
</int>
</enum>
@@ -60379,6 +61770,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</enum>
<enum name="RoamingUserDataDirectoryDeletionResult">
+ <obsolete>
+ Removed in 2020-08 (M86).
+ </obsolete>
<int value="0" label="Error">
An unexpected error occurred during processing.
</int>
@@ -60576,6 +61970,17 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="100" label="DANGEROUS"/>
</enum>
+<enum name="SafeBrowsingSettingsUserAction">
+ <int value="0" label="Settings page showed."/>
+ <int value="1" label="Enhanced protection button clicked."/>
+ <int value="2" label="Standard protection button clicked."/>
+ <int value="3" label="Disable Safe Browsing button clicked."/>
+ <int value="4" label="Enhanced protection expand arrow clicked."/>
+ <int value="5" label="Standard protection expand arrow clicked."/>
+ <int value="6" label="Disable Safe Browsing dialog confirmed."/>
+ <int value="7" label="Disable Safe Browsing dialog denied."/>
+</enum>
+
<enum name="SafeBrowsingStoreAvailabilityResult">
<int value="0" label="Unknown"/>
<int value="1" label="Not Enabled"/>
@@ -60688,6 +62093,13 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="4" label="NOT_SUPPORTED"/>
</enum>
+<enum name="SafetyCheckChromeCleanerStatus">
+ <int value="0" label="HIDDEN"/>
+ <int value="1" label="CHECKING"/>
+ <int value="2" label="INFECTED"/>
+ <int value="3" label="REBOOT_REQUIRED"/>
+</enum>
+
<enum name="SafetyCheckExtensionsStatus">
<int value="0" label="CHECKING"/>
<int value="1" label="ERROR"/>
@@ -60717,6 +62129,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="4" label="DISABLED_BY_EXTENSION"/>
<int value="5" label="ENABLED_STANDARD"/>
<int value="6" label="ENABLED_ENHANCED"/>
+ <int value="7" label="ENABLED_STANDARD_AVAILABLE_ENHANCED"/>
</enum>
<enum name="SafetyCheckUpdateStatus">
@@ -60728,6 +62141,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="5" label="FAILED_OFFLINE"/>
<int value="6" label="FAILED"/>
<int value="7" label="UNKNOWN"/>
+ <int value="8" label="OUTDATED"/>
</enum>
<enum name="SafetyTipInteraction">
@@ -61131,6 +62545,24 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="12" label="WHITELISTED_BY_POLICY"/>
</enum>
+<enum name="SBClientDetectionPreClassificationCheckResult">
+ <int value="0" label="PROXY_FETCH"/>
+ <int value="1" label="PRIVATE_IP"/>
+ <int value="2" label="OFF_THE_RECORD"/>
+ <int value="3" label="MATCH_CSD_WHITELIST"/>
+ <int value="4" label="TOO_MANY_REPORTS"/>
+ <int value="5" label="UNSUPPORTED_MIME_TYPE"/>
+ <int value="6" label="NO_DATABASE_MANAGER"/>
+ <int value="7" label="KILLSWITCH"/>
+ <int value="8" label="CANCEL"/>
+ <int value="9" label="RESULT_FROM_CACHE"/>
+ <int value="10" label="DEPRECATED: NOT_HTTP_URL"/>
+ <int value="11" label="SCHEME_NOT_SUPPORTED"/>
+ <int value="12" label="WHITELISTED_BY_POLICY"/>
+ <int value="13" label="CLASSIFY"/>
+ <int value="14" label="NO_CLASSIFY_HAS_DELAYED_WARNING"/>
+</enum>
+
<enum name="SBClientDownloadCheckDownloadStats">
<int value="0" label="INVALID_URL"/>
<int value="1" label="SB_DISABLED"/>
@@ -62156,6 +63588,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="5" label="Sent for blocked embedder"/>
<int value="6" label="Throttled for too many undrawn frames"/>
<int value="7" label="Sent by default"/>
+ <int value="8" label="Throttled by client request"/>
</enum>
<enum name="SendPasswordFormToBrowserProcess">
@@ -62239,6 +63672,19 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="2" label="Blocked"/>
</enum>
+<enum name="SerialChooserOutcome">
+ <int value="0" label="Chooser cancelled"/>
+ <int value="1" label="Chooser cancelled, no options available"/>
+ <int value="2" label="Permission granted"/>
+ <int value="3" label="Ephemeral permission granted"/>
+</enum>
+
+<enum name="SerialPermissionRevoked">
+ <int value="0" label="Persistent permission revoked by user"/>
+ <int value="1" label="Ephemeral permission revoked by user"/>
+ <int value="2" label="Ephemeral permission revoked on disconnect"/>
+</enum>
+
<enum name="ServiceProcessEventType">
<int value="0" label="SERVICE_EVENT_INITIALIZE"/>
<int value="1" label="SERVICE_EVENT_ENABLED_ON_LAUNCH"/>
@@ -62377,6 +63823,11 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="7" label="NO_CONTEXT_ERROR"/>
</enum>
+<enum name="ServiceWorkerInternalsLinkQuery">
+ <int value="0" label="Accessed from DevTools"/>
+ <int value="1" label="Accessed from outside DevTools"/>
+</enum>
+
<enum name="ServiceWorkerMainResourceRequestDestination">
<obsolete>
Not used since November 2018
@@ -62438,6 +63889,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="32" label="BACKGROUND_FETCH_SUCCESS"/>
<int value="33" label="PERIODIC_SYNC"/>
<int value="34" label="CONTENT_DELETE"/>
+ <int value="35" label="PUSH_SUBSCRIPTION_CHANGE"/>
</enum>
<enum name="ServiceWorkerOfflineCapability">
@@ -62667,10 +64119,10 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
Failed to open the existing db, deleted it, and created a new empty db.
</int>
<int value="2" label="Reopen: Total Fail">
+ Failed to open the database and also failed to delete and start over.
<obsolete>
Deprecated 2016/11. Replaced by other &quot;Reopen:&quot; errors.
</obsolete>
- Failed to open the database and also failed to delete and start over.
</int>
<int value="3" label="Reopen: not found">
Reopen attempt failed with (not found) after successful database delete.
@@ -62754,6 +64206,28 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</int>
</enum>
+<enum name="SettingsLanguagesPageBrowserInteraction">
+ <int value="0" label="Switch system language"/>
+ <int value="1" label="Restart"/>
+ <int value="2" label="Open custom spell check"/>
+</enum>
+
+<enum name="SettingsLanguagesPageInteraction">
+ <int value="0" label="Switch system language"/>
+ <int value="1" label="Restart"/>
+ <int value="2" label="Restart now"/>
+ <int value="3" label="Restart later"/>
+ <int value="4" label="Open custom spell check"/>
+</enum>
+
+<enum name="SettingsLanguagesSupportPage">
+ <int value="0"
+ label="Change Chrome languages &amp; translate webpages id:173424"/>
+ <int value="1" label="Change language id:1059490"/>
+ <int value="2"
+ label="Change keyboard languages &amp; special characters id:1059492"/>
+</enum>
+
<enum name="SettingsNavigationSources">
<int value="0" label="Other"/>
<int value="1" label="From TWA clear data dialog"/>
@@ -62867,6 +64341,8 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="2" label="Safety check, manage passwords"/>
<int value="3" label="Safety check, manage safe browsing"/>
<int value="4" label="Safety check, review extensions"/>
+ <int value="5" label="Safety check, reboot via Chrome cleaner"/>
+ <int value="6" label="Safety check, review Chrome cleaner infected state"/>
</enum>
<enum name="SettingsSections">
@@ -63326,6 +64802,9 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</enum>
<enum name="ShowAllSavedPasswordsContext">
+ <obsolete>
+ Deprecated 08/2020.
+ </obsolete>
<int value="0" label="None"/>
<int value="1" label="Under password suggestions"/>
<int value="2" label="Standalone suggestion"/>
@@ -63488,6 +64967,7 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="29" label="Forced sign-in"/>
<int value="30" label="Re-signin after an account rename"/>
<int value="31" label="Sign-in promo in the web sign-in flow"/>
+ <int value="32" label="Safety check settings page"/>
</enum>
<enum name="SigninAccountEquality">
@@ -63599,6 +65079,27 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="10" label="Undo">The sync was aborted with an undo button.</int>
</enum>
+<enum name="SigninInterceptHeuristicOutcome">
+ <int value="0" label="Intercept: profile switch"/>
+ <int value="1" label="Intercept: multi-user"/>
+ <int value="2" label="Intercept: enterprise"/>
+ <int value="3" label="Abort: Sync signin"/>
+ <int value="4" label="Abort: intercept in progress"/>
+ <int value="5" label="Abort: account not new"/>
+ <int value="6" label="Abort: single account"/>
+ <int value="7" label="Abort: account info fetch timeout"/>
+ <int value="8" label="Abort: account info not compatible"/>
+ <int value="9" label="Abort: profile creation disallowed"/>
+ <int value="10" label="Abort: shut down"/>
+</enum>
+
+<enum name="SigninInterceptResult">
+ <int value="0" label="Accepted"/>
+ <int value="1" label="Declined"/>
+ <int value="2" label="Ignored"/>
+ <int value="3" label="Not displayed"/>
+</enum>
+
<enum name="SigninInvalidGaiaCredentialsReason">
<int value="0" label="Unknown"/>
<int value="1" label="Credentials rejected by server"/>
@@ -64111,8 +65612,16 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
</enum>
<enum name="SigninSSOIdentityListRequestCacheState">
- <int value="0" label="SSO Identity list is stale"/>
- <int value="1" label="SSO Identity list is valid"/>
+ <int value="0"
+ label="SSO identity cache is stale, M85: the identity list is
+ synchronously fetched and then returned, M86: the stale identity
+ list is returned."/>
+ <int value="1"
+ label="SSO identity cache is valid, the valid identity list is
+ returned."/>
+ <int value="2"
+ label="SSO identity cache is not populated, the identity list is
+ synchronously fetched and then returned."/>
</enum>
<enum name="SigninSSOWKWebViewGetAllCookiesRequest">
@@ -66376,6 +67885,17 @@ https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf
<int value="2" label="Access grant used to allow access"/>
</enum>
+<enum name="StoragePartitionRemoverTasks">
+ <int value="1" label="kSynchronous"/>
+ <int value="2" label="kCookies"/>
+ <int value="3" label="kQuota"/>
+ <int value="4" label="kLocalStorage"/>
+ <int value="5" label="kSessionStorage"/>
+ <int value="6" label="kShaderCache"/>
+ <int value="7" label="kPluginPrivate"/>
+ <int value="8" label="kConversions"/>
+</enum>
+
<enum name="StoragePressureBubbleUserAction">
<int value="0" label="The bubble was shown."/>
<int value="1" label="The user ignored the bubble."/>
@@ -66680,6 +68200,19 @@ would be helpful to identify which type is being sent.
<int value="7" label="Favicon"/>
</enum>
+<enum name="SuggestionPedalType">
+ <summary>
+ Type of pedal shown or selected in the omnibox suggestion list.
+ </summary>
+ <int value="0" label="None"/>
+ <int value="1" label="Clear browsing data"/>
+ <int value="2" label="Manage passwords"/>
+ <int value="3" label="Update credit card"/>
+ <int value="4" label="Launch incognito"/>
+ <int value="5" label="Translate"/>
+ <int value="6" label="Update Chrome"/>
+</enum>
+
<enum name="SuggestionsResponseState">
<int value="0" label="Empty response received from the server."/>
<int value="1" label="Invalid response received from the server."/>
@@ -67161,6 +68694,7 @@ would be helpful to identify which type is being sent.
<int value="9" label="Client tag hash does not match bookmark GUID"/>
<int value="10" label="Duplicate client tag hashes exist"/>
<int value="11" label="Managed bookmark has sync metadata"/>
+ <int value="12" label="Entity missing client tag hash"/>
</enum>
<enum name="SyncBookmarkModelSyncState">
@@ -67551,6 +69085,7 @@ would be helpful to identify which type is being sent.
<int value="46" label="OS Preferences"/>
<int value="47" label="OS Priority Preferences"/>
<int value="48" label="Sharing Message"/>
+ <int value="49" label="Autofill Wallet Offer"/>
</enum>
<enum name="SyncModelTypeStoreInitResult">
@@ -67855,6 +69390,16 @@ would be helpful to identify which type is being sent.
<int value="2" label="Not loaded on creation"/>
</enum>
+<enum name="TabbedPaintPreviewExitCause">
+ <int value="0" label="Pull to Refresh"/>
+ <int value="1" label="Actionbar Action"/>
+ <int value="2" label="Compositor Failed to Load"/>
+ <int value="3" label="Tab Finished Loading"/>
+ <int value="4" label="Link Clicked"/>
+ <int value="5" label="Navigation Started"/>
+ <int value="6" label="Tab Destroyed"/>
+</enum>
+
<enum name="TabDiscardingEvents">
<int value="0" label="Switched to an active tab"/>
<int value="1" label="Switched to a discarded tab"/>
@@ -67944,6 +69489,22 @@ would be helpful to identify which type is being sent.
</int>
</enum>
+<enum name="TabSearchCloseActions">
+ <int value="0" label="User did not close via Tab Search UI">
+ The UI was dismissed via interactions outside what is offered by the Tab
+ Search UI.
+ </int>
+ <int value="1" label="User switched to an open tab">
+ The Tab Search UI was dismissed as a result of the user opting to switch to
+ a currently open tab.
+ </int>
+</enum>
+
+<enum name="TabSearchTabSwitchAction">
+ <int value="0" label="Switch to tab from unfiltered tab list"/>
+ <int value="1" label="Switch to tab from filtered search tab list"/>
+</enum>
+
<enum name="TabStatus">
<int value="0" label="Memory resident"/>
<int value="1" label="Evicted and reloaded"/>
@@ -68905,7 +70466,7 @@ Full version information for the fingerprint enum values:
-->
<int value="29785307" label="CROS Cr50 0.1.2"/>
- <int value="67287287" label="CROS Cr50 0.4.26"/>
+ <int value="67287287" label="CROS Cr50 0.4.26 aka 0.6.0"/>
<int value="91611772" label="CROS Cr50 0.4.21"/>
<int value="91664959" label="CROS Cr50 0.0.16"/>
<int value="113099773" label="CROS Cr50 0.0.23 Eve Flags 0x7f00(prod)"/>
@@ -68918,6 +70479,7 @@ Full version information for the fingerprint enum values:
<int value="276176597" label="CROS Cr50 0.1.0 Flags 0x10(pre-pvt)"/>
<int value="305524852" label="IFX 9655 rev 41 fw 4.32 build 036f"/>
<int value="313962517" label="CROS Cr50 0.3.16"/>
+ <int value="326080143" label="CROS Cr50 0.6.5"/>
<int value="337883107" label="CROS Cr50 0.4.20"/>
<int value="368058567" label="STM d08"/>
<int value="379654202" label="CROS Cr50 0.0.13"/>
@@ -68944,11 +70506,16 @@ Full version information for the fingerprint enum values:
<int value="1001367086" label="CROS Cr50 0.3.15"/>
<int value="1009763914" label="CROS Cr50 0.4.10"/>
<int value="1013730596" label="CROS Cr50 0.0.26 Flags 0x10(pre-pvt)"/>
+ <int value="1017773041" label="CROS Cr50 0.5.4"/>
+ <int value="1026125897" label="CROS Cr50 0.5.5"/>
<int value="1039624416" label="CROS Cr50 0.3.10"/>
+ <int value="1048372479" label="CROS Cr50 0.6.4"/>
<int value="1065916186" label="CROS Cr50 0.0.19"/>
+ <int value="1080347583" label="CROS Cr50 0.6.2"/>
<int value="1123680979" label="CROS Cr50 0.3.4"/>
<int value="1184698907" label="CROS Cr50 0.3.23"/>
<int value="1190683265" label="CROS Cr50 0.0.14"/>
+ <int value="1204349964" label="CROS Cr50 0.6.3"/>
<int value="1290177221" label="CROS Cr50 0.4.6 Flags 0x10(pre-pvt)"/>
<int value="1311411160" label="WEC 345"/>
<int value="1353576267" label="IFX 9635 fw 3.18 build 0009"/>
@@ -68964,7 +70531,7 @@ Full version information for the fingerprint enum values:
<int value="1717226620" label="CROS Cr50 0.4.14 Flags 0x10(pre-pvt)"/>
<int value="1733077393" label="IFX 9645 rev 49 fw 133.33 build 00e3"/>
<int value="1774347833" label="CROS Cr50 0.0.15"/>
- <int value="1787609211" label="CROS Cr50 0.3.26"/>
+ <int value="1787609211" label="CROS Cr50 0.3.26 aka 0.5.0"/>
<int value="1799811131" label="CROS Cr50 0.3.9"/>
<int value="1828625721" label="IFX 9655 rev 32 fw 4.31 build 02c2"/>
<int value="1848357394" label="CROS Cr50 0.4.11 Flags 0x10(pre-pvt)"/>
@@ -68983,6 +70550,7 @@ Full version information for the fingerprint enum values:
label="CROS Cr50 0.2.2 aka 0.4.4 Flags 0x10(pre-pvt)"/>
<int value="2104725364" label="CROS Cr50 0.3.20"/>
<int value="2109398286" label="CROS Cr50 0.4.7"/>
+ <int value="2127616984" label="CROS Cr50 0.6.1"/>
</enum>
<enum name="TracingFinalizationDisallowedReason">
@@ -69259,6 +70827,13 @@ Full version information for the fingerprint enum values:
<int value="3" label="False to True"/>
</enum>
+<enum name="TrustedWebActivityQualityEnforcementViolationType">
+ <int value="0" label="Error 404"/>
+ <int value="1" label="Error 5xx"/>
+ <int value="2" label="Page unavailable offline"/>
+ <int value="3" label="Digital assetlinks verification failure"/>
+</enum>
+
<enum name="TunnelRedirectHistogramValue">
<obsolete>
Removed in Chrome 76.
@@ -69592,6 +71167,9 @@ Full version information for the fingerprint enum values:
<int value="8" label="Verification Failed"/>
<int value="9" label="Post-install Failed"/>
<int value="10" label="Abnormal Termination"/>
+ <int value="11" label="Update Cancelled"/>
+ <int value="12" label="Update Succeeded But Not Active"/>
+ <int value="13" label="Skipped Current Update"/>
</enum>
<enum name="UpdateEngineCertificateCheckStatus">
@@ -70464,15 +72042,53 @@ Full version information for the fingerprint enum values:
<int value="3" label="FAILED_OTHER">Failed for other reason</int>
</enum>
+<enum name="VaapiFunctions">
+ <int value="0" label="vaBeginPicture()"/>
+ <int value="1" label="vaCreateBuffer()"/>
+ <int value="2" label="vaCreateConfig()"/>
+ <int value="3" label="vaCreateContext()"/>
+ <int value="4" label="vaCreateImage()"/>
+ <int value="5" label="vaCreateSurfaces() (allocate mode)"/>
+ <int value="6" label="vaCreateSurfaces() (import mode)"/>
+ <int value="7" label="vaDestroyBuffer()"/>
+ <int value="8" label="vaDestroyConfig()"/>
+ <int value="9" label="vaDestroyContext()"/>
+ <int value="10" label="vaDestroySurfaces()"/>
+ <int value="11" label="vaEndPicture()"/>
+ <int value="12" label="vaExportSurfaceHandle()"/>
+ <int value="13" label="vaGetConfigAttributes()"/>
+ <int value="14" label="vaPutImage()"/>
+ <int value="15" label="vaPutSurface()"/>
+ <int value="16" label="vaQueryConfigAttributes()"/>
+ <int value="17" label="vaQueryImageFormats()"/>
+ <int value="18" label="vaQuerySurfaceAttributes()"/>
+ <int value="19" label="vaQueryVideoProcPipelineCaps()"/>
+ <int value="20" label="vaRenderPicture() (|pending_va_buffers_|)"/>
+ <int value="21" label="vaRenderPicture() using VPP"/>
+ <int value="22" label="vaSyncSurface()"/>
+ <int value="23" label="vaTerminate()"/>
+ <int value="24" label="vaUnmapBuffer()"/>
+ <int value="25" label="Other VA functions"/>
+</enum>
+
<enum name="VAIPFailure">
+ <obsolete>
+ Deprecated as of 8/2020.
+ </obsolete>
<int value="0" label="VAAPI_VPP_ERROR"/>
</enum>
<enum name="VAJDAFailure">
+ <obsolete>
+ Deprecated as of 8/2020, superseded by VaapiFunctions.
+ </obsolete>
<int value="0" label="VAAPI_ERROR"/>
</enum>
<enum name="VAJDAWorkerDecoderFailure">
+ <obsolete>
+ Deprecated as of 8/2020, superseded by VaapiFunctions.
+ </obsolete>
<int value="0" label="kVaapiError"/>
</enum>
@@ -70521,6 +72137,13 @@ Full version information for the fingerprint enum values:
<int value="4" label="Seed import failed - invalid response date string"/>
</enum>
+<enum name="VariationsHeadersOwner">
+ <int value="0" label="Unknown (render-thread-initiated request)"/>
+ <int value="1" label="Unknown (request initiated elsewhere)"/>
+ <int value="2" label="Not Google-owned"/>
+ <int value="3" label="Google-owned"/>
+</enum>
+
<enum name="VariationsHeadersRequestContextCategory">
<int value="0" label="First party: Request intiated by browser."/>
<int value="1"
@@ -70540,7 +72163,7 @@ Full version information for the fingerprint enum values:
non-Google-associated page."/>
<int value="8"
label="Third party: Request initiated by non-Google-associated page
- (frame origin)."/>
+ (frame origin). (Deprecated)"/>
</enum>
<enum name="VariationsHeadersURLValidationResult">
@@ -70694,6 +72317,9 @@ Full version information for the fingerprint enum values:
</enum>
<enum name="VAVDADecoderFailure">
+ <obsolete>
+ Deprecated as of 8/2020, superseded by VaapiFunctions.
+ </obsolete>
<int value="0" label="VAAPI_ERROR"/>
<int value="1" label="VAAPI_VPP_ERROR"/>
</enum>
@@ -70710,6 +72336,9 @@ Full version information for the fingerprint enum values:
</enum>
<enum name="VAVEAEncoderFailure">
+ <obsolete>
+ Deprecated as of 8/2020, superseded by VaapiFunctions.
+ </obsolete>
<int value="0" label="VAAPI_ERROR"/>
</enum>
@@ -71403,6 +73032,12 @@ Full version information for the fingerprint enum values:
<int value="30998784" label="Generic Error"/>
</enum>
+<enum name="VirtualKeyboardHandwritingCommitType">
+ <int value="0" label="Commit text only"/>
+ <int value="1" label="Commit text with newline"/>
+ <int value="2" label="Commit text with space"/>
+</enum>
+
<enum name="VisibleTab">
<int value="0" label="Custom Tab"/>
<int value="1" label="Chrome Tab"/>
@@ -72767,6 +74402,7 @@ Called by update_scheduler_enums.py.-->
<int value="49" label="PaymentManager"/>
<int value="50" label="SpeechSynthesis"/>
<int value="51" label="KeyboardLock"/>
+ <int value="52" label="SmsService"/>
</enum>
<enum name="WebShareMethod">
@@ -73460,11 +75096,25 @@ Called by update_scheduler_enums.py.-->
</enum>
<enum name="WebViewExtraHeaders">
+ <obsolete>
+ Replaced by WebViewExtraHeadersRedirect 2020-07
+ </obsolete>
<int value="0" label="Added headers in StartRequest"/>
<int value="1" label="Kept headers through same-origin redirect"/>
<int value="2" label="Removed headers on cross-origin redirect"/>
</enum>
+<enum name="WebViewExtraHeadersRedirect">
+ <int value="0" label="Same-origin redirect"/>
+ <int value="1" label="Same-domain (but cross-origin) redirect"/>
+ <int value="2" label="Cross-domain redirect"/>
+</enum>
+
+<enum name="WebViewOpenWebVisibility">
+ <int value="0" label="OpenWebContentVisible"/>
+ <int value="1" label="OpenWebContentNotVisible"/>
+</enum>
+
<enum name="WebViewUrlScheme">
<int value="0" label="Empty URL"/>
<int value="1" label="Unknown scheme"/>
@@ -73482,11 +75132,42 @@ Called by update_scheduler_enums.py.-->
<int value="13" label="android_asset or android_res"/>
</enum>
+<enum name="WebViewUserAgentType">
+ <int value="0" label="Valid"/>
+ <int value="1" label="Invalid - contains one or more nulls"/>
+ <int value="2"
+ label="Invalid - but could be extra headers (with correct line endings)"/>
+ <int value="3"
+ label="Invalid - but could be extra headers (but with wrong line
+ endings)"/>
+ <int value="4"
+ label="Invalid - but could be attempting to terminate headers"/>
+ <int value="5"
+ label="Invalid - none of the above; random garbage or an unknown case"/>
+</enum>
+
<enum name="WebViewVisibility">
<int value="0" label="Visible"/>
<int value="1" label="NotVisible"/>
</enum>
+<enum name="WelcomeScreenA11yUserAction">
+ <int value="0" label="Enable spoken feedback"/>
+ <int value="1" label="Disable spoken feedback"/>
+ <int value="2" label="Enable large cursor"/>
+ <int value="3" label="Disable large cursor"/>
+ <int value="4" label="Enable high contrast"/>
+ <int value="5" label="Disable high contrast"/>
+ <int value="6" label="Enable screen magnifier"/>
+ <int value="7" label="Disable screen magnifier"/>
+ <int value="8" label="Enable select to speak option"/>
+ <int value="9" label="Disable select to speak option"/>
+ <int value="10" label="Enable docked magnifier"/>
+ <int value="11" label="Disable docked magnifier"/>
+ <int value="12" label="Enable virtual keyboard"/>
+ <int value="13" label="Disable virtual keyboard"/>
+</enum>
+
<enum name="WelcomeSignInPromptOutcome">
<int value="0" label="User navigated away from page"/>
<int value="1" label="User clicked the 'Get Started' button"/>
@@ -73498,6 +75179,12 @@ Called by update_scheduler_enums.py.-->
<int value="5" label="User clicked the 'Sign in' button"/>
</enum>
+<enum name="WellKnownChangePasswordResult">
+ <int value="0" label="Fallback to Origin"/>
+ <int value="1" label="Fallback to Url Override"/>
+ <int value="2" label="Well-Known supported"/>
+</enum>
+
<enum name="WhitelistedDownloadType">
<int value="0" label="Does not match any whitelists"/>
<int value="1" label="URL whitelist"/>
@@ -75479,6 +77166,11 @@ Called by update_scheduler_enums.py.-->
<int value="3" label="cross-origin (others)"/>
</enum>
+<enum name="WorkerType">
+ <int value="0" label="SharedWorker"/>
+ <int value="1" label="ServiceWorker"/>
+</enum>
+
<enum name="WrenchMenuAction">
<int value="0" label="New tab"/>
<int value="1" label="New window"/>
@@ -75682,6 +77374,12 @@ Called by update_scheduler_enums.py.-->
</int>
</enum>
+<enum name="ZeroRttState">
+ <int value="0" label="Attempted and succeeded"/>
+ <int value="1" label="Attempted and rejected"/>
+ <int value="2" label="Not Attempted"/>
+</enum>
+
<enum name="ZeroStateResultType">
<int value="0" label="Unknown"/>
<int value="1" label="Unanticipated"/>
diff --git a/chromium/tools/metrics/histograms/expand_owners.py b/chromium/tools/metrics/histograms/expand_owners.py
index 5bccb1b904a..e57f6e598e3 100644
--- a/chromium/tools/metrics/histograms/expand_owners.py
+++ b/chromium/tools/metrics/histograms/expand_owners.py
@@ -34,31 +34,52 @@ def _AddTextNodeWithNewLineAndIndent(histogram, node_to_insert_before):
node_to_insert_before)
-def _IsEmailOrPlaceholder(is_first_owner, owner_tag_text, histogram_name):
- """Returns true if |owner_tag_text| is an email or the placeholder text.
+def _IsValidPrimaryOwnerEmail(owner_tag_text):
+ """Returns true if |owner_tag_text| is a valid primary owner.
- Also, verifies that a histogram's first owner tag contains either an email
- address, e.g. 'ali@chromium.org' or the placeholder text.
+ A valid primary owner is an individual (not a team) with a Chromium or Google
+ email address.
+
+ Args:
+ owner_tag_text: The text in an owner tag
+ """
+ if '-' in owner_tag_text: # Check whether it's a team email address.
+ return False
+
+ return (owner_tag_text.endswith('@chromium.org')
+ or owner_tag_text.endswith('@google.com'))
+
+
+def _IsEmailOrPlaceholder(is_first_owner, owner_tag_text, histogram_name,
+ is_obsolete):
+ """Returns true if owner_tag_text is an email or the placeholder text.
+
+ Also, for histograms that are not obsolete, verifies that a histogram's first
+ owner tag contains a valid primary owner.
Args:
is_first_owner: True if a histogram's first owner tag is being checked.
owner_tag_text: The text of the owner tag being checked, e.g.
'julie@google.com' or 'src/ios/net/cookies/OWNERS'.
histogram_name: The string name of the histogram.
+ is_obsolete: True if the histogram is obsolete.
Raises:
- Error: Raised if (A) the text is from the first owner tag and (B) the text
- is not a primary owner.
+ Error: Raised if (A) the text is from the first owner tag, (B) the histogram
+ is not obsolete, and (C) the text is not a valid primary owner.
"""
- is_email_or_placeholder = (re.match(_EMAIL_PATTERN, owner_tag_text) or
- owner_tag_text == extract_histograms.OWNER_PLACEHOLDER)
+ is_email = re.match(_EMAIL_PATTERN, owner_tag_text)
+ is_placeholder = owner_tag_text == extract_histograms.OWNER_PLACEHOLDER
+ should_check_owner_email = (is_first_owner and not is_obsolete
+ and not is_placeholder)
- if is_first_owner and not is_email_or_placeholder:
- raise Error('The histogram {} must have a valid first owner, i.e. an '
- 'individual\'s email address.'
- .format(histogram_name))
+ if should_check_owner_email and not _IsValidPrimaryOwnerEmail(owner_tag_text):
+ raise Error(
+ 'The histogram {} must have a valid primary owner, i.e. a '
+ 'person with an @google.com or @chromium.org email address.'.format(
+ histogram_name))
- return is_email_or_placeholder
+ return is_email or is_placeholder
def _IsWellFormattedFilePath(path):
@@ -322,9 +343,11 @@ def ExpandHistogramsOWNERS(histograms):
for component in iter_matches(histogram, 'component', 1)])
for index, owner in enumerate(owners):
- owner_text = owner.childNodes[0].data
+ owner_text = owner.childNodes[0].data.strip()
name = histogram.getAttribute('name')
- if _IsEmailOrPlaceholder(index == 0, owner_text, name):
+ obsolete_tags = [tag for tag in iter_matches(histogram, 'obsolete', 1)]
+ is_obsolete = len(obsolete_tags) > 0
+ if _IsEmailOrPlaceholder(index == 0, owner_text, name, is_obsolete):
continue
path = _GetOwnersFilePath(owner_text)
diff --git a/chromium/tools/metrics/histograms/expand_owners_unittest.py b/chromium/tools/metrics/histograms/expand_owners_unittest.py
index 25803c6027f..a8457a12c88 100644
--- a/chromium/tools/metrics/histograms/expand_owners_unittest.py
+++ b/chromium/tools/metrics/histograms/expand_owners_unittest.py
@@ -116,6 +116,47 @@ class ExpandOwnersTest(unittest.TestCase):
expand_owners.ExpandHistogramsOWNERS(histograms)
self.assertMultiLineEqual(histograms.toxml(), expected_histograms.toxml())
+ def testExpandOwnersWithLongFilePath(self):
+ """
+ Check that long file path which forces <owner> tags to separate lines is
+ supported.
+ """
+ absolute_path = _MakeOwnersFile('simple_OWNERS', self.temp_dir)
+ src_relative_path = _GetSrcRelativePath(absolute_path)
+
+ with open(absolute_path, 'w') as owners_file:
+ owners_file.write('\n'.join(['amy@chromium.org', _DEFAULT_COMPONENT]))
+
+ histograms = xml.dom.minidom.parseString("""
+<histograms>
+
+<histogram name="Caffeination" units="mg">
+ <owner>joe@chromium.org</owner>
+ <owner>
+ {path}
+ </owner>
+ <summary>I like coffee.</summary>
+</histogram>
+
+</histograms>
+""".format(path=src_relative_path))
+
+ expected_histograms = xml.dom.minidom.parseString("""
+<histograms>
+
+<histogram name="Caffeination" units="mg">
+ <owner>joe@chromium.org</owner>
+ <owner>amy@chromium.org</owner>
+ <summary>I like coffee.</summary>
+ <component>Default&gt;Component</component>
+</histogram>
+
+</histograms>
+""")
+
+ expand_owners.ExpandHistogramsOWNERS(histograms)
+ self.assertMultiLineEqual(histograms.toxml(), expected_histograms.toxml())
+
def testExpandOwnersWithDuplicateOwners(self):
"""Checks that owners are unique."""
absolute_path = _MakeOwnersFile('simple_OWNERS', self.temp_dir)
@@ -266,11 +307,11 @@ class ExpandOwnersTest(unittest.TestCase):
expand_owners.ExpandHistogramsOWNERS(histograms_without_file_paths)
self.assertEqual(histograms_without_file_paths, expected_histograms)
- def testExpandOwnersWithoutValidFirstOwner(self):
- """Checks that an error is raised when the first owner is not valid.
+ def testExpandOwnersWithoutValidPrimaryOwner_OwnersPath(self):
+ """Checks that an error is raised when the primary owner is a file path.
- A valid first owner is an individual's email address, e.g. rae@gmail.com,
- or the owner placeholder.
+ A valid primary owner is an individual's email address, e.g. rae@google.com,
+ sam@chromium.org, or the owner placeholder.
"""
histograms_without_valid_first_owner = xml.dom.minidom.parseString("""
<histograms>
@@ -285,8 +326,54 @@ class ExpandOwnersTest(unittest.TestCase):
with self.assertRaisesRegexp(
expand_owners.Error,
- 'The histogram Caffeination must have a valid first owner, i.e. an '
- 'individual\'s email address.'):
+ 'The histogram Caffeination must have a valid first owner, i.e. a '
+ 'person with an @google.com or @chromium.org email address.'):
+ expand_owners.ExpandHistogramsOWNERS(histograms_without_valid_first_owner)
+
+ def testExpandOwnersWithoutValidPrimaryOwner_TeamEmail(self):
+ """Checks that an error is raised when the primary owner is a team.
+
+ A valid primary owner is an individual's email address, e.g. rae@google.com,
+ sam@chromium.org, or the owner placeholder.
+ """
+ histograms_without_valid_first_owner = xml.dom.minidom.parseString("""
+<histograms>
+
+<histogram name="Caffeination" units="mg">
+ <owner>coffee-team@google.com</owner>
+ <summary>I like coffee.</summary>
+</histogram>
+
+</histograms>
+""")
+
+ with self.assertRaisesRegexp(
+ expand_owners.Error,
+ 'The histogram Caffeination must have a valid first owner, i.e. a '
+ 'person with an @google.com or @chromium.org email address.'):
+ expand_owners.ExpandHistogramsOWNERS(histograms_without_valid_first_owner)
+
+ def testExpandOwnersWithoutValidPrimaryOwner_InvalidEmail(self):
+ """Checks that an error is raised when the primary owner's email is invalid.
+
+ A valid primary owner is an individual's email address, e.g. rae@google.com,
+ sam@chromium.org, or the owner placeholder.
+ """
+ histograms_without_valid_first_owner = xml.dom.minidom.parseString("""
+<histograms>
+
+<histogram name="Caffeination" units="mg">
+ <owner>alex@coffee.com</owner>
+ <summary>I like coffee.</summary>
+</histogram>
+
+</histograms>
+""")
+
+ with self.assertRaisesRegexp(
+ expand_owners.Error,
+ 'The histogram Caffeination must have a valid first owner, i.e. a '
+ 'person with an @google.com or @chromium.org email address.'):
expand_owners.ExpandHistogramsOWNERS(histograms_without_valid_first_owner)
def testExpandOwnersWithFakeFilePath(self):
@@ -339,7 +426,10 @@ class ExpandOwnersTest(unittest.TestCase):
expand_owners.ExpandHistogramsOWNERS(histograms_with_fake_file_path)
def testExpandOwnersWithSameOwners(self):
- """Checks that no error is raised when all owners in a file are already in <owner> elements."""
+ """
+ Checks that no error is raised when all owners in a file are already in
+ <owner> elements.
+ """
absolute_path = _MakeOwnersFile('same_OWNERS', self.temp_dir)
src_relative_path = _GetSrcRelativePath(absolute_path)
diff --git a/chromium/tools/metrics/histograms/extract_histograms.py b/chromium/tools/metrics/histograms/extract_histograms.py
index 7af6cf4d958..046924b93ca 100644
--- a/chromium/tools/metrics/histograms/extract_histograms.py
+++ b/chromium/tools/metrics/histograms/extract_histograms.py
@@ -58,6 +58,7 @@ XML below will generate the following five histograms:
import bisect
import copy
import datetime
+import itertools
try:
import HTMLParser
@@ -85,11 +86,6 @@ EXPIRY_MILESTONE_RE = re.compile(r'M[0-9]{2,3}\Z')
_ELEMENT_NODE = xml.dom.minidom.Node.ELEMENT_NODE
-# List of fields that need to copied by copy.copy to suffixed histogram.
-# Other fields may be copied by reference.
-_HISTOGRAM_COPY_FIELDS = [
- 'fieldtrial_groups', 'fieldtrial_names', 'fieldtrial_labels']
-
class Error(Exception):
pass
@@ -343,25 +339,25 @@ def ExtractEnumsFromXmlTree(tree):
return enums, have_errors
-def _ExtractOwners(histogram):
- """Extracts owners information from the given histogram element.
+def _ExtractOwners(node):
+ """Extracts owners information from the given node, if exists.
Args:
- histogram: A DOM Element corresponding to a histogram.
+ node: A DOM Element.
Returns:
A tuple of owner-related info, e.g. (['alice@chromium.org'], True)
The first element is a list of the owners' email addresses, excluding the
owner placeholder string. The second element is a boolean indicating
- whether the histogram has an owner. A histogram whose owner is the owner
+ whether the node has an owner. A histogram whose owner is the owner
placeholder string has an owner.
"""
email_pattern = re.compile(BASIC_EMAIL_REGEXP)
owners = []
has_owner = False
- for owner_node in IterElementsWithTag(histogram, 'owner', 1):
+ for owner_node in IterElementsWithTag(node, 'owner', 1):
child = owner_node.firstChild
owner_text = (child and child.nodeValue) or ''
is_email = email_pattern.match(owner_text)
@@ -400,6 +396,113 @@ def _ProcessBaseHistogramAttribute(node, histogram_entry):
if is_base and 'obsolete' not in histogram_entry:
histogram_entry['obsolete'] = DEFAULT_BASE_HISTOGRAM_OBSOLETE_REASON
+# The following code represents several concepts as JSON objects
+#
+# Token: an analog of <token> tag, represented as a JSON object like:
+# {
+# 'key': 'token_key',
+# 'variants': [a list of Variant objects]
+# }
+#
+# Variant: an analog of <variant> tag, represented as a JSON object like:
+# {
+# 'name': 'variant_name',
+# 'label': 'variant_label',
+# 'obsolete': 'Obsolete text.',
+# 'owners': ['me@chromium.org', 'you@chromium.org']
+# }
+#
+# Variants: an analog of <variants> tag, represented as a JSON object like:
+# {
+# 'name: 'variants_name',
+# 'variants': [a list of Variant objects]
+# }
+
+
+def _ExtractTokens(histogram, variants_dict):
+ """Extracts tokens and variants from the given histogram element.
+
+ Args:
+ histogram: A DOM Element corresponding to a histogram.
+ variants_dict: A dictionary of variants extracted from the tree.
+
+ Returns:
+ A tuple where the first element is a list of extracted Tokens, and the
+ second indicates if any errors were detected while extracting them.
+ """
+ tokens = []
+ have_error = False
+ histogram_name = histogram.getAttribute('name')
+
+ for token_node in IterElementsWithTag(histogram, 'token', 1):
+ token_key = token_node.getAttribute('key')
+ if token_key in tokens:
+ logging.error(
+ "Histogram %s contains duplicate token key %s, please ensure token "
+ "keys are unique." % (histogram_name, token_key))
+ have_error = True
+ continue
+
+ token_key_format = '{' + token_key + '}'
+ if token_key_format not in histogram_name:
+ logging.error(
+ "Histogram %s includes a token tag but the token key is not present "
+ "in histogram name. Please insert the token key into the histogram "
+ "name in order for the token to be added." % histogram_name)
+ have_error = True
+ continue
+
+ token = dict(key=token_key)
+
+ # If 'variants' attribute is set for the <token>, get the list of Variant
+ # objects from from the |variants_dict|. Else, extract the <variant>
+ # children nodes of the |token_node| as a list of Variant objects.
+ if token_node.hasAttribute('variants'):
+ variants_name = token_node.getAttribute('variants')
+ variant_list = variants_dict.get(variants_name)
+ if variant_list:
+ token['variants'] = variant_list
+ else:
+ logging.error(
+ "The variants attribute %s of token key %s of histogram %s does "
+ "not have a corresponding <variants> tag." %
+ (variants_name, token_key, histogram_name))
+ token['variants'] = []
+ have_error = True
+ else:
+ token['variants'] = _ExtractVariantNodes(token_node)
+
+ tokens.append(token)
+
+ return tokens, have_error
+
+
+def _ExtractVariantNodes(node):
+ """Extracts the variants of a given node into a list of variant dictionaries.
+
+ Args:
+ node: A DOM element corresponding to <token> node
+
+ Returns:
+ A list of Variants.
+ """
+ variant_list = []
+ for variant_node in IterElementsWithTag(node, 'variant', 1):
+ variant = dict(name=variant_node.getAttribute('name'),
+ label=variant_node.getAttribute('label'))
+
+ obsolete_text = _GetObsoleteReason(variant_node)
+ if obsolete_text:
+ variant['obsolete'] = obsolete_text
+
+ variant_owners, variant_has_owners = _ExtractOwners(variant_node)
+ if variant_has_owners:
+ variant['owners'] = variant_owners
+
+ variant_list.append(variant)
+
+ return variant_list
+
def _ExtractHistogramsFromXmlTree(tree, enums):
"""Extracts all <histogram> nodes in the tree into a dictionary."""
@@ -407,6 +510,9 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
# Process the histograms. The descriptions can include HTML tags.
histograms = {}
have_errors = False
+ variants_dict, variants_errors = _ExtractVariantsFromXmlTree(tree)
+ have_errors = have_errors or variants_errors
+
last_name = None
for histogram in IterElementsWithTag(tree, 'histogram'):
name = histogram.getAttribute('name')
@@ -499,11 +605,43 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
else:
histogram_entry['enum'] = enums[enum_name]
+ # Find <token> tag.
+ tokens, have_token_errors = _ExtractTokens(histogram, variants_dict)
+ have_errors = have_errors or have_token_errors
+ if tokens:
+ histogram_entry['tokens'] = tokens
+
_ProcessBaseHistogramAttribute(histogram, histogram_entry)
return histograms, have_errors
+def _ExtractVariantsFromXmlTree(tree):
+ """Extracts all <variants> nodes in the tree into a dictionary.
+
+ Args:
+ tree: A DOM Element containing histograms and variants nodes.
+
+ Returns:
+ A tuple where the first element is a dictionary of extracted Variants, where
+ the key is the variants name and the value is a list of Variant objects.
+ The second element indicates if any errors were detected while
+ extracting them.
+ """
+ variants_dict = {}
+ have_errors = False
+ for variants_node in IterElementsWithTag(tree, 'variants'):
+ variants_name = variants_node.getAttribute('name')
+ if variants_name in variants_dict:
+ logging.error('Duplicate variants definition %s', variants_name)
+ have_errors = True
+ continue
+
+ variants_dict[variants_name] = _ExtractVariantNodes(variants_node)
+
+ return variants_dict, have_errors
+
+
def _GetObsoleteReason(node):
"""If the node's histogram is obsolete, returns a string explanation.
@@ -564,14 +702,14 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
yield r, f
for reprocess_count, histogram_suffixes in GenerateHistogramSuffixes():
- # Check dependencies first
+ # Check dependencies first.
dependencies_valid = True
affected_histograms = list(IterElementsWithTag(
histogram_suffixes, 'affected-histogram', 1))
for affected_histogram in affected_histograms:
histogram_name = affected_histogram.getAttribute('name')
if histogram_name not in histograms:
- # Base histogram is missing
+ # Base histogram is missing.
dependencies_valid = False
missing_dependency = histogram_name
break
@@ -639,14 +777,6 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
suffix_label = suffix_labels.get(suffix_name, '')
histogram_entry = histograms[new_histogram_name]
- for field_name in _HISTOGRAM_COPY_FIELDS:
- histogram_entry.setdefault(field_name, [])
-
- # TODO(yiyaoliu): Rename these to be consistent with the new naming.
- # It is kept unchanged for now to be it's used by dashboards.
- histogram_entry['fieldtrial_groups'].append(suffix_name)
- histogram_entry['fieldtrial_names'].append(name)
- histogram_entry['fieldtrial_labels'].append(suffix_label)
# If no owners are added for this histogram-suffixes, it inherits the
# owners of its parents.
@@ -673,6 +803,137 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
return have_errors
+class TokenAssignment(object):
+ """Assignment of a Variant for each Token of histogram pattern.
+
+ Attributes:
+ pairings: A token_name to Variant map.
+ """
+
+ def __init__(self, pairings):
+ self.pairings = pairings
+
+
+def _GetTokenAssignments(tokens):
+ """Get all possible TokenAssignments for the listed tokens.
+
+ Args:
+ tokens: The list of Tokens to create assignments for.
+
+ Returns:
+ A list of TokenAssignments.
+ """
+ token_keys = [token['key'] for token in tokens]
+ token_variants = [token['variants'] for token in tokens]
+
+ return [
+ TokenAssignment(pairings=dict(zip(token_keys, selected_variants)))
+ for selected_variants in itertools.product(*token_variants)
+ ]
+
+
+def _GenerateNewHistogramsFromTokens(histogram_name, histograms_dict,
+ new_histograms_dict):
+ """For a histogram with tokens, generates new histograms and adds to dict.
+
+ Args:
+ histogram_name: The name of the histogram.
+ histograms_dict: The dictionary of all histograms extracted from the tree.
+ new_histograms_dict: The dictionary of histograms to add newly generated
+ histograms to.
+
+ Returns:
+ A boolean that is True if a generated histogram name already exists in the
+ |new_histograms_dict|.
+ """
+ have_error = False
+ histogram_node = histograms_dict[histogram_name]
+ summary_text = histogram_node['summary']
+
+ # |token_assignments| contains all the cross-product combinations of token
+ # variants, representing all the possible histogram names that could be
+ # generated.
+ token_assignments = _GetTokenAssignments(histogram_node['tokens'])
+
+ # Each |token_assignment| contains one of the cross-product combinations and
+ # corresponds to one new generated histogram.
+ for token_assignment in token_assignments:
+ new_obsolete_reason = ''
+ new_owners = []
+ # Dictionaries of pairings used for string formatting of histogram name and
+ # summary.
+ token_name_pairings = {}
+ token_label_pairings = {}
+
+ for token_key, variant in token_assignment.pairings.items():
+ token_name_pairings[token_key] = variant['name']
+ token_label_pairings[token_key] = variant['label']
+
+ # If a variant has an obsolete reason, the new reason overwrites the
+ # obsolete reason of the original histogram.
+ if 'obsolete' in variant:
+ new_obsolete_reason = variant['obsolete']
+
+ # If a variant has owner(s), append to |new_owners|, overwriting the
+ # owners of the original histogram.
+ if 'owners' in variant:
+ new_owners += variant['owners']
+
+ # Replace token in histogram name with variant name.
+ new_histogram_name = histogram_name.format(**token_name_pairings)
+ # Replace token in summary with variant label.
+ new_summary_text = summary_text.format(**token_label_pairings)
+
+ if new_histogram_name in new_histograms_dict:
+ logging.error(
+ "Duplicate histogram name %s generated. Please remove identical "
+ "variants in different tokens in %s." %
+ (new_histogram_name, histogram_name))
+ have_error = True
+ continue
+
+ new_histogram_node = dict(histogram_node, summary=new_summary_text)
+ # Do not copy the <token> nodes to the generated histograms.
+ del new_histogram_node['tokens']
+
+ if new_obsolete_reason:
+ new_histogram_node['obsolete'] = new_obsolete_reason
+
+ if new_owners:
+ new_histogram_node['owners'] = new_owners
+
+ new_histograms_dict[new_histogram_name] = new_histogram_node
+
+ return have_error
+
+
+def _UpdateHistogramsWithTokens(histograms_dict):
+ """Processes histograms and combines with variants of tokens.
+
+ Args:
+ histograms_dict: A dictionary of all the histograms extracted from the tree.
+
+ Returns:
+ A tuple where the first element is the replacement histograms dictionary,
+ containing the original histograms without tokens and histograms
+ whose tokens are replaced by newly variant combinations.
+ The second element is a boolean is there is error.
+ """
+ have_error = False
+ # Create new dict instead of modify in place because newly generated
+ # histograms will be added when iterating through |histograms_dict|.
+ new_histograms_dict = {}
+ for histogram_name, histogram_node in histograms_dict.items():
+ if 'tokens' in histogram_node:
+ have_error = have_error or _GenerateNewHistogramsFromTokens(
+ histogram_name, histograms_dict, new_histograms_dict)
+ # For histograms without tokens, copy to new histograms dict.
+ else:
+ new_histograms_dict[histogram_name] = histogram_node
+
+ return new_histograms_dict, have_error
+
+
def _GetTagSubTree(tree, tag, depth):
"""Returns sub tree with tag element as a root.
@@ -712,10 +973,12 @@ def ExtractHistogramsFromDom(tree):
enums, enum_errors = ExtractEnumsFromXmlTree(enums_tree)
histograms, histogram_errors = _ExtractHistogramsFromXmlTree(
histograms_tree, enums)
- update_errors = _UpdateHistogramsWithSuffixes(
- histogram_suffixes_tree, histograms)
+ update_suffix_errors = _UpdateHistogramsWithSuffixes(histogram_suffixes_tree,
+ histograms)
+ histograms, update_token_errors = _UpdateHistogramsWithTokens(histograms)
- return histograms, enum_errors or histogram_errors or update_errors
+ return histograms, (enum_errors or histogram_errors or update_suffix_errors
+ or update_token_errors)
def ExtractHistograms(filename):
diff --git a/chromium/tools/metrics/histograms/extract_histograms_test.py b/chromium/tools/metrics/histograms/extract_histograms_test.py
index 10d7de5fc23..67eb4ba9c8e 100644
--- a/chromium/tools/metrics/histograms/extract_histograms_test.py
+++ b/chromium/tools/metrics/histograms/extract_histograms_test.py
@@ -3,6 +3,7 @@
# found in the LICENSE file.
import logging
+from parameterized import parameterized
import unittest
import xml.dom.minidom
@@ -64,8 +65,8 @@ TEST_SUFFIX_OBSOLETION_XML_CONTENT = """
TEST_BASE_HISTOGRAM_XML_CONTENT = """
<histogram-configuration>
<histograms>
- <histogram base="true" name="Test.Base" expires_after="2211-11-22"
- units="units" expires_after="2019-01-01">
+ <histogram base="true" name="Test.Base" units="units"
+ expires_after="2211-11-22">
<owner>chrome-metrics-team@google.com</owner>
<summary>
Base histogram.
@@ -88,8 +89,8 @@ TEST_BASE_HISTOGRAM_XML_CONTENT = """
Not a base histogram: base attribute explicitly set to "false".
</summary>
</histogram>
- <histogram name="Test.NotBase.Implicit" expires_after="M100" units="units"
- expires_after="2019-01-01">
+ <histogram name="Test.NotBase.Implicit" units="units"
+ expires_after="M100">
<owner>chrome-metrics-team@google.com</owner>
<summary>
Not a base histogram: no base attribute specified.
@@ -117,6 +118,130 @@ TEST_BASE_HISTOGRAM_XML_CONTENT = """
</histogram-configuration>
"""
+TEST_HISTOGRAM_WITH_TOKENS = """
+<histogram-configuration>
+<histograms>
+<histogram name="HistogramName{Color}{Size}" expires_after="2017-10-16">
+ <owner>me@chromium.org</owner>
+ <summary>
+ This is a histogram for button of {Color} color and {Size} size.
+ </summary>
+ <token key="Color">
+ <variant name=".red" label="red">
+ <obsolete>
+ Obsolete red
+ </obsolete>
+ </variant>
+ <variant name=".green" label="green">
+ <owner>green@chromium.org</owner>
+ </variant>
+ </token>
+ <token key="Size">
+ <variant name="" label="all"/>
+ <variant name=".small" label="small">
+ <owner>small@chromium.org</owner>
+ <obsolete>
+ Obsolete small
+ </obsolete>
+ </variant>
+ <variant name=".medium" label="medium"/>
+ <variant name=".large" label="large"/>
+ </token>
+</histogram>
+</histograms>
+</histogram-configuration>
+"""
+
+TEST_HISTOGRAM_WITH_VARIANTS = """
+<histogram-configuration>
+<histograms>
+<variants name="HistogramNameSize">
+ <variant name="" label="all"/>
+ <variant name=".small" label="small">
+ <owner>small@chromium.org</owner>
+ <obsolete>
+ Obsolete small
+ </obsolete>
+ </variant>
+ <variant name=".medium" label="medium"/>
+ <variant name=".large" label="large"/>
+</variants>
+
+<histogram name="HistogramName{Color}{Size}" expires_after="2017-10-16">
+ <owner>me@chromium.org</owner>
+ <summary>
+ This is a histogram for button of {Color} color and {Size} size.
+ </summary>
+ <token key="Color">
+ <variant name=".red" label="red">
+ <obsolete>
+ Obsolete red
+ </obsolete>
+ </variant>
+ <variant name=".green" label="green">
+ <owner>green@chromium.org</owner>
+ </variant>
+ </token>
+ <token key="Size" variants="HistogramNameSize"/>
+</histogram>
+</histograms>
+</histogram-configuration>
+"""
+
+TEST_HISTOGRAM_TOKENS_DUPLICATE = """
+<histogram-configuration>
+<histograms>
+<histogram name="Histogram{Color}{Size}" units="things"
+ expires_after="2017-10-16">
+ <owner>me@chromium.org</owner>
+ <summary>
+ This is a histogram for button of {Color} color and {Size} size.
+ </summary>
+ <token key="Color">
+ <variant name="" label="all"/>
+ <variant name=".red" label="red"/>
+ <variant name=".green" label="green"/>
+ </token>
+ <token key="Size">
+ <variant name="" label="all"/>
+ <variant name=".red" label="red"/>
+ <variant name=".small" label="small"/>
+ <variant name=".medium" label="medium"/>
+ <variant name=".large" label="large"/>
+ </token>
+</histogram>
+</histograms>
+</histogram-configuration>
+"""
+
+TEST_HISTOGRAM_VARIANTS_DUPLICATE = """
+<histogram-configuration>
+<variants name="HistogramNameSize">
+ <variant name="" label="all"/>
+ <variant name=".red" label="red"/>
+ <variant name=".small" label="small"/>
+ <variant name=".medium" label="medium"/>
+ <variant name=".large" label="large"/>
+</variants>
+
+<histograms>
+<histogram name="Histogram{Color}{Size}" units="things"
+ expires_after="2017-10-16">
+ <owner>me@chromium.org</owner>
+ <summary>
+ This is a histogram for button of {Color} color and {Size} size.
+ </summary>
+ <token key="Color">
+ <variant name="" label="all"/>
+ <variant name=".red" label="red"/>
+ <variant name=".green" label="green"/>
+ </token>
+ <token key="Size" variants="HistogramNameSize"/>
+</histogram>
+</histograms>
+</histogram-configuration>
+"""
+
class ExtractHistogramsTest(unittest.TestCase):
@@ -527,10 +652,163 @@ class ExtractHistogramsTest(unittest.TestCase):
</histogram_suffixes_list>
</histogram-configuration>
""")
- have_errors = extract_histograms. _UpdateHistogramsWithSuffixes(
+ have_errors = extract_histograms._UpdateHistogramsWithSuffixes(
suffix_with_label, {})
self.assertFalse(have_errors)
+ @parameterized.expand([
+ ('InlineTokens', TEST_HISTOGRAM_WITH_TOKENS),
+ ('InlineTokenAndOutOfLineVariants', TEST_HISTOGRAM_WITH_VARIANTS),
+ ])
+ def testUpdateNameWithTokens(self, _, input_xml):
+ histogram_with_token = xml.dom.minidom.parseString(input_xml)
+ histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_with_token, {})
+ histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+ histograms_dict)
+ self.assertIn('HistogramName.red.small', histograms_dict)
+ self.assertIn('HistogramName.green.small', histograms_dict)
+ self.assertIn('HistogramName.red.medium', histograms_dict)
+ self.assertIn('HistogramName.green.medium', histograms_dict)
+ self.assertIn('HistogramName.red.large', histograms_dict)
+ self.assertIn('HistogramName.green.large', histograms_dict)
+ self.assertIn('HistogramName.red', histograms_dict)
+ self.assertIn('HistogramName.green', histograms_dict)
+ self.assertNotIn('HistogramName{Color}{Size}', histograms_dict)
+
+ # Make sure generated histograms do not have tokens.
+ self.assertNotIn('tokens', histograms_dict['HistogramName.red.small'])
+ self.assertNotIn('tokens', histograms_dict['HistogramName.green.large'])
+
+ @parameterized.expand([
+ ('InlineTokens', TEST_HISTOGRAM_WITH_TOKENS),
+ ('InlineTokenAndOutOfLineVariants', TEST_HISTOGRAM_WITH_VARIANTS),
+ ])
+ def testUpdateSummaryWithTokens(self, _, input_xml):
+ histogram_with_token = xml.dom.minidom.parseString(input_xml)
+ histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_with_token, {})
+ histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+ histograms_dict)
+ self.assertEqual(
+ 'This is a histogram for button of red color and small size.',
+ histograms_dict['HistogramName.red.small']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of green color and small size.',
+ histograms_dict['HistogramName.green.small']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of red color and medium size.',
+ histograms_dict['HistogramName.red.medium']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of green color and medium size.',
+ histograms_dict['HistogramName.green.medium']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of red color and large size.',
+ histograms_dict['HistogramName.red.large']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of green color and large size.',
+ histograms_dict['HistogramName.green.large']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of red color and all size.',
+ histograms_dict['HistogramName.red']['summary'])
+ self.assertEqual(
+ 'This is a histogram for button of green color and all size.',
+ histograms_dict['HistogramName.green']['summary'])
+
+ @parameterized.expand([
+ ('InlineTokens', TEST_HISTOGRAM_WITH_TOKENS),
+ ('InlineTokenAndOutOfLineVariants', TEST_HISTOGRAM_WITH_VARIANTS),
+ ])
+ def testUpdateWithTokenOwner(self, _, input_xml):
+ histogram_with_token = xml.dom.minidom.parseString(input_xml)
+ histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_with_token, {})
+ histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+ histograms_dict)
+
+ self.assertEqual(['small@chromium.org'],
+ histograms_dict['HistogramName.red.small']['owners'])
+ self.assertEqual(['me@chromium.org'],
+ histograms_dict['HistogramName.red.medium']['owners'])
+ self.assertEqual(['me@chromium.org'],
+ histograms_dict['HistogramName.red.large']['owners'])
+ self.assertEqual(['me@chromium.org'],
+ histograms_dict['HistogramName.red']['owners'])
+ self.assertEqual(['green@chromium.org', 'small@chromium.org'],
+ histograms_dict['HistogramName.green.small']['owners'])
+ self.assertEqual(['green@chromium.org'],
+ histograms_dict['HistogramName.green.medium']['owners'])
+ self.assertEqual(['green@chromium.org'],
+ histograms_dict['HistogramName.green.large']['owners'])
+ self.assertEqual(['green@chromium.org'],
+ histograms_dict['HistogramName.green']['owners'])
+
+ @parameterized.expand([
+ ('InlineTokens', TEST_HISTOGRAM_WITH_TOKENS),
+ ('InlineTokenAndOutOfLineVariants', TEST_HISTOGRAM_WITH_VARIANTS),
+ ])
+ def testUpdateWithTokenObsolete(self, _, input_xml):
+ histogram_with_token = xml.dom.minidom.parseString(input_xml)
+ histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_with_token, {})
+ histograms_dict, _ = extract_histograms._UpdateHistogramsWithTokens(
+ histograms_dict)
+
+ # New histograms should inherit the obsolete reason of the last
+ # obsolete token by order of appearance.
+ self.assertEqual('Obsolete small',
+ histograms_dict['HistogramName.red.small']['obsolete'])
+ self.assertEqual('Obsolete red',
+ histograms_dict['HistogramName.red.medium']['obsolete'])
+ self.assertEqual('Obsolete red',
+ histograms_dict['HistogramName.red.large']['obsolete'])
+ self.assertEqual('Obsolete red',
+ histograms_dict['HistogramName.red']['obsolete'])
+ self.assertEqual('Obsolete small',
+ histograms_dict['HistogramName.green.small']['obsolete'])
+ self.assertNotIn('obsolete', histograms_dict['HistogramName.green.medium'])
+ self.assertNotIn('obsolete', histograms_dict['HistogramName.green.large'])
+ self.assertNotIn('obsolete', histograms_dict['HistogramName.green'])
+
+ @parameterized.expand([
+ ('InlineTokens', TEST_HISTOGRAM_TOKENS_DUPLICATE),
+ ('InlineTokenAndOutOfLineVariants', TEST_HISTOGRAM_VARIANTS_DUPLICATE),
+ ])
+ def testUpdateNameDuplicateVariant(self, _, input_xml):
+ """Tests that if duplicate names are generated due to multiple tokens
+ having the same variant and empty string variant, an error is reported."""
+ histogram_with_duplicate_variant = xml.dom.minidom.parseString(input_xml)
+ histograms_dict, _ = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_with_duplicate_variant, {})
+ _, have_errors = extract_histograms._UpdateHistogramsWithTokens(
+ histograms_dict)
+ self.assertTrue(have_errors)
+
+ def testVariantsNotExists(self):
+ histogram_without_corresponding_variants = xml.dom.minidom.parseString("""
+<histogram-configuration>
+<histograms>
+<histogram name="Histogram{Color}{SizeNone}" units="things"
+ expires_after="2017-10-16">
+ <owner>me@chromium.org</owner>
+ <summary>
+ This is a histogram for button of {Color} color and {SizeNone} size.
+ </summary>
+ <token key="Color">
+ <variant name="" label="all"/>
+ <variant name=".red" label="red"/>
+ <variant name=".green" label="green"/>
+ </token>
+ <token key="SizeNone" variants="HistogramNameSize"/>
+</histogram>
+</histograms>
+</histogram-configuration>
+""")
+ _, have_errors = extract_histograms._ExtractHistogramsFromXmlTree(
+ histogram_without_corresponding_variants, {})
+ self.assertTrue(have_errors)
+
+
if __name__ == "__main__":
logging.basicConfig(level=logging.ERROR + 1)
unittest.main()
diff --git a/chromium/tools/metrics/histograms/histogram_configuration_model.py b/chromium/tools/metrics/histograms/histogram_configuration_model.py
new file mode 100644
index 00000000000..eaa00435c48
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histogram_configuration_model.py
@@ -0,0 +1,267 @@
+# 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.
+"""Model objects for histograms.xml contents."""
+
+import os
+import sys
+import re
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+import models
+
+_OBSOLETE_TYPE = models.TextNodeType('obsolete')
+_OWNER_TYPE = models.TextNodeType('owner', single_line=True)
+_SUMMARY_TYPE = models.TextNodeType('summary', single_line=True)
+_DETAILS_TYPE = models.TextNodeType('details')
+
+# A key for sorting XML nodes by the lower case of the value of |attribute|.
+_LOWERCASE_FN = lambda attribute: (lambda node: node.get(attribute).lower())
+
+# A key for sorting XML nodes by the value of |attribute|, cast as integer.
+_INTEGER_FN = lambda attribute: (lambda node: int(node.get(attribute)))
+
+# A constant function as the sorting key for nodes whose orderings should be
+# kept as given in the XML file within their parent node.
+_KEEP_ORDER = lambda node: 1
+
+
+# A function for natural-sorting XML nodes, used for sorting <suffix> by their
+# name attribute in a way that humans understand.
+# i.e. "suffix11" should come after "suffix2"
+def _NaturalSortByName(node):
+ """Sort by name, ordering numbers in the way humans expect."""
+ # See: https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/
+ name = node.get('name').lower()
+ convert = lambda text: int(text) if text.isdigit() else text
+ return [convert(c) for c in re.split('([0-9]+)', name)]
+
+# The following types are used for enums.xml.
+_INT_TYPE = models.ObjectNodeType(
+ 'int',
+ attributes=[
+ ('value', str, r'^[-1]|[0-9]+$'),
+ ('label', str, None),
+ ],
+ required_attributes=['value'],
+ text_attribute=True,
+ single_line=True,
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False),
+ ])
+
+_ENUM_TYPE = models.ObjectNodeType(
+ 'enum',
+ attributes=[
+ ('name', str, r'^[A-Za-z0-9_.]+$'),
+ ],
+ required_attributes=['name'],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+ (_SUMMARY_TYPE.tag, _KEEP_ORDER),
+ (_INT_TYPE.tag, _INTEGER_FN('value')),
+ ],
+ extra_newlines=(1, 1, 1),
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False),
+ models.ChildType(_INT_TYPE.tag, _INT_TYPE, multiple=True),
+ ])
+
+_ENUMS_TYPE = models.ObjectNodeType(
+ 'enums',
+ alphabetization=[
+ (_ENUM_TYPE.tag, _LOWERCASE_FN('name')),
+ ],
+ extra_newlines=(2, 1, 1),
+ indent=False,
+ children=[
+ models.ChildType(_ENUM_TYPE.tag, _ENUM_TYPE, multiple=True),
+ ])
+
+# The following types are used for histograms.xml.
+_VARIANT_TYPE = models.ObjectNodeType(
+ 'variant',
+ attributes=[
+ ('name', str, None),
+ ('label', str, None),
+ ],
+ required_attributes=['name', 'label'],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+ (_OWNER_TYPE.tag, _KEEP_ORDER),
+ ],
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
+ ])
+
+_VARIANTS_TYPE = models.ObjectNodeType(
+ 'variants',
+ attributes=[
+ ('name', str, None),
+ ],
+ required_attributes=['name'],
+ alphabetization=[
+ (_VARIANT_TYPE.tag, _NaturalSortByName)
+ ],
+ extra_newlines=(1, 1, 1),
+ children=[
+ models.ChildType(_VARIANT_TYPE.tag, _VARIANT_TYPE, multiple=True),
+ ])
+
+_TOKEN_TYPE = models.ObjectNodeType(
+ 'token',
+ attributes=[
+ ('key', str, None),
+ ('variants', str, None)
+ ],
+ required_attributes=['key'],
+ alphabetization=[
+ (_VARIANT_TYPE.tag, _NaturalSortByName)
+ ],
+ children=[
+ models.ChildType(_VARIANT_TYPE.tag, _VARIANT_TYPE, multiple=True),
+ ])
+
+_HISTOGRAM_TYPE = models.ObjectNodeType(
+ 'histogram',
+ attributes=[
+ ('base', str, r'^$|^true|false|True|False$'),
+ ('name', str, None),
+ ('enum', str, r'^[A-Za-z0-9._]*$'),
+ ('units', str, None),
+ ('expires_after', str,
+ r'^$|^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$' \
+ '|^M[0-9]+$|^never|Never$'
+ ),
+ ],
+ required_attributes=['name'],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+ (_OWNER_TYPE.tag, _KEEP_ORDER),
+ (_SUMMARY_TYPE.tag, _KEEP_ORDER),
+ (_DETAILS_TYPE.tag, _KEEP_ORDER),
+ (_TOKEN_TYPE.tag, _KEEP_ORDER),
+ ],
+ extra_newlines=(1, 1, 1),
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
+ models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False),
+ models.ChildType(_DETAILS_TYPE.tag, _DETAILS_TYPE, multiple=False),
+ models.ChildType(_TOKEN_TYPE.tag, _TOKEN_TYPE, multiple=True),
+ ])
+
+_HISTOGRAMS_TYPE = models.ObjectNodeType(
+ 'histograms',
+ alphabetization=[
+ (_VARIANTS_TYPE.tag, _LOWERCASE_FN('name')),
+ (_HISTOGRAM_TYPE.tag, _LOWERCASE_FN('name')),
+ ],
+ extra_newlines=(2, 1, 1),
+ indent=False,
+ children=[
+ models.ChildType(_VARIANTS_TYPE.tag, _VARIANTS_TYPE, multiple=True),
+ models.ChildType(_HISTOGRAM_TYPE.tag, _HISTOGRAM_TYPE, multiple=True),
+ ])
+
+_SUFFIX_TYPE = models.ObjectNodeType(
+ 'suffix',
+ attributes=[
+ ('base', str,
+ r'^$|^true|false|True|False$'),
+ ('name', str, None),
+ ('label', str, None),
+ ],
+ required_attributes=['name'],
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ ])
+
+_WITH_SUFFIX_TYPE = models.ObjectNodeType(
+ 'with-suffix',
+ attributes=[
+ ('name', str, None),
+ ],
+ required_attributes=['name'])
+
+_AFFECTED_HISTOGRAM_TYPE = models.ObjectNodeType(
+ 'affected-histogram',
+ attributes=[
+ ('name', str, None),
+ ],
+ required_attributes=['name'],
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_WITH_SUFFIX_TYPE.tag,
+ _WITH_SUFFIX_TYPE, multiple=True),
+ ])
+
+_HISTOGRAM_SUFFIXES_TYPE = models.ObjectNodeType(
+ 'histogram_suffixes',
+ attributes=[
+ ('name', str, r'^$|^[A-Za-z0-9_.]+$'),
+ ('separator', str, r'^$|^[\._]+$'),
+ ('ordering', str, r'^$|suffix|^prefix(,[0-9]+)?$'),
+ ],
+ required_attributes=['name', 'separator'],
+ alphabetization=[(_OBSOLETE_TYPE.tag, _KEEP_ORDER),
+ (_SUFFIX_TYPE.tag, _NaturalSortByName),
+ (_AFFECTED_HISTOGRAM_TYPE.tag, _LOWERCASE_FN('name'))],
+ extra_newlines=(1, 1, 1),
+ children=[
+ models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),
+ models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),
+ models.ChildType(_SUFFIX_TYPE.tag, _SUFFIX_TYPE, multiple=True),
+ models.ChildType(_AFFECTED_HISTOGRAM_TYPE.tag,
+ _AFFECTED_HISTOGRAM_TYPE, multiple=True),
+ ])
+
+_HISTOGRAM_SUFFIXES_LIST_TYPE = models.ObjectNodeType(
+ 'histogram_suffixes_list',
+ alphabetization=[(_HISTOGRAM_SUFFIXES_TYPE.tag, _LOWERCASE_FN('name'))],
+ extra_newlines=(2, 1, 1),
+ indent=False,
+ children=[
+ models.ChildType(_HISTOGRAM_SUFFIXES_TYPE.tag,
+ _HISTOGRAM_SUFFIXES_TYPE,
+ multiple=True),
+ ])
+
+_HISTOGRAM_CONFIGURATION_TYPE = models.ObjectNodeType(
+ 'histogram-configuration',
+ alphabetization=[
+ (_ENUMS_TYPE.tag, _KEEP_ORDER),
+ (_HISTOGRAMS_TYPE.tag, _KEEP_ORDER),
+ (_HISTOGRAM_SUFFIXES_LIST_TYPE.tag, _KEEP_ORDER),
+ ],
+ extra_newlines=(2, 1, 1),
+ indent=False,
+ children=[
+ models.ChildType(_ENUMS_TYPE.tag, _ENUMS_TYPE, multiple=False),
+ models.ChildType(_HISTOGRAMS_TYPE.tag, _HISTOGRAMS_TYPE,
+ multiple=False),
+ models.ChildType(_HISTOGRAM_SUFFIXES_LIST_TYPE.tag,
+ _HISTOGRAM_SUFFIXES_LIST_TYPE,
+ multiple=False),
+ ])
+
+HISTOGRAM_CONFIGURATION_XML_TYPE = models.DocumentType(
+ _HISTOGRAM_CONFIGURATION_TYPE)
+
+
+def PrettifyTree(input_tree):
+ """Parses the tree representation of the XML and return a
+ pretty-printed version.
+
+ Args:
+ input_tree: A tree representation of the XML, which might take the
+ form of an ET tree or minidom doc.
+
+ Returns:
+ A pretty-printed xml string, or None if the config contains errors.
+ """
+ histograms = HISTOGRAM_CONFIGURATION_XML_TYPE.Parse(input_tree)
+ return HISTOGRAM_CONFIGURATION_XML_TYPE.PrettyPrint(histograms)
diff --git a/chromium/tools/metrics/histograms/histogram_configuration_model_test_enums.py b/chromium/tools/metrics/histograms/histogram_configuration_model_test_enums.py
new file mode 100644
index 00000000000..1eef46f110d
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histogram_configuration_model_test_enums.py
@@ -0,0 +1,309 @@
+# 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
+from parameterized import parameterized
+import sys
+import unittest
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+import etree_util
+
+import histogram_configuration_model
+
+PRETTY_XML_RIGHT_ENUM_ORDER = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum2">
+ <summary>Summary text</summary>
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum3">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+PRETTY_XML = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_ATTRIBUTE_ORDER = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int label="Label1" value="0" >Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_INDENT = """
+<histogram-configuration>
+
+<enums>
+
+ <enum name="Enum1">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+ </enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_SINGLELINE = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <obsolete>Obsolete text</obsolete>
+ <summary>
+ Summary text
+ </summary>
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_LINEBREAK = """
+<histogram-configuration>
+<enums>
+<enum name="Enum1">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_ENUM_ORDER = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum2">
+ <summary>Summary text</summary>
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum3">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum1">
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_INT_ORDER = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <int value="1" label="Label2"/>
+ <int value="0" label="Label1">Int text</int>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_CHILDREN_ORDER = """
+<histogram-configuration>
+
+<enums>
+
+<enum name="Enum1">
+ <int value="0" label="Label1">Int text</int>
+ <int value="1" label="Label2"/>
+ <summary>Summary text</summary>
+ <obsolete>
+ Obsolete text
+ </obsolete>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+PRETTY_XML_WITH_COMMENTS = """
+<histogram-configuration>
+
+<enums>
+
+<!-- Comment1 -->
+
+<enum name="Enum1">
+<!-- Comment2 -->
+
+ <summary>Summary text</summary>
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum2">
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+XML_WITH_COMMENTS_WRONG_INDENT_LINEBREAK = """
+<histogram-configuration>
+
+<enums>
+ <!-- Comment1 -->
+
+<enum name="Enum1">
+<!-- Comment2 -->
+ <summary>Summary text</summary>
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+<enum name="Enum2">
+ <int value="0" label="Label1"/>
+ <int value="1" label="Label2"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
+""".strip()
+
+
+class EnumXmlTest(unittest.TestCase):
+ @parameterized.expand([
+ # Test prettify already pretty XML to verify the pretty-printed version
+ # is the same.
+ ('AlreadyPrettyXml', PRETTY_XML, PRETTY_XML),
+ ('AttributeOrder', XML_WRONG_ATTRIBUTE_ORDER, PRETTY_XML),
+ ('Indent', XML_WRONG_INDENT, PRETTY_XML),
+ ('SingleLine', XML_WRONG_SINGLELINE, PRETTY_XML),
+ ('LineBreak', XML_WRONG_LINEBREAK, PRETTY_XML),
+ # <int> tags of enums should be sorted by the integer value
+ ('IntOrder', XML_WRONG_INT_ORDER, PRETTY_XML),
+ # The children of enums should be sorted in the order of <obsolete>,
+ # <summary> and <int>
+ ('ChildrenOrder', XML_WRONG_CHILDREN_ORDER, PRETTY_XML),
+
+ # Test prettify already pretty XML with right enum order to verify the
+ # pretty-printed version is the same.
+ ('AlreadyRightOrder', PRETTY_XML_RIGHT_ENUM_ORDER,
+ PRETTY_XML_RIGHT_ENUM_ORDER),
+ # Enums should be sorted in the order of their name attribute
+ ('EnumOrder', XML_WRONG_ENUM_ORDER, PRETTY_XML_RIGHT_ENUM_ORDER),
+
+ # Test prettify already pretty XML with comments to verify the
+ # pretty-printed version is the same.
+ ('AlreadyPrettyWithComments', PRETTY_XML_WITH_COMMENTS,
+ PRETTY_XML_WITH_COMMENTS),
+ ('CommentsIndentsLineBreak', XML_WITH_COMMENTS_WRONG_INDENT_LINEBREAK,
+ PRETTY_XML_WITH_COMMENTS),
+ ])
+ def testPrettify(self, _, input_xml, expected_xml):
+ result = histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(input_xml))
+ self.assertMultiLineEqual(result.strip(), expected_xml)
+
+ @parameterized.expand([
+ # The "name" attribute of <enum> only allows alphanumeric characters
+ # and punctuations "." and "_". It does not allow space.
+ ('BadEnumNameIllegalPunctuation', PRETTY_XML, 'Enum1', 'Enum:1'),
+ ('BadEnumNameWithSpace', PRETTY_XML, 'Enum1', 'Enum 1'),
+ ('BadIntValueNegative', PRETTY_XML, '1', '-5'),
+ ('BadIntValueNonNumeric', PRETTY_XML, '1', 'hello')
+ ])
+ def testRegex(self, _, pretty_input_xml, original_string, bad_string):
+ BAD_XML = pretty_input_xml.replace(original_string, bad_string)
+ with self.assertRaises(ValueError) as context:
+ histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(BAD_XML))
+ self.assertIn(bad_string, str(context.exception))
+ self.assertIn('does not match regex', str(context.exception))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/tools/metrics/histograms/histogram_configuration_model_test_histograms.py b/chromium/tools/metrics/histograms/histogram_configuration_model_test_histograms.py
new file mode 100644
index 00000000000..e8338c08e83
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histogram_configuration_model_test_histograms.py
@@ -0,0 +1,633 @@
+# 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
+from parameterized import parameterized
+import sys
+import unittest
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+import etree_util
+
+import histogram_configuration_model
+
+XML_RIGHT_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram name="hist.a" enum="enum1" expires_after="2019-11-02">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+<histogram name="hist.b" expires_after="M85">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+<histogram name="hist.c" enum="enum3" expires_after="never">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+ <suffix base="true" name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+ <affected-histogram name="histogram2"/>
+ <affected-histogram name="histogram3"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="suffix2" separator="_" ordering="prefix,2">
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+ <affected-histogram name="histogram2"/>
+ <affected-histogram name="histogram3"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+PRETTY_XML = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram base="true" name="hist.a" expires_after="2019-11-02">
+<!-- Comment in histogram -->
+
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_ATTRIBUTE_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram expires_after="2019-11-02" name="hist.a" base="true" >
+<!-- Comment in histogram -->
+
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+
+ <suffix name="suffix_name" base="true" label="label"/>
+ <suffix label="label" name="suffix_name"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_MISSING_SEPARATOR = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram base="true" name="hist.a" expires_after="2019-11-02">
+<!-- Comment in histogram -->
+
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_INDENT = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+ <histograms>
+
+ <histogram base="true" name="hist.a" expires_after="2019-11-02">
+ <!-- Comment in histogram -->
+
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+ </histogram>
+
+ </histograms>
+
+ <histogram_suffixes_list>
+
+ <histogram_suffixes name="suffix1" separator="." ordering="prefix">
+ <!-- Comment in histogram_suffixes -->
+
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+ </histogram_suffixes>
+
+ </histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_SINGLELINE = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram base="true" name="hist.a" expires_after="2019-11-02">
+<!-- Comment in histogram -->
+
+ <obsolete>Obsolete text</obsolete>
+ <owner>
+ owner1@chromium.org
+ </owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>
+ Summary text
+ </summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_LINEBREAK = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+<histograms>
+
+<histogram base="true" name="hist.a" expires_after="2019-11-02">
+<!-- Comment in histogram -->
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+
+</histogram>
+</histograms>
+
+<histogram_suffixes_list>
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+</histogram_suffixes_list>
+
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_CHILDREN_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram base="true" name="hist.a" expires_after="2019-11-02">
+<!-- Comment in histogram -->
+
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <summary>Summary text</summary>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+<!-- Comment in histogram_suffixes -->
+
+ <suffix base="true" name="suffix_name" label="label"/>
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram name="hist.c" enum="enum3" expires_after="never">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+<histogram name="hist.a" enum="enum1" expires_after="2019-11-02">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+<histogram name="hist.b" expires_after="M85">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>owner1@chromium.org</owner>
+ <owner>owner2@chromium.org</owner>
+ <summary>Summary text</summary>
+</histogram>
+
+</histograms>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="suffix2" separator="_" ordering="prefix,2">
+ <suffix name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+ <affected-histogram name="histogram2"/>
+ <affected-histogram name="histogram3"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="suffix1" separator="." ordering="prefix">
+ <suffix base="true" name="suffix_name" label="label"/>
+ <affected-histogram name="histogram1"/>
+ <affected-histogram name="histogram2"/>
+ <affected-histogram name="histogram3"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration>
+""".strip()
+
+PRETTY_XML_WITH_TOKEN = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<variants name="OmniboxProviderVersion">
+ <variant name="" label="all versions"/>
+ <variant name=".Provider" label="the old version">
+ <obsolete>
+ Deprecated. Replaced by Provider2.
+ </obsolete>
+ </variant>
+ <variant name=".Provider2" label="the second version"/>
+</variants>
+
+<histogram name="Omnibox{version}{content}.Time" units="ms"
+ expires_after="2020-12-25">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>me@google.com</owner>
+ <summary>
+ The length of time taken by {version} of {content} provider's synchronous
+ pass.
+ </summary>
+ <token key="version" variants="OmniboxProviderVersion"/>
+ <token key="content">
+ <variant name=".ExtensionApp" label="ExtensionApp">
+ <obsolete>
+ Obsolete variant
+ </obsolete>
+ <owner>you@google.com</owner>
+ </variant>
+ <variant name=".HistoryContents" label="HistoryContents"/>
+ <variant name=".HistoryQuick" label="HistoryQuick"/>
+ </token>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_VARIANT_CHILDREN_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<variants name="OmniboxProviderVersion">
+ <variant name="" label="all versions"/>
+ <variant name=".Provider" label="the old version">
+ <obsolete>
+ Deprecated. Replaced by Provider2.
+ </obsolete>
+ </variant>
+ <variant name=".Provider2" label="the second version"/>
+</variants>
+
+<histogram name="Omnibox{version}{content}.Time" units="ms"
+ expires_after="2020-12-25">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>me@google.com</owner>
+ <summary>
+ The length of time taken by {version} of {content} provider's synchronous
+ pass.
+ </summary>
+ <token key="version" variants="OmniboxProviderVersion"/>
+ <token key="content">
+ <variant name=".ExtensionApp" label="ExtensionApp">
+ <owner>you@google.com</owner>
+ <obsolete>
+ Obsolete variant
+ </obsolete>
+ </variant>
+ <variant name=".HistoryContents" label="HistoryContents"/>
+ <variant name=".HistoryQuick" label="HistoryQuick"/>
+ </token>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_VARIANT_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<variants name="OmniboxProviderVersion">
+ <variant name="" label="all versions"/>
+ <variant name=".Provider2" label="the second version"/>
+ <variant name=".Provider" label="the old version">
+ <obsolete>
+ Deprecated. Replaced by Provider2.
+ </obsolete>
+ </variant>
+</variants>
+
+<histogram name="Omnibox{version}{content}.Time" units="ms"
+ expires_after="2020-12-25">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>me@google.com</owner>
+ <summary>
+ The length of time taken by {version} of {content} provider's synchronous
+ pass.
+ </summary>
+ <token key="version" variants="OmniboxProviderVersion"/>
+ <token key="content">
+ <variant name=".ExtensionApp" label="ExtensionApp">
+ <obsolete>
+ Obsolete variant
+ </obsolete>
+ <owner>you@google.com</owner>
+ </variant>
+ <variant name=".HistoryQuick" label="HistoryQuick"/>
+ <variant name=".HistoryContents" label="HistoryContents"/>
+ </token>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
+""".strip()
+
+XML_WRONG_HISTOGRAM_VARIANTS_ORDER = """
+<histogram-configuration>
+
+<!-- Histogram definitions -->
+
+<histograms>
+
+<histogram name="Omnibox{version}{content}.Time" units="ms"
+ expires_after="2020-12-25">
+ <obsolete>
+ Obsolete text
+ </obsolete>
+ <owner>me@google.com</owner>
+ <summary>
+ The length of time taken by {version} of {content} provider's synchronous
+ pass.
+ </summary>
+ <token key="version" variants="OmniboxProviderVersion"/>
+ <token key="content">
+ <variant name=".ExtensionApp" label="ExtensionApp">
+ <obsolete>
+ Obsolete variant
+ </obsolete>
+ <owner>you@google.com</owner>
+ </variant>
+ <variant name=".HistoryContents" label="HistoryContents"/>
+ <variant name=".HistoryQuick" label="HistoryQuick"/>
+ </token>
+</histogram>
+
+<variants name="OmniboxProviderVersion">
+ <variant name="" label="all versions"/>
+ <variant name=".Provider" label="the old version">
+ <obsolete>
+ Deprecated. Replaced by Provider2.
+ </obsolete>
+ </variant>
+ <variant name=".Provider2" label="the second version"/>
+</variants>
+
+</histograms>
+
+</histogram-configuration>
+""".strip()
+
+
+class HistogramXmlTest(unittest.TestCase):
+ @parameterized.expand([
+ # Test prettify already pretty XML to verify the pretty-printed version
+ # is the same.
+ ('AlreadyPrettyXml', PRETTY_XML, PRETTY_XML),
+ ('AttributeOrder', XML_WRONG_ATTRIBUTE_ORDER, PRETTY_XML),
+ ('Indent', XML_WRONG_INDENT, PRETTY_XML),
+ ('SingleLine', XML_WRONG_SINGLELINE, PRETTY_XML),
+ ('LineBreak', XML_WRONG_LINEBREAK, PRETTY_XML),
+
+ # Test prettify already pretty XML with right order to verify the
+ # pretty-printed version is the same.
+ ('AlreadyPrettyXmlRightOrder', XML_RIGHT_ORDER, XML_RIGHT_ORDER),
+ ('HistogramAndSuffixOrder', XML_WRONG_ORDER, XML_RIGHT_ORDER),
+ ('ChildrenOrder', XML_WRONG_CHILDREN_ORDER, PRETTY_XML),
+ ])
+ def testPrettify(self, _, input_xml, expected_xml):
+ result = histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(input_xml))
+ self.assertMultiLineEqual(result.strip(), expected_xml)
+
+ def testMissingRequiredAttribute(self):
+ with self.assertRaises(Exception) as context:
+ histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(XML_MISSING_SEPARATOR))
+ self.assertIn('separator', str(context.exception))
+ self.assertIn('Missing attribute', str(context.exception))
+
+ @parameterized.expand([
+ # The "base" attribute of <suffix> only allows
+ # "true", "True", "false" or "False"
+ ('BadSuffixBaseBoolean', XML_RIGHT_ORDER, 'true', 'yes'),
+
+ # The "expires-after" attribute of <histogram> only allows:
+ # Date given in the format YYYY-{M, MM}-{D, DD},
+ # Milestone given in the format e.g. M81
+ # or "never" or "Never"
+ ('BadExpiresAfterDate', PRETTY_XML, '2019-11-02', 'Nov 2019'),
+ ('BadExpiresAfterDateSeparator', PRETTY_XML, '2019-11-02', '2019/11/02'),
+ ('BadExpiresAfterMilestone', XML_RIGHT_ORDER, 'M85', 'Milestone 85'),
+ ('BadExpiresAfterNever', XML_RIGHT_ORDER, 'never', 'NEVER'),
+ ('BadExpiresAfterOtherIllegalWords', XML_RIGHT_ORDER, 'never', 'hello'),
+
+ # The "enum" attribute of <histogram> only allows alphanumeric characters
+ # and punctuations "." and "_". It does not allow space.
+ ('BadEnumNameIllegalPunctuation', XML_RIGHT_ORDER, 'enum1', 'enum:1'),
+ ('BadEnumNameWithSpace', XML_RIGHT_ORDER, 'enum1', 'enum 1'),
+
+ # The "ordering" attribute of <histogram_suffixes> only allow
+ # "suffix", "prefix" or "prefix," followed by a non-negative integer
+ ('BadOrderingIllegalPunctuation', XML_RIGHT_ORDER, 'prefix,2', 'prefix-2'
+ ),
+ ('BadOrderingNonNumber', XML_RIGHT_ORDER, 'prefix,2', 'prefix,two'),
+ ])
+ def testRegex(self, _, pretty_input_xml, original_string, bad_string):
+ BAD_XML = pretty_input_xml.replace(original_string, bad_string)
+ with self.assertRaises(ValueError) as context:
+ histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(BAD_XML))
+ self.assertIn(bad_string, str(context.exception))
+ self.assertIn('does not match regex', str(context.exception))
+
+ @parameterized.expand([
+ # Test prettify already pretty XML to verify the pretty-printed version
+ # is the same.
+ ('AlreadyPrettyXml', PRETTY_XML_WITH_TOKEN, PRETTY_XML_WITH_TOKEN),
+ ('ChildrenOrder', XML_WRONG_VARIANT_CHILDREN_ORDER,
+ PRETTY_XML_WITH_TOKEN),
+ ('VariantOrder', XML_WRONG_VARIANT_ORDER, PRETTY_XML_WITH_TOKEN),
+ ('HistogramVariantsOrder', XML_WRONG_HISTOGRAM_VARIANTS_ORDER,
+ PRETTY_XML_WITH_TOKEN),
+ ])
+ def testTokenPrettify(self, _, input_xml, expected_xml):
+ self.maxDiff = None
+ result = histogram_configuration_model.PrettifyTree(
+ etree_util.ParseXMLString(input_xml))
+ self.assertMultiLineEqual(result.strip(), expected_xml)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/tools/metrics/histograms/histogram_ownership.py b/chromium/tools/metrics/histograms/histogram_ownership.py
index 7014e0c6b36..a5c07e4a6f8 100755
--- a/chromium/tools/metrics/histograms/histogram_ownership.py
+++ b/chromium/tools/metrics/histograms/histogram_ownership.py
@@ -9,19 +9,20 @@ histograms.
from __future__ import print_function
-import extract_histograms
import os
import sys
-import xml.etree.ElementTree
+from xml.etree import ElementTree as ET
+
+import extract_histograms
+import histogram_paths
+import merge_xml
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+sys.path.append(os.path.join(os.path.dirname(__file__), 'common'))
import path_util
-def main():
- tree = xml.etree.ElementTree.parse(path_util.GetHistogramsFile())
- root = tree.getroot()
- assert root.tag == 'histogram-configuration'
+def PrintOwners(root):
+ assert root.tag == 'histogram-configuration'
root_children = root.getchildren()
histograms = None
for node in root_children:
@@ -45,7 +46,6 @@ def main():
continue
if node.text == extract_histograms.OWNER_PLACEHOLDER:
continue
- assert '@' in node.text
owners.append(node.text)
if not obsolete:
@@ -55,5 +55,34 @@ def main():
print(name, 'NO_OWNER')
+def main():
+ """Prints the owners of histograms in a specific file or of all histograms.
+
+ Args:
+ argv[1]: Optional argument that is the relative path to a specific
+ histograms.xml.
+
+ Example usage to print owners of histograms_xml/Accessibility/histograms.xml:
+ python histogram_ownership.py histograms_xml/Accessibility/histograms.xml
+
+ Example usage to print owners of all histograms:
+ python histogram_ownership.py
+ """
+ if len(sys.argv) == 1:
+ merged_xml_string = merge_xml.MergeFiles(
+ histogram_paths.ALL_XMLS).toxml()
+ root = ET.fromstring(merged_xml_string)
+ else:
+ rel_path = path_util.GetInputFile(
+ os.path.join('tools', 'metrics', 'histograms', sys.argv[1]))
+ if not os.path.exists(rel_path):
+ raise ValueError("A histograms.xml file does not exist in %s" % rel_path)
+
+ tree = ET.parse(rel_path)
+ root = tree.getroot()
+
+ PrintOwners(root)
+
+
if __name__ == '__main__':
main()
diff --git a/chromium/tools/metrics/histograms/histogram_paths.py b/chromium/tools/metrics/histograms/histogram_paths.py
index 4c65c102cfe..ddc037686b1 100644
--- a/chromium/tools/metrics/histograms/histogram_paths.py
+++ b/chromium/tools/metrics/histograms/histogram_paths.py
@@ -10,12 +10,39 @@ import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
import path_util
-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
+
+def _FindHistogramsXmlFiles(base_dir):
+ """Gets a list of all histograms.xml files under the directory tree, prefixed
+ with tools/metrics/histograms/."""
+ file_list = []
+ for dirName, _, fileList in os.walk(base_dir):
+ for filename in fileList:
+ if filename == 'histograms.xml':
+ filepath = os.path.join('tools/metrics/histograms/', dirName, filename)
+ file_list.append(filepath)
+ return file_list
+
+
+ENUMS_XML_RELATIVE = 'tools/metrics/histograms/enums.xml'
+# This file path accounts for cases where the script is executed from other
+# metrics-related directories.
+PATH_TO_HISTOGRAMS_XML_DIR = os.path.join('..', 'histograms/histograms_xml')
+# In the middle state, histogram paths include both the large histograms.xml
+# file as well as the split up files.
+# TODO: Improve on the current design to avoid calling `os.walk()` at the time
+# of module import.
+HISTOGRAMS_XMLS_RELATIVE = (['tools/metrics/histograms/histograms.xml'] +
+ _FindHistogramsXmlFiles(PATH_TO_HISTOGRAMS_XML_DIR))
+OBSOLETE_XML_RELATIVE = ('tools/metrics/histograms/histograms_xml/'
+ 'obsolete_histograms.xml')
+ALL_XMLS_RELATIVE = [ENUMS_XML_RELATIVE, OBSOLETE_XML_RELATIVE
+ ] + HISTOGRAMS_XMLS_RELATIVE
+
+ENUMS_XML = path_util.GetInputFile(ENUMS_XML_RELATIVE)
+UKM_XML = path_util.GetInputFile('tools/metrics/ukm/ukm.xml')
+HISTOGRAMS_XMLS = [path_util.GetInputFile(f) for f in HISTOGRAMS_XMLS_RELATIVE]
+OBSOLETE_XML = path_util.GetInputFile(OBSOLETE_XML_RELATIVE)
+ALL_XMLS = [ENUMS_XML, OBSOLETE_XML] + HISTOGRAMS_XMLS
ALL_TEST_XMLS_RELATIVE = [
'tools/metrics/histograms/test_data/enums.xml',
@@ -23,4 +50,4 @@ ALL_TEST_XMLS_RELATIVE = [
'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
+TEST_ENUMS_XML, TEST_HISTOGRAMS_XML, TEST_UKM_XML = ALL_TEST_XMLS
diff --git a/chromium/tools/metrics/histograms/histograms.xml b/chromium/tools/metrics/histograms/histograms.xml
index eb2f41324d4..0d562d5f2b0 100644
--- a/chromium/tools/metrics/histograms/histograms.xml
+++ b/chromium/tools/metrics/histograms/histograms.xml
@@ -30,6 +30,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histograms>
+<variants name="LocalStorageSizes">
+ <variant name="" label=""/>
+ <variant name="1MBTo5MB" label="DB size between 1MB and 5MB."/>
+ <variant name="100KBTo1MB" label="DB size between 100KB and 1MB."/>
+ <variant name="Under100KB" label="DB size under 100KB."/>
+</variants>
+
<histogram name="Accessibility.Android.AnimationsEnabled" enum="BooleanEnabled"
expires_after="2019-11-02">
<obsolete>
@@ -88,8 +95,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Accessibility.Android.UserFontSizePref.Change" units="%"
+ expires_after="M90">
+ <owner>twellington@chromium.org</owner>
+ <owner>skym@chromium.org</owner>
+ <summary>
+ Records the current user font size pref when exiting accessibility settings
+ if the preference was changed. The font size ranges from 50% to 200% and can
+ be set in increments of 5%; the default is 100%.
+ </summary>
+</histogram>
+
+<histogram name="Accessibility.Android.UserFontSizePref.OnStartup" units="%"
+ expires_after="M90">
+ <owner>twellington@chromium.org</owner>
+ <owner>skym@chromium.org</owner>
+ <summary>
+ Records the current user font size pref during deferred startup for
+ ChromeActivity. The font size ranges from 50% to 200% and can be set in
+ increments of 5%; the default is 100%.
+ </summary>
+</histogram>
+
<histogram name="Accessibility.AndroidServiceInfo"
- enum="AccessibilityAndroidServiceInfoEnum" expires_after="M85">
+ enum="AccessibilityAndroidServiceInfoEnum" expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
<summary>
@@ -221,8 +250,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Accessibility.CrosCursorColor" enum="BooleanEnabled"
+ expires_after="M90">
+ <owner>dmazzoni@chromium.org</owner>
+ <owner>katie@chromium.org</owner>
+ <owner>chrome-a11y-core@google.com</owner>
+ <summary>
+ Whether the Chrome OS feature to colorize the cursor is enabled (logged once
+ 45 secs after startup).
+ </summary>
+</histogram>
+
<histogram name="Accessibility.CrosCursorHighlight" enum="BooleanEnabled"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dmazzoni@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
<summary>
@@ -272,7 +312,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.CrosHighContrast" enum="BooleanEnabled"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -316,7 +356,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.CrosSelectToSpeak" enum="BooleanEnabled"
- expires_after="2020-11-15">
+ expires_after="2021-01-24">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -427,7 +467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.CrosSpokenFeedback" enum="BooleanEnabled"
- expires_after="2020-10-25">
+ expires_after="2021-01-24">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>aleventhal@google.com</owner>
@@ -476,7 +516,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.CrosVirtualKeyboard" enum="BooleanEnabled"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -487,7 +527,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ImageLabels" enum="BooleanEnabled"
- expires_after="2020-10-25">
+ expires_after="M89">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -530,7 +570,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ImageLabels.ModalDialogAccepted"
- enum="BooleanAccepted" expires_after="2020-10-25">
+ enum="BooleanAccepted" expires_after="2021-01-24">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<summary>
@@ -542,7 +582,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ImageLabels.PageLanguage" enum="LanguageCode"
- expires_after="2020-10-31">
+ expires_after="2021-01-24">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -553,7 +593,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ImageLabels.RequestLanguage" enum="LanguageCode"
- expires_after="2020-10-31">
+ expires_after="2021-01-24">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -617,7 +657,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.LanguageDetection.LangsPerPage" units="count"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>chrishall@chromium.org</owner>
<owner>aboxhall@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
@@ -745,7 +785,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.Mac.ReduceTransparency" enum="BooleanEnabled"
- expires_after="2020-11-02">
+ expires_after="2021-01-24">
<owner>ellyjones@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
<summary>
@@ -769,7 +809,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ManuallyEnabled" enum="BooleanEnabled"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -781,7 +821,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.ModeFlag" enum="AccessibilityModeFlagEnum"
- expires_after="2020-10-04">
+ expires_after="2021-01-24">
<owner>dmazzoni@chromium.org</owner>
<owner>aboxhall@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -854,7 +894,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.Shortcuts.CrosHighContrast"
- enum="BooleanEnabled" expires_after="2020-06-20">
+ enum="BooleanEnabled" expires_after="M89">
<owner>amraboelkher@chromium.org</owner>
<owner>poromov@chromium.org</owner>
<summary>
@@ -864,7 +904,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.Shortcuts.CrosScreenMagnifier"
- enum="BooleanEnabled" expires_after="2020-09-13">
+ enum="BooleanEnabled" expires_after="M89">
<owner>amraboelkher@chromium.org</owner>
<owner>poromov@chromium.org</owner>
<summary>
@@ -874,7 +914,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.Shortcuts.CrosSpokenFeedback"
- enum="BooleanEnabled" expires_after="2020-06-20">
+ enum="BooleanEnabled" expires_after="M89">
<owner>amraboelkher@chromium.org</owner>
<owner>poromov@chromium.org</owner>
<summary>
@@ -921,7 +961,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.WinAPIs" enum="AccessibilityWinAPIEnum"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>nektar@chromium.org</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -929,7 +969,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.WinAPIs.GetPropertyValue"
- enum="AccessibilityWinAPIGetPropertyValueEnum" expires_after="M85">
+ enum="AccessibilityWinAPIGetPropertyValueEnum" expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>nektar@chromium.org</owner>
<owner>kbabbitt@microsoft.com</owner>
@@ -940,7 +980,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.WinAudioDescription" enum="BooleanEnabled"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -951,7 +991,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Accessibility.WinHighContrastTheme"
- enum="AccessibilityHighContrastColorScheme" expires_after="M88">
+ enum="AccessibilityHighContrastColorScheme" expires_after="M89">
+ <owner>dmazzoni@chromium.org</owner>
<owner>almaher@microsoft.com</owner>
<owner>weblayoutdev@microsoft.com</owner>
<summary>
@@ -1075,7 +1116,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.AccountAdditionSource"
- enum="AccountManagerAccountAdditionSource" expires_after="2020-11-05">
+ enum="AccountManagerAccountAdditionSource" expires_after="2021-01-24">
<owner>sinhak@chromium.org</owner>
<owner>anastasiian@chromium.org</owner>
<summary>
@@ -1130,7 +1171,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.InitializationTime" units="microseconds"
- expires_after="2020-08-09">
+ expires_after="2021-08-09">
<owner>sinhak@chromium.org</owner>
<owner>anastasiian@chromium.org</owner>
<summary>
@@ -1141,6 +1182,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="AccountManager.LegacySetPrimaryAccountAndUpdateAccountInfo"
enum="BooleanUsage" expires_after="2020-08-30">
+ <obsolete>
+ Removed in M84 as part of https://crrev.com/c/2131912 The legacy code path
+ and API being checked by this UMA stat no longer exist.
+ </obsolete>
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the usage of the legacy Primary Account setting flow vs the new flow
@@ -1150,7 +1195,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.ManageAccountsServiceType"
- enum="GaiaServiceType" expires_after="2020-10-01">
+ enum="GaiaServiceType" expires_after="2021-01-24">
<owner>sinhak@chromium.org</owner>
<owner>anastasiian@chromium.org</owner>
<summary>
@@ -1159,7 +1204,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.Migrations.Result" enum="BooleanSuccess"
- expires_after="2020-10-04">
+ expires_after="2021-01-24">
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the final result of migrating accounts to Chrome OS Account Manager.
@@ -1168,7 +1213,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="AccountManager.Migrations.StepResult"
- enum="BooleanSuccess" expires_after="2020-10-04">
+ enum="BooleanSuccess" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes
name="AccountManagerMigrationSteps" -->
@@ -1181,7 +1226,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.MirrorReauthenticationRequest"
- enum="BooleanHit" expires_after="2020-10-01">
+ enum="BooleanHit" expires_after="2021-01-24">
<owner>sinhak@chromium.org</owner>
<owner>anastasiian@chromium.org</owner>
<summary>
@@ -1192,7 +1237,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AccountManager.NumAccounts" units="count"
- expires_after="2020-10-04">
+ expires_after="2021-01-24">
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the number of accounts stored in Chrome OS Account Manager by a given
@@ -1482,7 +1527,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Ads.Media.Duration" units="ms" expires_after="2020-10-18">
+<histogram name="Ads.Media.Duration" units="ms" expires_after="2021-01-24">
<owner>johnidel@chromium.org</owner>
<owner>dalecurtis@chromium.org</owner>
<summary>
@@ -1496,7 +1541,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ads.Media.LoadType" enum="MediaLoadType"
- expires_after="2020-11-22">
+ expires_after="2021-02-07">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -2255,14 +2300,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskCanceled"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>Records that a specific background task has been canceled.</summary>
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskCreated.WithExpiration"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>ioanastefan@chromium.org</owner>
<owner>nator@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -2273,7 +2318,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskCreated.WithoutExpiration"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>ioanastefan@chromium.org</owner>
<owner>nator@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -2284,7 +2329,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskExpired"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>ioanastefan@chromium.org</owner>
<owner>nator@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -2295,14 +2340,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>Records that a specific background task has loaded native.</summary>
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.FullBrowser"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>mheikal@chromium.org</owner>
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
@@ -2313,7 +2358,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.ReducedMode"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>mheikal@chromium.org</owner>
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
@@ -2323,7 +2368,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Failure"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -2332,7 +2377,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Success"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -2341,14 +2386,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskStarted"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>Records that a specific background task has been started.</summary>
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskStopped"
- enum="BackgroundTaskId" expires_after="2020-12-01">
+ enum="BackgroundTaskId" expires_after="2021-01-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -2411,7 +2456,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.ChromeBrowserProvider.CallerHasPermission"
- enum="ClientAppId" expires_after="2020-06-28">
+ enum="ClientAppId" expires_after="2021-06-28">
<owner>yfriedman@chromium.org</owner>
<summary>
Android: Count of requests to Chrome browser which are granted to other apps
@@ -2421,7 +2466,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.ChromeBrowserProvider.SignaturePassed"
- enum="ClientAppId" expires_after="2020-06-28">
+ enum="ClientAppId" expires_after="2021-06-28">
<owner>yfriedman@chromium.org</owner>
<summary>
Android: Count of requests to Chrome browser which are granted to other apps
@@ -2655,7 +2700,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.CompressedResources.ExtractionStatus"
- enum="AndroidResourceExtractionStatus" expires_after="2020-10-18">
+ enum="AndroidResourceExtractionStatus" expires_after="2021-01-24">
<owner>estevenson@chromium.org</owner>
<owner>agrieve@chromium.org</owner>
<summary>
@@ -2665,7 +2710,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.CompressedResources.ExtractionTime" units="ms"
- expires_after="2020-10-18">
+ expires_after="2021-01-24">
<owner>estevenson@chromium.org</owner>
<owner>agrieve@chromium.org</owner>
<summary>
@@ -2806,7 +2851,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.DialogShown"
enum="AndroidDefaultBrowserPromoType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2818,7 +2863,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Android.DefaultBrowserPromo.IntentReceivedFromDisambiguationSheet"
enum="AndroidDefaultBrowserPromoOutcomeType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2830,7 +2875,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.Outcome.NoDefault"
enum="AndroidDefaultBrowserPromoOutcomeType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2843,7 +2888,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.Outcome.OtherDefault"
enum="AndroidDefaultBrowserPromoOutcomeType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2856,7 +2901,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.RoleManagerShown"
enum="AndroidDefaultBrowserPromoType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2867,7 +2912,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.UIDismissalReason.NoDefault"
enum="AndroidDefaultBrowserPromoUserActionType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2878,7 +2923,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.DefaultBrowserPromo.UIDismissalReason.OtherDefault"
enum="AndroidDefaultBrowserPromoUserActionType" expires_after="2021-03-26">
- <owner>lazzzis@google.org</owner>
+ <owner>lazzzis@google.com</owner>
<owner>twellington@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<summary>
@@ -2888,7 +2933,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DeviceSize.LargestDisplaySize" units="dp"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>twellington@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
@@ -2900,7 +2945,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DeviceSize.SmallestDisplaySize" units="dp"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>twellington@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
@@ -2941,7 +2986,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.Download.Rename.Dialog.Action"
- enum="Android.Download.Rename.Dialog.Action" expires_after="2020-10-04">
+ enum="Android.Download.Rename.Dialog.Action" expires_after="2021-01-24">
<owner>hesen@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -2951,7 +2996,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.Download.Rename.Result"
- enum="Android.Download.Rename.Result" expires_after="2020-10-04">
+ enum="Android.Download.Rename.Result" expires_after="2021-01-24">
<owner>hesen@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -3003,7 +3048,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DownloadManager.InitialCount" units="units"
- expires_after="2020-10-04">
+ expires_after="2021-01-24">
<owner>dtrainor@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -3049,14 +3094,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DownloadManager.List.View.Action"
- enum="Android.DownloadManager.List.View.Actions" expires_after="2020-10-18">
+ enum="Android.DownloadManager.List.View.Actions" expires_after="2021-01-24">
<owner>dtrainor@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>The count of Download Home list entry actions taken.</summary>
</histogram>
<histogram name="Android.DownloadManager.Menu.Action"
- enum="Android.DownloadManager.Menu.Actions" expires_after="2020-11-22">
+ enum="Android.DownloadManager.Menu.Actions" expires_after="2021-01-24">
<owner>dtrainor@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>The count of Download Home top level menu actions taken.</summary>
@@ -3135,14 +3180,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DownloadManager.OpenSource.Audio"
- enum="AndroidDownloadOpenSource" expires_after="2020-11-08">
+ enum="AndroidDownloadOpenSource" expires_after="2021-01-24">
<owner>xingliu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>Records how users open audio download files on Android.</summary>
</histogram>
<histogram name="Android.DownloadManager.OpenSource.Other"
- enum="AndroidDownloadOpenSource" expires_after="2020-11-08">
+ enum="AndroidDownloadOpenSource" expires_after="2021-01-24">
<owner>xingliu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -3152,7 +3197,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.DownloadManager.OpenSource.Video"
- enum="AndroidDownloadOpenSource" expires_after="2020-10-25">
+ enum="AndroidDownloadOpenSource" expires_after="2021-01-24">
<owner>xingliu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>Records how users open video download files on Android.</summary>
@@ -3514,8 +3559,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.InstantApps.ApiCallDurationWithoutApp" units="ms"
- expires_after="M85">
+ expires_after="2022-01-31">
<owner>sbirch@google.com</owner>
+ <owner>tedchoc@chromium.org</owner>
<summary>
Measures the amount of time spent in the getInstantAppIntent() API call when
the API was not able to find an Instant App for the URL. This is recorded
@@ -3526,8 +3572,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.InstantApps.CallSource" enum="InstantAppsCallSource"
- expires_after="M85">
+ expires_after="2022-01-31">
<owner>sbirch@google.com</owner>
+ <owner>tedchoc@chromium.org</owner>
<summary>
For intents to load a web page in browser from Instant Apps, records where
the request to load came from.
@@ -3546,8 +3593,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.InstantApps.EligiblePageLoaded" enum="Boolean"
- expires_after="M85">
+ expires_after="2022-01-31">
<owner>sbirch@google.com</owner>
+ <owner>tedchoc@chromium.org</owner>
<summary>
Records whether any given successful page load (for http and https schemes
only) could have been handled by an Instant App.
@@ -3555,8 +3603,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.InstantApps.FallbackDuration" units="ms"
- expires_after="M85">
+ expires_after="2022-01-31">
<owner>sbirch@google.com</owner>
+ <owner>tedchoc@chromium.org</owner>
<summary>
Measures the time from when we first received an eligible intent for Instant
Apps to the time we processed it in the case where the Instant Apps activity
@@ -3577,8 +3626,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.InstantApps.ShouldShowBanner" enum="InstantAppsBanner"
- expires_after="M85">
+ expires_after="2022-01-31">
<owner>sbirch@google.com</owner>
+ <owner>tedchoc@chromium.org</owner>
<summary>
Logs the reasons the banner is shown or hidden on an instant apps eligible
pages. Triggered every time asynchronous Instant Apps API indicates the
@@ -3608,7 +3658,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.IntentHeaders" enum="IntentHeadersResult"
- expires_after="2020-11-08">
+ expires_after="M85">
+ <obsolete>
+ Removed in M86. No longer tracked.
+ </obsolete>
<owner>peconn@chromium.org</owner>
<summary>
Records the usage of the Browser.EXTRA_HEADERS field for Intents that Chrome
@@ -3618,8 +3671,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.IntentNonSafelistedHeaderNames"
- enum="AndroidIntentNonSafelistedHeaderNameHashes"
- expires_after="2020-10-31">
+ enum="AndroidIntentNonSafelistedHeaderNameHashes" expires_after="M85">
+ <obsolete>
+ Removed in M86. No longer tracked.
+ </obsolete>
<owner>jochen@chromium.org</owner>
<owner>peconn@chromium.org</owner>
<summary>
@@ -3632,6 +3687,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.IsLastSharedAppInfoRetrieved"
enum="BooleanIsLastSharedAppInfoRetrieved" expires_after="M77">
+ <owner>tedchoc@chromium.org</owner>
<owner>clank-team@google.com</owner>
<summary>
Signifies whether the last shared app information is retrieved successfully
@@ -3640,7 +3696,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.KernelVersion" enum="AndroidKernelVersion"
- expires_after="2020-11-08">
+ expires_after="2021-01-24">
<owner>rsesek@chromium.org</owner>
<summary>
Reports the kernel major and minor version from the utsname.release field.
@@ -3652,9 +3708,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.Language.UiIsSystemLanguage" enum="BooleanMatched"
expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
<owner>perrier@chromium.org</owner>
<owner>megjablon@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Reports whether the Chrome UI language is the same as the Android system
lanaguage. Recorded once per top-level ChromeActivty start.
@@ -3663,9 +3719,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.Language.WrongLanguageAfterResume" enum="Boolean"
expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
<owner>tiborg@chromium.org</owner>
<owner>heamy@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Reports whether Chrome was started in a language other than the system
language but we support the system language. That can happen if the user
@@ -3676,7 +3732,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Android.MainActivity.ExplicitMainViewIntentDispatched.OnCreate"
- enum="BooleanDispatched" expires_after="2020-11-08">
+ enum="BooleanDispatched" expires_after="2021-01-24">
<owner>wnwen@chromium.org</owner>
<summary>
Whether VIEW intent sent explicitly to .Main activity was dispatched by
@@ -3774,7 +3830,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Android.MemoryPressureNotification"
- enum="Android.MemoryPressureNotification" expires_after="2020-10-18">
+ enum="Android.MemoryPressureNotification" expires_after="2021-01-24">
<owner>ssid@chromium.org</owner>
<summary>
Memory pressure notifications sent by Android through ComponentCallbacks2.
@@ -3796,6 +3852,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.ModerateBindingCount" units="bindings"
expires_after="M77">
+ <owner>tedchoc@chromium.org</owner>
<owner>clank-team@google.com</owner>
<summary>
The number of moderate bindings which were kept while Chrome process is in
@@ -4005,7 +4062,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.NTP.Impression" enum="NTPImpressionType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>finkm@chromium.org</owner>
<summary>
Counts impressions of the NTP on Android. It also counts potential
@@ -4028,7 +4085,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.Omnibox.InvalidMatch" enum="MatchResult"
- expires_after="2020-08-30">
+ expires_after="2021-02-27">
<owner>ender@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
@@ -4151,7 +4208,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.OmniboxFocusReason" enum="OmniboxFocusReason"
- expires_after="2020-11-08">
+ expires_after="2021-01-24">
<owner>mdjones@chromium.org</owner>
<owner>twellington@chromium.org</owner>
<owner>amaralp@chromium.org</owner>
@@ -4465,9 +4522,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.PrepareMenu.OpenWebApkVisibilityCheck" units="ms"
- expires_after="M85">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
+ expires_after="2021-02-01">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Measures the amount of time spent querying for whether a WebAPK is already
installed.
@@ -4476,6 +4535,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.RecentTabsManager.OtherDevices" units="count"
expires_after="M82">
+ <obsolete>
+ Removed in July, 2020
+ </obsolete>
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -4486,6 +4548,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.RecentTabsManager.RecentlyClosedTabs" units="count"
expires_after="M82">
+ <obsolete>
+ Removed in July, 2020
+ </obsolete>
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -4496,6 +4561,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.RecentTabsManager.TotalTabs" units="count"
expires_after="M82">
+ <obsolete>
+ Removed in July, 2020
+ </obsolete>
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -4525,7 +4593,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.SearchEngineChoice.Events"
- enum="AndroidSearchEngineChoiceEvents" expires_after="2020-10-01">
+ enum="AndroidSearchEngineChoiceEvents" expires_after="2021-09-01">
<owner>wylieb@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
@@ -4534,7 +4602,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.SearchEngineChoice.EventsV2"
- enum="AndroidSearchEngineChoiceEventsV2" expires_after="2020-10-01">
+ enum="AndroidSearchEngineChoiceEventsV2" expires_after="2021-09-01">
<owner>wylieb@chromium.org</owner>
<owner>pavely@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
@@ -4545,7 +4613,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.SearchEngineChoice.SearchEngineBeforeChoicePrompt"
- enum="OmniboxSearchEngineType" expires_after="2020-10-01">
+ enum="OmniboxSearchEngineType" expires_after="2021-09-01">
<owner>wylieb@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
@@ -4597,7 +4665,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.SelectFileDialogImgCount" units="images"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>finnur@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -4609,7 +4677,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.SelectFileDialogScope" enum="SelectFileDialogScope"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>finnur@chromium.org</owner>
<summary>
@@ -4697,7 +4765,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.StrictMode.OverrideUrlLoadingTime" units="ms"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>yfriedman@chromium.org</owner>
<owner>wnwen@chromium.org</owner>
<summary>
@@ -4719,7 +4787,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.StrictMode.TabPersistentStore" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-24">
<owner>wnwen@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -4950,6 +5018,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Android.WebView.AndroidProtocolHandler.ResourceGetIdentifier"
+ enum="BooleanSuccess" expires_after="2021-01-30">
+ <owner>hazems@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Track if looking up Android app resource id using
+ android.content.res.Resources#getIdentifier succeeds in
+ AndroidProtocolHandler or if it falls back to reflection look up.
+ </summary>
+</histogram>
+
<histogram name="Android.WebView.AndroidX.ApiCall" enum="AndroidXWebkitApiCall"
expires_after="2021-01-29">
<owner>laisminchillo@chromium.org</owner>
@@ -5010,9 +5089,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.ClearProxyOverride" units="units"
- expires_after="2020-08-13">
+ expires_after="2021-08-01">
<owner>laisminchillo@chromium.org</owner>
- <owner>tobiasjs@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>Records ClearProxyOverride calls.</summary>
</histogram>
@@ -5136,6 +5215,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Android.WebView.DevUi.FlagsUi.ToggledFromSearch"
+ enum="Boolean" expires_after="2021-01-20">
+ <owner>ntfschr@chromium.org</owner>
+ <owner>hazems@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ This is recorded each time a user toggles a flag in the developer UI
+ (changing a flag's state), and logs whether the user found this flag with
+ the search bar (&quot;true&quot; means there was a non-empty search query).
+ This is only recorded when the user toggles an individual flag through the
+ Spinner dialog, not when they press the &quot;reset all flags&quot; button.
+ </summary>
+</histogram>
+
<histogram base="true" name="Android.WebView.DevUi.FragmentNavigation"
enum="AndroidWebViewDevUiFragments" expires_after="2021-01-20">
<!-- Name completed by histogram_suffixes
@@ -5235,14 +5328,39 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.WebView.ExtraHeaders" enum="WebViewExtraHeaders"
expires_after="2020-10-01">
+ <obsolete>
+ Replaced by Android.WebView.ExtraHeadersRedirect 2020-07
+ </obsolete>
<owner>torne@chromium.org</owner>
- <owner>tobiasjs@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Record when extra headers are added to requests by AwURLLoaderThrottle and
whether they were kept or removed during redirects.
</summary>
</histogram>
+<histogram name="Android.WebView.ExtraHeaders.Valid" enum="BooleanValid"
+ expires_after="2021-01-14">
+ <owner>torne@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Recorded when an app passes extra headers to
+ WebView.loadUrl(url,extra_headers). We check if the header names and values
+ are valid.
+ </summary>
+</histogram>
+
+<histogram name="Android.WebView.ExtraHeadersRedirect"
+ enum="WebViewExtraHeadersRedirect" expires_after="2020-12-01">
+ <owner>torne@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Records the redirect type each time that a request is redirected, if that
+ request contains extra headers added by the
+ WebView.loadUrl(url,extra_headers) API.
+ </summary>
+</histogram>
+
<histogram name="Android.WebView.Gfx.FunctorStencilEnabled"
enum="BooleanEnabled" expires_after="M78">
<obsolete>
@@ -5486,27 +5604,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.SetProxyOverride.BypassRules"
- enum="BooleanPresent" expires_after="2020-08-13">
+ enum="BooleanPresent" expires_after="2021-08-01">
<owner>laisminchillo@chromium.org</owner>
- <owner>tobiasjs@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Records whether bypass rules were present in SetProxyOverride calls.
</summary>
</histogram>
<histogram name="Android.WebView.SetProxyOverride.ProxySchemeFilterType"
- enum="AndroidWebViewProxySchemeFilterType" expires_after="2020-08-13">
+ enum="AndroidWebViewProxySchemeFilterType" expires_after="2021-08-01">
<owner>laisminchillo@chromium.org</owner>
- <owner>tobiasjs@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Records the type of scheme filter in SetProxyOverride calls.
</summary>
</histogram>
<histogram name="Android.WebView.SetProxyOverride.ProxyUrlType"
- enum="AndroidWebViewProxyUrlType" expires_after="2020-08-13">
+ enum="AndroidWebViewProxyUrlType" expires_after="2021-08-01">
<owner>laisminchillo@chromium.org</owner>
- <owner>tobiasjs@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>Records the type of url in SetProxyOverride calls.</summary>
</histogram>
@@ -5552,8 +5670,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.Startup.CreationTime.Stage1.FactoryInit"
- units="ms" expires_after="M85">
+ units="ms" expires_after="2021-07-24">
<owner>changwan@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
How long it takes to initialize a WebViewChromiumFactoryProvider. This is
the first major phase of the WebViewChromium construction.
@@ -5561,8 +5680,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Cold"
- units="ms" expires_after="M85">
+ units="ms" expires_after="2021-07-24">
<owner>changwan@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
How long it takes to initialize a WebViewProvider, the first time that one
is initialized. WebViewProvider initialization is the second major phase of
@@ -5572,8 +5692,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Warm"
- units="ms" expires_after="M85">
+ units="ms" expires_after="2021-07-24">
<owner>changwan@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
How long it takes to initialize a WebViewProvider, the first time that one
is initialized. WebViewProvider initialization is the second major phase of
@@ -5619,14 +5740,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Android.WebView.TargetSdkVersion" enum="AndroidApiLevel"
- expires_after="M85">
+ expires_after="2021-07-24">
<owner>changwan@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
The version of the target SDK of the app WebView is running in. This is
recorded at WebView creation.
</summary>
</histogram>
+<histogram name="Android.WebView.UserAgent.Valid" enum="WebViewUserAgentType"
+ expires_after="2021-01-14">
+ <owner>torne@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Recorded when an app passes a custom user agent to
+ WebSettings.setUserAgentString. We check if the UA is valid, and if not we
+ try to interpret it in several ways and record which (if any) made sense.
+ </summary>
+</histogram>
+
<histogram name="Android.WebView.VariationsEnableState"
enum="AndroidWebViewVariationsEnableState" expires_after="M69">
<obsolete>
@@ -5644,7 +5777,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.WebView.Visibility.Global" enum="WebViewVisibility"
expires_after="2021-01-01">
- <owner>idries@chromium.org</owner>
+ <owner>idries@google.com</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records the global visibility state of WebView in seconds. The Visible
@@ -5658,7 +5791,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Android.WebView.Visibility.PerWebView"
enum="WebViewVisibility" expires_after="2021-01-01">
- <owner>idries@chromium.org</owner>
+ <owner>idries@google.com</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records per-WebView visibility duration in seconds. The Visible bucket
@@ -5672,6 +5805,36 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Android.WebView.WebViewOpenWebVisible.Global"
+ enum="WebViewOpenWebVisibility" expires_after="2021-01-01">
+ <owner>idries@google.com</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Identical to Android.WebView.Visibility.Global except that the
+ OpenWebContentVisible bucket only records time that any WebView is visible
+ and displaying contents which originate from the 'Open Web' (in this context
+ that is taken to mean having an HTTP or HTTPS scheme). The
+ OpenWebContentNotVisible bucket records time when the WebView was not
+ visible or not displaying contents which originate from an HTTP or HTTPS
+ scheme.
+ </summary>
+</histogram>
+
+<histogram name="Android.WebView.WebViewOpenWebVisible.PerWebView"
+ enum="WebViewOpenWebVisibility" expires_after="2021-01-01">
+ <owner>idries@google.com</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Identical to Android.WebView.Visibility.PerWebView except that the
+ OpenWebContentVisible bucket only records time that each WebView is visible
+ and displaying contents which originate from the 'Open Web' (in this context
+ that is taken to mean having an HTTP or HTTPS scheme). The
+ OpenWebContentNotVisible bucket records time when each WebView was not
+ visible or not displaying contents which originate from an HTTP or HTTPS
+ scheme.
+ </summary>
+</histogram>
+
<histogram name="AndroidSearchEngineLogo.Events"
enum="AndroidSearchEngineLogoEvents" expires_after="2020-10-14">
<owner>wylieb@chromium.org</owner>
@@ -5813,7 +5976,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AnimatedImage.NumOfFramesSkipped" units="count"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>khushalsagar@chromium.org</owner>
<summary>
If the frame rate for the image animation can not be reached, frames in the
@@ -5899,8 +6062,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="API.StorageAccess.AllowedRequests" enum="StorageAccessResult"
expires_after="2020-11-27">
- <owner>brandm@microsoft.com</owner>
<owner>mkwst@chromium.org</owner>
+ <owner>brandm@microsoft.com</owner>
<summary>
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
@@ -5911,8 +6074,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="API.StorageAccess.GrantIsImplicit" enum="BooleanAvailable"
expires_after="2020-11-27">
- <owner>brandm@microsoft.com</owner>
<owner>mkwst@chromium.org</owner>
+ <owner>brandm@microsoft.com</owner>
<summary>
Records if a generated grant was implicit or explicit at the time it was
created.
@@ -5921,8 +6084,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="API.StorageAccess.RequestStorageAccess"
enum="RequestStorageResult" expires_after="2020-11-27">
- <owner>brandm@microsoft.com</owner>
<owner>mkwst@chromium.org</owner>
+ <owner>brandm@microsoft.com</owner>
<summary>
Records requests to use document.requestStorageAccess and reasons the
request may be approved or rejected.
@@ -6302,17 +6465,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="appcache.UpdateJob.ExistingResourceCorruptionRecovery"
- units="units" expires_after="2020-02-18">
- <obsolete>
- Deprecated on 2020-02-18. No longer tracked.
- </obsolete>
+ units="units" expires_after="2021-05-25">
<owner>cmp@chromium.org</owner>
<owner>pwnall@chromium.org</owner>
<summary>
Tracks the number of times we encountered a corrupt resource and chose to
- recover the corruption by refetching the resource. This is only called when
- we find a corrupt resource and have the corruption recovery feature enabled.
- The count won't be incremented otherwise.
+ recover the corruption by refetching the resource in a non-conditional
+ request. This metric is always emitted upon AppCacheUpdateJob destruction
+ and is only incremented when the corruption recovery feature is enabled and
+ a corrupt resource is detected. If either corruption recovery is disabled or
+ no corrupt resources are detected, then the default value (0) will be sent
+ for metrics collection.
+
+ This metric was enabled in M81 (Dec 19, 2019), disabled in M82 (Feb 18,
+ 2020), and re-enabled in M86 (Aug 2020).
</summary>
</histogram>
@@ -6416,7 +6582,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AppManagement.AppDetailViews" enum="AppManagementUserAction"
- expires_after="2020-11-05">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="AppType" -->
<owner>jshikaram@chromium.org</owner>
@@ -6577,7 +6743,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.ApiResults"
- units="count" expires_after="2020-11-01">
+ units="count" expires_after="2021-01-03">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6588,7 +6754,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.CacheEmpty"
- enum="BooleanEmpty" expires_after="2020-12-06">
+ enum="BooleanEmpty" expires_after="2021-02-07">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6599,8 +6765,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Apps.AppList.DriveQuickAccessProvider.CacheWarmed"
+ units="Boolean" expires_after="2021-01-03">
+ <owner>tby@chromium.org</owner>
+ <owner>jiameng@chromium.org</owner>
+ <summary>
+ Whether or not the cache of Drive file results has already been warmed with
+ a request to ItemSuggest. Emitted each time we decide whether to warm the
+ cache, ie. each time Drive FS is mounted.
+ </summary>
+</histogram>
+
<histogram name="Apps.AppList.DriveQuickAccessProvider.DriveFSMounted"
- enum="Boolean" expires_after="2020-12-06">
+ enum="Boolean" expires_after="2021-02-07">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6611,7 +6788,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.FileError"
- enum="DriveFileError" expires_after="2020-12-06">
+ enum="DriveFileError" expires_after="2021-02-07">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6622,7 +6799,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Apps.AppList.DriveQuickAccessProvider.GetQuickAccessItemsLatency"
- units="ms" expires_after="2020-11-01">
+ units="ms" expires_after="2021-01-03">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6633,7 +6810,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.Latency" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6645,7 +6822,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Apps.AppList.DriveQuickAccessProvider.TimeFromFetchToZeroStateStart"
- units="ms" expires_after="2020-11-01">
+ units="ms" expires_after="2021-01-03">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6656,7 +6833,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.ValidResults"
- units="count" expires_after="2020-11-01">
+ units="count" expires_after="2021-01-03">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6676,6 +6853,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Apps.AppList.LauncherSearchQueryLengthJumped" enum="Boolean"
+ expires_after="M90">
+ <owner>wrong@chromium.org</owner>
+ <owner>jiameng@chromium.org</owner>
+ <summary>
+ Whether or not the most recent Launcher search query differs from the
+ previous query in length by more than one character. Search queries are
+ issued incrementally as the user types, so this will approximately
+ differentiate between incremental and non-incremental search queries.
+ Emitted on each change to the launcher search query.
+ </summary>
+</histogram>
+
<histogram name="Apps.AppList.OmniboxProvider.QueryTime" units="ms"
expires_after="2020-12-31">
<owner>jennyz@chromium.org</owner>
@@ -6700,7 +6890,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.OsSettingsProvider.Error"
- enum="OsSettingsProviderError" expires_after="2020-12-01">
+ enum="OsSettingsProviderError" expires_after="2021-02-14">
<owner>jiameng@chromium.org</owner>
<owner>tby@chromium.org</owner>
<summary>
@@ -6711,7 +6901,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.OsSettingsProvider.QueryTime" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-02-07">
<owner>jiameng@chromium.org</owner>
<owner>tby@chromium.org</owner>
<summary>
@@ -6722,7 +6912,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.SearchQueryLength.Apps" units="characters"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>thanhdng@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -6741,7 +6931,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.SuggestedContent.Enabled" enum="BooleanEnabled"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -6782,7 +6972,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.UserEvent.Error" enum="AppListSearchResult"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -6864,7 +7054,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateFileProvider.Latency" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6875,7 +7065,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateFileProvider.NotifierCreationSuccess"
- enum="BooleanSuccess" expires_after="2020-12-06">
+ enum="BooleanSuccess" expires_after="2021-02-07">
<owner>tby@chromium.org</owner>
<owner>edimitriadis@chromium.org</owner>
<summary>
@@ -6885,7 +7075,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResults.LaunchedItemType"
- enum="ZeroStateResultType" expires_after="2020-12-06">
+ enum="ZeroStateResultType" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6895,7 +7085,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResults.ReceivedScore.DriveQuickAccess"
- units="score" expires_after="2020-12-06">
+ units="score" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6907,7 +7097,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResults.ReceivedScore.OmniboxSearch"
- units="score" expires_after="2020-12-06">
+ units="score" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6931,7 +7121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.Clicked"
- enum="BooleanClicked" expires_after="2020-12-06">
+ enum="BooleanClicked" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6943,7 +7133,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.ContainsDriveFiles"
- enum="Boolean" expires_after="2020-12-06">
+ enum="Boolean" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6954,7 +7144,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.FileImpressions"
- enum="AppListSearchResult" expires_after="2020-12-06">
+ enum="AppListSearchResult" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -6980,7 +7170,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.LaunchedItemPositionV2"
- units="position" expires_after="2020-12-06">
+ units="position" expires_after="2021-02-07">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -7005,7 +7195,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.NumImpressionTypesV2"
- units="count" expires_after="2020-11-01">
+ units="count" expires_after="2021-01-03">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -7086,7 +7276,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListAppLaunchedV2" enum="AppListLaunchedFrom"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<!-- Name completed by histogram_suffixes name="AppListState" -->
<owner>mmourgos@chromium.org</owner>
@@ -7109,7 +7299,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListAppTypeClicked" enum="AppListAppType"
- expires_after="M84">
+ expires_after="2021-04-01">
+ <owner>charleszhao@chromium.org</owner>
<owner>pdyson@chromium.org</owner>
<summary>
The type of app clicked in the launcher on ChromeOS, recorded after the icon
@@ -7127,7 +7318,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListCreationTime" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>calamity@chromium.org</owner>
<summary>
The amount of time it takes to build the app list UI. This is logged each
@@ -7253,6 +7444,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Apps.AppListLauncherClickedSearchQueryLength"
+ units="characters" expires_after="M90">
+ <owner>wrong@chromium.org</owner>
+ <owner>jiameng@chromium.org</owner>
+ <summary>
+ Logs the length of user typed queries that result in launcher clicks.
+ Emitted each time the user opens a launcher search result after typing a
+ query.
+ </summary>
+</histogram>
+
<histogram name="Apps.AppListLauncherIssuedSearchQueryLength"
units="characters" expires_after="2020-12-31">
<owner>jennyz@chromium.org</owner>
@@ -7286,7 +7488,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListPageSwitcherSource"
- enum="AppListPageSwitcherSource" expires_after="2020-12-13">
+ enum="AppListPageSwitcherSource" expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -7382,7 +7584,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListResultLaunchIndexAndQueryLength" units="units"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -7414,7 +7616,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSearchBoxActivated"
- enum="SearchBoxActivationSource" expires_after="2020-11-01">
+ enum="SearchBoxActivationSource" expires_after="2021-01-03">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -7428,7 +7630,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSearchCommenced" units="searches"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>tapted@chromium.org</owner>
<summary>
The number of searches that are started in the app list. This is gathered
@@ -7450,7 +7652,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSearchQueryLength" units="characters"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>calamity@chromium.org</owner>
@@ -7482,7 +7684,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSearchResultInternalApp.Show"
- enum="AppListInternalAppName" expires_after="2020-12-13">
+ enum="AppListInternalAppName" expires_after="2021-02-14">
<owner>wutao@chromium.org</owner>
<summary>
The app list search result of an internal app that was shown to the user.
@@ -7524,7 +7726,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSearchResultOpenTypeV2" enum="AppListSearchResult"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -7537,7 +7739,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListShow.InputLatency" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>newcomer@chromium.org</owner>
<owner>mmourgos@chromium.org</owner>
<summary>
@@ -7548,7 +7750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListShowSource" enum="AppListShowSource"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>newcomer@chromium.org</owner>
<summary>
The number of times the different sources for showing the app list are used.
@@ -7573,7 +7775,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSuggestedChipLaunched" units="indices"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>newcomer@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
@@ -7584,7 +7786,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListSuggestedChipOpenType" enum="AppListSearchResult"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -7610,6 +7812,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.AppListTimeToDiscover" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 2018-03.
+ </obsolete>
<owner>tapted@chromium.org</owner>
<summary>
Time between enabling the app list, and a user explicitly choosing to show
@@ -7737,7 +7942,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Apps.DefaultAppLaunch" enum="DefaultAppName"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="DefaultAppLaunchSource" -->
<owner>dominickn@chromium.org</owner>
@@ -7787,7 +7992,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Apps.HomeLauncherTransition.AnimationSmoothness" units="%"
- expires_after="2020-10-04">
+ expires_after="2021-01-24">
<!-- Name completed by histogram suffixes
name="AppListTabletModeTransition" -->
@@ -8143,7 +8348,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Apps.PaginationTransition.DragScroll.PresentationTime.MaxLatency"
- units="ms" expires_after="2020-10-25">
+ units="ms" expires_after="2020-12-27">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" -->
@@ -8154,28 +8359,42 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Apps.PreferredApps.EntryCount" units="entries"
+ expires_after="M90">
+ <owner>dominickn@chromium.org</owner>
+ <owner>mxcai@chromium.org</owner>
+ <summary>
+ Records the number of entries in the preferred apps list that was stored on
+ the disk. The preferred apps list is a vector that identifies the preferred
+ app for an intent filter. This value is recorded every time on user login
+ and we read the stored data from the disk.
+ </summary>
+</histogram>
+
<histogram name="Apps.PreferredApps.FileIOAction"
- enum="PreferredAppsFileIOAction" expires_after="M87">
+ enum="PreferredAppsFileIOAction" expires_after="M89">
<owner>dominickn@chromium.org</owner>
<owner>mxcai@chromium.org</owner>
<summary>
Recorded at the time a read/write operation happens for preferred app to
- indicate whether the I/O succeeded or not.
+ indicate whether the I/O succeeded or not. This was briefly logged under
+ PreferredApps.FileIOAction in milestone 85.
</summary>
</histogram>
<histogram name="Apps.PreferredApps.UpdateAction"
- enum="PreferredAppsUpdateAction" expires_after="M87">
+ enum="PreferredAppsUpdateAction" expires_after="M89">
<owner>dominickn@chromium.org</owner>
<owner>mxcai@chromium.org</owner>
<summary>
Recorded at the time a update operation happens for preferred apps to
- indicate the type of update action.
+ indicate the type of update action. This was briefly logged under
+ PreferredApps.UpdateAction in milestone 85.
</summary>
</histogram>
<histogram name="Apps.ScrollableShelf.AnimationSmoothness" units="%"
- expires_after="2020-11-06">
+ expires_after="2021-01-10">
<!-- Name completed by histogram suffixes
name="HomeLauncherVisibility" -->
@@ -8191,7 +8410,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Apps.ScrollableShelf.Drag.PresentationTime"
- units="ms" expires_after="2020-11-08">
+ units="ms" expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" and
name="HomeLauncherVisibility"-->
@@ -8221,8 +8440,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Apps.ShortcutsMenu.Registration.Win.Result"
enum="ShortcutsMenuRegistrationWinResult" expires_after="M87">
- <owner>rahsin@microsoft.com</owner>
<owner>cmumford@chromium.org</owner>
+ <owner>rahsin@microsoft.com</owner>
<summary>
Records the result of shortcuts menu registration for PWA on Windows
</summary>
@@ -8230,15 +8449,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Apps.ShortcutsMenu.Unregistration.Win.Result"
enum="ShortcutsMenuUnregistrationWinResult" expires_after="M87">
- <owner>rahsin@microsoft.com</owner>
<owner>cmumford@chromium.org</owner>
+ <owner>rahsin@microsoft.com</owner>
<summary>
Records the result of shortcuts menu unregistration for PWA on Windows
</summary>
</histogram>
<histogram name="Apps.StateTransition.AnimationSmoothness" units="%"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" and
name="EnterOrExitOverview" and
@@ -8290,6 +8509,50 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Arc.AccessibilityWithTalkBack" enum="BooleanEnabled"
+ expires_after="2021-07-01">
+ <owner>hirokisato@chromium.org</owner>
+ <owner>sarakato@chromium.org</owner>
+ <summary>
+ Whether the ARC window is opened with TalkBack enabled or not. Counted when
+ a user opens a window or toggles the feature. Checked only when the spoken
+ feedback is enabled in Chrome OS.
+ </summary>
+</histogram>
+
+<histogram name="Arc.AdaptiveIconLoad.FromArcAppIcon"
+ enum="BooleanIsAdaptiveIcon" expires_after="2020-12-31">
+ <owner>dominickn@chromium.org</owner>
+ <owner>lgcheng@google.com</owner>
+ <owner>nancylingwang@chromium.org</owner>
+ <summary>
+ The adaptive Arc app icons are loaded from ArcAppIcon. Recorded whether the
+ icon is the adaptive icon when the icon is loaded.
+ </summary>
+</histogram>
+
+<histogram name="Arc.AdaptiveIconLoad.FromArcDefaultAppIcon"
+ enum="BooleanIsAdaptiveIcon" expires_after="2020-12-31">
+ <owner>dominickn@chromium.org</owner>
+ <owner>lgcheng@google.com</owner>
+ <owner>nancylingwang@chromium.org</owner>
+ <summary>
+ The adaptive Arc app icons are loaded from ArcAppIcon for default Arc apps.
+ Recorded whether the icon is the adaptive icon when the icon is loaded.
+ </summary>
+</histogram>
+
+<histogram name="Arc.AdaptiveIconLoad.FromNonArcAppIcon"
+ enum="BooleanIsAdaptiveIcon" expires_after="2020-12-31">
+ <owner>dominickn@chromium.org</owner>
+ <owner>lgcheng@google.com</owner>
+ <owner>nancylingwang@chromium.org</owner>
+ <summary>
+ The adaptive Arc app icons are loaded from Non ArcAppIcon. Recorded whether
+ the icon is the adaptive icon when the icon is loaded.
+ </summary>
+</histogram>
+
<histogram name="Arc.AdbSideloadingEnablingScreen"
enum="AdbSideloadingPromptEvent" expires_after="M88">
<owner>victorhsieh@chromium.org</owner>
@@ -8299,13 +8562,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Arc.AndroidBootTime" units="ms" expires_after="2020-12-06">
+<histogram name="Arc.AndroidBootTime" units="ms" expires_after="2021-02-07">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>The time elapsed for booting up the ARC instance.</summary>
</histogram>
-<histogram name="Arc.AppCount" units="units" expires_after="2020-12-06">
+<histogram name="Arc.AppCount" units="units" expires_after="2021-02-07">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -8357,7 +8620,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.AppsInstalledAtStartup" units="App Count"
- expires_after="M85">
+ expires_after="M92">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -8459,7 +8722,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.ContainerLifetimeEvent" enum="ArcContainerLifetimeEvent"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>elijahtaylor@google.com</owner>
<owner>yusukes@google.com</owner>
<summary>
@@ -8470,7 +8733,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.ContainerRestartAfterCrashCount" units="units"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>elijahtaylor@google.com</owner>
<owner>yusukes@google.com</owner>
<summary>
@@ -8585,7 +8848,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.EngagementTime.ArcTotal" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -8599,7 +8862,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.EngagementTime.Background" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -8622,7 +8885,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.EngagementTime.Total" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -8637,7 +8900,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.ExternalStorage.MountedMediaVisibility"
- enum="BooleanEnabled" expires_after="2020-09-01">
+ enum="BooleanEnabled" expires_after="2021-09-01">
<owner>fukino@chromium.org</owner>
<owner>yusukes@chromium.org</owner>
<summary>
@@ -8648,7 +8911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.ExternalStorage.SetVisible" enum="BooleanEnabled"
- expires_after="2020-09-01">
+ expires_after="2021-09-01">
<owner>fukino@chromium.org</owner>
<owner>yusukes@chromium.org</owner>
<summary>
@@ -8739,7 +9002,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Arc.ImeCount" units="units" expires_after="2020-12-06">
+<histogram name="Arc.ImeCount" units="units" expires_after="2021-02-07">
<owner>yhanada@chromium.org</owner>
<owner>tetsui@chromium.org</owner>
<summary>
@@ -8828,14 +9091,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Arc.OOMKills.Count" units="kills" expires_after="2020-11-01">
+<histogram name="Arc.OOMKills.Count" units="kills" expires_after="2021-01-03">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>Cumulative count of OOM kills in one user session.</summary>
</histogram>
<histogram name="Arc.OOMKills.Score" units="badness score"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -8857,14 +9120,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.OptInCancel" enum="ArcOptInCancel"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>Arc OptIn cancelation reason.</summary>
</histogram>
<histogram name="Arc.OptInResult" enum="ArcOptInResult"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>elijahtaylor@google.com</owner>
<owner>khmel@google.com</owner>
<summary>Arc OptIn flow result.</summary>
@@ -8879,7 +9142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.OptInSilentAuthCode.Reauthorization"
- enum="ArcOptInSilentAuthCode" expires_after="2020-11-01">
+ enum="ArcOptInSilentAuthCode" expires_after="2021-01-03">
<owner>khmel@google.com</owner>
<summary>
Arc Silent Auth Code status. This status is set during the ARC
@@ -8888,7 +9151,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.OptInSilentAuthCode.SecondaryAccount"
- enum="ArcOptInSilentAuthCode" expires_after="2020-11-29">
+ enum="ArcOptInSilentAuthCode" expires_after="2021-01-31">
<owner>khmel@google.com</owner>
<summary>
Arc Silent Auth Code status. This status is set during the minting of an
@@ -8939,7 +9202,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.PlayStoreSearch.QueryTime" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>hejq@chromium.org</owner>
<summary>
Time between sending an Play Store app discovery request and the storing
@@ -9041,8 +9304,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Time taken for ARC to render a PDF for print preview.</summary>
</histogram>
+<histogram base="true" name="Arc.Provisioning.CloudFlowError"
+ enum="ArcProvisioningCloudFlowError" expires_after="2021-07-01">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>mhasank@google.com</owner>
+ <owner>arc-core@google.com</owner>
+ <summary>
+ The result (success or the reason of failure) of Cloud DPC provisioning.
+ Recorded when ARC++ provisioning flow completes.
+ </summary>
+</histogram>
+
<histogram base="true" name="Arc.Provisioning.Result"
- enum="ArcProvisioningResult" expires_after="2020-12-13">
+ enum="ArcProvisioningResult" expires_after="2021-07-01">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>alexchau@google.com</owner>
@@ -9054,7 +9329,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.Provisioning.TimeDelta.Failure" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>alexchau@google.com</owner>
@@ -9065,7 +9340,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.Provisioning.TimeDelta.Success" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>alexchau@google.com</owner>
@@ -9077,7 +9352,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.Reauthorization.Result" enum="ArcProvisioningResult"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>khmel@google.com</owner>
@@ -9114,7 +9389,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.SdkVersionUpgradeType" enum="ArcSdkVersionUpgradeType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>niwa@google.com</owner>
<owner>yusukes@google.com</owner>
<summary>
@@ -9199,7 +9474,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.StateByUserType" enum="ArcEnableState"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>elijahtaylor@google.com</owner>
@@ -9283,7 +9558,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Arc.UserInteraction" enum="ArcUserInteraction"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>jhorwich@chromium.org</owner>
<owner>elijahtaylor@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -9328,7 +9603,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ArcAuth.MainAccountResolutionStatus"
- enum="ArcAuthMainAccountResolutionStatus" expires_after="M85">
+ enum="ArcAuthMainAccountResolutionStatus" expires_after="2021-08-11">
<owner>khmel@chromium.org</owner>
<owner>jhorwich@chromium.org</owner>
<summary>Contains the status of main account resolution.</summary>
@@ -9425,7 +9700,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Accelerators.Rotation.Usage"
- enum="ScreenRotationAcceleratorAction" expires_after="2020-11-01">
+ enum="ScreenRotationAcceleratorAction" expires_after="2021-01-03">
<owner>baileyberro@chromium.org</owner>
<summary>
Captures the result of a user using the rotation accelerator -
@@ -9462,6 +9737,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Ash.AmbientMode.Activation.{TabletOrClamshell}"
+ enum="AmbientUiMode" expires_after="2021-05-01">
+ <owner>cowmoo@google.com</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Recorded whenever Ambient mode is entered from {TabletOrClamshell}.
+ AmbientUiMode indicates whether the user entered Ambient mode from the lock
+ screen or from screen idle.
+ </summary>
+ <token key="TabletOrClamshell">
+ <variant name="ClamshellMode" label="Clamshell mode"/>
+ <variant name="TabletMode" label="Tablet mode"/>
+ </token>
+</histogram>
+
<histogram name="Ash.AmbientMode.AnimationSmoothness.PhotoTransition" units="%"
expires_after="2021-05-01">
<owner>wutao@chromium.org</owner>
@@ -9473,6 +9763,43 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Ash.AmbientMode.Enabled" enum="BooleanEnabled"
+ expires_after="2021-05-01">
+ <owner>cowmoo@google.com</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Among eligible users, whether the user has Ambient mode enabled. Recorded
+ once for every UMA upload. The set of eligible users includes all users with
+ profiles that can allow Ambient mode to be enabled. This is limited by
+ profile type, whether the user is primary, if the user has a supported
+ email, etc.
+ </summary>
+</histogram>
+
+<histogram name="Ash.AmbientMode.EngagementTime.{TabletOrClamshell}"
+ units="hours" expires_after="2021-05-01">
+ <owner>cowmoo@google.com</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Among eligible users with ambient mode enabled, records the length of each
+ session. The metric is uploaded when ambient mode is ended.
+ </summary>
+ <token key="TabletOrClamshell">
+ <variant name="ClamshellMode" label="Clamshell mode"/>
+ <variant name="TabletMode" label="Tablet mode"/>
+ </token>
+</histogram>
+
+<histogram name="Ash.AmbientMode.PhotoSource" enum="AmbientModePhotoSource"
+ expires_after="2021-05-01">
+ <owner>cowmoo@google.com</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Among eligible users with ambient mode enabled, records the source of
+ ambient mode photos. Recorded once for every UMA upload.
+ </summary>
+</histogram>
+
<histogram name="Ash.AppList.TimeBetweenTaskSwitches" units="seconds"
expires_after="2016-10-04">
<obsolete>
@@ -9486,6 +9813,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Ash.Assistant.AnimationSmoothness" units="%"
+ expires_after="2021-07-20">
+<!-- Name completed by histogram_suffixes name="AshAssistantAnimationSmoothness" -->
+
+ <owner>cowmoo@chromium.org</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Relative smoothness of assistant related animations. 100% represents ideally
+ smooth 60 frames per second.
+ </summary>
+</histogram>
+
<histogram name="Ash.BackGesture.EndScenarioType"
enum="BackGestureEndScenarioType" expires_after="2020-12-23">
<owner>minch@chromium.org</owner>
@@ -9593,7 +9932,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.DesksCount2" units="units"
- expires_after="2020-09-01">
+ expires_after="2020-12-06">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9604,7 +9943,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.DesksSwitch" enum="DesksSwitchSource"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9640,7 +9979,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.NewDesk2" enum="DesksCreationRemovalSource"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9651,7 +9990,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.NumberOfWindowsOnDesk_1" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9661,7 +10000,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.NumberOfWindowsOnDesk_2" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9671,7 +10010,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.NumberOfWindowsOnDesk_3" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9681,7 +10020,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.NumberOfWindowsOnDesk_4" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9691,7 +10030,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desks.RemoveDesk" enum="DesksCreationRemovalSource"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9701,7 +10040,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Desktop.TimeBetweenNavigateToTaskSwitches" units="seconds"
- expires_after="2020-11-01">
+ expires_after="2021-01-10">
<owner>tbuckley@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
@@ -9921,7 +10260,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.HotseatGesture" enum="HotseatInAppGesture"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>andrewxu@chromium.org</owner>
<owner>tbarzic@chromium.org</owner>
<summary>Gestures supported by the in-app hotseat.</summary>
@@ -9943,7 +10282,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.HotseatTransition.Drag.PresentationTime" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>anasalazar@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -9954,7 +10293,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.HotseatTransition.Drag.PresentationTime.MaxLatency"
- units="ms" expires_after="2020-07-26">
+ units="ms" expires_after="2021-07-15">
<owner>anasalazar@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -9965,7 +10304,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Ash.HotseatWidgetAnimation.AnimationSmoothness"
- units="%" expires_after="2020-09-13">
+ units="%" expires_after="2021-08-04">
<!-- Name completed by histogram suffixes
name="HotseatTransitionType" -->
@@ -9992,7 +10331,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.InteractiveWindowResize.TimeToPresent" units="ms"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>oshima@chromium.org</owner>
<owner>mukai@chromium.org</owner>
<summary>
@@ -10014,7 +10353,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Lock.AuthMethod.Switched"
- enum="AuthMethodSwitchType" expires_after="2020-11-01">
+ enum="AuthMethodSwitchType" expires_after="2021-01-10">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10023,7 +10362,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Lock.AuthMethod.Used.ClamShellMode"
- enum="AuthMethod" expires_after="2020-11-01">
+ enum="AuthMethod" expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10033,7 +10372,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Lock.AuthMethod.Used.TabletMode" enum="AuthMethod"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10094,7 +10433,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Lock.UserClicks" enum="LockScreenUserClickTarget"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10104,7 +10443,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Login.MigrationBanner" enum="BooleanShown"
- expires_after="M86">
+ expires_after="2021-01-01">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10114,7 +10453,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.Login.UserClicks" enum="LoginScreenUserClickTarget"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -10124,12 +10463,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Login.OOBE.UserClicks" enum="OobeUserClickTarget"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>raleksandrov@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>What shelf buttons or trays are clicked in the OOBE.</summary>
</histogram>
+<histogram name="Ash.Login.PinAutosubmit.Backfill"
+ enum="PinAutosubmitBackfillEvent" expires_after="2021-03-30">
+ <owner>rrsilva@google.com</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ The result of the PIN auto submit 'Backfill' operation. Users updating to
+ M86 with an existing PIN will have their preference regarding auto submit
+ 'backfilled' to either enabled or disabled.
+ </summary>
+</histogram>
+
<histogram base="true" name="Ash.NavigationWidget.AnimationSmoothness"
units="%" expires_after="2021-05-31">
<!-- Name completed by histogram suffixes
@@ -10179,7 +10529,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.NightLight.ScheduleType" enum="AshNightLightScheduleType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<summary>
The selected Night Light schedule type. Emitted when the user changes the
@@ -10188,7 +10538,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.NightLight.Temperature"
- enum="AshNightLightTemperatureRanges" expires_after="2020-12-06">
+ enum="AshNightLightTemperatureRanges" expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<summary>
The ranges in which the selected values of the Night Light color temperature
@@ -10198,7 +10548,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.NumberOfVisibleWindowsInPrimaryDisplay" units="Windows"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jamescook@chromium.org</owner>
<summary>
An upper bound on the number of windows visible to the user on the primary
@@ -10431,7 +10781,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.NumberOfItems" units="Icons"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>anasalazar@google.com</owner>
<owner>mmourgos@google.com</owner>
<summary>
@@ -10441,7 +10791,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.NumberOfPinnedItems" units="Icons"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>anasalazar@google.com</owner>
<owner>mmourgos@google.com</owner>
<summary>
@@ -10451,7 +10801,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.NumberOfUnpinnedItems" units="Icons"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>anasalazar@google.com</owner>
<owner>mmourgos@google.com</owner>
<summary>
@@ -10461,8 +10811,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.CircledPercentage" units="%"
- expires_after="M81">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The percentage of the screen area circled by the Assistant pen. Recorded
when the &quot;closed shape&quot; gesture is recognized.
@@ -10470,8 +10821,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.GestureDuration" units="ms"
- expires_after="M81">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The duration of an Assistant pen gesture. Recorded at the end of every
gesture.
@@ -10479,8 +10831,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.GestureInterval" units="ms"
- expires_after="M81">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The interval between subsequent Assistant pen gestures within a session.
Session is defined as the period while the Assistant tool is enabled.
@@ -10490,8 +10843,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.GesturesPerSession" units="units"
- expires_after="M77">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The number of Assistant pen gestures per session. Session is defined as the
period while the Assistant tool is enabled. Recorded at the end of the
@@ -10500,8 +10854,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.GesturesPerSession.Recognized"
- units="units" expires_after="M81">
- <owner>kaznacheev@chromium.org</owner>
+ units="units" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The number of recognized Assistant pen gestures per session. Session is
defined as the period while the Assistant tool is enabled. Recorded at the
@@ -10510,16 +10865,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.GestureType"
- enum="AssistantGestureType" expires_after="M81">
- <owner>kaznacheev@chromium.org</owner>
+ enum="AssistantGestureType" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The type of the Assistant pen gesture. Recorded at the end of each gesture.
</summary>
</histogram>
<histogram name="Ash.Shelf.Palette.Assistant.HighlighterLength" units="dp"
- expires_after="M85">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The length of a recognized &quot;horizontal stroke&quot; Assistant pen
gesture. Recorded at the and of the gesture.
@@ -10527,8 +10884,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.InAssistantMode" units="ms"
- expires_after="2020-10-25">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The amount of time spent in Palette Assistant mode. Recorded when the
Assistant mode is exited.
@@ -10536,8 +10894,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.InLaserPointerMode" units="ms"
- expires_after="M77">
- <owner>jdufault@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The amount of time spend in Palette Laser pointer mode. Recorded when the
Laser pointer mode is exited.
@@ -10545,8 +10904,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.InMagnifyMode" units="ms"
- expires_after="M77">
- <owner>jdufault@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The amount of time spend in Palette Magnify mode. Recorded when the Magnify
mode is exited.
@@ -10554,8 +10914,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.ModeCancellation"
- enum="PaletteModeCancelType" expires_after="M77">
- <owner>jdufault@chromium.org</owner>
+ enum="PaletteModeCancelType" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
Tracks the number of times a palette mode is explicitly cancelled or
switched out of.
@@ -10563,8 +10924,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Usage" enum="PaletteTrayOptions"
- expires_after="2020-10-25">
- <owner>jdufault@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
Recorded every time that the palette option has been selected from the
palette that has been opened manually (not via a stylus eject event).
@@ -10572,8 +10934,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Usage.AutoOpened" enum="PaletteTrayOptions"
- expires_after="2020-11-01">
- <owner>jdufault@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
Recorded every time that the palette option has been selected from the
palette that has been opened automatically (by a stylus eject event).
@@ -10581,8 +10944,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Shelf.Palette.Usage.Shortcut" enum="PaletteTrayOptions"
- expires_after="M85">
- <owner>kaznacheev@chromium.org</owner>
+ expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
Recorded every time that the palette option has been selected by means other
that the palette menu (e.g. stylus barrel button or a keyboard accelerator).
@@ -10773,7 +11137,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.SwipeHomeToOverviewGesture"
- enum="SwipeHomeToOverviewResult" expires_after="2020-11-29">
+ enum="SwipeHomeToOverviewResult" expires_after="2021-01-31">
<owner>andrewxu@chromium.org</owner>
<owner>tbarzic@chromium.org</owner>
<summary>
@@ -10783,8 +11147,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.SystemMenu.DefaultView.VisibleRows"
- enum="SystemMenuDefaultViewRows" expires_after="2020-12-31">
- <owner>tbuckley@chromium.org</owner>
+ enum="SystemMenuDefaultViewRows" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The visible rows displayed in the system menu's default view. Recorded each
time the menu is opened.
@@ -10792,8 +11157,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.SystemMenu.PercentageOfWorkAreaHeightCoveredByMenu"
- units="%" expires_after="M85">
- <owner>tbuckley@chromium.org</owner>
+ units="%" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The height of the system menu divided by the height of the Ash desktop work
area; a value over 100% indicates that a portion of the system menu is not
@@ -10801,8 +11167,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Ash.SystemMenu.Rows" units="rows" expires_after="M85">
- <owner>tbuckley@chromium.org</owner>
+<histogram name="Ash.SystemMenu.Rows" units="rows" expires_after="2021-07-27">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@chromium.org</owner>
<summary>
The number of user-visible rows in the system menu's default view. Recorded
each time the menu is opened.
@@ -10833,7 +11200,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.TabletMode.AnimationSmoothness.Exit" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>oshima@chromium.org</owner>
<owner>sammiequon@chromium.org</owner>
<summary>
@@ -10950,7 +11317,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.TouchView.LidAngle" units="degrees"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>oshima@chromium.org</owner>
<summary>
Chrome OS only. The computed angle between the lid and the keyboard panel.
@@ -10961,7 +11328,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.TouchView.TouchViewActive" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>girard@chromium.org</owner>
<summary>
The length of time that TouchView is active, for each activation.
@@ -10969,25 +11336,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.TouchView.TouchViewActivePercentage" units="%"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>girard@chromium.org</owner>
<summary>The proportion of time spent in TouchView during a session.</summary>
</histogram>
<histogram name="Ash.TouchView.TouchViewActiveTotal" units="minutes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>girard@chromium.org</owner>
<summary>The total time that TouchView is active during a session.</summary>
</histogram>
<histogram name="Ash.TouchView.TouchViewInactive" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>girard@chromium.org</owner>
<summary>The length of time between TouchView activations.</summary>
</histogram>
<histogram name="Ash.TouchView.TouchViewInactiveTotal" units="minutes"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>girard@chromium.org</owner>
<summary>
The total time that TouchView is not active during a session.
@@ -11121,7 +11488,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Window.AnimationSmoothness.CrossFade" units="%"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>wutao@chromium.org</owner>
<summary>
Relative smoothness of cross fade animation when setting window bounds. 100%
@@ -11160,8 +11527,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Window.AnimationSmoothness.Hide" units="%"
- expires_after="2020-07-13">
- <owner>wutao@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>sammiequon@chromium.org</owner>
+ <owner>tclaiborne@chromium.org</owner>
<summary>
Relative smoothness of hiding window animation. 100% represents ideally
smooth 60 frames per second. 50% represents when only 30 frames per second
@@ -11172,7 +11540,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Ash.Window.AnimationSmoothness.Snap" units="%"
- expires_after="M89">
+ expires_after="2021-07-01">
<owner>oshima@chromium.org</owner>
<owner>sammiequon@chromium.org</owner>
<summary>
@@ -11511,8 +11879,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Assistant.BetterOnboarding.Click"
+ enum="AssistantBetterOnboardingType" expires_after="2021-02-07">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ The number of times Assistant better onboarding buttons are clicked.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.BetterOnboarding.Shown"
+ enum="AssistantBetterOnboardingMode" expires_after="2021-02-07">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ The number of times Assistant better onboarding UI is shown. The UI has a
+ few different modes recorded in the enum.
+ </summary>
+</histogram>
+
<histogram name="Assistant.ButtonClickCount" enum="AssistantButtonId"
- expires_after="2020-10-25">
+ expires_after="2021-02-07">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -11535,7 +11922,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.ContextEnabledUserCount" enum="BooleanEnabled"
- expires_after="2020-11-25">
+ expires_after="2021-01-24">
<owner>updowndota@chromium.org</owner>
<owner>xiaohuic@chromium.org</owner>
<summary>
@@ -11557,7 +11944,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.EntryPoint" enum="AssistantEntryPoint"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -11566,7 +11953,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.ExitPoint" enum="AssistantExitPoint"
- expires_after="2020-11-19">
+ expires_after="2021-01-24">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -11584,6 +11971,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Assistant.Interaction.Resolution"
+ enum="AssistantInteractionResolution" expires_after="2021-07-22">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Record the Assistant interaction resolution code. It indicates how the
+ Assistant server interpreted a particular query and decision on the state,
+ e.g. if the conversation is normal or timed out or ended with other errors.
+ </summary>
+</histogram>
+
<histogram name="Assistant.OptInFlow.GetSettingsRequestTime" units="ms"
expires_after="2020-12-31">
<owner>updowndota@chromium.org</owner>
@@ -11615,6 +12013,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.CardClick"
enum="BooleanClicked" expires_after="2020-11-15">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11628,6 +12029,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.CardClick.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-11-15">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11639,6 +12043,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.CardClick.ByIndex"
units="index" expires_after="2020-11-15">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11650,6 +12057,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.CardClick.ByVeId"
enum="ProactiveSuggestionsVeId" expires_after="2020-11-15">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11661,6 +12071,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.FirstShowAttempt"
enum="ProactiveSuggestionsShowAttempt" expires_after="2020-11-01">
+ <obsolete>
+ Removed 11/2018 because a need was discovered for a non-boolean value.
+ Superseded by Accessibility.Android.AnimationsEnabled2.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11673,6 +12087,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Assistant.ProactiveSuggestions.FirstShowAttempt.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="AssistantProactiveSuggestionsShowAttemptByCategory" -->
@@ -11687,6 +12104,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.FirstShowResult"
enum="ProactiveSuggestionsShowResult" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11699,6 +12119,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Assistant.ProactiveSuggestions.FirstShowResult.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="AssistantProactiveSuggestionsShowResultByCategory" -->
@@ -11713,6 +12136,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.RequestResult"
enum="ProactiveSuggestionsRequestResult" expires_after="2020-11-01">
+ <obsolete>
+ Removed 11/2018 because a need was discovered for a non-boolean value.
+ Superseded by Accessibility.Android.AnimationsEnabled2.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11723,6 +12150,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.RequestResult.Error"
enum="ProactiveSuggestionsCategory" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11735,6 +12165,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Assistant.ProactiveSuggestions.RequestResult.SuccessWithContent"
enum="ProactiveSuggestionsCategory" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11747,6 +12180,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Assistant.ProactiveSuggestions.RequestResult.SuccessWithoutContent"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11758,6 +12194,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.ReshowAttempt"
enum="ProactiveSuggestionsShowAttempt" expires_after="2020-11-15">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11770,6 +12209,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Assistant.ProactiveSuggestions.ReshowAttempt.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="AssistantProactiveSuggestionsShowAttemptByCategory" -->
@@ -11784,6 +12226,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.ReshowResult"
enum="ProactiveSuggestionsShowResult" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11796,6 +12241,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Assistant.ProactiveSuggestions.ReshowResult.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="AssistantProactiveSuggestionsShowResultByCategory" -->
@@ -11954,6 +12402,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.ViewImpression"
enum="BooleanShown" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11968,6 +12419,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.ViewImpression.ByCategory"
enum="ProactiveSuggestionsCategory" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11980,6 +12434,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Assistant.ProactiveSuggestions.ViewImpression.ByVeId"
enum="ProactiveSuggestionsVeId" expires_after="2020-11-01">
+ <obsolete>
+ Associated with an experimental feature which was removed in M85.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -11991,21 +12448,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.QueryCountPerEntryPoint" enum="AssistantEntryPoint"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>Number of queries fired for each entry point.</summary>
</histogram>
<histogram name="Assistant.QueryResponseType" enum="AssistantQueryResponseType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>The Assistant query response type.</summary>
</histogram>
<histogram name="Assistant.QuerySource" enum="AssistantQuerySource"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -12015,7 +12472,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.ServiceEnabledUserCount" enum="BooleanEnabled"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -12027,7 +12484,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.ServiceReadyTime" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>xiaohuic@chromium.org</owner>
<owner>jeroendh@google.com</owner>
<summary>
@@ -12037,7 +12494,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.ServiceStartTime" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>updowndota@chromium.org</owner>
<summary>Amount of time spent in starting Assistant service.</summary>
</histogram>
@@ -12053,12 +12510,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Assistant.VoiceSearch.UserEligibility" enum="BooleanEligible"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>wylieb@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
- Tracks the eligibility of users for the voice search feature. Recorded when
- the user taps the voice search mic (ntp or location bar).
+ (Android only) Reports user eligibility for the feature, but ignores if the
+ feature is enabled. The criteria includes: locale, agsa version and
+ available memory.
</summary>
</histogram>
@@ -12570,7 +13028,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="AsyncDNS.ServerCount" units="units" expires_after="2020-11-15">
+<histogram name="AsyncDNS.ServerCount" units="units" expires_after="2021-01-17">
<owner>pauljensen@chromium.org</owner>
<owner>mef@chromium.org</owner>
<summary>
@@ -12979,7 +13437,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AuthPolicy.ErrorTypeOfAuthenticateUser"
- enum="AuthPolicyErrorType" expires_after="2020-12-13">
+ enum="AuthPolicyErrorType" expires_after="2021-02-14">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -13033,7 +13491,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AuthPolicy.ErrorTypeOfRefreshDevicePolicy"
- enum="AuthPolicyErrorType" expires_after="2020-10-25">
+ enum="AuthPolicyErrorType" expires_after="2021-01-17">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -13108,7 +13566,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AuthPolicy.TimeToAuthenticateUser" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -13149,7 +13607,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AuthPolicy.TimeToRefreshDevicePolicy" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -13160,7 +13618,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AuthPolicy.TimeToRefreshUserPolicy" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -13733,15 +14191,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Autofill.AddressProfileImporStatus"
- enum="AutofillAddressProfileImportStatus" expires_after="2021-05-01">
- <owner>koerber@google.com</owner>
- <owner>battre@chromium.org</owner>
- <summary>
- Logs the overall status of a profile import attempt on form submission time.
- </summary>
-</histogram>
-
<histogram name="Autofill.AddressProfileImportCountrySpecificFieldRequirements"
enum="AutofillAddressProfileImportCountrySpecificFieldRequirement"
expires_after="2021-05-01">
@@ -13764,6 +14213,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Autofill.AddressProfileImportStatus"
+ enum="AutofillAddressProfileImportStatus" expires_after="2021-05-01">
+ <owner>koerber@google.com</owner>
+ <owner>battre@chromium.org</owner>
+ <summary>
+ Logs the overall status of a profile import attempt on form submission time.
+ </summary>
+</histogram>
+
<histogram name="Autofill.AddressSuggestionsCount" units="units"
expires_after="M95">
<owner>battre@chromium.org</owner>
@@ -13851,7 +14309,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.BetterAuth.CardUnmaskDuration.Fido" units="ms"
- expires_after="2020-12-15">
+ expires_after="2021-02-14">
<owner>jsaul@google.com</owner>
<owner>manasverma@google.com</owner>
<owner>autofill-auth-team@google.com</owner>
@@ -13905,7 +14363,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.BetterAuth.FlowEvents"
- enum="AutofillCreditCardAuthenticationEvents" expires_after="2020-12-15">
+ enum="AutofillCreditCardAuthenticationEvents" expires_after="2021-02-14">
<owner>jsaul@google.com</owner>
<owner>manasverma@google.com</owner>
<owner>autofill-auth-team@google.com</owner>
@@ -13919,7 +14377,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Autofill.BetterAuth.OptInCalled"
- enum="AutofillCreditCardWebauthnOptInParameters" expires_after="2020-12-15">
+ enum="AutofillCreditCardWebauthnOptInParameters" expires_after="2021-02-14">
<owner>jsaul@google.com</owner>
<owner>manasverma@google.com</owner>
<owner>autofill-auth-team@google.com</owner>
@@ -14035,7 +14493,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.BetterAuth.UserVerifiabilityCheckDuration" units="ms"
- expires_after="2020-08-31">
+ expires_after="2020-12-15">
<owner>jsaul@google.com</owner>
<owner>manasverma@google.com</owner>
<owner>autofill-auth-team@google.com</owner>
@@ -14047,7 +14505,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Autofill.BetterAuth.WebauthnResult"
- enum="AutofillCreditCardWebauthnResultMetric" expires_after="2020-12-15">
+ enum="AutofillCreditCardWebauthnResultMetric" expires_after="2021-02-14">
<owner>jsaul@google.com</owner>
<owner>manasverma@google.com</owner>
<owner>autofill-auth-team@google.com</owner>
@@ -14073,7 +14531,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.CardholderNameFixFlowPrompt.Events"
- enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2020-11-30">
+ enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2021-01-31">
<owner>jsaul@google.com</owner>
<owner>siyua@chromium.org</owner>
<owner>payments-autofill-team@google.com</owner>
@@ -14085,7 +14543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.CardUnmask.CvcLength" units="digits"
- expires_after="M86">
+ expires_after="2021-03-31">
<owner>jsaul@google.com</owner>
<owner>siyua@chromium.org</owner>
<owner>payments-autofill-team@google.com</owner>
@@ -14134,7 +14592,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Autofill.CardUploadEnabled" enum="AutofillCardUploadEnabled"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>aneeshali@google.com</owner>
<owner>jsaul@google.com</owner>
<summary>
@@ -14319,6 +14777,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Autofill.EditedAutofilledFieldAtSubmission.Aggregate"
+ enum="AutofilledFieldUserEditingStatus" expires_after="2021-05-01">
+ <owner>koerber@google.com</owner>
+ <owner>battre@google.com</owner>
+ <summary>
+ Total number of fields at submission time that were autofilled and have or
+ have not been editing by the user afterwards.
+ </summary>
+</histogram>
+
+<histogram name="Autofill.EditedAutofilledFieldAtSubmission.ByFieldType"
+ enum="AutofilledFieldUserEditingStatusByFieldType"
+ expires_after="2021-05-01">
+ <owner>koerber@google.com</owner>
+ <owner>battre@google.com</owner>
+ <summary>
+ Total number of fields at submission time of a specific type that were
+ autofilled and have or have not been editing by the user afterwards.
+ </summary>
+</histogram>
+
<histogram name="Autofill.ExpirationDateFixFlowPrompt.Events"
enum="AutofillExpirationDateFixFlowPromptEvent" expires_after="2021-02-01">
<owner>siashah@google.com</owner>
@@ -14430,6 +14909,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Autofill.FormDynamicity" enum="AutofillFormDynamicity"
expires_after="M86">
+ <obsolete>
+ Removed 06/2020 after sufficient data was collected, to cleanup the code
+ base.
+ </obsolete>
<owner>schwering@google.com</owner>
<owner>chrome-autofill@google.com</owner>
<summary>
@@ -16180,27 +16663,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Autofill.UserEditedFilledField.Aggregate"
- enum="AutofilledFieldUserEditingStatus" expires_after="2021-05-01">
- <owner>koerber@google.com</owner>
- <owner>battre@google.com</owner>
- <summary>
- Total number of fields at submission time that where autofilled and have or
- have not been editing by the user afterwards.
- </summary>
-</histogram>
-
-<histogram name="Autofill.UserEditedFilledField.ByFieldType"
- enum="AutofilledFieldUserEditingStatusByFieldType"
- expires_after="2021-05-01">
- <owner>koerber@google.com</owner>
- <owner>battre@google.com</owner>
- <summary>
- 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.
- </summary>
-</histogram>
-
<histogram name="Autofill.UserHappiness" enum="AutofillUserHappiness"
expires_after="M95">
<owner>battre@chromium.org</owner>
@@ -16448,6 +16910,47 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Autofill.WebOTP.OneTimeCode.FromAutocomplete" units="Boolean"
+ expires_after="2021-07-01">
+ <owner>yigu@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <owner>web-identity@google.com</owner>
+ <summary>
+ Records whether a frame has ever used autocomplete=&quot;one-time-code&quot;
+ during its lifecycle. i.e. it's only recorded once per frame. In addition,
+ we only record it if the frame has parsed forms.
+ </summary>
+</histogram>
+
+<histogram name="Autofill.WebOTP.PhoneNumberCollection.ParseResult"
+ units="Boolean" expires_after="2021-07-01">
+ <owner>yigu@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <owner>web-identity@google.com</owner>
+ <summary>
+ Records whether a frame collects phone number based on the field
+ classification. It records once per frame only if it has parsed forms.
+
+ Note that the field types may not be calculated if there are less than 3
+ fields in the form unless an autocomplete attribute is provided. e.g. if the
+ form has only a single field regarding phone number without specifiying
+ autocomplete=&quot;phone&quot;, a sample with &quot;false&quot; will be
+ reported.
+ </summary>
+</histogram>
+
+<histogram name="Autofill.WebOTP.PhonePlusWebOTPPlusOTC"
+ enum="PhoneCollectionState" expires_after="2021-07-01">
+ <owner>yigu@chromium.org</owner>
+ <owner>madjivp@chromium.org</owner>
+ <owner>web-identity@google.com</owner>
+ <summary>
+ Records whether a document collected phone number, and/or used WebOTP,
+ and/or used OneTimeCode (OTC) during its lifecycle. i.e. it's recorded in
+ the browser process when a document is destroyed.
+ </summary>
+</histogram>
+
<histogram name="Autofill.WebView.AutofillSession" enum="AutofillSessionStates"
expires_after="2021-06-08">
<owner>michaelbai@chromium.org</owner>
@@ -16600,7 +17103,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.AlsReaderStatus"
- enum="AutoScreenBrightnessAlsReaderStatus" expires_after="2020-11-30">
+ enum="AutoScreenBrightnessAlsReaderStatus" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16611,7 +17114,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.Cause"
- enum="AutoScreenBrightnessBrightnessChangeCause" expires_after="2020-11-30">
+ enum="AutoScreenBrightnessBrightnessChangeCause" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16620,7 +17123,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.ElapsedTime" units="ms"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16631,7 +17134,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.ModelIteration"
- units="count" expires_after="2020-11-30">
+ units="count" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16656,7 +17159,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Atlas" units="count"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16674,7 +17177,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Eve" units="count"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16691,7 +17194,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Kohaku" units="count"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -16726,7 +17229,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Nocturne"
- units="count" expires_after="2020-11-30">
+ units="count" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -17013,7 +17516,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="AutoScreenBrightness.TrainingCompleteDuration.NewCurve"
- units="ms" expires_after="2020-11-30">
+ units="ms" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -17192,7 +17695,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackForwardCache.AllSites.HistoryNavigationOutcome"
- enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2020-12-13">
+ enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2021-02-14">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17223,7 +17726,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.BrowsingInstanceNotSwappedReason"
enum="BackForwardCacheBrowsingInstanceNotSwappedReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17261,7 +17764,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.NotRestoredReason"
- enum="BackForwardCacheNotRestoredReason" expires_after="2020-12-06">
+ enum="BackForwardCacheNotRestoredReason" expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17277,7 +17780,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="BackForwardCache.EvictedAfterDocumentRestoredReason"
enum="BackForwardCacheEvictedAfterDocumentRestoredReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17302,6 +17805,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame.MethodHash"
+ enum="MojoInterfaceName" expires_after="2021-01-01">
+ <owner>hbolaria@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Track number of times an unexpected IPC message is posted to frames in the
+ renderer process while they are frozen in the back-forward cache. IPC tasks
+ are denoted by md5 hash of the mojo bindings method name or message hash for
+ legacy IPCs.
+
+ Recorded when an IPC task is posted to frames that have already been stored
+ in the back-forward cache, after a 15 second delay to account for completion
+ of all freezing-related operations.
+ </summary>
+</histogram>
+
+<histogram
+ name="BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame.TimeUntilIPCReceived"
+ units="ms" expires_after="2021-01-01">
+ <owner>hbolaria@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Duration between start of page being stored in the back-forward cache and
+ when the unexpected IPC call is received by a frame while in the cache.
+
+ Recorded when an IPC task is posted to frames that have already been stored
+ in the back-forward cache, after a 15 second delay to account for completion
+ of all freezing-related operations.
+ </summary>
+</histogram>
+
<histogram name="BackForwardCache.HistoryNavigationOutcome"
enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2020-10-01">
<owner>hajimehoshi@chromium.org</owner>
@@ -17317,7 +17854,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackForwardCache.HistoryNavigationOutcome.BlocklistedFeature"
- enum="WebSchedulerTrackedFeature" expires_after="2020-12-06">
+ enum="WebSchedulerTrackedFeature" expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17335,7 +17872,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="BackForwardCache.HistoryNavigationOutcome.BrowsingInstanceNotSwappedReason"
enum="BackForwardCacheBrowsingInstanceNotSwappedReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17352,7 +17889,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="BackForwardCache.HistoryNavigationOutcome.DisabledForRenderFrameHostReason"
enum="BackForwardCacheDisabledForRenderFrameHostReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>carlscab@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
@@ -17374,7 +17911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackForwardCache.HistoryNavigationOutcome.NotRestoredReason"
- enum="BackForwardCacheNotRestoredReason" expires_after="2020-12-06">
+ enum="BackForwardCacheNotRestoredReason" expires_after="2021-02-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
@@ -17401,6 +17938,52 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="BackForwardCache.ProactiveSameSiteBISwap.EligibilityDuringCommit"
+ enum="BooleanPresent" expires_after="M88">
+ <owner>rakina@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Records whether a page where we did a same-site proactive BrowsingInstance
+ swap on (with the intention on storing it in the back-forward cache later)
+ is still eligible for back-forward cache when swapping out the old page
+ during navigation commit. Recorded when we have just finished committing the
+ new page on the renderer side, and during the commit of the new page in the
+ browser side.
+ </summary>
+</histogram>
+
+<histogram
+ name="BackForwardCache.ProactiveSameSiteBISwap.SameSiteNavigationDidSwap"
+ enum="BooleanPresent" expires_after="M88">
+ <owner>rakina@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Records whether we did a same-site proactive BrowsingInstance swap or not
+ for a same-site cross-document navigation. Recorded when we are committing
+ the navigation.
+ </summary>
+</histogram>
+
+<histogram
+ name="BackForwardCache.ProactiveSameSiteBISwap.UnloadRunsAfterCommit"
+ enum="BooleanPresent" expires_after="M88">
+ <owner>rakina@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Records whether a page where we did a same-site proactive BrowsingInstance
+ swap on (with the intention on storing it in the back-forward cache later)
+ is no longer eligible for back-forward cache after the navigation committed
+ and the page has unload handlers that will run after commit, which is a
+ web-observable behavior change for same-site navigations. Recorded when we
+ have just finished committing the new page on the renderer side, and during
+ the commit of the new page in the browser side.
+ </summary>
+</histogram>
+
<histogram name="BackForwardCache.ReloadsAfterHistoryNavigation"
enum="BackForwardCacheReloadsAfterHistoryNavigation"
expires_after="2020-10-01">
@@ -17446,11 +18029,76 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="BackForwardCache.SameSite.ActionAfterPagehide"
+ enum="BackForwardCacheActionAfterPagehide" expires_after="M88">
+ <obsolete>
+ Deprecated 09/2020 in favor of ActionAfterPagehide2 which excludes actions
+ taken when the unload event is in progress.
+ </obsolete>
+ <owner>rakina@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Records occurences of certain actions triggered by script running on a page
+ after the pagehide event gets dispatched in the page, which might be
+ possible if we dispatch the pagehide event without unloading/freezing the
+ page (only happens when we're doing a same-site navigation and we did a
+ proactive BrowsingInstance swap but we're reusing the old page's process).
+ Note: we will only track actions that might affect the user after we've
+ navigated away from the old page, such as modifications to storage,
+ navigations, or sending/receiving postMessage.
+ </summary>
+</histogram>
+
+<histogram name="BackForwardCache.SameSite.ActionAfterPagehide2"
+ enum="BackForwardCacheActionAfterPagehide" expires_after="M88">
+ <owner>rakina@chromium.org</owner>
+ <owner>altimin@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Records occurences of certain actions triggered by script running on a page
+ after the pagehide event gets dispatched in the page, which might be
+ possible if we dispatch the pagehide event without unloading/freezing the
+ page (only happens when we're doing a same-site navigation and we did a
+ proactive BrowsingInstance swap but we're reusing the old page's process).
+
+ Note: We will only track actions that might affect the user after we've
+ navigated away from the old page, such as modifications to storage,
+ navigations, or sending/receiving postMessage.
+
+ Note 2: We will not track actions taken when the unload event is currently
+ in progress, which means the page is not actually stored in the back-forward
+ cache and the actions are expected to happen after pagehide.
+ </summary>
+</histogram>
+
+<histogram
+ name="BackForwardCache.UnexpectedRendererToBrowserMessage.InterfaceName"
+ enum="MojoInterfaceName" expires_after="2021-01-01">
+ <owner>carlscab@google.com</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Hash (base::HashMetricName) of a mojo interface name.
+
+ A sample is recorded for every message the browser receives from a renderer
+ for a page that is in the back-forward cache. Logging can be disabled via
+ the back-forward cache feature parameter
+ &quot;message_handling_when_cached&quot;.
+
+ Renderers should not be sending messages back to the browser for pages that
+ are in the back-forward cache. Eventually we will be killing such renderers
+ (as we could assume that it is misbehaving because it got compromised). But
+ first we must make sure that we are not sending messages by mistake (i.e.
+ bugs in the renderer).
+ </summary>
+</histogram>
+
<histogram base="true" name="BackgroundFetch.EventDispatchFailure.Dispatch"
- enum="ServiceWorkerStatusCode" expires_after="M85">
+ enum="ServiceWorkerStatusCode" expires_after="2021-06-30">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->
<owner>peter@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
<summary>
Records the Service Worker status code that caused a Background Fetch API
event to fail dispatching whilst trying to dispatch an event on the active
@@ -17459,10 +18107,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="BackgroundFetch.EventDispatchFailure.FindWorker"
- enum="ServiceWorkerStatusCode" expires_after="M85">
+ enum="ServiceWorkerStatusCode" expires_after="2021-06-30">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->
<owner>peter@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
<summary>
Records the Service Worker status code that caused a Background Fetch API
event to fail dispatching whilst trying to find the Service Worker.
@@ -17470,10 +18119,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="BackgroundFetch.EventDispatchFailure.StartWorker"
- enum="ServiceWorkerStatusCode" expires_after="M85">
+ enum="ServiceWorkerStatusCode" expires_after="2021-06-30">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->
<owner>peter@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
<summary>
Records the Service Worker status code that caused a Background Fetch API
event to fail dispatching whilst trying to start the active Service Worker.
@@ -17481,7 +18131,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="BackgroundFetch.EventDispatchResult"
- enum="BackgroundFetchEventDispatchResult" expires_after="M85">
+ enum="BackgroundFetchEventDispatchResult" expires_after="2021-06-30">
<!-- Name completed by histogram_suffixes name="BackgroundFetchEvents" -->
<owner>peter@chromium.org</owner>
@@ -17493,7 +18143,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundFetch.HasDuplicateRequests" enum="Boolean"
- expires_after="M84">
+ expires_after="2021-06-30">
+ <owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
Records whether the fetch requests contains any duplicate URLs. This is
@@ -17621,7 +18272,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundMode.BackgroundApplicationsCount" units="units"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>atwilson@chromium.org</owner>
<owner>mvanouwerkerk@chromium.org</owner>
<summary>
@@ -17747,7 +18398,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Event.PeriodicResultPattern"
- enum="BackgroundSyncResultPattern" expires_after="2020-07-31">
+ enum="BackgroundSyncResultPattern" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -17762,7 +18413,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Event.PeriodicStartedInForeground"
- enum="BooleanInForeground" expires_after="2020-07-31">
+ enum="BooleanInForeground" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -17799,7 +18450,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.LaunchTask.PlayServicesAvailable"
- enum="Boolean" expires_after="M86">
+ enum="Boolean" expires_after="2021-07-21">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -17860,7 +18511,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Registration.OneShot"
- enum="BackgroundSyncStatus" expires_after="2020-11-30">
+ enum="BackgroundSyncStatus" expires_after="2021-01-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -17912,7 +18563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Registration.Periodic"
- enum="BackgroundSyncStatus" expires_after="2020-12-13">
+ enum="BackgroundSyncStatus" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -17922,7 +18573,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Registration.Periodic.IsDuplicate"
- enum="BooleanRegistrationIsDuplicate" expires_after="2020-07-31">
+ enum="BooleanRegistrationIsDuplicate" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -17933,7 +18584,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Registration.Periodic.MinInterval"
- units="seconds" expires_after="2020-07-31">
+ units="seconds" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -17963,7 +18614,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.Wakeup.DelayTime" units="ms"
- expires_after="2020-08-31">
+ expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -17976,7 +18627,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.WakeupTaskFiredEvents.OneShot"
- enum="BackgroundSyncFiredEvents" expires_after="2020-07-31">
+ enum="BackgroundSyncFiredEvents" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -17989,7 +18640,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BackgroundSync.WakeupTaskFiredEvents.Periodic"
- enum="BackgroundSyncFiredEvents" expires_after="2020-07-31">
+ enum="BackgroundSyncFiredEvents" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -18150,7 +18801,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Animate.UpdateTime" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
@@ -18168,7 +18819,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Animation.CompositedAnimationFailureReason"
- enum="CompositorAnimationsFailureReason" expires_after="2020-12-13">
+ enum="CompositorAnimationsFailureReason" expires_after="2021-02-14">
+ <owner>smcgruer@chromium.org</owner>
<owner>animations-dev@chromium.org</owner>
<summary>
Reasons an Animation is not suitable for running on the compositor thread.
@@ -18495,6 +19147,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Blink.Canvas.GPUFallbackToCPU"
+ enum="CanvasGPUFallbackToCPUScenario" expires_after="2021-01-31">
+ <owner>fserb@chromium.org</owner>
+ <summary>Logs the occurrences of canvas fallback from GPU to CPU.</summary>
+</histogram>
+
<histogram name="Blink.Canvas.HasRendered" enum="Boolean"
expires_after="2021-01-31">
<owner>juanmihd@chromium.org</owner>
@@ -18820,6 +19478,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Blink.Canvas.WillReadFrequently"
+ enum="BooleanWillReadFrequently" expires_after="2021-01-31">
+ <owner>fserb@chromium.org</owner>
+ <summary>
+ Logs if the canvas is initialized to be read frequently or not.
+ </summary>
+</histogram>
+
<histogram name="Blink.CheckerableImageCount" enum="CheckerableImageType"
expires_after="2018-05-08">
<obsolete>
@@ -18998,7 +19664,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.Compositing.LayerPromotionCount"
- units="units" expires_after="2020-10-26">
+ units="units" expires_after="2021-01-24">
<owner>pdr@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -19009,8 +19675,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Blink.Compositing.UpdateTime" units="microseconds"
expires_after="2021-03-01">
-<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
-
+ <obsolete>
+ Obsolete as of http://crrev.com/794384 and M86.
+ </obsolete>
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -19021,6 +19688,24 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
Note: As of M70, this histogram has stopped recording metrics on machines
with low-resolution clocks.
+
+ TODO(crbug.com/1100711): This is being replaced soon by CompositingInputs +
+ CompositingAssignments (== Compositing).
+ </summary>
+</histogram>
+
+<histogram name="Blink.CompositingAssignments.UpdateTime" units="microseconds"
+ expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
+ <summary>
+ Time spent updating compositing assignments in the Blink document lifecycle.
+ This is the legacy compositing approach.
+
+ Note: this histogram has stopped recording metrics on machines with
+ low-resolution clocks.
</summary>
</histogram>
@@ -19036,15 +19721,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
CompositeAfterPaint and is largely implemented by PaintArtifactCompositor.
BlinkGenPropertyTrees is an incremental launch of part of the new
compositing approach and will use both this and
- Blink.Compositing.UpdateTime.
+ Blink.{CompositingInputs+CompositingAssignments}.UpdateTime.
Note: As of M70, this histogram has stopped recording metrics on machines
with low-resolution clocks.
</summary>
</histogram>
+<histogram name="Blink.CompositingInputs.UpdateTime" units="microseconds"
+ expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
+ <summary>
+ Time spent updating compositing inputs in the Blink document lifecycle. This
+ is the legacy compositing approach.
+
+ Note: this histogram has stopped recording metrics on machines with
+ low-resolution clocks.
+ </summary>
+</histogram>
+
<histogram name="Blink.Compression.CompressionStream.Format"
- enum="CompressionStreamsFormat" expires_after="2020-10-31">
+ enum="CompressionStreamsFormat" expires_after="2021-01-24">
<owner>ricea@chromium.org</owner>
<owner>yhirano@chromium.org</owner>
<summary>
@@ -19056,7 +19756,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Compression.DecompressionStream.Format"
- enum="CompressionStreamsFormat" expires_after="2020-10-31">
+ enum="CompressionStreamsFormat" expires_after="2021-01-24">
<owner>ricea@chromium.org</owner>
<owner>yhirano@chromium.org</owner>
<summary>
@@ -19139,7 +19839,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.DecodedImage.DensitySizeCorrectionDetected"
- enum="BooleanPresent" expires_after="2020-11-01">
+ enum="BooleanPresent" expires_after="2021-01-03">
+ <owner>schenney@chromium.org</owner>
<owner>noam.j.rosenthal@gmail.com</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -19221,7 +19922,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.DecodedImage.JpegDensity.KiBWeighted"
- units="0.01 bits per pixel" expires_after="2020-12-13">
+ units="0.01 bits per pixel" expires_after="2021-02-14">
<owner>deymo@google.com</owner>
<owner>compression-dev@google.com</owner>
<summary>
@@ -19241,7 +19942,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.DecodedImage.WebPFileFormat" enum="WebPFileFormat"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>mcasas@chromium.org</owner>
<owner>andrescj@chromium.org</owner>
<summary>
@@ -19281,7 +19982,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.DecodedImageType" enum="DecodedImageType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>urvang@chromium.org</owner>
<summary>Image codec inferred during decode.</summary>
</histogram>
@@ -19528,7 +20229,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.ForcedStyleAndLayout.UpdateTime" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
<owner>schenney@chromium.org</owner>
@@ -19705,7 +20406,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.ImageDecoders.IncrementalDecodeNeeded"
- enum="IncrementalDecodeNeeded" expires_after="2020-11-29">
+ enum="IncrementalDecodeNeeded" expires_after="2021-01-31">
<owner>mbarowsky@chromium.org</owner>
<owner>andrescj@chromium.org</owner>
<summary>
@@ -19719,7 +20420,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.ImageDecoders.IncrementallyDecodedByteSize"
- units="bytes" expires_after="2020-11-01">
+ units="bytes" expires_after="2021-01-03">
<owner>mbarowsky@chromium.org</owner>
<owner>andrescj@chromium.org</owner>
<summary>
@@ -19734,7 +20435,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.ImageDecoders.InitiallyFullyDecodedByteSize"
- units="bytes" expires_after="2020-12-06">
+ units="bytes" expires_after="2021-02-07">
<owner>mbarowsky@chromium.org</owner>
<owner>andrescj@chromium.org</owner>
<summary>
@@ -19751,7 +20452,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.ImageDecoders.Jpeg.Area" units="pixels"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>andrescj@chromium.org</owner>
<summary>
Number of pixels in a decoded JPEG image. Recorded after decoding is done by
@@ -19765,7 +20466,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.ImageDecoders.Jpeg.ColorSpace" enum="JpegColorSpace"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
<summary>
@@ -19793,7 +20494,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.IntersectionObservation.UpdateTime" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
<owner>schenney@chromium.org</owner>
@@ -19848,7 +20549,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Layout.UpdateTime" units="microseconds"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
<owner>schenney@chromium.org</owner>
@@ -19862,7 +20563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.LazyLoad.CrossOriginFrames.InitialDeferralAction"
- enum="LazyLoad.FrameInitialDeferralAction" expires_after="2020-11-01">
+ enum="LazyLoad.FrameInitialDeferralAction" expires_after="2021-01-03">
<owner>sclittle@chromium.org</owner>
<summary>
Records the initial lazy loading action taken for a cross-origin iframe.
@@ -19909,6 +20610,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Blink.MainFrame.CompositingAssignmentsRatio"
+ units="%" expires_after="2020-11-08">
+ <owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
+<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
+
+ <summary>
+ The percentage of time between a BeginMainFrame and paint results commit in
+ Blink that is used for computing compositing assignments.
+ </summary>
+</histogram>
+
<histogram base="true" name="Blink.MainFrame.CompositingCommitRatio" units="%"
expires_after="2020-11-08">
<owner>schenney@chromium.org</owner>
@@ -19921,6 +20634,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Blink.MainFrame.CompositingInputsRatio" units="%"
+ expires_after="2020-11-08">
+ <owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
+<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
+
+ <summary>
+ The percentage of time between a BeginMainFrame and paint results commit in
+ Blink that is used for computing compositing inputs.
+ </summary>
+</histogram>
+
<histogram base="true" name="Blink.MainFrame.CompositingRatio" units="%"
expires_after="2020-11-08">
<owner>schenney@chromium.org</owner>
@@ -19934,7 +20659,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.MainFrame.ForcedStyleAndLayoutRatio"
- units="%" expires_after="2020-11-08">
+ units="%" expires_after="2021-01-10">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -19996,7 +20721,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.MainFrame.LayoutRatio" units="%"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -20008,7 +20733,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.MainFrame.PaintRatio" units="%"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -20088,7 +20813,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Blink.MainFrame.UpdateLayersRatio" units="%"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -20100,7 +20825,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.MainFrame.UpdateTime" units="microseconds"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
@@ -20320,7 +21045,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Paint.UpdateTime" units="microseconds"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
@@ -20603,7 +21328,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Script.ForceDeferredScripts.Mainframe" units="count"
- expires_after="2020-10-24">
+ expires_after="2020-12-27">
<owner>dougarnett@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
@@ -20615,7 +21340,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Script.ForceDeferredScripts.Mainframe.External"
- units="count" expires_after="2020-10-24">
+ units="count" expires_after="2020-12-27">
<owner>dougarnett@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
@@ -20626,7 +21351,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Script.ForceDeferredScripts.Subframe" units="count"
- expires_after="2020-10-24">
+ expires_after="2020-12-27">
<owner>dougarnett@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
@@ -20638,7 +21363,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Script.ForceDeferredScripts.Subframe.External"
- units="count" expires_after="2020-10-24">
+ units="count" expires_after="2020-12-27">
<owner>dougarnett@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
@@ -20649,7 +21374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Script.SchedulingType" enum="ScriptSchedulingType"
- expires_after="2020-10-24">
+ expires_after="2020-12-27">
<owner>kouhei@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
@@ -20700,7 +21425,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.ScrollingCoordinator.UpdateTime" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
@@ -20895,7 +21620,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.Style.UpdateTime" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
@@ -21079,7 +21804,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.Extensions.Features" enum="FeatureObserver"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>chasej@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -21104,7 +21829,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.AttributeAllowlistType"
- enum="FeaturePolicyAllowlistType" expires_after="2020-10-31">
+ enum="FeaturePolicyAllowlistType" expires_after="2021-01-03">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -21116,7 +21841,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.Header"
- enum="FeaturePolicyFeature" expires_after="2020-11-08">
+ enum="FeaturePolicyFeature" expires_after="2021-01-10">
<owner>iclelland@chromium.org</owner>
<summary>
Counts the use of a specific feature policy via the
@@ -21125,7 +21850,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.HeaderAllowlistType"
- enum="FeaturePolicyAllowlistType" expires_after="2020-10-31">
+ enum="FeaturePolicyAllowlistType" expires_after="2021-01-03">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -21209,7 +21934,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.PotentialViolation"
- enum="FeaturePolicyFeature" expires_after="2020-10-31">
+ enum="FeaturePolicyFeature" expires_after="2021-01-03">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -21223,7 +21948,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.ProposalWouldChangeBehaviour"
- enum="FeaturePolicyFeature" expires_after="2020-10-31">
+ enum="FeaturePolicyFeature" expires_after="2021-01-03">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -21311,7 +22036,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.UseCounter.File.Features" enum="FeatureObserver"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>yhirano@chromium.org</owner>
<owner>mkwst@chromium.org</owner>
<summary>
@@ -21425,7 +22150,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold"
- enum="NQEEffectiveConnectionType" expires_after="2020-11-15">
+ enum="NQEEffectiveConnectionType" expires_after="2021-01-17">
<owner>sclittle@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
@@ -21792,7 +22517,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="BlinkGC.TimeForCompleteSweep" units="ms" expires_after="M84">
+<histogram name="BlinkGC.TimeForCompleteSweep" units="ms" expires_after="M88">
<owner>bikineev@chromium.org</owner>
<owner>oilpan-reviews@chromium.org</owner>
<summary>
@@ -21898,7 +22623,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BlinkGC.TimeForSweepingBackground" units="ms"
- expires_after="M84">
+ expires_after="M88">
<owner>bikineev@chromium.org</owner>
<owner>oilpan-reviews@chromium.org</owner>
<summary>
@@ -21909,7 +22634,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BlinkGC.TimeForSweepingForeground" units="ms"
- expires_after="M84">
+ expires_after="M88">
<owner>bikineev@chromium.org</owner>
<owner>oilpan-reviews@chromium.org</owner>
<summary>
@@ -21919,7 +22644,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="BlinkGC.TimeForSweepingSum" units="ms" expires_after="M84">
+<histogram name="BlinkGC.TimeForSweepingSum" units="ms" expires_after="M88">
<owner>bikineev@chromium.org</owner>
<owner>oilpan-reviews@chromium.org</owner>
<summary>
@@ -21951,15 +22676,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="BlinkGC.TotalAllocatedSpace" units="KB" expires_after="M84">
+<histogram name="BlinkGC.TotalAllocatedSpace" units="KB" expires_after="M88">
<owner>haraken@chromium.org</owner>
+ <owner>oilpan-reviews@chromium.org</owner>
<summary>
The total size of allocated space in OS when a Blink GC is triggered.
</summary>
</histogram>
-<histogram name="BlinkGC.TotalObjectSpace" units="KB" expires_after="M84">
+<histogram name="BlinkGC.TotalObjectSpace" units="KB" expires_after="M88">
<owner>haraken@chromium.org</owner>
+ <owner>oilpan-reviews@chromium.org</owner>
<summary>
The total size of object space in all threads when a Blink GC is triggered.
</summary>
@@ -22181,7 +22908,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Bluetooth.ConnectedDeviceCount" units="devices"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>adlr@chromium.org</owner>
<summary>
Counts the number of simulataneously connected Bluetooth devices. Used to
@@ -22371,7 +23098,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Bluetooth.Web.ConnectGATT.Outcome"
- enum="WebBluetoothConnectGATTOutcome" expires_after="2020-11-08">
+ enum="WebBluetoothConnectGATTOutcome" expires_after="2021-01-10">
<owner>odejesush@chromium.org</owner>
<owner>ortuno@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
@@ -22747,7 +23474,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="BlueZ.AdapterLost" units="seconds" expires_after="2020-11-08">
+<histogram name="BlueZ.AdapterLost" units="seconds" expires_after="2021-01-10">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records a duration of a Bluetooth adapter
@@ -22769,7 +23496,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="BlueZ.ChipLost2" units="seconds" expires_after="2020-11-01">
+<histogram name="BlueZ.ChipLost2" units="seconds" expires_after="2021-01-03">
<owner>sonnysasaka@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records a duration of a Bluetooth adapter
@@ -22836,7 +23563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BlueZ.ResultOfConnection" enum="BlueZResultOfConnection"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of connection requests
@@ -22846,7 +23573,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BlueZ.ResultOfPairing" enum="BlueZResultOfPairing"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of pairing with remote
@@ -22982,6 +23709,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="BookmarkManager.NumDraggedInSession" units="bookmarks"
expires_after="M82">
+ <obsolete>
+ Removed as of July 2020.
+ </obsolete>
<owner>jhimawan@google.com</owner>
<owner>twellington@google.com</owner>
<summary>
@@ -22992,6 +23722,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="BookmarkManager.NumReorderButtonInSession" units="bookmarks"
expires_after="M82">
+ <obsolete>
+ Removed as of July 2020.
+ </obsolete>
<owner>jhimawan@google.com</owner>
<owner>twellington@google.com</owner>
<summary>
@@ -23051,7 +23784,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Bookmarks.Count.OnProfileLoad" units="bookmarks"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>supertri@chromium.org</owner>
<owner>isherman@chromium.org</owner>
<owner>aidanday@google.com</owner>
@@ -23065,7 +23798,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Bookmarks.Count.OnProfileLoad.DuplicateUrl" units="bookmarks"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -23112,6 +23845,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Bookmarks.CreateBookmarkIndexTime" units="ms"
+ expires_after="M88">
+ <owner>mastiz@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
+ <summary>
+ Time taken to build the bookmark index. Logged upon profile load when the
+ bookmarks JSON file is read.
+ </summary>
+</histogram>
+
+<histogram name="Bookmarks.DecodeTime" units="ms" expires_after="M88">
+ <owner>mastiz@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
+ <summary>
+ Time taken to decode the bookmarks JSON file. Logged upon profile load when
+ the bookmarks JSON file is read.
+ </summary>
+</histogram>
+
<histogram name="Bookmarks.DuplicateAndEmptyTitleDetectionTime" units="ms"
expires_after="2019-09-24">
<owner>mamir@chromium.org</owner>
@@ -23153,7 +23905,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Bookmarks.LaunchLocation" enum="BookmarkLaunchLocation"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>ianwen@chromium.org</owner>
<summary>Logs a UI location from which a bookmark is launched.</summary>
</histogram>
@@ -23219,7 +23971,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BrotliFilter.CompressionPercent" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>eustas@chromium.org</owner>
<summary>Compressed/Decompressed size ratio.</summary>
</histogram>
@@ -23295,7 +24047,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.PaintPreview.Capture.CompressedOnDiskSize" units="KB"
- expires_after="2020-10-20">
+ expires_after="2021-02-14">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -23380,7 +24132,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.PaintPreview.Player.CompositorProcessStartupTime"
- units="ms" expires_after="2020-10-20">
+ units="ms" expires_after="2020-12-27">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -23390,7 +24142,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.PaintPreview.Player.LinkClicked"
- units="BooleanSuccess" expires_after="2020-10-20">
+ units="BooleanSuccess" expires_after="2021-02-14">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -23398,7 +24150,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.PaintPreview.Player.TimeToFirstBitmap" units="ms"
- expires_after="2020-10-20">
+ expires_after="2021-02-14">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -23408,6 +24160,39 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Browser.PaintPreview.TabbedPlayer.ExitCause"
+ enum="TabbedPaintPreviewExitCause" expires_after="2021-02-14">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <summary>
+ Records the the reason for exiting TabbedPaintPreviewPlayer. Recorded when
+ paint preview is removed.
+ </summary>
+</histogram>
+
+<histogram name="Browser.PaintPreview.TabbedPlayer.SnackbarCount" units="units"
+ expires_after="2020-10-20">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <summary>
+ Records the number of times that the upgrade snackbar was shown in a session
+ of TabbedPaintPreviewPlayer. Recorded when paint preview is removed.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Browser.PaintPreview.TabbedPlayer.UpTime"
+ units="ms" expires_after="2021-02-14">
+ <owner>ckitagawa@chromium.org</owner>
+ <owner>mahmoudi@chromium.org</owner>
+ <owner>fredmello@chromium.org</owner>
+ <summary>
+ Records the length of the time that a session of TabbedPaintPreviewPlayer
+ lasts. Recorded when paint preview is removed.
+ </summary>
+</histogram>
+
<histogram name="Browser.PaintPreview.TabService.DiskUsageAtStartup" units="KB"
expires_after="2020-10-20">
<owner>ckitagawa@chromium.org</owner>
@@ -23420,7 +24205,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.Responsiveness.IOJanksTotalPerMinute" units="janks"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>gab@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
@@ -23434,16 +24219,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.Responsiveness.IOJankyIntervalsPerMinute"
- units="janks" expires_after="2020-11-29">
+ units="janks" expires_after="2021-01-31">
<owner>gab@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
This metric is emitted every minute. It reports a number between 0 and 60
- which corresponds to the number of 1 second interval during the monitored
- minute for which a ScopedBlockingCall(BlockingType::MAY_BLOCK) stalled for
- more than 1 second on a foreground thread. This aims to capture moments
- where the main thread is responsive but the application is not (because
- things aren't loading). Not reported across system sleep. More details @
+ which corresponds to the number of 1 second intervals during the monitored
+ minute to which a stalled foreground thread
+ ScopedBlockingCall(BlockingType::MAY_BLOCK) was attributed. A stalled call
+ is first attributed to the interval in which it began, and is attributed to
+ a number of intervals equal to the length of the call, rounded to the
+ nearest second. (Before http://crrev.com/c/2314873, the length was truncated
+ rather than rounded.) This aims to capture moments where the main thread is
+ responsive but the application is not (because things aren't loading). Not
+ reported across system sleep. More details @
https://bit.ly/chrome-io-jank-metric
</summary>
</histogram>
@@ -23527,7 +24316,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Browser.Tabs.SelectionToVisibilityRequestTime"
- units="microseconds" expires_after="2020-12-06">
+ units="microseconds" expires_after="2021-02-07">
<owner>sadrul@chromium.org</owner>
<owner>sky@chromium.org</owner>
<summary>
@@ -23541,7 +24330,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Browser.Tabs.TabSwitchResult"
- enum="TabSwitchResult" expires_after="2020-11-01">
+ enum="TabSwitchResult" expires_after="2021-01-03">
<!-- Name completed by histogram_suffixes name="TabSwitchingType" -->
<owner>fdoray@chromium.org</owner>
@@ -23648,7 +24437,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BrowserRenderProcessHost.BackgroundTime" units="ms"
- expires_after="2020-10-18">
+ expires_after="2021-01-31">
<owner>ericrobinson@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -23670,19 +24459,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>wfh@chromium.org</owner>
<summary>Count of renderer process crashes grouped by type.</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildKills" enum="RendererType"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>wfh@chromium.org</owner>
<summary>Count of renderer process kills grouped by type.</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>oshima@chromium.org</owner>
<summary>
Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
@@ -23721,7 +24510,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BrowserRenderProcessHost.FramePrioritiesSeen"
- enum="FramePrioritiesSeen" expires_after="2020-12-06">
+ enum="FramePrioritiesSeen" expires_after="2021-02-07">
<owner>ericrobinson@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -24052,7 +24841,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="BrowserSwitcher.LaunchTime" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-02-07">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -24528,14 +25317,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CaptivePortal.DetectResult" enum="CaptivePortalDetectResult"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>meacer@chromium.org</owner>
<summary>Records the result of a captive portal probe.</summary>
</histogram>
<histogram name="CaptivePortal.Notification.Status"
enum="CaptivePortalNotificationStatus" expires_after="2020-06-07">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Count of displayed and not displayed due to errors notifications about
@@ -24545,7 +25338,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Notification.UserAction"
enum="CaptivePortalNotificationUserAction" expires_after="2020-06-07">
- <owner>rsorokin@chromium.org</owner>
+ <obsolete>
+ Retired in M85.
+ </obsolete>
+ <owner>pmarko@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Count of clicked, closed and ignored captive portal notifications.
@@ -24554,7 +25351,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.OOBE.DetectionDuration" units="ms"
expires_after="2020-08-09">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Duration of the captive portal detection process for a particular network at
@@ -24565,7 +25366,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.OOBE.DetectionResult" enum="CaptivePortalStatus"
expires_after="2020-08-09">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
The result of captive portal detection attempts performed at OOBE. Detection
@@ -24576,7 +25381,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.OOBE.DiscrepancyWithShill" units="units"
expires_after="2020-06-07">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
The result of captive portal detection attempts at OOBE if it diverges from
@@ -24587,7 +25396,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.OOBE.PortalToOnlineTransition" units="ms"
expires_after="2020-08-16">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Number of milliseconds passed between consecutive reports for the same
@@ -24599,6 +25412,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="2020-08-31">
<owner>dalyk@google.com</owner>
<owner>doh-core@google.com</owner>
+ <owner>cros-networking@google.com</owner>
<summary>
Reason for attempting a captive portal probe. This is logged only when a
probe HTTP request is made. If there are multiple reasons that triggered
@@ -24608,7 +25422,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.RedirectTime" units="ms"
expires_after="2020-06-07">
- <owner>rsorokin@chromium.org</owner>
+ <obsolete>
+ Retired in M85.
+ </obsolete>
+ <owner>pmarko@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Number of milliseconds between start of request to gstatic.com/generate_204
@@ -24618,8 +25436,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.DetectionDuration" units="ms"
expires_after="2020-06-07">
- <owner>rsorokin@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
+ <obsolete>
+ Retired in M85.
+ </obsolete>
+ <owner>pmarko@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<summary>
Duration of the captive portal detection process for a particular network in
user session. Detection duration is recorded each time portal detection is
@@ -24629,8 +25450,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.DetectionResult"
enum="CaptivePortalStatus" expires_after="2020-12-20">
- <owner>rsorokin@chromium.org</owner>
+ <obsolete>
+ Retired in M85.
+ </obsolete>
+ <owner>pmarko@chromium.org</owner>
<owner>michaeldo@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
The result of captive portal detection attempts performed in user session.
@@ -24642,7 +25467,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.DiscrepancyWithShill"
enum="CaptivePortalStatus" expires_after="2020-06-07">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
The result of captive portal detection attempts in session if it diverges
@@ -24653,7 +25482,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.PortalToOnlineTransition" units="ms"
expires_after="2020-06-07">
+ <obsolete>
+ Retired in M85.
+ </obsolete>
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
Number of milliseconds passed between consecutive reports for the same
@@ -24664,6 +25497,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.SecureConnectionFailed"
enum="CaptivePortalStatus" expires_after="M84">
<owner>michaeldo@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<summary>
The result of captive portal detection attempts performed in user session.
Detection result is recorded when portal detection is completed for a failed
@@ -24674,6 +25508,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CaptivePortal.Session.TimeoutDetectionResult"
enum="CaptivePortalStatus" expires_after="M84">
<owner>michaeldo@chromium.org</owner>
+ <owner>cros-networking@google.com</owner>
<summary>
The result of captive portal detection attempts performed in user session.
Detection result is recorded when portal detection is completed for a
@@ -24715,6 +25550,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cast.Network.Down.Duration.In.Seconds" units="seconds"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Records the time the network has been down on a Cast device. Recorded when
@@ -24724,6 +25560,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cast.Network.Up.Duration.In.Minutes" units="minutes"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Records the time the network has been up on a Cast device. Recorded when
@@ -24880,7 +25717,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cast.Sender.VideoEncodeAcceleratorInitializeSuccess"
- enum="BooleanSuccess" expires_after="2020-11-08">
+ enum="BooleanSuccess" expires_after="2021-01-31">
<owner>posciak@chromium.org</owner>
<summary>
Indicates whether initialization of a video encode accelerator for Cast
@@ -24890,6 +25727,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CastV2.Transport.Connect.Latency.Unknown" units="ms"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
The latency between when a Cast V2 connection is established and the first
@@ -24902,6 +25740,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CastV2.Transport.SslHandshake.Error.Unknown"
enum="NetErrorCodes" expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
On accepting a Cast V2 transport socket connection, if an error is
@@ -24915,6 +25754,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CastV2.Transport.SslHandshake.Unknown" units="ms"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
The time taken to do the handshake during Cast V2 transport socket creation.
@@ -24937,6 +25777,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cellular.ActivationTry" units="units" expires_after="M85">
+ <obsolete>
+ Removed 07/2020 because the histogram is neither logged nor owned.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>The count of cellular device activation tries (Chrome OS).</summary>
</histogram>
@@ -24975,6 +25818,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cellular.MobileSetupStart" units="units" expires_after="M77">
+ <obsolete>
+ Removed 07/2020 because it is unowned and did not appear to be needed.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
The count of initiated cellular device setup starts (Chrome OS).
@@ -24984,7 +25830,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cellular.MobileSetupSucceeded" units="units"
expires_after="2016-04-29">
<obsolete>
- Removed 04/2016 as doesn't have data nor owner.
+ Removed logging on 07/2020; the histogram is unowned and has been marked as
+ obsolete since 04/2016.
</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>The count of failed cellular plan setup tries (Chrome OS).</summary>
@@ -24993,7 +25840,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cellular.PaymentFailed" units="units"
expires_after="2016-04-29">
<obsolete>
- Removed 04/2016 as doesn't have data nor owner.
+ Removed logging on 07/2020; the histogram is unowned and has been marked as
+ obsolete since 04/2016.
</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>The count of failed cellular plan purchases (Chrome OS).</summary>
@@ -25002,7 +25850,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cellular.PaymentReceived" units="units"
expires_after="2016-04-29">
<obsolete>
- Removed 04/2016 as doesn't have data nor owner.
+ Removed logging on 07/2020; the histogram is unowned and has been marked as
+ obsolete since 04/2016.
</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
@@ -25082,7 +25931,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChildProcess.Crashed.UtilityProcessHash"
- enum="UtilityProcessNameHash" expires_after="2020-12-06">
+ enum="UtilityProcessNameHash" expires_after="2021-02-07">
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>
@@ -25335,7 +26184,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChildProcess.Launched.UtilityProcessHash"
- enum="UtilityProcessNameHash" expires_after="2020-11-29">
+ enum="UtilityProcessNameHash" expires_after="2021-01-31">
<owner>wfh@chromium.org</owner>
<summary>
Count of child utility process launches, bucketed by the hash of their
@@ -25432,7 +26281,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Chrome.CommandLineFlagCount" units="switches"
expires_after="M79">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <obsolete>
+ Removed in 07/2020 because the histogram is unused.
+ </obsolete>
+ <owner>isherman@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
<summary>
The number of command line switches that were present at the start of a
chrome session.
@@ -25441,7 +26294,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Chrome.CommandLineUncommonFlagCount" units="switches"
expires_after="M79">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <obsolete>
+ Removed in 07/2020 because the histogram is unused.
+ </obsolete>
+ <owner>isherman@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
<summary>
The number of command line switches that were present at the start of a
chrome session, excluding App Mode and User Data Directory switches.
@@ -25449,7 +26306,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Chrome.MessageLoopProblem" enum="MessageLoopProblems"
- expires_after="M86">
+ expires_after="2021-07-31">
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
@@ -25657,6 +26514,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Chrome.Tabs.AnimationSmoothness.TabLoading" units="%"
+ expires_after="2021-06-04">
+ <owner>yichenz@chromium.org</owner>
+ <owner>chromeos-wmp@google.com</owner>
+ <summary>
+ Tracks the animation smoothness of tab loading animation. A tracker starts
+ when the first tab loading animation starts and stops after the last one
+ stops for each browser window. The metric is emitted when the tracker stops.
+ </summary>
+</histogram>
+
<histogram name="Chrome.UmaPageloadCounter" enum="BooleanHit"
expires_after="2017-06-06">
<obsolete>
@@ -25695,7 +26563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeColors.ColorOnLoad" enum="ChromeColorsInfo"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>gayane@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -25860,7 +26728,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Apps.IntentPickerAction"
- enum="ArcIntentHandlerAction" expires_after="2020-12-06">
+ enum="ArcIntentHandlerAction" expires_after="2021-02-07">
<owner>elijahtaylor@google.com</owner>
<owner>dominickn@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -25871,7 +26739,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Apps.IntentPickerDestinationPlatform"
- enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-11-15">
+ enum="ArcIntentHandlerDestinationPlatform" expires_after="2021-01-17">
<owner>elijahtaylor@google.com</owner>
<owner>dominickn@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -26068,7 +26936,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.CWP.CollectPerf"
- enum="ChromeOSProfileCollectionStatus" expires_after="2020-10-04">
+ enum="ChromeOSProfileCollectionStatus" expires_after="2021-02-14">
<owner>aalexand@google.com</owner>
<owner>gmx@chromium.org</owner>
<summary>
@@ -26099,7 +26967,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.CWP.ParseCPUFrequencies"
- enum="ChromeOSParseCPUFrequencyStatus" expires_after="2020-11-22">
+ enum="ChromeOSParseCPUFrequencyStatus" expires_after="2021-02-14">
<owner>gmx@chromium.org</owner>
<owner>cwp-team@google.com</owner>
<summary>
@@ -26269,7 +27137,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.MemoryPressureLevel" enum="MemoryPressureLevel"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>xdai@chromium.org</owner>
<summary>
The memory pressure level in Chrome OS, which is recorded periodically (once
@@ -26368,7 +27236,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.SAML.Provider" enum="ChromeOSSamlProvider"
- expires_after="2020-12-02">
+ expires_after="2021-02-07">
<owner>mslus@chromium.org</owner>
<owner>mohammedabdon@chromium.org</owner>
<summary>Records SAML provider when SAML login flow is used.</summary>
@@ -26398,7 +27266,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.SAML.Scraping.PasswordCountAll" units="passwords"
- expires_after="2020-07-19">
+ expires_after="2021-01-19">
<owner>mslus@chromium.org</owner>
<owner>emaxx@chromium.org</owner>
<summary>
@@ -26441,6 +27309,59 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ChromeOS.Settings.Languages.Browser.Interaction"
+ enum="SettingsLanguagesPageBrowserInteraction" expires_after="2021-03-31">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Records when users interact with an element in the Chrome OS's Languages
+ browser settings page.
+ </summary>
+</histogram>
+
+<histogram base="true" name="ChromeOS.Settings.Languages.Browser.Toggle"
+ enum="BooleanToggled" expires_after="2021-03-31">
+<!-- Name completed by histogram_suffixes name="SettingsLanguagesPageToggle" -->
+
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Records when users interact with a toggle in the Chrome OS's Languages
+ browser settings page.
+ </summary>
+</histogram>
+
+<histogram name="ChromeOS.Settings.Languages.Interaction"
+ enum="SettingsLanguagesPageInteraction" expires_after="2021-03-31">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Records when users interact with different element in the Chrome OS's
+ Languages OS settings page.
+ </summary>
+</histogram>
+
+<histogram name="ChromeOS.Settings.Languages.SupportPageVisits"
+ enum="SettingsLanguagesSupportPage" expires_after="2021-03-31">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Records when users visit a language settings support page for Chrome OS.
+ </summary>
+</histogram>
+
+<histogram base="true" name="ChromeOS.Settings.Languages.Toggle"
+ enum="BooleanToggled" expires_after="2021-03-31">
+<!-- Name completed by histogram_suffixes name="SettingsLanguagesPageToggle" -->
+
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Records when users interact with a toggle in the Chrome OS's Languages OS
+ settings page.
+ </summary>
+</histogram>
+
<histogram name="ChromeOS.Settings.LoadCompletedTime" units="ms"
expires_after="2020-10-04">
<owner>jamescook@chromium.org</owner>
@@ -26453,7 +27374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.LoadDocumentTime" units="ms"
- expires_after="2020-08-01">
+ expires_after="2020-12-01">
<owner>jamescook@chromium.org</owner>
<owner>cros-system-services@google.com</owner>
<summary>
@@ -26463,7 +27384,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.NumCharsOfQueries" units="characters"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26474,7 +27395,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ChromeOS.Settings.NumClicksUntilChange"
- units="clicks" expires_after="2020-12-01">
+ units="clicks" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="OsSettingsChangeType" -->
<owner>khorimoto@chromium.org</owner>
@@ -26483,7 +27404,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ChromeOS.Settings.NumNavigationsUntilChange"
- units="navigations" expires_after="2020-12-01">
+ units="navigations" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="OsSettingsChangeType" -->
<owner>khorimoto@chromium.org</owner>
@@ -26492,7 +27413,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ChromeOS.Settings.NumSearchesUntilChange"
- units="searches" expires_after="2020-12-01">
+ units="searches" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="OsSettingsChangeType" -->
<owner>khorimoto@chromium.org</owner>
@@ -26501,7 +27422,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.NumSearchResultsFetched" units="results"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26523,7 +27444,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.PathVisited" enum="WebUISettingsPathHashes"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>cros-customization@google.com</owner>
<summary>
@@ -26533,7 +27454,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.SearchLatency" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26544,7 +27465,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.SearchRequests"
- enum="OsSettingSearchRequestTypes" expires_after="2020-12-01">
+ enum="OsSettingSearchRequestTypes" expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26569,7 +27490,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.SearchResultSectionSelected"
- enum="OsSettingsSection" expires_after="2020-12-01">
+ enum="OsSettingsSection" expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26589,7 +27510,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.SearchResultSubpageSelected"
- enum="OsSettingsSubpage" expires_after="2020-12-01">
+ enum="OsSettingsSubpage" expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26599,7 +27520,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.SearchResultTypeSelected"
- enum="OsSettingsSearchResultType" expires_after="2020-12-01">
+ enum="OsSettingsSearchResultType" expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26609,7 +27530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ChromeOS.Settings.TimeUntilChange" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="OsSettingsChangeType" -->
<owner>khorimoto@chromium.org</owner>
@@ -26620,7 +27541,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.Settings.UserActionOnSearchResultsShown"
- enum="OsSettingSearchBoxUserAction" expires_after="2020-12-01">
+ enum="OsSettingSearchBoxUserAction" expires_after="2021-01-31">
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<owner>cros-customization@google.com</owner>
@@ -26639,8 +27560,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ChromeOS.Sharesheet.AppCount" units="apps" expires_after="M90">
+ <owner>dominickn@chromium.org</owner>
+ <owner>melzhang@chromium.org</owner>
+ <summary>
+ Records number of apps found for a given intent in the Sharesheet.
+ </summary>
+</histogram>
+
+<histogram name="ChromeOS.Sharesheet.UserAction"
+ enum="ChromeOSSharesheetAction" expires_after="M90">
+ <owner>dominickn@chromium.org</owner>
+ <owner>melzhang@chromium.org</owner>
+ <summary>Records user action on sharesheet invocations.</summary>
+</histogram>
+
<histogram name="ChromeOS.Sync.PreferencesMigrated" enum="BooleanMigrated"
- expires_after="2020-10-01">
+ expires_after="2021-01-01">
<owner>jamescook@chromium.org</owner>
<owner>cros-customization@google.com</owner>
<summary>
@@ -26683,7 +27619,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ChromeOS.SystemTray.FeaturePodCountOnOpen" units="count"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>tengs@chromium.org</owner>
<owner>amehfooz@chromium.org</owner>
<summary>
@@ -26747,6 +27683,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ChromeOS.SystemTray.ShelfPodCount" units="count"
+ expires_after="2021-08-05">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@google.com</owner>
+ <summary>
+ The number of status area item pods (e.g. IME, Palette, Dictation, etc.) in
+ the shelf status area whenever a pod appears/disappears. This histogram is
+ only logged when the device is not in tablet mode, otherwise
+ ChromeOS.SystemTray.Tablet.ShelfPodCount is logged.
+ </summary>
+</histogram>
+
<histogram name="ChromeOS.SystemTray.Tablet.FeaturePodCountOnOpen"
units="count" expires_after="2021-05-10">
<owner>tengs@chromium.org</owner>
@@ -26759,6 +27707,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ChromeOS.SystemTray.Tablet.ShelfPodCount" units="count"
+ expires_after="2021-08-05">
+ <owner>tengs@chromium.org</owner>
+ <owner>gzadina@google.com</owner>
+ <summary>
+ The number of status area item pods (e.g. IME, Palette, Dictation, etc.) in
+ the shelf status area whenever a pod appears/disappears. This histogram is
+ only logged when the device is in tablet mode, otherwise
+ ChromeOS.SystemTray.ShelfPodCount is logged.
+ </summary>
+</histogram>
+
<histogram name="ChromeOS.SystemTray.TimeToClick" units="ms"
expires_after="2021-05-10">
<owner>tengs@chromium.org</owner>
@@ -26790,7 +27750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ChromeOS.USB.DeviceAttached"
- enum="ChromeOSUsbEventTiming" expires_after="2020-12-06">
+ enum="ChromeOSUsbEventTiming" expires_after="2021-02-07">
<owner>allenwebb@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<owner>mnissler@chromium.org</owner>
@@ -27078,6 +28038,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="clickjacking.discard_download" units="ms"
expires_after="2018-08-30">
+ <obsolete>
+ Removed 07/2020 because this unowned histogram is no longer being used and
+ has expired.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
The length of time between a dangerous download appearing on the downloads
@@ -27086,6 +28050,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="clickjacking.dismiss_download" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 07/2020 because this unowned histogram is no longer being used and
+ has expired.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
The length of time between a dangerous download appearing on the downloads
@@ -27095,6 +28063,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="clickjacking.launch_url" units="ms" expires_after="2018-08-30">
+ <obsolete>
+ Removed 07/2020 because this unowned histogram is no longer being used and
+ has expired.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
The length of time between the external protocol dialog being shown and the
@@ -27104,6 +28076,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="clickjacking.open_download" units="ms"
expires_after="2018-08-30">
+ <obsolete>
+ Removed 07/2020 because this unowned histogram is no longer being used and
+ has expired.
+ </obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
The length of time between a download appearing on the download shelf, and
@@ -27133,6 +28109,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ClientHints.CountRulesReceived" units="count"
expires_after="M88">
+ <obsolete>
+ Removed M86 since what it's measuring no longer happens.
+ </obsolete>
<owner>yoavweiss@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<owner>mkwst@chromium.org</owner>
@@ -27186,28 +28165,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Clipboard.Format.Read" enum="ClipboardFormatRead"
- expires_after="2021-01-01">
- <owner>huangdarwin@chromium.org</owner>
- <owner>src/ui/base/clipboard/OWNERS</owner>
- <summary>
- 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.
- </summary>
-</histogram>
-
-<histogram name="Clipboard.Format.Write" enum="ClipboardFormatWrite"
- expires_after="2021-01-01">
+<histogram name="Clipboard.ExtensionContentScriptReadHasUserActivation"
+ units="proportion" expires_after="2021-04-01">
<owner>huangdarwin@chromium.org</owner>
- <owner>src/ui/base/clipboard/OWNERS</owner>
+ <owner>src/third_party/blink/renderer/modules/clipboard/OWNERS</owner>
<summary>
- 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.
+ For calls to document.execCommand('paste') by extensions via content
+ scripts, record the proportion of calls with user activation.
</summary>
</histogram>
@@ -27223,6 +28187,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Clipboard.Read" enum="ClipboardFormatRead"
+ expires_after="2021-01-01">
+ <owner>huangdarwin@chromium.org</owner>
+ <owner>src/ui/base/clipboard/OWNERS</owner>
+ <summary>
+ 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.
+ </summary>
+</histogram>
+
<histogram name="Clipboard.RegisterClipboardFormatFailure" units="count"
expires_after="2021-01-01">
<owner>huangdarwin@chromium.org</owner>
@@ -27234,8 +28212,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Clipboard.Write" enum="ClipboardFormatWrite"
+ expires_after="2021-01-01">
+ <owner>huangdarwin@chromium.org</owner>
+ <owner>src/ui/base/clipboard/OWNERS</owner>
+ <summary>
+ 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.
+ </summary>
+</histogram>
+
<histogram name="Clipboard.X11StoreCopyPasteDuration" units="ms"
- expires_after="M85">
+ expires_after="M90">
+ <owner>dcheng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
The length of time that it takes to transfer ownership of Chrome's CLIPBOARD
@@ -27623,7 +28613,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.HitTestTimeToFindClosestLayer"
units="microseconds" expires_after="2020-12-01">
- <owner>yigu@chromium.org</owner>
+ <owner>flackr@chromium.org</owner>
<owner>animations-dev@chromium.org</owner>
<summary>
Time spent finding the closest matching layer to a given point whenever we
@@ -27639,6 +28629,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.LayersUpdateTime" units="microseconds"
expires_after="2020-12-20">
+ <owner>schenney@chromium.org</owner>
<owner>animations-dev@chromium.org</owner>
<summary>
Time spent updating layers, in microseconds. Recorded when layers are
@@ -27654,6 +28645,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.LayerTreeImpl.CalculateDrawPropertiesUs"
units="microseconds" expires_after="2020-12-20">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating layer draw properties, in microseconds. Recorded when a
@@ -27669,6 +28661,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.NumActiveLayers" units="layers"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of layers in the active tree for each compositor frame. This is
@@ -27678,6 +28671,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.NumActivePictureLayers" units="layers"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of PictureLayers in the active tree for each compositor frame.
@@ -27688,6 +28682,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.NumRenderSurfaces" units="surfaces"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of render surfaces in the render surface layer list. Recorded
@@ -27710,6 +28705,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.PicturePile.UpdateInvalidatedAreaPerMs"
units="pixels/ms" expires_after="M85">
+ <obsolete>
+ Obsolete since 2015.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Area of invalidated content, in pixels, divided by update (i.e. record), in
@@ -27719,6 +28717,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.PicturePile.UpdateUs" units="microseconds"
expires_after="M85">
+ <obsolete>
+ Obsolete since 2015.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating (i.e. recording) a picture pile, in microseconds.
@@ -27761,6 +28762,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Browser.RasterTask.RasterUs" units="microseconds"
expires_after="M85">
+ <obsolete>
+ Removed 04/2019. Was unused.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent completing a compositor rasterization task, in microseconds.
@@ -27830,17 +28834,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.CopyFromSurfaceTime" units="ms"
expires_after="2018-08-30">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <owner>wychen@chromium.org</owner>
<summary>
The turn around time taken for the async readback of pixels is measured
- here.
+ here. This should be marked as obsolete once some tests no longer rely on
+ this histogram. See crbug/1110961 for more details.
</summary>
</histogram>
<histogram name="Compositing.CopyFromSurfaceTimeSynchronous" units="ms"
expires_after="2016-04-29">
<obsolete>
- Removed 04/2016 as doesn't have data nor owner.
+ Made obsolete 04/2016. Logging removed 08/2020.
</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<summary>
@@ -27849,7 +28854,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.DirectRenderer.GL.DrawFrameUs"
- units="microseconds" expires_after="2020-12-06">
+ units="microseconds" expires_after="2021-02-07">
<owner>weiliangc@chromium.org</owner>
<summary>
Time spent drawing of composited layers by GLRenderer, in microseconds. This
@@ -27864,7 +28869,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.DirectRenderer.PartialSwap.ExtraDamage" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
@@ -27879,7 +28884,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.DirectRenderer.PartialSwap.FrameBufferDamage"
- units="%" expires_after="2020-10-04">
+ units="%" expires_after="2021-02-07">
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
@@ -27905,7 +28910,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.DirectRenderer.PartialSwap.TotalDamage" units="%"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
@@ -27917,7 +28922,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.DirectRenderer.Software.DrawFrameUs"
- units="microseconds" expires_after="2020-11-08">
+ units="microseconds" expires_after="2021-01-10">
<owner>weiliangc@chromium.org</owner>
<summary>
Time spent drawing of composited layers by SoftwareRenderer, in
@@ -27949,7 +28954,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.Display.Draw.Occlusion.Calculation.Time"
- units="microseconds" expires_after="2020-10-25">
+ units="microseconds" expires_after="2020-12-27">
<owner>yiyix@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -28024,7 +29029,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.Display.DrawToSwapUs" units="microseconds"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>backer@chromium.org</owner>
<owner>rjkroege@chromium.org</owner>
<summary>
@@ -28060,7 +29065,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.Display.FlattenedRenderPassCount" units="units"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>backer@chromium.org</owner>
<owner>rjkroege@chromium.org</owner>
<summary>
@@ -28073,7 +29078,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Compositing.Display.OverlayProcessorOzone.IsCandidateSharedImage"
- enum="Boolean" expires_after="2020-11-08">
+ enum="Boolean" expires_after="2021-01-10">
<owner>samans@chromium.org</owner>
<owner>rjkroege@chromium.org</owner>
<summary>
@@ -28085,7 +29090,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.Display.OverlayProcessorOzone.SharedImageExists"
- enum="Boolean" expires_after="2020-11-08">
+ enum="Boolean" expires_after="2021-01-10">
<owner>samans@chromium.org</owner>
<owner>rjkroege@chromium.org</owner>
<summary>
@@ -28094,6 +29099,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Compositing.Display.VizScheduledDrawToGpuStartedDrawUs"
+ units="microseconds" expires_after="2021-02-14">
+ <owner>vasilyt@chromium.org</owner>
+ <owner>backer@chromium.org</owner>
+ <summary>
+ This is logged once per frame, if the output surface provides timing
+ information. It measures delta between the time when display compositor
+ scheduled first draw task for the current frame on Viz Compositor thread and
+ the time when Gpu Thread started processing it. Only reported for platforms
+ supporting high resolution clocks.
+ </summary>
+</histogram>
+
<histogram
name="Compositing.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
units="pixels/ms" expires_after="M80">
@@ -28403,7 +29421,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.HitTestTimeToFindClosestLayer"
units="microseconds" expires_after="2020-12-01">
- <owner>yigu@chromium.org</owner>
+ <owner>flackr@chromium.org</owner>
<owner>animations-dev@chromium.org</owner>
<summary>
Time spent finding the closest matching layer to a given point whenever we
@@ -28447,6 +29465,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.LayerTreeImpl.CalculateDrawPropertiesUs"
units="microseconds" expires_after="M81">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating layer draw properties, in microseconds. Recorded when a
@@ -28514,6 +29533,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.NumActiveLayers" units="layers"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of layers in the active tree for each compositor frame. This is
@@ -28523,6 +29543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.NumActivePictureLayers" units="layers"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of PictureLayers in the active tree for each compositor frame.
@@ -28533,6 +29554,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.NumRenderSurfaces" units="surfaces"
expires_after="2021-06-01">
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The number of render surfaces in the render surface layer list. Recorded
@@ -28573,6 +29595,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.PicturePile.UpdateInvalidatedAreaPerMs"
units="pixels/ms" expires_after="M85">
+ <obsolete>
+ Obsolete since 2015.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Area of invalidated content, in pixels, divided by update (i.e. record), in
@@ -28582,6 +29607,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.PicturePile.UpdateUs"
units="microseconds" expires_after="M85">
+ <obsolete>
+ Obsolete since 2015.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating (i.e. recording) a picture pile, in microseconds.
@@ -28624,6 +29652,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Compositing.Renderer.RasterTask.RasterUs" units="microseconds"
expires_after="M85">
+ <obsolete>
+ Removed 04/2019. Was unused.
+ </obsolete>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent completing a compositor rasterization task, in microseconds.
@@ -28764,8 +29795,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Compositing.ResourcePoolMemoryUsage" units="MB"
+ expires_after="2021-07-01">
+ <owner>sunnyps@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Size of the in-use portion of the ResourcePool for CC layer tree. Recorded
+ each time resources are reclaimed after tile work completes.
+ </summary>
+</histogram>
+
<histogram name="Compositing.SurfaceAggregator.AggregateUs"
- units="microseconds" expires_after="2020-10-25">
+ units="microseconds" expires_after="2020-12-27">
<owner>weiliangc@chromium.org</owner>
<summary>
Time spent aggregating compositor frames from different surfaces in
@@ -28780,7 +29821,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Compositing.SurfaceAggregator.FrameContainsVideo"
- enum="TypeOfVideoInFrame" expires_after="2020-11-25">
+ enum="TypeOfVideoInFrame" expires_after="2021-01-24">
<owner>vikassoni@chromium.org</owner>
<owner>khushalsagar@chromium.org</owner>
<summary>
@@ -28951,7 +29992,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="CompositorLatency" units="microseconds"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>sadrul@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -29083,7 +30124,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ConfigureDisplays.External.Modeset.AttemptSucceeded"
- enum="BooleanSuccess" expires_after="2020-10-30">
+ enum="BooleanSuccess" expires_after="2021-01-03">
<owner>dcastagna@chromium.org</owner>
<owner>marcheu@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -29097,7 +30138,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ConfigureDisplays.External.Modeset.FinalStatus"
- enum="BooleanSuccess" expires_after="2020-10-30">
+ enum="BooleanSuccess" expires_after="2021-01-03">
<owner>dcastagna@chromium.org</owner>
<owner>marcheu@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -29110,7 +30151,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ConfigureDisplays.External.Modeset.RefreshRate" units="Hz"
- expires_after="2020-10-30">
+ expires_after="2021-02-14">
<owner>dcastagna@chromium.org</owner>
<owner>marcheu@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -29135,7 +30176,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ConfigureDisplays.Internal.Modeset.AttemptSucceeded"
- enum="BooleanSuccess" expires_after="2020-10-30">
+ enum="BooleanSuccess" expires_after="2021-01-03">
<owner>dcastagna@chromium.org</owner>
<owner>marcheu@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -29175,7 +30216,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ConfigureDisplays.Internal.Modeset.Resolution"
- enum="DisplayResolution" expires_after="2020-10-30">
+ enum="DisplayResolution" expires_after="2021-01-03">
<owner>dcastagna@chromium.org</owner>
<owner>marcheu@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -29445,15 +30486,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>The total number of content captures sent for a document.</summary>
</histogram>
+<histogram name="ContentCapture.TaskDelayTimeInMs" units="ms"
+ expires_after="2021-02-01">
+ <owner>michaelbai@chromium.org</owner>
+ <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner>
+ <summary>
+ The time taken for the task to start after it's scheduled.
+
+ Note: The time of task that was scheduled for the retry wasn't measured
+ because it is always 500ms.
+ </summary>
+</histogram>
+
<histogram name="ContentIndex.ContentAdded" enum="ContentIndexCategory"
- expires_after="M86">
+ expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>Records the category of the content when registered.</summary>
</histogram>
<histogram base="true" name="ContentIndex.ContentDeleteEvent"
- enum="ServiceWorkerStatusCode" expires_after="M86">
+ enum="ServiceWorkerStatusCode" expires_after="M89">
<!-- Name completed by histogram_suffixes name="ContentIndexDispatchPhase" -->
<owner>rayankans@chromium.org</owner>
@@ -29465,14 +30518,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentIndex.ContentOpened" enum="ContentIndexCategory"
- expires_after="M86">
+ expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>Records the category of the entry clicked on by a user.</summary>
</histogram>
<histogram base="true" name="ContentIndex.Database"
- enum="ServiceWorkerStatusCode" expires_after="M86">
+ enum="ServiceWorkerStatusCode" expires_after="M89">
<!-- Name completed by histogram_suffixes name="ContentIndexDatabaseTask" -->
<owner>rayankans@chromium.org</owner>
@@ -29481,7 +30534,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentIndex.NumEntriesAvailable" units="entries"
- expires_after="M86">
+ expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
@@ -29490,7 +30543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentIndex.RegistrationBlocked" enum="ContentIndexCategory"
- expires_after="M86">
+ expires_after="M89">
<owner>rayankans@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
@@ -29499,14 +30552,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.DefaultAutoplaySetting" enum="ContentSetting"
- expires_after="2020-12-20">
- <owner>mlamouri@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default autoplay setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultCookiesSetting" enum="ContentSetting"
- expires_after="2020-12-06">
- <owner>toyoshim@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default cookies setting at profile open.</summary>
</histogram>
@@ -29520,14 +30575,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.DefaultImagesSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>toyoshim@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default image setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultJavaScriptSetting"
- enum="ContentSetting" expires_after="M90">
- <owner>toyoshim@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default JavaScript setting at profile open.</summary>
</histogram>
@@ -29543,20 +30600,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.DefaultLocationSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>toyoshim@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default location setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultMediaStreamCameraSetting"
- enum="ContentSetting" expires_after="M81">
- <owner>msramek@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default camera setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultMediaStreamMicSetting"
- enum="ContentSetting" expires_after="M90">
- <owner>msramek@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default microphone setting at profile open.</summary>
</histogram>
@@ -29574,8 +30634,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.DefaultMIDISysExSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>toyoshim@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default MIDI permission setting on sysex (system exclusive) messages at
profile open.
@@ -29584,32 +30645,39 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ContentSettings.DefaultMouseCursorSetting"
enum="ContentSetting" expires_after="M85">
+ <obsolete>
+ Removed on 2020-07-07. This histogram is no longer recorded.
+ </obsolete>
<owner>toyoshim@chromium.org</owner>
<summary>The default mouse cursor setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultNotificationsSetting"
- enum="ContentSetting" expires_after="2020-12-06">
- <owner>toyoshim@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default notification setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultPluginsSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>andypaicu@chromium.org</owner>
+ expires_after="2021-06-19">
<owner>engedy@chromium.org</owner>
- <owner>hkamila@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default plugins setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultPopupsSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>toyoshim@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default popups setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultPushMessagingSetting"
enum="ContentSetting" expires_after="M85">
+ <obsolete>
+ Removed on 2020-07-07. This histogram is no longer recorded.
+ </obsolete>
<owner>miguelg@chromium.org</owner>
<summary>
The default permission setting for push messages at profile open.
@@ -29617,28 +30685,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.DefaultSoundSetting" enum="ContentSetting"
- expires_after="2021-05-01">
- <owner>mlamouri@google.com</owner>
- <owner>steimel@chromium.org</owner>
- <owner>media-dev@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default sound setting at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultSubresourceFilterSetting"
- enum="ContentSetting" expires_after="2020-09-06">
- <owner>csharrison@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default subresource filter setting at profile open</summary>
</histogram>
<histogram name="ContentSettings.DefaultUsbGuardSetting" enum="ContentSetting"
- expires_after="M90">
- <owner>reillyg@chromium.org</owner>
+ expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>The default permission setting for WebUSB at profile open.</summary>
</histogram>
<histogram name="ContentSettings.DefaultWebBluetoothGuardSetting"
- enum="ContentSetting" expires_after="M90">
- <owner>jyasskin@chromium.org</owner>
+ enum="ContentSetting" expires_after="2021-06-19">
+ <owner>engedy@chromium.org</owner>
+ <owner>src/components/permissions/PERMISSIONS_OWNERS</owner>
<summary>
The default permission setting for Web Bluetooth at profile open.
</summary>
@@ -30018,7 +31088,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSettings.Popups.StrongBlockerActions"
- enum="StrongPopupBlockerAction" expires_after="2020-12-06">
+ enum="StrongPopupBlockerAction" expires_after="2021-02-07">
<owner>csharrison@chromium.org</owner>
<summary>
Counts of various events related to the strong popup blocker (aka abusive
@@ -30042,6 +31112,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ContentSuggestions.Feed.ActivityLoggingEnabled" enum="Boolean"
+ expires_after="2021-06-01">
+ <owner>rogerm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <summary>
+ Whether the feed was fetched with activity logging enabled. This is logged
+ on every feed fetch.
+ </summary>
+</histogram>
+
<histogram name="ContentSuggestions.Feed.AppLifecycle.Events"
enum="AppLifecycleEvent" expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
@@ -30082,7 +31162,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.AvailableOffline.Opened"
- enum="Boolean" expires_after="2020-10-01">
+ enum="Boolean" expires_after="2021-01-31">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30097,7 +31177,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.AvailableOffline.Shown" enum="Boolean"
- expires_after="2020-10-01">
+ expires_after="2021-01-31">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30124,8 +31204,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.Controls.Actions"
- enum="FeedControlsActions" expires_after="M86">
+ enum="FeedControlsActions" expires_after="never">
+<!-- expires-never: tracked as an important feed metric. -->
+
<owner>vincb@google.com</owner>
+ <owner>feed@chromium.org</owner>
<owner>src/chrome/browser/android/feed/OWNERS</owner>
<summary>Actions related to the feed controls.</summary>
</histogram>
@@ -30142,7 +31225,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.DisplayStatusOnOpen"
- enum="ContentSuggestionsDisplayStatus" expires_after="2020-12-06">
+ enum="ContentSuggestionsDisplayStatus" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30167,9 +31250,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
interaction, and we report ENGAGED and ENGAGED_SIMPLE once per user visit. A
user visit is when the user scrolls or interacts with the NTP more than 5
minutes after the previous visit. The SCROLLED engagement type represents a
- single instance of the user scrolling, and is reported when the scroll
- direction changes, or 200ms pass with no further scroll events. The
- INTERACTED engagement type represents one instance of using the menu or
+ single instance of the user scrolling, and is reported once per Feed visit.
+ The INTERACTED engagement type represents one instance of using the menu or
opening a feed article into its own tab. SCROLLED and INTERACTED are
reported for every occurrence, thus we could end up with more scrolled and
interected than ENGAGED or ENGAGED_SIMPLE samples.
@@ -30221,7 +31303,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<owner>wylieb@chromium.org</owner>
<summary>
Android: Represents success/failure of Feed image loading. Recorded upon
- each individual image retrieved from the feed_image_cache.
+ each individual image retrieved from the feed_image_cache. Feed v1 only.
</summary>
</histogram>
@@ -30247,6 +31329,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ContentSuggestions.Feed.ImageFetchStatus"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-06-01">
+ <owner>harringtond@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <summary>
+ Android: Status of image fetches for the feed. Recorded for each image
+ fetch. Fetches happen when loading the feed or scrolling the feed. Fetched
+ images are cached, so subsequent loads may not fetch again. Feed v2 only.
+ </summary>
+</histogram>
+
<histogram name="ContentSuggestions.Feed.InitialSuccess" enum="BooleanSuccess"
expires_after="2019-10-01">
<obsolete>
@@ -30260,7 +31353,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.InterestHeader.NotInterestedInSource"
- units="index" expires_after="2020-12-06">
+ units="index" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30271,7 +31364,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.InterestHeader.NotInterestedInTopic"
- units="index" expires_after="2020-12-06">
+ units="index" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30309,6 +31402,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="ContentSuggestions.Feed.LoadStepLatency"
+ units="ms" expires_after="2021-06-01">
+ <owner>harringtond@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <summary>
+ Latencies for individual steps taken to load the feed. This is reported at
+ most once per Chrome execution, and only reported for a Feed load operation
+ that ends with the Feed showing up on the UI. All steps added together tally
+ to the total time taken.
+
+ Feed v2 only.
+ </summary>
+</histogram>
+
<histogram name="ContentSuggestions.Feed.LoadStreamStatus.BackgroundRefresh"
enum="FeedLoadStreamStatus" expires_after="2021-05-01">
<owner>harringtond@chromium.org</owner>
@@ -30413,7 +31520,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.Network.RequestStatusCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-06">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30425,7 +31532,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.Network.ResponseSizeKB" units="KB"
- expires_after="2020-10-01">
+ expires_after="2021-01-31">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30783,7 +31890,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.UploadActionsBatchStatus"
- enum="FeedUploadActionsBatchStatus" expires_after="2020-12-01">
+ enum="FeedUploadActionsBatchStatus" expires_after="2021-02-14">
<owner>iwells@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -30883,6 +31990,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ContentSuggestions.Feed.VisitDuration" units="ms"
+ expires_after="2021-07-01">
+ <owner>harringtond@chromium.org</owner>
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
+ <summary>
+ Android: Time spent reading the page linked by an opened suggestion card.
+ This is a lower-bound time. Does not include time after Chrome is closed and
+ re-opened. Does not include time after the visited tab no longer has focus,
+ or after the tab is navigated. For the 'open in new tab' action, time starts
+ when the user switches to the new tab. If the user returns by tapping the
+ suggestion again, it will be recorded as another entry in this histogram.
+
+ Feed v2 only.
+ </summary>
+</histogram>
+
<histogram name="ContentSuggestions.Feed.VisualElement.Clicked" units="index"
expires_after="2020-10-01">
<owner>carlosk@chromium.org</owner>
@@ -30912,7 +32036,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContentSuggestions.Feed.VisualElement.Viewed" units="index"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<owner>feed@chromium.org</owner>
@@ -31043,7 +32167,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.DOMElementFrame" enum="ContextMenuDOMElementFrame"
- expires_after="2020-12-11">
+ expires_after="2021-02-14">
<owner>michaeldo@chromium.org</owner>
<owner>src/ios/web/web_state/ui/OWNERS</owner>
<summary>
@@ -31053,7 +32177,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.iOS.CopyImage" enum="ContextMenuIOSCopyImage"
- expires_after="2020-12-11">
+ expires_after="2021-02-14">
<owner>mrsuyi@chromium.org</owner>
<owner>gambard@chromium.org</owner>
<summary>
@@ -31074,7 +32198,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.LensSupportStatus"
- enum="ContextMenuLensSupportStatus" expires_after="2020-11-08">
+ enum="ContextMenuLensSupportStatus" expires_after="2021-01-10">
<owner>benwgold@google.com</owner>
<owner>lens-chrome@google.com</owner>
<summary>
@@ -31129,7 +32253,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="ContextMenu.SelectedOptionDesktop"
- enum="ContextMenuOptionDesktop" expires_after="2020-08-30">
+ enum="ContextMenuOptionDesktop" expires_after="2020-12-27">
<owner>avi@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -31161,7 +32285,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.Shown" enum="BooleanPresent"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>mpearson@chromium.org</owner>
<summary>
Recorded when a context menu is shown, sliced by whether a web contents was
@@ -31187,7 +32311,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.TimeToTakeAction.Abandoned" units="ms"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -31200,7 +32324,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ContextMenu.TimeToTakeAction.SelectedItem" units="ms"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>twellington@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -31481,33 +32605,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram base="true" name="Cookie.AgeFor" units="days" expires_after="M82">
- <obsolete>
- Removed 2019-10-31 as part of cookie histogram cleanup
- (https://crbug.com/993120).
- </obsolete>
- <owner>mkwst@chromium.org</owner>
- <owner>tnagel@chromium.org</owner>
- <summary>
- Records the age (in days) of the oldest cookie delivered along with a
- request. Recorded when setting the `Cookie` header for a given request.
- </summary>
-</histogram>
-
-<histogram base="true" name="Cookie.AllAgesFor" units="days"
- expires_after="M81">
- <obsolete>
- Removed 2019-10-31 as part of cookie histogram cleanup
- (https://crbug.com/993120).
- </obsolete>
- <owner>mkwst@chromium.org</owner>
- <owner>tnagel@chromium.org</owner>
- <summary>
- Records the age (in days) of all cookies delivered along with a request.
- Recorded when setting the `Cookie` header for a given request.
- </summary>
-</histogram>
-
<histogram name="Cookie.BackingStoreUpdateResults" enum="BackingStoreResults"
expires_after="M82">
<owner>morlovich@chromium.org</owner>
@@ -31528,7 +32625,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.CommitProblem" enum="CookieCommitProblem"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>morlovich@chromium.org</owner>
<summary>
Recorded when a problem occurs trying to commit changes to the cookie store
@@ -31568,7 +32665,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.CookiePrefix" enum="CookiePrefix"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>estark@chromium.org</owner>
<summary>
Number of times a cookie was set with a name prefixed by
@@ -31592,7 +32689,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.CookieSchemeRequestScheme" enum="CookieRequestScheme"
- expires_after="M84">
+ expires_after="M90">
<owner>bingler@chromium.org</owner>
<owner>chlily@chromium.org</owner>
<summary>
@@ -31603,7 +32700,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.CookieSourceScheme" enum="CookieSourceScheme"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>estark@chromium.org</owner>
<summary>
For each cookie added to the store, record whether its source URL has a
@@ -31631,7 +32728,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Cookie.Count" units="units" expires_after="2020-11-15">
+<histogram name="Cookie.Count" units="units" expires_after="2021-01-17">
<owner>battre@chromium.org</owner>
<summary>
Number of cookies in the store (recorded every 10 minutes of active browsing
@@ -31783,7 +32880,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.LoadProblem" enum="CookieLoadProblem"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>morlovich@chromium.org</owner>
<summary>
Recorded when a problem is recorded when loading the persistent cookie
@@ -32089,7 +33186,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cookie.Startup.NumberOfCookiesDeleted" units="units"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>erikchen@chromium.org</owner>
<summary>
The number of session cookies deleted on startup. This metric is emitted
@@ -32193,7 +33290,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Cookie.TimeInitializeDB" units="ms" expires_after="2020-11-01">
+<histogram name="Cookie.TimeInitializeDB" units="ms" expires_after="2021-01-03">
<owner>nyquist@chromium.org</owner>
<summary>The amount of time (ms) to initialize the cookies database.</summary>
</histogram>
@@ -32265,11 +33362,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Cookie.Type" enum="CookieType" expires_after="2020-12-06">
+<histogram name="Cookie.Type" enum="CookieType" expires_after="2021-02-07">
<owner>mkwst@chromium.org</owner>
<summary>For each cookie added to the store, record it's type(s).</summary>
</histogram>
+<histogram name="Cookie{Age}{CookieConnectionType}{CookieSiteAffinity}"
+ units="days" expires_after="M82">
+ <obsolete>
+ Removed 2019-10-31 as part of cookie histogram cleanup
+ (https://crbug.com/993120).
+ </obsolete>
+ <owner>mkwst@chromium.org</owner>
+ <owner>tnagel@chromium.org</owner>
+ <summary>
+ Records the age (in days) of {Age} cookie delivered along with a request.
+ Recorded when setting the `Cookie` header for a given request.
+ {CookieConnectionType} {CookieSiteAffinity}
+ </summary>
+ <token key="Age">
+ <variant name=".AgeFor" label="the oldest"/>
+ <variant name=".AllAgesFor" label="all"/>
+ </token>
+ <token key="CookieConnectionType">
+ <variant name="NonSecure" label="For non-secure,"/>
+ <variant name="Secure" label="For secure,"/>
+ </token>
+ <token key="CookieSiteAffinity">
+ <variant name="CrossSiteRequest" label="cross-site requests."/>
+ <variant name="SameSiteRequest" label="same-site requests."/>
+ </token>
+</histogram>
+
<histogram name="CopylessPaste.CacheHit" enum="CopylessCacheHit"
expires_after="2020-03-01">
<owner>wychen@chromium.org</owner>
@@ -32316,7 +33440,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Cras.Busyloop" units="units" expires_after="2020-12-01">
+<histogram name="Cras.Busyloop" units="units" expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes
name="Cras.TimePeriod" -->
@@ -32342,7 +33466,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.DeviceTypeInput" enum="CrasDeviceType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32353,7 +33477,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.DeviceTypeOutput" enum="CrasDeviceType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32363,8 +33487,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Cras.DeviceVolume" units="level" expires_after="2021-07-22">
+<!-- Name completed by histogram_suffixes
+ name="Cras.DeviceType" -->
+
+ <owner>yuhsuan@chromium.org</owner>
+ <owner>chromeos-audio@google.com</owner>
+ <summary>
+ The volume of a device, which is recorded when closing a device.
+ </summary>
+</histogram>
+
<histogram name="Cras.HfpBatteryIndicatorSupported"
- enum="CrasHfpBatteryIndicator" expires_after="2020-12-01">
+ enum="CrasHfpBatteryIndicator" expires_after="2021-02-07">
<owner>enshuo@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32395,7 +33530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.HfpWidebandSpeechPacketLoss" units="units"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>enshuo@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32406,7 +33541,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.HfpWidebandSpeechSupported" units="BooleanSupported"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
<owner>hychao@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32509,7 +33644,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.InputDeviceBluetoothWideBandMicRuntime" units="seconds"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>hychao@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32688,7 +33823,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.kHfpWidebandSpeechSelectedCodec" enum="CrasHfpCodec"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
<owner>hychao@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32849,7 +33984,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.OutputDeviceHeadphoneRuntime" units="seconds"
- expires_after="2020-12-01">
+ expires_after="2021-02-07">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32882,7 +34017,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.OutputDeviceInternalSpeakerRuntime" units="seconds"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -32951,7 +34086,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.StreamCallbackThreshold" units="frames"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes
name="Cras.Direction" and
name="Cras.ClientType" -->
@@ -32998,7 +34133,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Cras.StreamFlags" units="value" expires_after="2020-12-01">
+<histogram name="Cras.StreamFlags" units="value" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes
name="Cras.Direction" and
name="Cras.ClientType" -->
@@ -33012,7 +34147,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.StreamSamplingFormat" enum="AlsaSampleFormatType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes
name="Cras.Direction" and
name="Cras.ClientType" -->
@@ -33026,7 +34161,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.StreamSamplingRate" units="bps"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes
name="Cras.Direction" and
name="Cras.ClientType" -->
@@ -33040,7 +34175,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.StreamTimeoutMilliSeconds" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>hychao@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -33052,7 +34187,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cras.UnderrunsPerDevice" units="count"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -33088,6 +34223,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Crashpad.CrashReportPending" enum="CrashpadReportPending"
expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>
The reason that a crash report entered the upload pending state.
@@ -33095,42 +34231,49 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Crashpad.CrashReportSize" units="bytes" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>The size of a crash report minidump on disk when captured.</summary>
</histogram>
<histogram name="Crashpad.CrashUpload.AttemptSuccessful"
enum="CrashpadUploadAttemptStatus" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>Logs whether a crash uploaded succeeded or failed.</summary>
</histogram>
<histogram name="Crashpad.CrashUpload.Skipped"
enum="CrashpadUploadSkippedReason" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>The reason that a crash report upload was skipped.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCaptureResult"
enum="CrashpadExceptionCaptureResult" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>The outcome of execution of the Crashpad exception handler.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCode.Mac" enum="CrashpadMacExceptionCodes"
expires_after="M85">
+ <owner>mark@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>The exception code encountered in a crash on Mac OS X.</summary>
</histogram>
<histogram name="Crashpad.ExceptionCode.Win" enum="CrashpadWinExceptionCodes"
expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>The exception code encountered in a crash on Windows.</summary>
</histogram>
<histogram name="Crashpad.ExceptionEncountered"
enum="CrashpadExceptionProcessingState" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>
A count of the number of exceptions handled by Crashpad with two buckets for
@@ -33140,6 +34283,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Crashpad.HandlerCrash.ExceptionCode.Mac"
enum="CrashpadMacExceptionCodes" expires_after="M85">
+ <owner>mark@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>
The exception code encountered for a crash of the crash handler process on
@@ -33149,6 +34293,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Crashpad.HandlerCrash.ExceptionCode.Win"
enum="CrashpadWinExceptionCodes" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>
The exception code encountered for a crash of the crash handler process on
@@ -33158,6 +34303,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Crashpad.HandlerLifetimeMilestone"
enum="CrashpadLifetimeMilestone" expires_after="M85">
+ <owner>jperaza@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>Handler start/crash/exit events.</summary>
</histogram>
@@ -33193,7 +34339,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CrashReport.BreakpadIOSUploadOutcome"
- enum="FoundationPopularErrorCode" expires_after="2020-09-10">
+ enum="FoundationPopularErrorCode" expires_after="2021-09-01">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
@@ -33219,6 +34365,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CrashReport.DumpWithoutCrashingHandler.FromInitSharedMemoryIfNeeded"
enum="CrashHandler" expires_after="M86">
+ <obsolete>
+ 07/2020: Investigation complete.
+ </obsolete>
<owner>iby@chromium.org</owner>
<owner>cros-telemetry@google.com</owner>
<summary>
@@ -33249,6 +34398,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CrashReport.DumpWithoutCrashingResult.FromInitSharedMemoryIfNeeded2"
enum="DumpWithoutCrashingResult" expires_after="M86">
+ <obsolete>
+ 07/2020: Investigation complete.
+ </obsolete>
<owner>iby@chromium.org</owner>
<owner>cros-telemetry@google.com</owner>
<summary>
@@ -33288,6 +34440,29 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="CrashReport.Sender.ActiveRuntime" units="ms"
+ expires_after="2021-01-15">
+ <owner>mutexlox@chromium.org</owner>
+ <owner>iby@chromium.org</owner>
+ <owner>cros-telemetry@google.com</owner>
+ <summary>
+ The amount of time crash_sender takes to run when invoked directly on Chrome
+ OS, without counting time spent sleeping (e.g. for hold_off_time). Used to
+ make an informed decision about a timeout.
+ </summary>
+</histogram>
+
+<histogram name="CrashReport.Sender.Runtime" units="ms"
+ expires_after="2021-01-15">
+ <owner>mutexlox@chromium.org</owner>
+ <owner>iby@chromium.org</owner>
+ <owner>cros-telemetry@google.com</owner>
+ <summary>
+ The amount of time crash_sender takes to run when invoked directly on Chrome
+ OS. Used to make an informed decision about a timeout.
+ </summary>
+</histogram>
+
<histogram name="Cros.ClickOnShelf" enum="CrosShelfClickTarget"
expires_after="2013-12-13">
<obsolete>
@@ -33298,7 +34473,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cros.CrOSActionRecorderEvent" enum="CrOSActionRecorderEvent"
- expires_after="2020-11-02">
+ expires_after="2021-01-03">
<owner>charleszhao@chromium.org</owner>
<owner>tby@chromium.org</owner>
<summary>
@@ -33339,6 +34514,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="CrosDisks.Fuse.FuseZip" enum="FuseZipError"
+ expires_after="2021-10-01">
+ <owner>fdegros@chromium.org</owner>
+ <owner>chromeos-files-app@google.com</owner>
+ <summary>
+ The error code returned by ZIP mounting program fuse-zip, which is called
+ every time a user opens a ZIP archive in ChromeOS Files App.
+ </summary>
+</histogram>
+
<histogram name="CrosDisks.Fuse.Rar2fs" enum="Rar2fsError"
expires_after="2021-04-01">
<owner>fdegros@chromium.org</owner>
@@ -33350,7 +34535,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CrosDisksClient.FormatCompletedError"
- enum="CrosDisksClientFormatError" expires_after="2020-11-01">
+ enum="CrosDisksClientFormatError" expires_after="2021-01-03">
<owner>austinct@chromium.org</owner>
<summary>
The error code of disk format signals received from the Chrome OS cros-disks
@@ -33359,7 +34544,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CrosDisksClient.FormatTime" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>austinct@chromium.org</owner>
<summary>
Time taken for the Chrome OS cros-disks daemon to perform a format
@@ -33368,7 +34553,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CrosDisksClient.MountCompletedError"
- enum="CrosDisksClientMountError" expires_after="2020-11-08">
+ enum="CrosDisksClientMountError" expires_after="2021-01-24">
<owner>amistry@chromium.org</owner>
<summary>
The error code of disk mount signals received from the Chrome OS cros-disks
@@ -33377,7 +34562,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CrosDisksClient.MountErrorMountType"
- enum="CrosDisksMountTypeError" expires_after="2020-12-13">
+ enum="CrosDisksMountTypeError" expires_after="2021-02-14">
<owner>amistry@chromium.org</owner>
<summary>
The {mount type}x{mount error code} received from the Chrome OS cros-disks
@@ -33864,6 +35049,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Crostini.UpgradeAvailable"
+ enum="CrostiniUpgradeAvailableNotificationClosed"
+ expires_after="2021-07-15">
+ <owner>clumptini@google.com</owner>
+ <owner>tbuckley@chromium.org</owner>
+ <summary>
+ Recorded each time the user sees the Crostini upgrade Notifiation, recording
+ the action that closded the notification.
+ </summary>
+</histogram>
+
<histogram name="Crostini.UpgradeDialogEvent" enum="CrostiniUpgradeDialogEvent"
expires_after="2021-03-06">
<owner>clumptini@google.com</owner>
@@ -33944,6 +35140,62 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Indicates success of performing a DeviceSync.</summary>
</histogram>
+<histogram
+ name="CryptAuth.DeviceSyncService.ClientAppMetadataFetch.AsyncTaskResult"
+ enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the result of the async ClientAppMetadata retrieval performed during
+ initialization of the DeviceSync service. Recorded when the async callback
+ is invoked or when the call times out.
+ </summary>
+</histogram>
+
+<histogram
+ name="CryptAuth.DeviceSyncService.ClientAppMetadataFetch.ExecutionTime"
+ units="ms" expires_after="2021-02-02">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the execution time of the async ClientAppMetadata retrieval
+ performed during initialization of the DeviceSync service. Recorded when the
+ async callback is invoked or when the call times out.
+ </summary>
+</histogram>
+
+<histogram name="CryptAuth.DeviceSyncService.GcmRegistration.ExecutionTime"
+ units="ms" expires_after="2021-02-02">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the execution time of GCM registration performed during
+ initialization of the DeviceSync service. Recorded when the async callback
+ is invoked.
+ </summary>
+</histogram>
+
+<histogram name="CryptAuth.DeviceSyncService.GcmRegistration.Success"
+ enum="BooleanSuccess" expires_after="2021-02-02">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the result of GCM registration performed during initialization of
+ the DeviceSync service. Recorded when the async callback is invoked.
+ </summary>
+</histogram>
+
+<histogram name="CryptAuth.DeviceSyncService.Initialization.ExecutionTime"
+ units="ms" expires_after="2021-02-02">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the execution time of the DeviceSync service initialization.
+ Recorded each time the DeviceSync service starts up, after initialization
+ succeeds.
+ </summary>
+</histogram>
+
<histogram name="CryptAuth.DeviceSyncSoftwareFeaturesResult"
enum="BooleanSuccess" expires_after="2021-02-02">
<owner>hansberry@chromium.org</owner>
@@ -33983,6 +35235,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceActivityGetter.AsyncTaskResult.ClientAppMetadataFetch"
enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -33995,6 +35250,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceActivityGetter.ExecutionTime.ClientAppMetadataFetch"
units="ms" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34019,6 +35277,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceManager.AsyncTaskResult.ClientAppMetadataFetch"
enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34031,6 +35292,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceManager.ExecutionTime.ClientAppMetadataFetch"
units="ms" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34055,6 +35319,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceNotifier.AsyncTaskResult.ClientAppMetadataFetch"
enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34067,6 +35334,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.DeviceNotifier.ExecutionTime.ClientAppMetadataFetch"
units="ms" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34303,6 +35573,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.FeatureStatusSetter.AsyncTaskResult.ClientAppMetadataFetch"
enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34315,6 +35588,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="CryptAuth.DeviceSyncV2.FeatureStatusSetter.ExecutionTime.ClientAppMetadataFetch"
units="ms" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34679,6 +35955,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CryptAuth.EnrollmentV2.AsyncTaskResult.ClientAppMetadataFetch"
enum="CryptAuthAsyncTaskResult" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34733,6 +36012,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CryptAuth.EnrollmentV2.ExecutionTime.ClientAppMetadataFetch2"
units="ms" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. ClientAppMetadata now fetched in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34793,6 +36075,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CryptAuth.EnrollmentV2.GcmRegistration.AttemptTime" units="ms"
expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. GCM registration now occurs in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -34803,6 +36088,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="CryptAuth.EnrollmentV2.GcmRegistration.Success"
units="boolean" expires_after="2021-02-02">
+ <obsolete>
+ Removed 2020-07-29. GCM registration now occurs in DeviceSync service.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -35164,7 +36452,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.Errors" enum="CryptohomeError"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>Cryptohome errors.</summary>
@@ -35242,7 +36530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.HomedirEncryptionType" enum="HomedirEncryptionType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>dspaid@chromium.org</owner>
<summary>
The encryption type used for a user's cryptohome directory. This is logged
@@ -35277,7 +36565,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Cryptohome.LECredential"
- enum="CryptohomeLECredError" expires_after="2020-10-25">
+ enum="CryptohomeLECredError" expires_after="2020-12-27">
<!-- Name completed by histogram_suffixes name="LECredentialOps" -->
<owner>pmalani@chromium.org</owner>
@@ -35323,7 +36611,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.MigrationUI.MigrationResult"
- enum="MigrationUIMigrationResult" expires_after="2020-11-15">
+ enum="MigrationUIMigrationResult" expires_after="2021-01-17">
<owner>fukino@chromium.org</owner>
<summary>
The result of encryption migration from eCryptfs to Ext4 dircrypto. The
@@ -35406,7 +36694,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TimeSessionUnlock" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-02-07">
<owner>kerrnel@chromium.org</owner>
<owner>mnissler@chromium.org</owner>
<summary>
@@ -35438,7 +36726,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TimeToInitPkcs11" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -35528,7 +36816,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TimeToPerformOOPMountCleanup" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>jorgelo@chromium.org</owner>
<owner>betuls@chromium.org</owner>
<summary>
@@ -35539,7 +36827,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TimeToPerformOOPMountOperation" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>jorgelo@chromium.org</owner>
<owner>betuls@chromium.org</owner>
<summary>
@@ -35549,7 +36837,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TimeToTakeTpmOwnership" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -35559,7 +36847,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Cryptohome.TpmResults" enum="CryptohomeTpmResults"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>afakhry@chromium.org</owner>
<summary>
The errors resulting from interacting with the Trusted Platform Module (TPM)
@@ -35567,7 +36855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="CryptohomeClient" units="ms" expires_after="2020-11-01">
+<histogram name="CryptohomeClient" units="ms" expires_after="2021-01-03">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -35590,7 +36878,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CustomTabs.ClientAppId" enum="ClientAppId"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>yusufo@chromium.org</owner>
<summary>
Android: AppId declared by the launching application in EXTRA_APPLICATION_ID
@@ -35602,10 +36890,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CustomTabs.CloseButton.ChildTab.ScopeAlgorithm.ClosesOneTab"
- enum="BooleanCloseJustCurrentTab" expires_after="2020-08-01">
- <owner>hartmanng@chromium.org</owner>
+ enum="BooleanCloseJustCurrentTab" expires_after="2021-02-01">
<owner>peconn@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/browserservices/OWNERS
+ </owner>
<summary>
Records whether the CustomTab/TrustedWebActivity &quot;navigate to landing
page&quot; algorithm for child tabs - e.g. tabs opened via window.open() -
@@ -36008,7 +37297,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CustomTabs.SpeculationStatusOnStart"
- enum="CustomTabsSpeculationStatusOnStart" expires_after="2020-12-13">
+ enum="CustomTabsSpeculationStatusOnStart" expires_after="2021-02-14">
<owner>lizeb@chromium.org</owner>
<summary>
Recorded only for Android. How a speculation was started or why it was
@@ -36049,7 +37338,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="CustomTabs.WarmupStateOnLaunch" enum="WarmupStateOnLaunch"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>lizeb@chromium.org</owner>
<summary>
Recorded only on Android. Reports whether warmup() has been called when a
@@ -36181,6 +37470,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="DataReductionProxy.BypassOnNetworkErrorFallback"
enum="NetErrorCodes" expires_after="M85">
+ <obsolete>
+ Removed as of March 2020.
+ </obsolete>
<owner>bengr@chromium.org</owner>
<summary>
Positive net error code that caused the fallback data reduction proxy to be
@@ -36191,6 +37483,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="DataReductionProxy.BypassOnNetworkErrorPrimary"
enum="NetErrorCodes" expires_after="M85">
+ <obsolete>
+ Removed as of March 2020.
+ </obsolete>
<owner>bengr@chromium.org</owner>
<summary>
Positive net error code that caused the primary data reduction proxy to be
@@ -38265,19 +39560,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DemoMode.ActiveApp" enum="DemoModeApp" expires_after="M86">
- <owner>michaelpg@chromium.org</owner>
- <owner>ovanieva@chromium.org</owner>
- <owner>tbarzic@chromium.org</owner>
+<histogram name="DemoMode.ActiveApp" enum="DemoModeApp" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
The currently active app or window. Sampled during demo sessions and
reported while the user remains active.
</summary>
</histogram>
-<histogram name="DemoMode.AppLaunched" enum="DemoModeApp" expires_after="M86">
- <owner>danan@chromium.org</owner>
- <owner>michaelpg@chromium.org</owner>
+<histogram name="DemoMode.AppLaunched" enum="DemoModeApp" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Records apps that have been launched by a user using the device during Demo
mode. The sample is recorded when each app is launched. For any given app
@@ -38286,18 +39580,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.AppLaunchSource" enum="DemoModeAppLaunchSource"
- expires_after="M86">
- <owner>danan@chromium.org</owner>
- <owner>michaelpg@chromium.org</owner>
+ expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
The source of app launches in demo mode, either the shelf, the app list, or
the highlights app.
</summary>
</histogram>
-<histogram name="DemoMode.DwellTime" units="seconds" expires_after="2021-03-23">
- <owner>mlcui@google.com</owner>
- <owner>cros-essential-apps-dev@chromium.org</owner>
+<histogram name="DemoMode.DwellTime" units="seconds" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
The duration the user spent interacting with the demo session, measured from
the first user activity to the last user activity. This metric rounds the
@@ -38307,10 +39601,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.IdleLogoutWarningEvent"
- enum="DemoModeIdleLogoutWarningEvent" expires_after="M86">
- <owner>michaelpg@chromium.org</owner>
- <owner>ovanieva@chromium.org</owner>
- <owner>wzang@chromium.org</owner>
+ enum="DemoModeIdleLogoutWarningEvent" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Tracks whether the idle logout warning was canceled or proceeded to logout.
Note: the count of &quot;shown&quot; includes both cases, so the count of
@@ -38320,10 +39613,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.ResourcesRemoval.Reason"
- enum="DemoModeResourcesRemovalReason" expires_after="M86">
- <owner>michaelpg@chromium.org</owner>
- <owner>ovanieva@chromium.org</owner>
- <owner>tbarzic@chromium.org</owner>
+ enum="DemoModeResourcesRemovalReason" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Tracks the reason for removal of pre-install demo resources. To support
offline demo mode, factory Chrome OS devices will have a set of offline
@@ -38333,10 +39625,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.ResourcesRemoval.Result"
- enum="DemoModeResourcesRemovalResult" expires_after="M86">
- <owner>michaelpg@chromium.org</owner>
- <owner>ovanieva@chromium.org</owner>
- <owner>tbarzic@chromium.org</owner>
+ enum="DemoModeResourcesRemovalResult" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Tracks the result of requests to remove pre-installed demo resources. To
support offline demo mode, factory Chrome OS devices will have a set of
@@ -38348,10 +39639,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DemoMode.SessionLength" units="minutes" expires_after="M86">
- <owner>michaelpg@chromium.org</owner>
- <owner>ovanieva@chromium.org</owner>
- <owner>tbarzic@chromium.org</owner>
+<histogram name="DemoMode.SessionLength" units="minutes" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
A demo session starts when a user signs in using the policy-configured
public account. It stops when the user signs out, either manually or after
@@ -38363,9 +39653,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.Setup.DownloadDuration" units="minutes"
- expires_after="2021-03-10">
- <owner>josephkimsh@chromium.org</owner>
- <owner>cros-essential-apps-dev@chromium.org</owner>
+ expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
This records the time taken to download the demo mode resources when demo
mode is setup for the first time.
@@ -38373,9 +39663,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.Setup.EnrollDuration" units="minutes"
- expires_after="2021-03-10">
- <owner>josephkimsh@chromium.org</owner>
- <owner>cros-essential-apps-dev@chromium.org</owner>
+ expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
This records the time taken to enterprise-enroll the device when demo mode
is setup for the first time.
@@ -38383,9 +39673,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DemoMode.Setup.LoadingDuration" units="minutes"
- expires_after="2021-03-10">
- <owner>josephkimsh@chromium.org</owner>
- <owner>cros-essential-apps-dev@chromium.org</owner>
+ expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
When demo mode is setup for the first time, it must download the demo mode
resources and enterprise-enroll the device. This records the time taken for
@@ -38394,10 +39684,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DemoMode.Setup.NumRetries" units="units"
- expires_after="2021-03-10">
- <owner>josephkimsh@chromium.org</owner>
- <owner>cros-essential-apps-dev@chromium.org</owner>
+<histogram name="DemoMode.Setup.NumRetries" units="units" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Records the number of times an operator has encountered an error during the
loading screen and been required to retry setup. This is only recorded after
@@ -38405,9 +39694,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DemoMode.UniqueAppsLaunched" units="units" expires_after="M86">
- <owner>danan@chromium.org</owner>
- <owner>michaelpg@chromium.org</owner>
+<histogram name="DemoMode.UniqueAppsLaunched" units="units" expires_after="M92">
+ <owner>drcrash@chromium.org</owner>
+ <owner>cros-demo-mode-eng@google.com</owner>
<summary>
Records how many unique apps have been launched by a user using the device
during Demo mode. The sample is recorded when the DemoMode session closes.
@@ -38555,7 +39844,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DevTools.ActionTaken" enum="DevToolsAction"
- expires_after="M85">
+ expires_after="2021-07-31">
<owner>alph@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -38609,6 +39898,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="DevTools.ColorPicker.FixedColor"
+ enum="DevToolsColorPickerFixedColor" expires_after="2021-03-17">
+ <owner>yangguo@chromium.org</owner>
+ <owner>mathias@chromium.org</owner>
+ <owner>alexrudenko@chromium.org</owner>
+ <summary>
+ Records which color contrast threshold was fixed by the user in the Color
+ Picker.
+ </summary>
+</histogram>
+
+<histogram name="DevTools.CSSGridSettings" enum="DevtoolsGridSettingChanged"
+ expires_after="M87">
+ <owner>yangguo@chromium.org</owner>
+ <owner>brgoddar@microsoft.com</owner>
+ <owner>leo.lee@microsoft.com</owner>
+ <summary>
+ DevTools settings for CSS grid recorded on launch of the DevTools.
+ </summary>
+</histogram>
+
<histogram name="DevTools.DualScreenDeviceEmulated"
enum="DevToolsDualScreenDeviceEmulated" expires_after="M87">
<owner>yangguo@chromium.org</owner>
@@ -38621,7 +39931,53 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DevTools.InspectElement" units="ms" expires_after="M85">
+<histogram name="DevTools.ExperimentDisabled" enum="DevtoolsExperiments"
+ expires_after="2021-07-31">
+ <owner>yangguo@chromium.org</owner>
+ <owner>brgoddar@microsoft.com</owner>
+ <owner>shanejc@microsoft.com</owner>
+ <summary>
+ Fired when a devtools experiment is disabled from the experiments tab.
+ </summary>
+</histogram>
+
+<histogram name="DevTools.ExperimentEnabled" enum="DevtoolsExperiments"
+ expires_after="2021-07-31">
+ <owner>yangguo@chromium.org</owner>
+ <owner>brgoddar@microsoft.com</owner>
+ <owner>shanejc@microsoft.com</owner>
+ <summary>
+ Fired when a devtools experiment is enabled from the experiments tab.
+ </summary>
+</histogram>
+
+<histogram name="DevTools.ExperimentEnabledAtLaunch" enum="DevtoolsExperiments"
+ expires_after="2021-07-31">
+ <owner>yangguo@chromium.org</owner>
+ <owner>brgoddar@microsoft.com</owner>
+ <owner>shanejc@microsoft.com</owner>
+ <summary>
+ Fires for each experiment that is enabled at the time of Devtools Launch.
+ </summary>
+</histogram>
+
+<histogram name="DevTools.GridSettingChanged" enum="DevtoolsGridSettingChanged"
+ expires_after="M87">
+ <obsolete>
+ Removed in July 2020, M86. This histogram was fired multiple times per
+ setting change and is unusable. Replaced with DevTools.CSSGridSettings.
+ </obsolete>
+ <owner>yangguo@chromium.org</owner>
+ <owner>brgoddar@microsoft.com</owner>
+ <owner>leo.lee@microsoft.com</owner>
+ <summary>
+ Recorded when a DevTools CSS Grid overlay display setting is changed.
+ Actually fires once for each overlay target active when the setting is
+ changed.
+ </summary>
+</histogram>
+
+<histogram name="DevTools.InspectElement" units="ms" expires_after="2021-07-31">
<owner>alph@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -38632,7 +39988,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DevTools.IssuesPanelOpenedFrom"
- enum="DevToolsIssuesPanelOpenedFrom" expires_after="2020-10-31">
+ enum="DevToolsIssuesPanelOpenedFrom" expires_after="2021-01-24">
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
<summary>
@@ -38653,7 +40009,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="DevTools.KeyboardShortcutFired"
enum="DevToolsKeyboardShortcutAction" expires_after="2020-10-31">
- <owner>yangguo@microsoft.com</owner>
+ <owner>yangguo@chromium.org</owner>
<owner>jalyn@microsoft.com</owner>
<owner>leo.lee@microsoft.com</owner>
<summary>
@@ -38673,7 +40029,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="DevTools.PanelShown" enum="DevToolsPanel" expires_after="M85">
+<histogram name="DevTools.PanelClosed" enum="DevToolsPanel" expires_after="M87">
+ <owner>yangguo@chromium.org</owner>
+ <owner>joselea@microsoft.com</owner>
+ <owner>shanejc@microsoft.com</owner>
+ <summary>Specified DevTools panel was closed.</summary>
+</histogram>
+
+<histogram name="DevTools.PanelShown" enum="DevToolsPanel"
+ expires_after="2021-07-31">
<owner>alph@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -38681,7 +40045,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DevTools.SettingChanged" enum="DevToolsSetting"
- expires_after="M85">
+ expires_after="2021-07-31">
<owner>alph@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -39657,7 +41021,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Discarding.DiscardCandidatesCount" units="tabs"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -39676,6 +41040,62 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Discarding.HighPMFPolicy.DiscardAttemptsCount" units="tabs"
+ expires_after="2021-01-31">
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ The number of tab discard attempts during a high-PMF session. Recorded at
+ the end of each high PMF session, or when the number of discard attempts
+ within the same high-PMF session reaches 100 (at which point the counter
+ will reset, e.g. 102 discards attempts would be recorded in two pieces as
+ &quot;100&quot; and &quot;2&quot;).
+ </summary>
+</histogram>
+
+<histogram name="Discarding.HighPMFPolicy.DiscardSuccess"
+ units="BooleanSuccess" expires_after="2021-01-31">
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ Indicates if a tab has been successfully discarded during a high-PMF
+ session.
+ </summary>
+</histogram>
+
+<histogram name="Discarding.HighPMFPolicy.MemoryPressureLevel"
+ enum="MemoryPressureLevel" expires_after="2021-01-31">
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ The memory pressure level when the High-PMF policy decides to discard a tab.
+ </summary>
+</histogram>
+
+<histogram name="Discarding.HighPMFPolicy.MemoryReclaimedKbAfterDiscardingATab"
+ units="KB" expires_after="2021-01-31">
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ The amount of memory that has been reclaimed after discarding a tab during a
+ high-PMF session. In the case of a memory increase the value will be
+ reported as 0 and will go in the underflow bucket.
+ </summary>
+</histogram>
+
+<histogram name="Discarding.HighPMFPolicy.SuccessfulDiscardsCount" units="tabs"
+ expires_after="2021-01-31">
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ The number of successful tab discards during a high-PMF session. Recorded at
+ the end of each high PMF session, or when the number of successful discards
+ within the same high-PMF session reaches 100 (at which point the counter
+ will reset, e.g. 102 successful discards would be recorded in two pieces as
+ &quot;100&quot; and &quot;2&quot;).
+ </summary>
+</histogram>
+
<histogram name="Discarding.LargestTabFootprint" units="MiB"
expires_after="2020-11-30">
<owner>sebmarchand@chromium.org</owner>
@@ -39693,7 +41113,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Discarding.OnCriticalPressure.TotalRSS_Mb" units="MB"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -39705,7 +41125,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Discarding.OnCriticalPressure.TotalRSS_PercentOfRAM" units="%"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -43168,8 +44588,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="DocumentScan.ScanFailed" enum="DocumentScanSaneBackend"
+ expires_after="2021-01-14">
+ <owner>fletcherw@chromium.org</owner>
+ <owner>bmgordon@chromium.org</owner>
+ <owner>project-bolton@google.com</owner>
+ <summary>
+ Chrome OS document scan metric that tracks which SANE backend (effectively a
+ scanner driver) was used when a scan failed.
+ </summary>
+</histogram>
+
+<histogram name="DocumentScan.ScanRequested" enum="DocumentScanSaneBackend"
+ expires_after="2021-01-14">
+ <owner>fletcherw@chromium.org</owner>
+ <owner>bmgordon@chromium.org</owner>
+ <owner>project-bolton@google.com</owner>
+ <summary>
+ Chrome OS document scan metric that tracks which SANE backend (effectively a
+ scanner driver) that a user requested to use for a scan.
+ </summary>
+</histogram>
+
<histogram name="DocumentScan.ScanResult" enum="BooleanSuccess"
expires_after="M90">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>fletcherw@chromium.org</owner>
<owner>bmgordon@chromium.org</owner>
<summary>
@@ -43178,6 +44623,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="DocumentScan.ScanSucceeded" enum="DocumentScanSaneBackend"
+ expires_after="2021-01-14">
+ <owner>fletcherw@chromium.org</owner>
+ <owner>bmgordon@chromium.org</owner>
+ <owner>project-bolton@google.com</owner>
+ <summary>
+ Chrome OS document scan metric that tracks which SANE backend (effectively a
+ scanner driver) was used when a scan succeeded.
+ </summary>
+</histogram>
+
<histogram name="DomainBoundCerts.DBExists" enum="BooleanExists"
expires_after="M77">
<obsolete>
@@ -43733,7 +45189,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DomDistiller.ReaderMode.EntryPoint"
- enum="ReaderModeEntryPoint" expires_after="2020-09-01">
+ enum="ReaderModeEntryPoint" expires_after="2021-02-01">
<owner>katie@chromium.org</owner>
<owner>gilmanmh@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -43741,7 +45197,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DomDistiller.ReaderMode.ExitPoint" enum="ReaderModeEntryPoint"
- expires_after="2020-09-01">
+ expires_after="2021-02-01">
<owner>katie@chromium.org</owner>
<owner>gilmanmh@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
@@ -43778,7 +45234,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DomDistiller.Time.ActivelyViewingArticleBeforeDistilling"
- units="ms" expires_after="2020-09-01">
+ units="ms" expires_after="2021-02-01">
<owner>katie@chromium.org</owner>
<owner>chrome-a11y-core@chromium.org</owner>
<summary>
@@ -43792,7 +45248,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DomDistiller.Time.ActivelyViewingReaderModePage" units="ms"
- expires_after="2020-09-01">
+ expires_after="2021-02-01">
<owner>katie@chromium.org</owner>
<owner>chrome-a11y-core@chromium.org</owner>
<summary>
@@ -44210,7 +45666,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.BandwidthOverallBytesPerSecond" units="units"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>dtrainor@chromium.org</owner>
<summary>
Overall bandwidth seen for the download. Note that this is measured at the
@@ -44339,7 +45795,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.ContentType.Audio" enum="DownloadAudioType"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>xingliu@chromium.org</owner>
<summary>Types of audio files that are downloaded.</summary>
</histogram>
@@ -44353,7 +45809,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.ContentType.Text" enum="DownloadTextType"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>xingliu@chromium.org</owner>
<summary>Types of text files that are downloaded.</summary>
</histogram>
@@ -44367,7 +45823,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Download.Counts" enum="DownloadCountType"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<!-- Name completed by histogram_suffixes name="DownloadSource" -->
<owner>xingliu@chromium.org</owner>
@@ -45033,7 +46489,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.IOSDownloadFileUI" enum="DownloadFileUI"
- expires_after="2020-11-29">
+ expires_after="2021-02-07">
<owner>ewannpv@chromium.org</owner>
<owner>eugenebut@chromium.org</owner>
<summary>
@@ -45545,7 +47001,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.Resume.AutoResumeLimitReached" enum="Boolean"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>shaktisahu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -45554,7 +47010,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.Resume.AutoResumeLimitReached.LastReason"
- enum="InterruptReason" expires_after="2020-11-08">
+ enum="InterruptReason" expires_after="2021-01-10">
<owner>shaktisahu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -45564,7 +47020,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.Resume.LastReason" enum="InterruptReason"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>shaktisahu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>Records the last interrupt reason for this download.</summary>
@@ -45613,7 +47069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.ResumptionRestart.Reason" enum="InterruptReason"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>qinmin@chromium.org</owner>
<owner>xingliu@chromium.org</owner>
<summary>
@@ -45815,7 +47271,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.Service.Files.FreeDiskSpace" units="%"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>xingliu@chromium.org</owner>
<summary>
The percentage of free disk space to total disk space. Recorded during
@@ -45882,7 +47338,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Download.Service.Finish.Type"
- enum="Download.Service.CompletionType" expires_after="2020-11-08">
+ enum="Download.Service.CompletionType" expires_after="2021-01-10">
<owner>xingliu@chromium.org</owner>
<summary>The completion type for downloads in download service.</summary>
</histogram>
@@ -46807,8 +48263,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="DrmUtil.CreateDisplaySnapshot.EdidBlobIsEmpty" enum="Boolean"
+ expires_after="2021-02-07">
+ <obsolete>
+ Converted to DCHECK in 08/2020. If EDID property is unset, blob is always
+ NULL.
+ </obsolete>
+ <owner>andrescj@chromium.org</owner>
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ True when an EDID blob is detected and is empty. This UMA is recorded
+ whenever we attempt to parse the EDID from a display.
+ </summary>
+</histogram>
+
<histogram name="DrmUtil.CreateDisplaySnapshot.HasEdidBlob" enum="Boolean"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
<owner>chromeos-gfx@google.com</owner>
@@ -46831,7 +48302,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="DrmUtil.GetColorSpaceFromEdid.ChecksOutcome"
- enum="EdidColorSpaceChecksOutcome" expires_after="2020-11-01">
+ enum="EdidColorSpaceChecksOutcome" expires_after="2021-01-03">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
<owner>chromeos-gfx@google.com</owner>
@@ -47541,7 +49012,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.ActiveDirectoryJoin"
- enum="ActiveDirectoryDomainJoinType" expires_after="2020-10-30">
+ enum="ActiveDirectoryDomainJoinType" expires_after="2021-02-07">
<owner>fsandrade@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
<summary>
@@ -47562,7 +49033,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.AppRestrictionLoadTime2" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>twellington@google.com</owner>
<owner>tedchcoc@chromium.org</owner>
<summary>
@@ -47572,7 +49043,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.AppRestrictionLoadTime2.EmptyBundle" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>twellington@google.com</owner>
<owner>tedchcoc@chromium.org</owner>
<summary>
@@ -47670,7 +49141,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Enterprise.CBCMPolicyInvalidations"
enum="EnterprisePolicyInvalidations" expires_after="2021-06-16">
<owner>anthonyvd@google.com</owner>
- <owner>chrome-enterprise-team-core@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
<summary>
Events for counting CBCM policy invalidations received with and without
payloads. Invalidations indicate that a policy has been updated and should
@@ -47682,7 +49153,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Enterprise.CBCMPolicyRefresh" enum="EnterprisePolicyRefresh"
expires_after="2021-06-16">
<owner>anthonyvd@google.com</owner>
- <owner>chrome-enterprise-team-core@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
<summary>
Events measuring effectiveness of refreshing CBCM policy when invalidations
are received from a service. For each refresh, indicates whether the policy
@@ -47690,6 +49161,68 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Enterprise.CBCMRemoteCommand.Executed"
+ enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
+
+ <owner>anthonyvd@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
+ <summary>
+ Events for counting status of executed CBCM remote commands. The metric
+ includes only signed CBCM remote commands. Reports a final status of
+ finished remote command (e.g. success, failure or termination).
+ </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Executed.Unsigned"
+ enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
+
+ <owner>anthonyvd@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
+ <summary>
+ Events for counting status of executed CBCM remote commands. The metric
+ includes only unsigned CBCM remote commands. Reports a final status of
+ finished remote command (e.g. success, failure or termination).
+ </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Received"
+ enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
+ <owner>anthonyvd@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
+ <summary>
+ Events for counting received CBCM remote commands. The metric includes
+ signed CBCM remote commands, both valid and invalid. Valid remote command is
+ counted by its type. Invalid remote command is counted by a reason why it is
+ considered invalid (e.g. unknown type or duplication).
+ </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Received.Unsigned"
+ enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
+ <owner>anthonyvd@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
+ <summary>
+ Events for counting received CBCM remote commands. The metric includes
+ unsigned CBCM remote commands, both valid and invalid. Valid remote command
+ is counted by its type. Invalid remote command is counted by a reason why it
+ is considered invalid (e.g. unknown type or duplication).
+ </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommandInvalidations"
+ enum="EnterprisePolicyInvalidations" expires_after="2021-03-01">
+ <owner>anthonyvd@google.com</owner>
+ <owner>cbe-eng@google.com</owner>
+ <summary>
+ Events for counting CBCM remote commands invalidations received with and
+ without payloads. Invalidations indicate that there is a remote command to
+ execute. Payloads provide context about the remote commands update, but may
+ be absent if dropped by the invalidation service.
+ </summary>
+</histogram>
+
<histogram name="Enterprise.CloudExtensionRequestUpdated"
enum="EnterpriseCloudExtensionRequestListUpdate" expires_after="2021-02-01">
<owner>zmin@chromium.org</owner>
@@ -47758,7 +49291,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.CloudReportingUploadTrigger"
- enum="ReportSchedulerReportTrigger" expires_after="2020-08-04">
+ enum="ReportSchedulerReportTrigger" expires_after="never">
+<!-- expires-never: this provides a generally useful signal regarding enterprise report uploads. -->
+
<owner>grt@chromium.org</owner>
<owner>src/chrome/browser/enterprise/reporting/OWNERS</owner>
<summary>
@@ -47957,7 +49492,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.DeviceSettings.MissingPolicyMitigated"
- units="BooleanSuccess" expires_after="2020-11-29">
+ units="BooleanSuccess" expires_after="2021-01-31">
<owner>poromov@chromium.org</owner>
<owner>managed-devices@google.com</owner>
<summary>
@@ -47968,7 +49503,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.DeviceSettings.UpdatedStatus"
- enum="DeviceSettingsStatus" expires_after="2020-11-29">
+ enum="DeviceSettingsStatus" expires_after="2021-01-31">
<owner>poromov@chromium.org</owner>
<owner>managed-devices@google.com</owner>
<summary>
@@ -47979,7 +49514,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.DMServerRequestSuccess"
- enum="EnterpriseDMServerRequestSuccess" expires_after="2020-11-29">
+ enum="EnterpriseDMServerRequestSuccess" expires_after="2021-01-31">
<owner>poromov@chromium.org</owner>
<owner>managed-devices@google.com</owner>
<summary>
@@ -48424,6 +49959,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Enterprise.FirstRun.AppRestrictionLoadTime.Medium" units="ms"
+ expires_after="2021-03-01">
+ <owner>skym@chromium.org</owner>
+ <owner>twellington@chromium.org</owner>
+ <owner>wenyufu@chromium.org</owner>
+ <summary>
+ Records the time it takes to retrieve applicaton restrictions from the
+ system using an AsyncTask. Recording during first run experience on Android
+ only. Has a bigger range (0-3 minutes) than the non-Medium version.
+ </summary>
+</histogram>
+
<histogram name="Enterprise.HeartbeatSignalSuccess" enum="BooleanSuccess"
expires_after="2020-08-01">
<owner>igorcov@chromium.org</owner>
@@ -48563,7 +50110,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Enterprise.MachineLevelUserCloudPolicyEnrollment.UnenrollSuccess"
- enum="BooleanSuccess" expires_after="2020-10-01">
+ enum="BooleanSuccess" expires_after="2021-02-07">
<owner>domfc@chromium.org</owner>
<owner>zmin@chromium.org</owner>
<summary>
@@ -48572,6 +50119,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Enterprise.OnBulkDataEntry.DataSize" units="bytes"
+ expires_after="M90">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ Records the size (in bytes) of data that might have been scanned by the
+ OnBulkDataEntry Enterprise Connector. Is is logged once per user action that
+ would trigger this Connector.
+ </summary>
+</histogram>
+
<histogram name="Enterprise.ONC.PolicyValidation" enum="BooleanSuccess"
expires_after="M85">
<owner>mnissler@chromium.org</owner>
@@ -48579,7 +50137,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.Policies" enum="EnterprisePolicies"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mnissler@chromium.org</owner>
<summary>
A set of enterprise policy rules that are in use. This is recorded every 24
@@ -48873,7 +50431,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.SystemLogUploadResult"
- enum="EnterpriseSystemLogUploadResult" expires_after="2020-12-13">
+ enum="EnterpriseSystemLogUploadResult" expires_after="2021-02-14">
<owner>poromov@chromium.org</owner>
<summary>Result of a single attempt to upload system logs.</summary>
</histogram>
@@ -49180,7 +50738,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.UserSession.Logins"
- enum="EnterpriseUserSessionLogins" expires_after="2020-11-01">
+ enum="EnterpriseUserSessionLogins" expires_after="2021-01-03">
<owner>xiyuan@chromium.org</owner>
<owner>sduraisamy@chromium.org</owner>
<summary>Tracks the sign-in events on an enrolled device.</summary>
@@ -49204,7 +50762,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Enterprise.VpdUpdateStatus" units="units"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>igorcov@chromium.org</owner>
<owner>tnagel@chromium.org</owner>
<summary>
@@ -49281,7 +50839,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.InvalidPolicies" enum="EnterprisePolicies"
- expires_after="2020-10-25">
+ expires_after="2021-01-03">
<owner>pastarmovj@chromium.org</owner>
<summary>
A set of policy rules that were ignored due to integrity violations while
@@ -49311,7 +50869,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.IsEnterpriseUser" enum="BooleanEnabled"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>rogerta@chromium.org</owner>
<summary>
Whether the machine is considered an enterprise user. An enterprise user is
@@ -49336,7 +50894,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.IsFullyManaged2" enum="IsFullyManagedBoolean"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>twellington@google.com</owner>
<owner>tedchcoc@chromium.org</owner>
<summary>
@@ -49383,7 +50941,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.IsManaged2" enum="BooleanEnabled"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rogerta@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -49395,7 +50953,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.IsRunningOnManagedProfileDuration" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>twellington@google.com</owner>
<owner>tedchcoc@chromium.org</owner>
<summary>
@@ -49405,7 +50963,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.Mac.IsCurrentUserDomainUser" enum="Boolean"
- expires_after="2020-08-30">
+ expires_after="2021-01-03">
<owner>avi@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -49415,7 +50973,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.Mac.IsDeviceDomainJoined" enum="Boolean"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>avi@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -49425,7 +50983,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.Mac.IsDeviceMDMEnrolledNew"
- enum="EnterpriseMacMDMStatusNew" expires_after="2020-11-01">
+ enum="EnterpriseMacMDMStatusNew" expires_after="2021-01-03">
<owner>avi@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -49436,7 +50994,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EnterpriseCheck.Mac.IsDeviceMDMEnrolledOld"
- enum="EnterpriseMacMDMStatusOld" expires_after="2020-11-01">
+ enum="EnterpriseMacMDMStatusOld" expires_after="2021-01-03">
<owner>avi@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -49465,7 +51023,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EphemeralTab.BottomSheet.CloseReason"
- enum="BottomSheet.StateChangeReason" expires_after="M86">
+ enum="BottomSheet.StateChangeReason" expires_after="M88">
<owner>donnd@chromium.org</owner>
<owner>jinsukkim@chromium.org</owner>
<summary>
@@ -49475,7 +51033,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="EphemeralTab.CloseReason"
- enum="OverlayPanel.StateChangeReason" expires_after="M86">
+ enum="OverlayPanel.StateChangeReason" expires_after="M88">
<owner>donnd@chromium.org</owner>
<owner>jinsukkim@chromium.org</owner>
<summary>
@@ -49484,7 +51042,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="EphemeralTab.Ctr" enum="BooleanOpened" expires_after="M86">
+<histogram name="EphemeralTab.Ctr" enum="BooleanOpened" expires_after="M88">
<owner>donnd@chromium.org</owner>
<owner>jinsukkim@chromium.org</owner>
<summary>
@@ -49502,7 +51060,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="EphemeralTab.DurationOpened" units="ms" expires_after="M86">
+<histogram name="EphemeralTab.DurationOpened" units="ms" expires_after="M88">
<owner>donnd@chromium.org</owner>
<owner>jinsukkim@chromium.org</owner>
<summary>
@@ -49511,7 +51069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="EphemeralTab.DurationPeeked" units="ms" expires_after="M86">
+<histogram name="EphemeralTab.DurationPeeked" units="ms" expires_after="M88">
<owner>donnd@chromium.org</owner>
<owner>jinsukkim@chromium.org</owner>
<summary>
@@ -49551,7 +51109,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.AggregatedLatency.Renderer2" units="microseconds"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initiation of any input event and the renderer receiving and
@@ -49594,7 +51152,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.AsyncTargeting.ResponseTime" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-31">
<owner>yigu@chromium.org</owner>
<summary>
Tracks how long it takes for a client to respond to an asynchronous request
@@ -50866,7 +52424,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.EndToEnd.KeyPress" units="microseconds"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>tdresser@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -50884,6 +52442,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.EndToEnd.Mouse" units="microseconds"
expires_after="2020-11-08">
+ <owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a mouse event and the resulting GPU frame
@@ -50899,6 +52458,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.EndToEnd.TouchpadPinch" units="microseconds"
expires_after="2020-10-11">
+ <owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and the resulting GPU
@@ -50907,7 +52467,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.EndToEnd.TouchpadPinch2" units="microseconds"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
+ <owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and the resulting GPU
@@ -50917,6 +52478,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.EventToRender.TouchpadPinch"
units="microseconds" expires_after="M81">
+ <owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a touchpad pinch event and RenderWidgetHost
@@ -50925,9 +52487,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.HitTest" units="microseconds"
- expires_after="2020-11-01">
- <owner>paint-dev@chromium.org</owner>
+ expires_after="2021-01-03">
<owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
<summary>
Duration of a non-resurive hitTest operation. The hit test is non-recursive
when the AllowChildFrameContent flag is clear. See also
@@ -50944,9 +52506,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.HitTestRecursive" units="microseconds"
- expires_after="2020-11-01">
- <owner>paint-dev@chromium.org</owner>
+ expires_after="2021-01-03">
<owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
<summary>
Duration of a recursive hitTest operation. The hit test is recursive when
the AllowChildFrameContent flag is set. See also Event.Latency.HitTest.
@@ -50994,7 +52556,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.OS_NO_VALIDATION.POSITIVE" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>sullivan@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51250,6 +52812,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51266,6 +52829,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollBegin.Scrollbar.GpuSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51285,6 +52849,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollBegin.Scrollbar.HandledToRendererSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51305,6 +52870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51321,6 +52887,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollBegin.Scrollbar.TimeToHandled2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51341,7 +52908,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollBegin.Scrollbar.TimeToScrollUpdateSwapBegin4"
- units="microseconds" expires_after="2020-12-01">
+ units="microseconds" expires_after="2021-01-31">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
@@ -51381,7 +52949,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin2"
- units="microseconds" expires_after="2020-11-01">
+ units="microseconds" expires_after="2021-01-03">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
@@ -51406,14 +52974,42 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.AverageLag" units="pixels"
- expires_after="M85">
- <owner>eirage@chromium.org</owner>
- <owner>nzolghadr@chromium.org</owner>
+ expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
+ This is the lag caused by the Gesture Scroll Begin Event. In each touch
+ interaction there is a GSB followed by multiple Gesture Scroll Updates,
+ which are separately logged by Event.Latency.ScrollUpdate.Touch.AverageLag.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram name="Event.Latency.ScrollBegin.Touch.AverageLagPresentation"
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.org</owner>
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ Measures an average distance that represents how the page sticks to the
+ finger when user scrolls. Only reports touch scrolling. See
+ https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
+
+ This is the lag caused by the Gesture Scroll Begin Event. In each touch
+ interaction there is a GSB followed by multiple Gesture Scroll Updates,
+ which are separately logged by
+ Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.
+
+ The difference between AverageLag and AverageLagPresentation is that the
+ former uses the Gpu Swap Begin Time as an approximation for the time the
+ frame is visible on the screen, while the latter uses the Presentation Time.
+
Team: input-dev@chromium.org.
</summary>
</histogram>
@@ -51449,7 +53045,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.GpuSwap2" units="microseconds"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between gpu starts to swap the first ScrollUpdate gesture event in a
@@ -51638,8 +53234,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
- units="microseconds" expires_after="2020-08-23">
+ units="microseconds" expires_after="2021-07-16">
<owner>tdresser@chromium.org</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Time between the first ScrollUpdate gesture event in a given scroll gesture
event sequence with wheel source, is handled on main/impl thread (specified
@@ -51670,8 +53267,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
- units="microseconds" expires_after="2020-08-02">
+ units="microseconds" expires_after="2021-06-26">
<owner>tdresser@chromium.org</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the first generated
ScrollUpdate gesture event in a given scroll gesture event sequence is
@@ -51855,7 +53453,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin4"
- units="microseconds" expires_after="2020-11-22">
+ units="microseconds" expires_after="2021-01-24">
<owner>nozlghadr@chromium.org</owner>
<summary>
Time between initial creation of a ScrollUpdate gesture event generated from
@@ -51927,6 +53525,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51943,6 +53542,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.GpuSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51961,6 +53561,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.HandledToRendererSwap2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51981,6 +53582,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.RendererSwapToBrowserNotified2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -51997,6 +53599,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Event.Latency.ScrollUpdate.Scrollbar.TimeToHandled2"
units="microseconds" expires_after="2020-12-01">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -52017,7 +53620,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollUpdate.Scrollbar.TimeToScrollUpdateSwapBegin4"
- units="microseconds" expires_after="2020-12-01">
+ units="microseconds" expires_after="2021-01-31">
+ <owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<owner>input-dev@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
@@ -52055,7 +53659,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin2"
- units="microseconds" expires_after="2020-11-29">
+ units="microseconds" expires_after="2021-01-31">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
@@ -52079,23 +53683,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLag" units="pixels"
- expires_after="2020-11-29">
- <owner>eirage@chromium.org</owner>
- <owner>nzolghadr@chromium.org</owner>
+ expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Measures an average distance that represents how the page sticks to the
finger when user scrolls. Only reports touch scrolling. See
https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
+ This is the lag caused by the Gesture Scroll Updates occourring in the
+ lifetime of a scroll interaction.
+
Team: input-dev@chromium.org.
</summary>
</histogram>
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLag.PredictionNegative"
- units="pixels" expires_after="M85">
- <owner>eirage@chromium.org</owner>
- <owner>nzolghadr@chromium.org</owner>
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Measures the negative impact on the AverageLag metric that is attributable
to scroll prediction. This value has the same units as
@@ -52114,9 +53723,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Event.Latency.ScrollUpdate.Touch.AverageLag.PredictionPositive"
- units="pixels" expires_after="M85">
- <owner>eirage@chromium.org</owner>
- <owner>nzolghadr@chromium.org</owner>
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
<summary>
Measures the positive impact on the AverageLag metric that is attributable
to scroll prediction. This value has the same units as
@@ -52133,6 +53743,79 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation"
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ Measures an average distance that represents how the page sticks to the
+ finger when user scrolls. Only reports touch scrolling. See
+ https://docs.google.com/document/d/154jddNiKtxELBvrjLz9v6A7sA1J3iwQQzySHgtY12Oo/
+
+ This is the lag caused by the Gesture Scroll Updates occurring in the
+ lifetime of a scroll interaction.
+
+ The difference between AverageLag and AverageLagPresentation is that the
+ former uses the Gpu Swap Begin Time as an approximation for the time the
+ frame is visible on the screen, while the latter uses the Presentation Time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram
+ name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.PredictionNegative"
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ Measures the negative impact on the AverageLagPresentation metric that is
+ attributable to scroll prediction. This value has the same units as
+ Event.Latency.ScrollUpdate.Touch.AverageLagPresentation but is a difference
+ between that value and what it would have been if prediction was disabled.
+
+ PredictionNegative is logged when prediction caused an increase in perceived
+ lag (i.e. the rendered position was on average further from the actual
+ location of the finger) for a given interaction/interval. The duration of
+ the interaction/interval is either 1s, or the time from when the user starts
+ scrolling to lifting the finger, whichever is smaller.
+
+ The difference between AverageLag and AverageLagPresentation is that the
+ former uses the Gpu Swap Begin Time as an approximation for the time the
+ frame is visible on the screen, while the latter uses the Presentation Time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram
+ name="Event.Latency.ScrollUpdate.Touch.AverageLagPresentation.PredictionPositive"
+ units="pixels" expires_after="M86">
+ <owner>flackr@chromium.org</owner>
+ <owner>joalmei@microsoft.com</owner>
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ Measures the positive impact on the AverageLagPresentation metric that is
+ attributable to scroll prediction. This value has the same units as
+ Event.Latency.ScrollUpdate.Touch.AverageLagPresentation but is a difference
+ between that value and what it would have been if prediction was disabled.
+
+ PredictionPostive is logged when prediction caused a decrease in perceived
+ lag (i.e. the rendered position was on average closer to the actual location
+ of the finger) for a given interaction/interval. The duration of the
+ interaction/interval is either 1s, or the time from when the user starts
+ scrolling to lifting the finger, whichever is smaller.
+
+ The difference between AverageLag and AverageLagPresentation is that the
+ former uses the Gpu Swap Begin Time as an approximation for the time the
+ frame is visible on the screen, while the latter uses the Presentation Time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
<histogram
name="Event.Latency.ScrollUpdate.Touch.BrowserNotifiedToBeforeGpuSwap2"
units="microseconds" expires_after="M85">
@@ -52249,7 +53932,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
- units="microseconds" expires_after="2020-12-06">
+ units="microseconds" expires_after="2021-02-07">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the generated
@@ -52384,7 +54067,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
- units="microseconds" expires_after="2020-10-25">
+ units="microseconds" expires_after="2020-12-27">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with wheel source, is handled on
@@ -52435,7 +54118,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
- units="microseconds" expires_after="2020-11-15">
+ units="microseconds" expires_after="2021-01-17">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the generated
@@ -52740,7 +54423,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.PassiveListeners" enum="EventResultType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dtapuska@chromium.org</owner>
<summary>
The result of handling of MouseWheel, TouchStart, TouchMove, TouchEnd events
@@ -53421,7 +55104,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Event.VizHitTest.HitTestDataIsEqualAccuracy"
- enum="BooleanAccuracy" expires_after="2020-11-01">
+ enum="BooleanAccuracy" expires_after="2021-01-03">
<owner>zandershah@google.com</owner>
<owner>event-targeting@chromium.org</owner>
<summary>
@@ -53509,7 +55192,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="EventLatency" units="microseconds"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>mohsen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -53583,7 +55266,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ExploreSites.CatalogRequestResult"
- enum="ExploreSitesCatalogUpdateRequestResult" expires_after="2020-12-15">
+ enum="ExploreSitesCatalogUpdateRequestResult" expires_after="2021-02-14">
<owner>dewittj@chromium.org</owner>
<owner>petewil@chromium.org</owner>
<summary>Results of the Explore Sites network request for a catalog.</summary>
@@ -53658,7 +55341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ExploreSites.MonthlyHostCount" units="hosts"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>dimich@chromium.org</owner>
<summary>
Number of unique hosts visited by the user during the last 30 days. Reported
@@ -53691,7 +55374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ExploreSites.RequestStatus" enum="ExploreSitesRequestStatus"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>dimich@chromium.org</owner>
<owner>freedjm@chromium.org</owner>
<summary>
@@ -53716,7 +55399,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ExploreSites.SiteTilesClickIndex2" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>dewittj@chromium.org</owner>
<owner>petewil@chromium.org</owner>
<summary>
@@ -54161,7 +55844,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ExtensionBubble.ExtensionWipeoutCount" units="Extensions"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -54783,7 +56466,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Bindings.UpdateBindingsForContextTime"
- units="microseconds" expires_after="2020-12-01">
+ units="microseconds" expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -55301,7 +56984,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.CorruptPolicyExtensionResolved" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>lazyboy@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -55658,6 +57341,78 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Extensions.DeclarativeNetRequest.RequestHeaderAdded"
+ enum="WebRequest.RequestHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the request header added by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnBeforeSendHeaders stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.DeclarativeNetRequest.RequestHeaderChanged"
+ enum="WebRequest.RequestHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the request header modified by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnBeforeSendHeaders stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.DeclarativeNetRequest.RequestHeaderRemoved"
+ enum="WebRequest.RequestHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the request header removed by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnBeforeSendHeaders stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.DeclarativeNetRequest.ResponseHeaderAdded"
+ enum="WebRequest.ResponseHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the response header added by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnHeadersReceived stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.DeclarativeNetRequest.ResponseHeaderChanged"
+ enum="WebRequest.ResponseHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the response header modified by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnHeadersReceived stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.DeclarativeNetRequest.ResponseHeaderRemoved"
+ enum="WebRequest.ResponseHeader" expires_after="2021-07-01">
+ <owner>karandeepb@chromium.org</owner>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>kelvinjiang@chromium.org</owner>
+ <summary>
+ Records the response header removed by extensions using the
+ DeclarativeNetRequest API. Recorded for each network request during the
+ OnHeadersReceived stage. Multiple samples can be recorded per request.
+ </summary>
+</histogram>
+
<histogram name="Extensions.DeclarativeNetRequest.RulesetReindexSuccessful"
enum="BooleanSuccess" expires_after="2020-12-30">
<owner>karandeepb@chromium.org</owner>
@@ -56013,7 +57768,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.DisableReason" enum="ExtensionDisableReason"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -56081,6 +57836,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Extensions.ErrorCodeFromCrxOpen" units="units"
expires_after="M85">
+ <owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
If opening the CRX file for unpacking fails, this integer is the error code
@@ -56227,7 +57983,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ExtensionAddDisabledRemotelyReason"
- enum="ExtensionUpdateCheckDataKey" expires_after="M86">
+ enum="ExtensionUpdateCheckDataKey" expires_after="2021-02-01">
<owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -56238,16 +57994,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ExtensionCacheCount" units="units"
- expires_after="M78">
- <owner>achuith@chromium.org</owner>
+ expires_after="2021-01-31">
+ <owner>burunduk@chromium.org</owner>
+ <owner>snijhara@google.com</owner>
+ <owner>managed-devices@google.com</owner>
<summary>
Number of cached extensions on disk. Reported on Chrome OS during user
session start.
</summary>
</histogram>
-<histogram name="Extensions.ExtensionCacheSize" units="MB" expires_after="M77">
- <owner>achuith@chromium.org</owner>
+<histogram name="Extensions.ExtensionCacheSize" units="MB"
+ expires_after="2021-01-31">
+ <owner>burunduk@chromium.org</owner>
+ <owner>snijhara@google.com</owner>
+ <owner>managed-devices@google.com</owner>
<summary>
Total size of .crx files in cache on disk. Reported on Chrome OS during user
session start.
@@ -56274,7 +58035,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ExtensionDisabledRemotely"
- enum="ExtensionUpdateCheckDataKey" expires_after="M86">
+ enum="ExtensionUpdateCheckDataKey" expires_after="2021-02-01">
<owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -56395,8 +58156,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Extensions.ExtensionReenabledRemotely" units="units"
- expires_after="M86">
+<histogram name="Extensions.ExtensionReenabledRemotely" units="count"
+ expires_after="2021-02-01">
<owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -56449,7 +58210,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ExtensionUninstalled" units="units"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>An extension has been uninstalled.</summary>
@@ -56574,7 +58335,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.FaviconResourceRequested" enum="ExtensionType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>archanasimha@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -56645,7 +58406,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledAndBlackListed" units="count"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>swapnilgupta@google.com</owner>
<owner>burunduk@chromium.org</owner>
<owner>managed-devices@google.com</owner>
@@ -56658,7 +58419,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Extensions.ForceInstalledCacheStatus"
enum="ExtensionInstallationDownloadingCacheStatus"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>swapnilgupta@google.com</owner>
<owner>burunduk@chromium.org</owner>
<owner>poromov@chromium.org</owner>
@@ -56669,7 +58430,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledDownloadingStage"
- enum="ExtensionInstallationDownloadingStage" expires_after="2020-11-01">
+ enum="ExtensionInstallationDownloadingStage" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56685,7 +58446,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Extensions.ForceInstalledFailureCacheStatus"
enum="ExtensionInstallationDownloadingCacheStatus"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56699,7 +58460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledFailureCrxInstallError"
- enum="ExtensionInstallationCrxInstallError" expires_after="2020-11-01">
+ enum="ExtensionInstallationCrxInstallError" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56711,8 +58472,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Extensions.ForceInstalledFailureManifestInvalidAppStatusError"
+ enum="ManifestInvalidAppStatusError" expires_after="2020-11-01">
+ <owner>swapnilgupta@google.com</owner>
+ <owner>burunduk@chromium.org</owner>
+ <owner>managed-devices@google.com</owner>
+ <summary>
+ The detailed reason why enterprise policy forced extensions had failed to
+ install because fetched update manifest was invalid due to app status error.
+ Recorded for each forced extension that failed to install after 5 minutes
+ with Extensions.ForceInstalledFailureReason2 equal to MANIFEST_INVALID and
+ Extensions.ForceInstalledFailureManifestInvalidErrorDetail2 equal to
+ BAD_APP_STATUS.
+ </summary>
+</histogram>
+
<histogram name="Extensions.ForceInstalledFailureManifestInvalidErrorDetail"
enum="ManifestInvalidError" expires_after="2020-09-01">
+ <obsolete>
+ Removed 07/2020, replaced by
+ Extensions.ForceInstalledFailureManifestInvalidErrorDetail2.
+ </obsolete>
+ <owner>swapnilgupta@google.com</owner>
+ <owner>burunduk@chromium.org</owner>
+ <owner>managed-devices@google.com</owner>
+ <summary>
+ The detailed reason why enterprise policy forced extensions had failed to
+ install because fetched update manifest was invalid. Recorded for each
+ forced extension that failed to install after 5 minutes with
+ Extensions.ForceInstalledFailureReason2 equal to MANIFEST_INVALID.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.ForceInstalledFailureManifestInvalidErrorDetail2"
+ enum="ManifestInvalidError" expires_after="2020-11-01">
<owner>swapnilgupta@google.com</owner>
<owner>burunduk@chromium.org</owner>
<owner>managed-devices@google.com</owner>
@@ -56721,11 +58514,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
install because fetched update manifest was invalid. Recorded for each
forced extension that failed to install after 5 minutes with
Extensions.ForceInstalledFailureReason2 equal to MANIFEST_INVALID.
+
+ Replaced Extensions.ForceInstalledFailureManifestInvalidErrorDetail due to
+ addition of new error BAD_APP_STATUS, and some of the errors that were
+ MISSING_UPDATE_CHECK_TAG would now be reported as BAD_APP_STATUS.
</summary>
</histogram>
<histogram name="Extensions.ForceInstalledFailureNoUpdatesInfo"
- enum="ExtensionNoUpdatesInfo" expires_after="2020-11-01">
+ enum="ExtensionNoUpdatesInfo" expires_after="2021-01-31">
<owner>snijhara@google.com</owner>
<owner>swapnilgupta@google.com</owner>
<owner>burunduk@chromium.org</owner>
@@ -56779,7 +58576,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledFailureReason3"
- enum="ExtensionInstallationFailureReason" expires_after="2020-11-01">
+ enum="ExtensionInstallationFailureReason" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ExtensionSource" -->
<owner>burunduk@chromium.org</owner>
@@ -56798,7 +58595,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledFailureSandboxUnpackFailureReason"
- enum="ExtensionUnpackFailureReason" expires_after="2020-11-01">
+ enum="ExtensionUnpackFailureReason" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56811,7 +58608,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledFailureSessionType"
- enum="SessionType" expires_after="2020-11-01">
+ enum="SessionType" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56836,7 +58633,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledFetchTries" units="retries"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56850,7 +58647,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledHttpErrorCode"
- enum="HttpResponseCode" expires_after="2020-11-01">
+ enum="HttpResponseCode" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56865,7 +58662,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledLoadTime" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56876,7 +58673,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledManifestFetchFailedFetchTries"
- units="retries" expires_after="2020-11-01">
+ units="retries" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56890,7 +58687,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledManifestFetchFailedHttpErrorCode"
- enum="HttpResponseCode" expires_after="2020-11-01">
+ enum="HttpResponseCode" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56905,7 +58702,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledManifestFetchFailedNetworkErrorCode"
- enum="NetErrorCodes" expires_after="2020-11-01">
+ enum="NetErrorCodes" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56919,7 +58716,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledNetworkErrorCode"
- enum="NetErrorCodes" expires_after="2020-11-01">
+ enum="NetErrorCodes" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56933,7 +58730,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledNotLoadedDisableReason"
- enum="ExtensionDisableReason" expires_after="2020-11-01">
+ enum="ExtensionDisableReason" expires_after="2021-01-24">
<owner>swapnilgupta@google.com</owner>
<owner>burunduk@chromium.org</owner>
<owner>managed-devices@google.com</owner>
@@ -56947,7 +58744,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Extensions.ForceInstalledSessionsWithNonMisconfigurationFailureOccured"
- enum="Boolean" expires_after="2020-11-01">
+ enum="Boolean" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56963,7 +58760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledStage"
- enum="ExtensionInstallationStage" expires_after="2020-11-01">
+ enum="ExtensionInstallationStage" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56977,8 +58774,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Extensions.ForceInstalledTime" units="ms"
+ expires_after="2020-11-01">
+ <owner>swapnilgupta@google.com</owner>
+ <owner>burunduk@chromium.org</owner>
+ <owner>managed-devices@google.com</owner>
+ <summary>
+ The amount of time elapsed during different stage of the installation
+ process for the enterprise policy forced extensions.
+ </summary>
+</histogram>
+
<histogram name="Extensions.ForceInstalledTimedOutAndNotInstalledCount"
- units="units" expires_after="2020-11-01">
+ units="units" expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -56989,7 +58797,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledTimedOutCount" units="units"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -57000,7 +58808,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.ForceInstalledTotalCandidateCount" units="units"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>burunduk@chromium.org</owner>
<owner>swapnilgupta@google.com</owner>
<owner>managed-devices@google.com</owner>
@@ -57075,7 +58883,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Functions.FailedTime" enum="ExtensionFunctions"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -57086,7 +58894,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Functions.FailedTotalExecutionTime" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -57127,7 +58935,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Functions.SucceededTime" enum="ExtensionFunctions"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -57138,7 +58946,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Functions.SucceededTotalExecutionTime" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -57151,7 +58959,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.Functions.SynchronousExecutionTime" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -57187,7 +58995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Extensions.GoogleDocOffline.AvailabilityOnResourceRequest"
- enum="GoogleDocsExtensionAvailablity" expires_after="M86">
+ enum="GoogleDocsExtensionAvailablity" expires_after="M90">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
@@ -57917,7 +59725,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>The number of platform apps loaded at profile open.</summary>
</histogram>
-<histogram name="Extensions.LoadTheme" units="units" expires_after="2020-12-01">
+<histogram name="Extensions.LoadTheme" units="units" expires_after="2021-01-31">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>The number of themes loaded at profile open.</summary>
@@ -60310,6 +62118,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="FamilyUser.SessionEngagement.Total" units="Hour of day"
+ expires_after="2021-07-14">
+ <owner>agawronska@chromium.org</owner>
+ <owner>tobyhuang@chromium.org</owner>
+ <owner>xiqiruan@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
+ <summary>
+ Records the Chrome OS user engagement hour within the current day (0-23),
+ total of weekday and weekend. Logged on
+ UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report the
+ same hour multiple times.
+ </summary>
+</histogram>
+
+<histogram name="FamilyUser.SessionEngagement.Weekday" units="Hour of day"
+ expires_after="2021-07-14">
+ <owner>agawronska@chromium.org</owner>
+ <owner>tobyhuang@chromium.org</owner>
+ <owner>xiqiruan@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
+ <summary>
+ Records the Chrome OS user engagement hour of day (0-23) on weekday. Logged
+ on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
+ the same hour multiple times.
+ </summary>
+</histogram>
+
+<histogram name="FamilyUser.SessionEngagement.Weekend" units="Hour of day"
+ expires_after="2021-07-14">
+ <owner>agawronska@chromium.org</owner>
+ <owner>tobyhuang@chromium.org</owner>
+ <owner>xiqiruan@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
+ <summary>
+ Records the Chrome OS user engagement hour of day (0-23) on weekend. Logged
+ on UsageTimeStateNotifier::UsageTimeState changes to INACTIVE. Might report
+ the same hour multiple times.
+ </summary>
+</histogram>
+
<histogram name="FaultTolerantHeap" enum="FaultTolerantHeap"
expires_after="M77">
<owner>brucedawson@chromium.org</owner>
@@ -60638,9 +62486,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.ShouldShowSurveyReason"
- enum="HappinessTrackingSurveyShouldShowSurveyReasons" expires_after="M82">
- <owner>weili@chromium.org</owner>
- <owner>robliao@chromium.org</owner>
+ enum="HappinessTrackingSurveyShouldShowSurveyReasons" expires_after="M90">
+ <owner>sauski@google.com</owner>
+ <owner>msramek@chromium.org</owner>
<summary>
Records the first reason why the Happiness Tracking Surveys (HaTS) bubble
was or was not shown. While the request to show may not meet multiple
@@ -60846,7 +62694,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="FileBrowser.FormatFileSystemType"
- enum="FileManagerFormatFileSystemType" expires_after="2020-10-25">
+ enum="FileManagerFormatFileSystemType" expires_after="2020-12-27">
<owner>austinct@chromium.org</owner>
<summary>
Chrome OS File Browser: this records the filesystem selected when formatting
@@ -61601,217 +63449,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Fingerprint.Reset.ResetContextMode"
- enum="FingerprintSensorMode" expires_after="2020-11-02">
- <owner>tomhughes@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>The mode FPMCU was in when we reset context.</summary>
-</histogram>
-
-<histogram name="Fingerprint.SetContext.SetContextMode"
- enum="FingerprintSensorMode" expires_after="2020-11-02">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>The mode FPMCU was in when we set its context.</summary>
-</histogram>
-
-<histogram name="Fingerprint.SetContext.Success" enum="BooleanSuccess"
- expires_after="2020-11-02">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>Whether setting FPMCU mode succeeded.</summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.AttemptsCountBeforeSuccess" units="count"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Counts the number of fingerprint attempts until successful screen unlock.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.AuthSuccessful" enum="BooleanSuccess"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Counts the number of times that the fingerprint match successfully vs.
- rejected.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.EnrolledFingerCount" units="count"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>Counts the number of fingers enrolled by the user.</summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.Match.Duration.Capture" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took to capture the fingerprint image in the 'match'
- case.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.Match.Duration.Matcher" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took to run matcher in the 'match' case.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.Match.Duration.Overall" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took between the detection of a finger and the 'match'
- event being sent to the AP.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.Match.PositiveMatchSecretCorrect"
- enum="BooleanCorrect" expires_after="2020-11-02">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Whether the hash of the positive match secret read from FPMCU matches the
- record.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.MatchIgnoredDueToPowerButtonPress"
- enum="BooleanIgnored" expires_after="2020-11-02">
- <owner>ravisadineni@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Whether fingerprint touch was ignored due to parallel power button press.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.MigrationForPositiveMatchSecretResult"
- enum="BooleanSuccess" expires_after="M85">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Whether migrating a record to positive match secret succeeded.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.NoMatch.Duration.Capture" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took to capture the fingerprint image in the 'no-match'
- case.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.NoMatch.Duration.Matcher" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took to run the matcher in the 'no-match' case.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.NoMatch.Duration.Overall" units="ms"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Measures the time it took between the detection of a finger and the
- 'no-match' event being sent to the AP.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.ReadPositiveMatchSecret.Success"
- enum="BooleanSuccess" expires_after="2020-11-02">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Whether successfully read positive match secret from FPMCU when needed.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Unlock.RecordFormatVersion"
- enum="FingerprintRecordFormatVersion" expires_after="2020-11-02">
- <owner>yichengli@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Format version of a fingerprint template record read from storage.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.UnlockEnabled" enum="BooleanEnabled"
- expires_after="2020-11-02">
- <owner>rsorokin@chromium.org</owner>
- <owner>jessejames@chromium.org</owner>
- <owner>cros-oac@google.com</owner>
- <summary>
- Track whether fingerprint is enabled to unlock the screen, when the user
- logs in.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Updater.NoUpdate.Duration.Overall" units="ms"
- expires_after="2020-11-02">
- <owner>tomhughes@chromium.org</owner>
- <owner>hesling@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Measures the total time it takes to run the fingerprint firmware updater
- when an update was not necessary.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Updater.Reason" enum="FingerprintUpdaterReason"
- expires_after="2020-11-02">
- <owner>tomhughes@chromium.org</owner>
- <owner>hesling@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Tracks the fingerprint firmware updater's reason(s) for re-flashing.
- </summary>
-</histogram>
-
-<histogram name="Fingerprint.Updater.Status" enum="FingerprintUpdaterStatus"
- expires_after="2020-11-02">
- <owner>tomhughes@chromium.org</owner>
- <owner>hesling@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>Tracks the fingerprint firmware updater's overall status.</summary>
-</histogram>
-
-<histogram name="Fingerprint.Updater.Update.Duration.Overall" units="ms"
- expires_after="2020-11-02">
- <owner>tomhughes@chromium.org</owner>
- <owner>hesling@chromium.org</owner>
- <owner>chromeos-fingerprint@google.com</owner>
- <summary>
- Measures the total time it takes to run the fingerprint firmware updater
- when an update was necessary.
- </summary>
-</histogram>
-
<histogram name="FirstRun.IOSFirebaseConfigured" enum="FirebaseConfiguredState"
expires_after="M87">
<owner>ghendel@chromium.org</owner>
@@ -61820,7 +63457,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="FirstRun.LaunchSource" enum="FirstRunLaunchSource"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>jlebel@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
Counts the number of times First Run experience was triggered by another
@@ -61911,7 +63549,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="FirstRun.NewUserExperience.NtpBackgroundInteraction"
- enum="NuxNtpBackgroundInteractions" expires_after="2020-11-15">
+ enum="NuxNtpBackgroundInteractions" expires_after="2021-01-17">
<owner>hcarmona@chromium.org</owner>
<owner>johntlee@chromium.org</owner>
<summary>
@@ -62067,6 +63705,41 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Time to retrieve the fallback fonts on the system.</summary>
</histogram>
+<histogram name="Fonts.AccessAPI.EnumerationCache.Dwrite.FamilyCount"
+ units="families" expires_after="M90">
+ <owner>oyiptong@chromium.org</owner>
+ <owner>storage-dev@chromium.org</owner>
+ <summary>
+ Records the number of font families observed by the font enumeration cache
+ as part of the Font Access API.
+ </summary>
+</histogram>
+
+<histogram
+ name="Fonts.AccessAPI.EnumerationCache.Dwrite.GetSystemFontCollectionResult"
+ enum="Hresult" expires_after="M90">
+ <owner>oyiptong@chromium.org</owner>
+ <owner>storage-dev@chromium.org</owner>
+ <summary>
+ Records errors returned when obtaining the list of system fonts from
+ DirectWrite's GetSystemFontCollection.
+ </summary>
+</histogram>
+
+<histogram
+ name="Fonts.AccessAPI.EnumerationCache.Dwrite.MostFrequentEnumerationFailure"
+ enum="Hresult" expires_after="M90">
+ <owner>oyiptong@chromium.org</owner>
+ <owner>storage-dev@chromium.org</owner>
+ <summary>
+ Records the most frequent failure to obtain metadata for a font family when
+ enumerating fonts as part of the Font Access API. Recorded in
+ FontEnumerationCacheWin when all fonts have been enumerated. Values are
+ Windows HRESULT error codes, and also includes custom values specific to
+ this implementation.
+ </summary>
+</histogram>
+
<histogram name="ForceDiceMigration.RevokeTokenAction" enum="RevokeTokenAction"
expires_after="2020-10-04">
<owner>msalama@chromium.org</owner>
@@ -62185,28 +63858,37 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Gaia.BadRequestTypeForOAuth2AccessToken"
- enum="OAuth2BadRequestError" expires_after="M86">
+ enum="OAuth2BadRequestError" expires_after="never">
+<!-- expires-never: Used to monitor OAuth code health and debug issues. -->
+
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
<summary>
- Detailed error type in bad requests for OAuth2 refresh tokens.
+ Detailed error type in bad requests for OAuth2 access tokens. Recorded when
+ a HTTP 400 is received in response to a access token request.
</summary>
</histogram>
<histogram name="Gaia.ResponseCodesForOAuth2AccessToken"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="M86">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="never">
+<!-- expires-never: Used to monitor OAuth code health and debug issues. -->
+
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
<summary>
URLFetcher response codes for OAuth2AccessToken. Positive values are HTTP
- status codes, negative values are network error codes.
+ status codes, negative values are network error codes. Recorded on responses
+ to OAuth access token requests.
</summary>
</histogram>
<histogram name="Gaia.SuccessCountBeforeBadRequestForOAuth2AccessToken"
units="requests" expires_after="M86">
+ <obsolete>
+ No longer recorded as of M86.
+ </obsolete>
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
@@ -62231,7 +63913,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Gamepad.KnownGamepadConnectedWithId"
- enum="GamepadVendorProduct" expires_after="2020-12-01">
+ enum="GamepadVendorProduct" expires_after="2021-01-31">
<owner>mattreynolds@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
@@ -62248,7 +63930,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Gamepad.UnknownGamepadConnected" enum="GamepadSource"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mattreynolds@chromium.org</owner>
<owner>deviceapi-team@google.com</owner>
<summary>
@@ -62259,7 +63941,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.AccountMappingMessageReceived" enum="BooleanReceived"
- expires_after="2020-08-25">
+ expires_after="M88">
<owner>peter@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -62306,7 +63988,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.CheckinRequestStatusNetError" enum="NetErrorCodes"
- expires_after="2020-08-30">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -62413,7 +64095,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.Crypto.GCMDatabaseUpgradeResult" enum="Boolean"
- expires_after="M86">
+ expires_after="2021-07-21">
<owner>nator@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -62435,7 +64117,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.Crypto.InitKeyStoreSuccessRate" enum="BooleanSuccess"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>zea@chromium.org</owner>
<summary>
@@ -62672,7 +64354,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.RegistrationCacheStatus" enum="GCMRegistrationCacheStatus"
- expires_after="M86">
+ expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -62705,7 +64387,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.RegistrationRequest.NetErrorCode" enum="NetErrorCodes"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>peter@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
@@ -62715,7 +64397,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.RegistrationRequestStatus"
- enum="GCMRegistrationRequestStatus" expires_after="2020-11-01">
+ enum="GCMRegistrationRequestStatus" expires_after="2021-01-03">
<owner>peter@chromium.org</owner>
<summary>
Status code of the outcome of a GCM registration request. The Unknown error
@@ -62828,7 +64510,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GCM.SendWebPushMessageResult" enum="SendWebPushMessageResult"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>alexchau@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -62919,7 +64601,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Number of retries before a GCM unregistration succeeds.</summary>
</histogram>
-<histogram name="GCM.UserSignedIn" enum="Boolean" expires_after="2020-10-18">
+<histogram name="GCM.UserSignedIn" enum="Boolean" expires_after="2021-01-10">
<owner>jianli@chromium.org</owner>
<summary>
Indicates whether the user was signed in when GCM started up.
@@ -63347,7 +65029,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GestureNavigation.Activated" enum="GestureNavigationDirection"
- expires_after="2020-09-23">
+ expires_after="2021-01-24">
<owner>jinsukkim@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -63359,7 +65041,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GestureNavigation.Cancelled" enum="GestureNavigationDirection"
- expires_after="2020-09-23">
+ expires_after="2021-01-24">
<owner>jinsukkim@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -63370,7 +65052,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GestureNavigation.Completed" enum="GestureNavigationDirection"
- expires_after="2020-09-23">
+ expires_after="2021-01-24">
<owner>jinsukkim@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -63380,7 +65062,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GestureNavigation.Reversed" enum="GestureNavigationDirection"
- expires_after="2020-09-23">
+ expires_after="2021-01-24">
<owner>jinsukkim@chromium.org</owner>
<owner>chrome-android-app@chromium.org</owner>
<summary>
@@ -63595,6 +65277,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="GoogleUpdate.InfoBar.InternalStorageSizeAvailable" units="MB"
expires_after="M85">
+ <obsolete>
+ Removed 6/2020.
+ </obsolete>
<owner>yfriedman@chromium.org</owner>
<owner>dfalcantara@chromium.org</owner>
<owner>khushalsagar@chromium.org</owner>
@@ -63730,6 +65415,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="GoogleUpdate.Notification.LaunchEvent"
enum="GoogleUpdateNotificationLaunchEvent" expires_after="2020-06-26">
+ <obsolete>
+ Removed 08/2020
+ </obsolete>
<owner>xingliu@chromium.org</owner>
<summary>
(Android-only) Records events when try to launch the update work flow via an
@@ -63900,7 +65588,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.ANGLE.DisplayInitializeMS" units="ms"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
@@ -64083,7 +65771,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.BlacklistFeatureTestResults"
- enum="GPUBlacklistFeatureTestResults" expires_after="2020-11-15">
+ enum="GPUBlacklistFeatureTestResults" expires_after="2021-01-17">
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
@@ -64181,7 +65869,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.ContextLost" enum="ContextLostReason"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>sievers@chromium.org</owner>
<summary>
The reason a GPU command buffer context of a given type was lost.
@@ -64298,8 +65986,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="GPU.DirectComposition.ApprovedPresentDuration" units="ms"
+ expires_after="2021-01-03">
+ <owner>sunnyps@chromium.org</owner>
+ <owner>zmo@chromium.org</owner>
+ <summary>
+ If the system approves a swap chain's custom present duration request, this
+ is the approved custom present duration. If the swap chain's custom present
+ duration request is not approved, this is zero.
+ </summary>
+</histogram>
+
<histogram name="GPU.DirectComposition.CompositionMode"
- enum="DxgiFramePresentationMode" expires_after="2020-10-25">
+ enum="DxgiFramePresentationMode" expires_after="2021-01-03">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64308,6 +66007,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="GPU.DirectComposition.CompositionMode.MainBuffer"
+ enum="DxgiFramePresentationMode" expires_after="2021-08-17">
+ <owner>zmo@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ How the Desktop Window Manager presented Chrome's main DirectComposition
+ layer to the screen.
+ </summary>
+</histogram>
+
<histogram name="GPU.DirectComposition.CreateSwapChainForComposition"
enum="Hresult" expires_after="M85">
<owner>zmo@chromium.org</owner>
@@ -64318,7 +66027,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DirectComposition.CreateVideoProcessorEnumerator"
- enum="Hresult" expires_after="2020-11-01">
+ enum="Hresult" expires_after="2021-01-10">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64377,7 +66086,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DirectComposition.DcompDeviceCreateSurface" enum="Hresult"
- expires_after="2020-11-01">
+ expires_after="2021-01-10">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64715,7 +66424,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DirectComposition.UploadVideoImages.CreateCopyTexture"
- enum="Hresult" expires_after="2020-11-01">
+ enum="Hresult" expires_after="2021-01-10">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64725,7 +66434,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DirectComposition.UploadVideoImages.CreateStagingTexture"
- enum="Hresult" expires_after="2020-11-01">
+ enum="Hresult" expires_after="2021-01-10">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64735,7 +66444,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DirectComposition.VideoDeviceCreateVideoProcessor"
- enum="Hresult" expires_after="2020-11-01">
+ enum="Hresult" expires_after="2021-01-10">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64781,7 +66490,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2020-11-30">
- <owner>jonahr@google.org</owner>
+ <owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The time we spend in GLES2DecoderImpl::DoLinkProgram. Related to how much
@@ -64805,7 +66514,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.EGLDisplayType" enum="EGLDisplayType"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>jbauman@chromium.org</owner>
<summary>The display type used to ask for an EGLDisplay.</summary>
</histogram>
@@ -64849,7 +66558,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GLImplementation" enum="GLImplementation"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -64972,7 +66681,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GPUProcessExitCode" enum="GPUProcessExitCode"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>jbauman@chromium.org</owner>
<summary>
Counts for the exit codes returned by the GPU process when it terminated.
@@ -64980,7 +66689,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GPUProcessInitialized" enum="BooleanSuccess"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>vmiura@chromium.org</owner>
<summary>
Whether the GPU process successfully initialized or failed and then exitted
@@ -65000,7 +66709,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GPUProcessLaunchTime" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>vmiura@chromium.org</owner>
<summary>
Startup time of the GPU process as measured by the GPU process host.
@@ -65057,7 +66766,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GPUProcessTerminationStatus2" enum="GpuTerminationStatus"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>vmiura@chromium.org</owner>
<summary>
Counts for each time the GPU Process Host detects the process dies.
@@ -65065,6 +66774,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.GrContextMemoryKb" units="KB" expires_after="2020-05-31">
+ <obsolete>
+ Removed August 2020. Replaced by Memory.GPU.PeakMemoryAllocationSource.
+ </obsolete>
<owner>enne@chromium.org</owner>
<owner>khushalsagar@chromium.org</owner>
<summary>
@@ -65147,7 +66859,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.IOSurface.CreateTime" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to IOSurfaceCreate to complete.
@@ -65297,7 +67009,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.OopRaster.GlyphCacheMiss"
- enum="OopRasterGlyphCacheMissType" expires_after="2020-12-06">
+ enum="OopRasterGlyphCacheMissType" expires_after="2021-02-07">
<owner>khushalsagar@chromium.org</owner>
<summary>
During OutOfProcess(Oop) raster, the renderer generates and sends the
@@ -65332,7 +67044,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2020-10-11">
+<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2021-01-03">
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -65344,6 +67056,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="GPU.Output.MaxLuminance" units="lumens"
expires_after="2020-08-30">
+ <obsolete>
+ Removed 07/2020. No longer used.
+ </obsolete>
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -65375,7 +67090,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.HardwareAccelerated"
- enum="GPUProcessLifetimeEvent" expires_after="2020-11-01">
+ enum="GPUProcessLifetimeEvent" expires_after="2021-01-10">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
@@ -65386,7 +67101,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.SwiftShader"
- enum="GPUProcessLifetimeEvent" expires_after="2020-10-04">
+ enum="GPUProcessLifetimeEvent" expires_after="2020-12-27">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
@@ -65634,7 +67349,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.SharedImage.ContentConsumed" enum="BooleanMatched"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>penghuang@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
@@ -65734,7 +67449,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.SwapTimeUs" units="microseconds"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
@@ -65787,8 +67502,60 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Counts user actions when a 3D API info bar is raised.</summary>
</histogram>
+<histogram name="GPU.Vulkan.CreateExternalVkSemaphore" units="microseconds"
+ expires_after="2021-01-31">
+ <owner>backer@chromium.org</owner>
+ <owner>penghuang@chromium.org</owner>
+ <owner>vasilyt@chromium.org</owner>
+ <summary>
+ The amount of time required to create an external VkSemaphore. Only reported
+ for platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="GPU.Vulkan.GetVkSemaphoreHandle" units="microseconds"
+ expires_after="2021-01-31">
+ <owner>backer@chromium.org</owner>
+ <owner>penghuang@chromium.org</owner>
+ <owner>vasilyt@chromium.org</owner>
+ <summary>
+ The amount of time required to get a file handle from a VkSemaphore. Only
+ reported for platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="GPU.Vulkan.ImportSemaphoreGLPerSwapBuffers" units="units"
+ expires_after="2021-01-31">
+ <owner>backer@chromium.org</owner>
+ <owner>penghuang@chromium.org</owner>
+ <owner>vasilyt@chromium.org</owner>
+ <summary>The number of semaphores imported into GL per frame.</summary>
+</histogram>
+
+<histogram name="GPU.Vulkan.ImportVkSemaphoreHandle" units="microseconds"
+ expires_after="2021-01-31">
+ <owner>backer@chromium.org</owner>
+ <owner>penghuang@chromium.org</owner>
+ <owner>vasilyt@chromium.org</owner>
+ <summary>
+ The amount of time required to import a VkSemaphore from a file handle. Only
+ reported for platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="GPU.Vulkan.ImportVkSemaphoreIntoGL" units="microseconds"
+ expires_after="2021-01-31">
+ <owner>backer@chromium.org</owner>
+ <owner>penghuang@chromium.org</owner>
+ <owner>vasilyt@chromium.org</owner>
+ <summary>
+ The amount of time required to import a VkSemaphore into GL. Only reported
+ for platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
<histogram name="GPU.Vulkan.QueueSubmitPerSwapBuffers" units="units"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
@@ -65908,7 +67675,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GPU.WatchdogThread.Timeout" enum="GpuWatchdogTimeoutEvent"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
<owner>magchen@chromium.org</owner>
@@ -66143,7 +67910,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Graphics.Smoothness.FrameSequenceLength" units="count"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>sadrul@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -66152,6 +67919,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Graphics.Smoothness.Jank" units="%" expires_after="2021-08-01">
+ <owner>sadrul@chromium.org</owner>
+ <owner>mjzhang@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Tracks the percent of janks for a particular sequence of frames (e.g. during
+ scroll, animation, etc.). This is reported in various sub-metrics with
+ suffixes describing the type of the sequence (e.g. TouchScroll etc.).
+
+ Jank is measured by tracking the number of abrupt increases in frame
+ presentation interval, divided by the total number of frames expected to be
+ produced and displayed. The lower this number is, the less the smoothness
+ varies over time.
+
+ Note that this metric is reported only when there are sufficient number of
+ frames (&gt;= 100). If there are sequences with fewer frames, then these are
+ aggregated until there are enough frames to produce the metric.
+ </summary>
+</histogram>
+
<histogram name="Graphics.Smoothness.PercentDroppedFrames" units="%"
expires_after="2020-12-31">
<owner>sadrul@chromium.org</owner>
@@ -66316,7 +68103,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="GridTabSwitcher.FramePerSecond" units="frame/sec"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -66336,7 +68123,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="GridTabSwitcher.ThumbnailFetchingResult"
- enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2020-11-29">
+ enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2021-02-14">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -66347,6 +68134,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true" name="GwpAsan.AllocatorOom.Malloc" units="allocations"
expires_after="2020-05-10">
+ <obsolete>
+ Removed 07/2020; currently unowned, and histogram gathering was causing
+ crashes.
+ </obsolete>
<owner>vtsyrklevich@chromium.org</owner>
<owner>dynamic-tools@google.com</owner>
<summary>
@@ -66358,6 +68149,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true" name="GwpAsan.AllocatorOom.PartitionAlloc"
units="allocations" expires_after="2020-05-10">
+ <obsolete>
+ Removed 07/2020; currently unowned, and histogram gathering was causing
+ crashes.
+ </obsolete>
<owner>vtsyrklevich@chromium.org</owner>
<owner>dynamic-tools@google.com</owner>
<summary>
@@ -66918,6 +68713,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="History.ClearBrowsingData.Duration.SlowTasks180sStoragePartition"
+ enum="StoragePartitionRemoverTasks" expires_after="never">
+<!-- expires-never: tracked as an important privacy metric. -->
+
+ <owner>dullweber@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <summary>
+ Record tasks from StoragePartition that took more than 180s to finish.
+ </summary>
+</histogram>
+
<histogram name="History.ClearBrowsingData.Duration.TimeRangeDeletion"
units="ms" expires_after="never">
<!-- expires-never: tracked as an important privacy metric. -->
@@ -66931,6 +68738,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="History.ClearBrowsingData.FailedTasksChrome"
+ enum="ChromeBrowsingDataRemoverTasks" expires_after="2021-02-01">
+ <owner>dullweber@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <summary>
+ Records tasks from ChromeBrowsingDataRemoverDelegate that did not complete
+ successfully, i.e. where some data that was supposed to be deleted was left
+ behind.
+ </summary>
+</histogram>
+
<histogram
name="History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated"
enum="BooleanShown" expires_after="M81">
@@ -67171,7 +68989,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.DomainCount1Day" units="domains"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>mjzhang@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
@@ -67196,7 +69014,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.DomainCount28Day" units="domains"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>mjzhang@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
@@ -67222,7 +69040,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.DomainCount7Day" units="domains"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>mjzhang@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
@@ -67248,7 +69066,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.DomainCountQueryTime" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>mjzhang@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
@@ -67420,7 +69238,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryDBItemCount" units="units"
- expires_after="2020-02-16">
+ expires_after="2021-07-30">
<owner>sky@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -67436,7 +69254,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="2020-02-16">
<owner>sky@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
- <owner>gab@chromium.org</owner>
<summary>
Number of items in in-memory keyword_search_terms table. Recorded on profile
open.
@@ -67445,6 +69262,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="History.InMemoryDBKeywordTermsPopulate" units="ms"
expires_after="2020-02-16">
+ <obsolete>
+ Removed July 2020 as not deemed necessary.
+ </obsolete>
<owner>sky@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -67464,6 +69284,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="History.InMemoryDBKeywordURLPopulate" units="ms"
expires_after="2020-02-16">
+ <obsolete>
+ Removed July 2020 as not deemed necessary.
+ </obsolete>
<owner>sky@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -67473,7 +69296,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryDBPopulate" units="units"
- expires_after="2020-02-16">
+ expires_after="2021-07-30">
<owner>sky@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -67502,6 +69325,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="History.InMemoryURLCacheSize" units="bytes"
expires_after="M86">
+ <obsolete>
+ Removed August 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<summary>
Size of on-disk cache for in-memory url index. Recorded on profile open when
@@ -67510,6 +69336,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryURLChars" units="units" expires_after="M86">
+ <obsolete>
+ Removed August 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<summary>
Number of items in the in-memory url index char_word_map_. Recorded on
@@ -67519,8 +69348,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryURLHistoryItems" units="units"
- expires_after="M86">
+ expires_after="2021-08-03">
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Number of history items in the in-memory url index. Recorded on profile open
when restoring from a cache file and again shortly after profile open when
@@ -67529,7 +69359,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryURLIndexingTime" units="ms"
- expires_after="2019-08-30">
+ expires_after="2021-03-30">
<owner>mpearson@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -67540,6 +69370,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="History.InMemoryURLIndexRestoreCacheTime" units="ms"
expires_after="2019-08-30">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -67550,6 +69383,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="History.InMemoryURLIndexSaveCacheTime" units="ms"
expires_after="2019-08-30">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -67560,6 +69396,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.InMemoryURLWords" units="units" expires_after="M86">
+ <obsolete>
+ Removed August 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<summary>
Number of items in in-memory url index word_map_. Recorded on profile open
@@ -67580,8 +69419,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.MonthlyHostCount" units="hosts"
- expires_after="2020-02-16">
- <owner>sbirch@google.com</owner>
+ expires_after="2021-01-31">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Unique hostnames in History database urls table with last-visit times in the
last 30 days. Metrics are logged on initialization of the History DB on 0.3%
@@ -67591,8 +69431,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="History.MonthlyURLCount" units="urls" expires_after="M81">
- <owner>sbirch@google.com</owner>
+<histogram name="History.MonthlyURLCount" units="urls"
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Unique URLs in History database urls table with last-visit times in the last
30 days. Metrics are logged on initialization of the History DB on 0.3% of
@@ -67601,8 +69443,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.MonthlyVisitCount" units="visits"
- expires_after="2020-02-23">
- <owner>sbirch@google.com</owner>
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Number of rows in History visits table with visit times in the last 30 days.
Metrics are logged on initialization of the History DB on 1% of starts.
@@ -67768,16 +69611,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="History.URLTableCount" units="units" expires_after="M77">
- <owner>sbirch@google.com</owner>
+<histogram name="History.URLTableCount" units="units"
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Number of rows in urls table in History DB. Metrics are logged on
initialization of the History DB on 1% of starts.
</summary>
</histogram>
-<histogram name="History.VisitTableCount" units="units" expires_after="M77">
- <owner>sbirch@google.com</owner>
+<histogram name="History.VisitTableCount" units="units"
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Number of rows in visits table in History DB. Metrics are logged on
initialization of the History DB on 1% of starts.
@@ -67785,8 +69632,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.WeeklyHostCount" units="units"
- expires_after="2020-02-16">
- <owner>sbirch@google.com</owner>
+ expires_after="2021-01-31">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Unique hostnames in History database urls table with last-visit times in the
last 7 days. Metrics are logged on initialization of the History DB on 0.3%
@@ -67795,8 +69643,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="History.WeeklyURLCount" units="units"
- expires_after="2020-03-01">
- <owner>sbirch@google.com</owner>
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Unique URLs in History database urls table with last-visit times in the last
7 days. Metrics are logged on initialization of the History DB on 0.3% of
@@ -67804,8 +69653,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="History.WeeklyVisitCount" units="units" expires_after="M77">
- <owner>sbirch@google.com</owner>
+<histogram name="History.WeeklyVisitCount" units="units"
+ expires_after="2020-11-30">
+ <owner>mpearson@chromium.org</owner>
+ <owner>sky@chromium.org</owner>
<summary>
Number of rows in History visits table with visit times in the last 7 days.
Metrics are logged on initialization of the History DB on 1% of starts.
@@ -68076,7 +69927,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="HttpCache.AccessToDone" units="ms" expires_after="2020-10-25">
+<histogram name="HttpCache.AccessToDone" units="ms" expires_after="2020-12-27">
<owner>morlovich@chromium.org</owner>
<summary>
For every http cache transaction with a pattern (see HttpCache.Pattern), the
@@ -68108,7 +69959,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2020-11-08">
+<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2021-01-10">
<owner>morlovich@chromium.org</owner>
<summary>
For http cache transactions in which a network request was sent, the time
@@ -68214,7 +70065,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="HttpCache.Pattern" enum="HttpCachePattern"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>morlovich@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>For each http cache transaction, the recorded pattern.</summary>
@@ -68353,19 +70204,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Hyphenation.Open" units="ms" expires_after="M77">
- <obsolete>
- Removed as of 06/2019.
- </obsolete>
+<histogram name="Hyphenation.Open" units="ms" expires_after="2020-12-31">
<owner>kojii@chromium.org</owner>
+ <owner>layout-dev@chromium.org</owner>
<summary>The time it takes to open a hyphenation dictionary.</summary>
</histogram>
-<histogram name="Hyphenation.Open.File" units="ms" expires_after="M77">
- <obsolete>
- Removed as of 06/2019.
- </obsolete>
+<histogram name="Hyphenation.Open.File" units="ms" expires_after="2020-12-31">
<owner>kojii@chromium.org</owner>
+ <owner>layout-dev@chromium.org</owner>
<summary>The time it takes to open a hyphenation dictionary file.</summary>
</histogram>
@@ -68415,7 +70262,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ImageAnnotationService.AccessibilityV1.ClientResult"
- enum="ImageAnnotationServiceClientResult" expires_after="2020-03-31">
+ enum="ImageAnnotationServiceClientResult" expires_after="2021-01-24">
+ <owner>dmazzoni@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>martis@chromium.org</owner>
<summary>
@@ -68497,7 +70345,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ImageAnnotationService.AccessibilityV1.JsonParseSuccess"
- enum="BooleanSuccess" expires_after="2020-03-31">
+ enum="BooleanSuccess" expires_after="2020-10-31">
+ <owner>dmazzoni@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>martis@chromium.org</owner>
<summary>
@@ -68619,7 +70468,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ImageFetcher.Events" enum="ImageFetcherEvent"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -68650,7 +70499,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromNativeTimeJava" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -68689,7 +70538,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ImageFetcher.RequestStatusCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-01">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-02-14">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -68712,8 +70561,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ImageLoader.Client.Cache.HitMiss" enum="BooleanCacheHit"
expires_after="2019-01-01">
- <owner>chromeos-files-app@google.com</owner>
<owner>tapted@chromium.org</owner>
+ <owner>chromeos-files-app@google.com</owner>
<summary>
For each image load request that requested caching, records whether or not
it was found in the client-side cache. A hit means the request was not
@@ -68723,8 +70572,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ImageLoader.Client.Cache.Usage" units="%"
expires_after="2019-01-01">
- <owner>chromeos-files-app@google.com</owner>
<owner>tapted@chromium.org</owner>
+ <owner>chromeos-files-app@google.com</owner>
<summary>
Returns the percentage of the client-side cache that is used for loading
images, before they are sent to the ImageLoader extension. Expressed as a
@@ -68734,8 +70583,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ImageLoader.Client.Cached" enum="BooleanRequested"
expires_after="2019-01-01">
- <owner>chromeos-files-app@google.com</owner>
<owner>tapted@chromium.org</owner>
+ <owner>chromeos-files-app@google.com</owner>
<summary>
For each image load request records whether or not it requested caching.
</summary>
@@ -68785,6 +70634,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Import.NumberOfImportedPasswords.Firefox" units="units"
expires_after="M86">
+ <obsolete>
+ Removed 07/2020.
+ </obsolete>
<owner>vasilii@chromium.org</owner>
<owner>hurims@gmail.com</owner>
<summary>
@@ -69257,8 +71109,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="InputMethod.ActiveCount" units="units" expires_after="M85">
- <owner>shuchen@chromium.org</owner>
+<histogram name="InputMethod.ActiveCount" units="units"
+ expires_after="2021-03-31">
+ <owner>myy@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
<summary>
The number of active input methods. Recorded when the user logs in to Chrome
OS or each cold start of Chrome on Android. The active input methods are
@@ -69267,6 +71121,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.Assistive.Autocorrect.Count"
+ enum="IMETextInputClient" expires_after="2021-01-01">
+ <owner>myy@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Tracks when assistive autocorrect is performed by a text input client.
+ Recorded when autocorrect is triggered by users with the feature enabled
+ using a text input client that's being tracked.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Assistive.Autocorrect.Delay" units="ms"
+ expires_after="2021-01-01">
+ <owner>jopalmer@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Tracks time between when autocorrect occurs and user clicks to undo the
+ autocorrect.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.Assistive.Coverage" enum="IMEAssistiveAction"
expires_after="2021-01-01">
<owner>jiwan@google.com</owner>
@@ -69289,6 +71164,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.Assistive.Disabled.Emoji"
+ enum="IMEAssistiveDisabledReason" expires_after="2021-01-01">
+ <owner>myy@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The reason for emoji suggestions not being shown to users. Recorded when the
+ surrounding text could trigger emoji suggestions but the feature was
+ disabled. Only the first applicable reason in IMEAssistiveDisabledReason
+ enum is recorded per occurrence.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Assistive.Disabled.PersonalInfo"
+ enum="IMEAssistiveDisabledReason" expires_after="2021-01-01">
+ <owner>myy@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The reason for personal information suggestions not being shown to users.
+ Recorded when the surrounding text could trigger personal information
+ suggestions but the feature was disabled. Only the first applicable reason
+ in IMEAssistiveDisabledReason enum is recorded per occurrence.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.Assistive.EmojiSuggestAddition.AcceptanceIndex"
units="times" expires_after="2021-01-01">
<owner>myy@google.com</owner>
@@ -69323,6 +71222,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.Assistive.TimeToAccept.Emoji" units="ms"
+ expires_after="2021-01-01">
+ <owner>myy@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The duration from when emoji suggestions show up to when users accept a
+ suggestion. Recorded when users accept the suggestion.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Assistive.TimeToAccept.PersonalInfo" units="ms"
+ expires_after="2021-01-01">
+ <owner>jiwan@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The duration from when personal info suggestions show up to when users
+ accept a suggestion. Recorded when users accept the suggestion.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Assistive.TimeToDismiss.Emoji" units="ms"
+ expires_after="2021-01-01">
+ <owner>myy@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The duration from when emoji suggestions show up to when users dismiss a
+ suggestion. Recorded when users dismiss the suggestion.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Assistive.TimeToDismiss.PersonalInfo" units="ms"
+ expires_after="2021-01-01">
+ <owner>jiwan@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The duration from when personal info suggestions show up to when users
+ dismiss a suggestion. Recorded when users dismiss the suggestion.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.Assistive.UserPref.Emoji" enum="BooleanEnabled"
expires_after="2021-01-01">
<owner>myy@google.com</owner>
@@ -69346,13 +71285,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.AutoCorrectLevel" enum="IMECorrectionLevel"
- expires_after="2020-04-01">
+ expires_after="2021-04-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>The auto-correction level for suggestion engine.</summary>
</histogram>
<histogram name="InputMethod.Category" enum="InputMethodCategory"
- expires_after="2020-04-01">
+ expires_after="2021-04-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The breakdown of input method usage by input method category. Recorded when
@@ -69361,7 +71302,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.Commit.Index" units="units"
- expires_after="2020-04-01">
+ expires_after="2021-04-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The suggestion index (1-based) of the suggestion list item which user
@@ -69381,14 +71323,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.Commit.Type2" enum="IMECommitType2"
- expires_after="M85">
+ expires_after="M95">
<owner>shuchen@chromium.org</owner>
<summary>
The suggestion accuracy type which the user chooses to commit.
</summary>
</histogram>
-<histogram name="InputMethod.CommitLength" units="units" expires_after="M85">
+<histogram name="InputMethod.CommitLength" units="units" expires_after="M95">
<owner>shuchen@chromium.org</owner>
<summary>The number of characters committed with composition text.</summary>
</histogram>
@@ -69413,6 +71355,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.Handwriting.AlternateMultiToSingle" units="index"
+ expires_after="2021-08-07">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The index of the selected suggestion from the handwriting alternative
+ suggestion menu. This metric is recorded when the handwriting text
+ highlighted is multiple words, and the selected suggestion is a single word.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Handwriting.AlternateSelected" units="index"
+ expires_after="2021-08-07">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The index of the selected suggestion from the handwriting alternative
+ suggestion menu. The metric is recorded when the suggestion is selected.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Handwriting.AlternateSingleToMulti" units="index"
+ expires_after="2021-08-07">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The index of the selected suggestion from the handwriting alternative
+ suggestion menu. This metric is recorded when the handwriting text
+ highlighted is a single word, and the selected suggestion is mutliple words.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.Handwriting.CharsEdited10s" units="chars"
expires_after="2020-09-01">
<owner>shend@chromium.org</owner>
@@ -69455,7 +71429,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="InputMethod.ID2" enum="InputMethodID2" expires_after="M85">
+<histogram name="InputMethod.ID2" enum="InputMethodID2" expires_after="M95">
<owner>shuchen@chromium.org</owner>
<summary>
The breakdown of input method usage by input method IDs. Recorded when the
@@ -69464,7 +71438,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.ImeMenu.ActivationChanged"
- enum="BooleanActivation" expires_after="M85">
+ enum="BooleanActivation" expires_after="M95">
<owner>azurewei@chromium.org</owner>
<owner>shuchen@chromium.org</owner>
<summary>
@@ -69473,7 +71447,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.ImeMenu.EmojiHandwritingVoiceButton"
- enum="ImeMenuButtonType" expires_after="M85">
+ enum="ImeMenuButtonType" expires_after="M95">
<owner>azurewei@chromium.org</owner>
<owner>shuchen@chromium.org</owner>
<summary>
@@ -69483,13 +71457,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.ImeSwitch" enum="IMESwitchType"
- expires_after="M85">
+ expires_after="M95">
<owner>shuchen@chromium.org</owner>
<summary>The trigger type of input method switches by user.</summary>
</histogram>
<histogram name="InputMethod.KeyEventLatency" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>Time taken by the engine to handle a key event.</summary>
@@ -69506,6 +71480,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="InputMethod.ModeChangeKeyAction" enum="ModeChangeKeyAction"
expires_after="2019-12-31">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>The result of the user pressing the mode change key.</summary>
</histogram>
@@ -69523,13 +71498,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.Mojo.Extension.Event" enum="IMEExtensionMojoEvent"
- expires_after="2020-04-01">
+ expires_after="2021-04-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>The events of Mojo service in the IME Extension.</summary>
</histogram>
<histogram name="InputMethod.Mojo.Extension.Rulebased.ProcessLatency"
units="ms" expires_after="2019-12-31">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The time taken to process a rulebased request via the IME Mojo service
@@ -69539,6 +71516,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="InputMethod.Mojo.Extension.ServiceInitLatency" units="ms"
expires_after="2019-12-31">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The time taken to initialize the IME Mojo service in the IME extension. It's
@@ -69549,7 +71527,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.PkCommit.Index" units="units"
- expires_after="2020-04-01">
+ expires_after="2021-04-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The suggestion index (1-based) of the suggestion list item which user
@@ -69558,7 +71537,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.PkCommit.Type" enum="IMECommitType2"
- expires_after="M85">
+ expires_after="M95">
<owner>shuchen@chromium.org</owner>
<summary>
The suggestion accuracy type which the user chooses to commit for physical
@@ -69576,7 +71555,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.BackspaceCount" units="units"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The number of times the backspace key was pressed on the virtual keyboard,
@@ -69586,7 +71566,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.BackspaceOnLayout"
- enum="IMEVKLayout" expires_after="M85">
+ enum="IMEVKLayout" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The layout type of the virtual keyboard, recorded when backspace is pressed.
@@ -69594,7 +71575,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.BackwardsMovesPerSwipe"
- units="moves" expires_after="M85">
+ units="moves" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that counts the number of times the cursor was moved to
@@ -69606,7 +71588,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.CharactersBetweenBackspaces"
- units="units" expires_after="M85">
+ units="units" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Counts the length of text typed by the virtual keyboard between each
@@ -69616,7 +71599,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.CharactersCommitted" units="units"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The total number of characters committed. Recorded when the virtual keyboard
@@ -69624,8 +71608,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.VirtualKeyboard.CharactersPerMinute" units="units"
+ expires_after="2021-07-06">
+ <owner>keithlee@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The character per minute ratio recoded during a typing session.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.VirtualKeyboard.CharactersPerSession"
+ units="units" expires_after="2021-07-06">
+ <owner>keithlee@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The total number of characters committed during a typing session.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.VirtualKeyboard.ContainerBehavior"
- enum="VirtualKeyboardContainerType" expires_after="M85">
+ enum="VirtualKeyboardContainerType" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that counts the number of times each virtual keyboard
@@ -69635,7 +71638,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.DecoderEvent"
- enum="InputMethodDecoderEvent" expires_after="2020-02-01">
+ enum="InputMethodDecoderEvent" expires_after="2021-02-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that counts events from the decoder triggered by the
@@ -69644,7 +71648,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.Duration" units="seconds"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>How long the virtual keyboard was visible.</summary>
</histogram>
@@ -69657,13 +71662,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.ErrorType"
- enum="VirtualKeyboardErrorTypeHashes" expires_after="2020-02-01">
+ enum="VirtualKeyboardErrorTypeHashes" expires_after="2021-02-01">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>Errors from the virtual keyboard extension</summary>
</histogram>
<histogram name="InputMethod.VirtualKeyboard.FocusedByStylus" enum="Boolean"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Whether an input field was focused by a stylus or not. Recorded when an
@@ -69672,13 +71679,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.GestureTypingEvent"
- enum="IMEGestureTypingEvent" expires_after="M85">
+ enum="IMEGestureTypingEvent" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>Text input events related to gesture typing.</summary>
</histogram>
+<histogram name="InputMethod.VirtualKeyboard.Handwriting.CommitType"
+ enum="VirtualKeyboardHandwritingCommitType" expires_after="2021-07-01">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ What kind of commit method was used when text was committed to an input from
+ the handwriting input method in the virtual keyboard.
+ </summary>
+</histogram>
+
+<histogram
+ name="InputMethod.VirtualKeyboard.Handwriting.KeyboardContainerOnCommit"
+ enum="VirtualKeyboardContainerType" expires_after="2021-07-01">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ What type of container was the virtual keyboard in when text was committed
+ from the handwriting input method.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.VirtualKeyboard.Handwriting.KeyboardWidthOnCommit"
+ units="px" expires_after="2021-07-01">
+ <owner>curtismcmullan@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ How wide was the keyboard container when text was committed from the
+ handwriting input method.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.VirtualKeyboard.InitLatency" units="ms"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The on-screen keyboard initialization latency in milliseconds.
@@ -69686,7 +71726,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.InitLatency.KeyboardShownLongTail"
- units="ms" expires_after="2020-11-08">
+ units="ms" expires_after="2021-01-24">
<owner>jopalmer@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -69697,7 +71737,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The layout of the on-screen keyboard. Logged when the specific layout is
@@ -69706,7 +71747,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.LayoutSwitch" units="units"
- expires_after="M85">
+ expires_after="M95">
<owner>dvallet@google.com</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -69716,7 +71757,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.MovesPerSwipe" units="moves"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that counts the number of times the cursor was moved to
@@ -69728,7 +71770,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.PreferredLayoutForStylus"
- enum="IMEVKLayout" expires_after="M85">
+ enum="IMEVKLayout" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The layout of the virtual keyboard that is shown when the user focuses on an
@@ -69737,7 +71780,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.ResizableWindowInitWidth"
- units="px" expires_after="2020-08-18">
+ units="px" expires_after="2021-07-06">
<owner>curtismcmullan@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -69748,7 +71791,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.ResizableWindowWidth" units="px"
- expires_after="2020-08-18">
+ expires_after="2021-07-06">
<owner>curtismcmullan@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -69758,8 +71801,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="InputMethod.VirtualKeyboard.SessionDuration" units="units"
+ expires_after="2021-07-06">
+ <owner>keithlee@google.com</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>The duration in seconds of a typing session.</summary>
+</histogram>
+
<histogram name="InputMethod.VirtualKeyboard.SwitchMode" enum="IMEVKMode"
- expires_after="2020-06-30">
+ expires_after="2021-06-30">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The count of user actions to switch keyboard mode (floating, docked).
@@ -69768,7 +71819,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.TapCount" units="units"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The number of times the virtual keyboard was tapped while the virtual
@@ -69777,7 +71829,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.WordsDeletedPerSwipe"
- units="words" expires_after="M85">
+ units="words" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that tracks the total number of words that were deleted
@@ -69789,7 +71842,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.WordsPerMinute" units="units"
- expires_after="M85">
+ expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The number of words typed per minute. Recorded when the virtual keyboard is
@@ -69798,7 +71852,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.WordsRestoredPerSwipe"
- units="words" expires_after="M85">
+ units="words" expires_after="M95">
+ <owner>shend@chromium.org</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Chrome OS histogram that tracks the total number of words that were restored
@@ -69927,6 +71982,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
Superseded by Installer.Recovery.Reason in 8/2017.
</obsolete>
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of times the device has been recovered.
@@ -70245,7 +72301,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="InstanceID.GetToken.NetErrorCode" enum="NetErrorCodes"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>platform-capabilities@chromium.org</owner>
<summary>
@@ -71212,8 +73268,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.decision" enum="SecurityInterstitialDecision"
- expires_after="M85">
- <owner>felt@chromium.org</owner>
+ expires_after="M89">
+ <owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
User decision when presented with a security interstitial. As of M44,
@@ -71237,8 +73293,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.interaction"
- enum="SecurityInterstitialInteraction" expires_after="M85">
- <owner>felt@chromium.org</owner>
+ enum="SecurityInterstitialInteraction" expires_after="M89">
+ <owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
User interactions with a security interstitial. As of M44, subresource
@@ -71280,8 +73336,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.ssl.cause.nonoverridable" enum="SSLErrorCauses"
- expires_after="M85">
- <owner>felt@chromium.org</owner>
+ expires_after="M90">
+ <owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
Possible non-attack causes of the non-overridable SSL interstitial. Many
@@ -71297,8 +73353,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.ssl.cause.overridable" enum="SSLErrorCauses"
- expires_after="M85">
- <owner>felt@chromium.org</owner>
+ expires_after="M89">
+ <owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
Possible non-attack causes of the overridable SSL interstitial. Many errors
@@ -71502,9 +73558,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.ssl_error_handler" enum="SSLErrorHandlerEvent"
- expires_after="M85">
+ expires_after="M89">
<owner>meacer@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
+ <owner>estark@chromium.org</owner>
<summary>The type of action that the SSL error handler takes.</summary>
</histogram>
@@ -71539,8 +73596,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="interstitial.ssl_error_type" enum="SSLErrorTypes"
- expires_after="M85">
- <owner>felt@chromium.org</owner>
+ expires_after="M89">
+ <owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
The type of SSL error that the user encounters. This is recorded for all SSL
@@ -71689,7 +73746,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.ContentExtension.DisplayCount" units="count"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The number of times the Content Extension was displayed since last Chrome
@@ -71697,7 +73755,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="IOS.ContentExtension.Index" units="index" expires_after="M85">
+<histogram name="IOS.ContentExtension.Index" units="index"
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The index of the URL selected by the user in the Content Extension.
@@ -71874,6 +73934,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="IOS.DefaultBrowserFullscreenPromo"
+ enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2021-03-01">
+ <owner>thegreenfrog@chromium.org</owner>
+ <owner>rohitrao@chromium.org</owner>
+ <summary>
+ The action taken by the user in response to the default browser promo.
+ </summary>
+</histogram>
+
<histogram name="IOS.Dialogs.JavaScriptDialogClosed"
enum="IOSJavaScriptDialogDismissalCause" expires_after="M80">
<owner>kkhorimoto@chromium.org</owner>
@@ -71892,7 +73961,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.EnterTabSwitcherSnapshotResult"
- enum="EnterTabSwitcherSnapshotResult" expires_after="2020-08-01">
+ enum="EnterTabSwitcherSnapshotResult" expires_after="2021-08-01">
<owner>edchin@chromium.org</owner>
<owner>justincohen@chromium.org</owner>
<summary>
@@ -71977,6 +74046,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="IOS.IsDefaultBrowser" enum="Boolean"
+ expires_after="2021-01-19">
+ <owner>thegreenfrog@chromium.org</owner>
+ <owner>rohitrao@chromium.org</owner>
+ <summary>
+ As of iOS14, users will be able to set a default browser other than Safari.
+ When Chrome is the default browser, it will receive all URL opens, which is
+ likely to change certain stability metrics. Thus, it will be good to filter
+ those metrics by default browser status. This metrics records whether the
+ user was deemed to have set Chrome as the device's default browser. This
+ metric will be logged with ever histogram upload.
+ </summary>
+</histogram>
+
<histogram name="IOS.JavascriptContentBlockFailure"
enum="IOSJavascriptContentBlockType" expires_after="2020-12-31">
<owner>rkgibson@google.com</owner>
@@ -72001,7 +74084,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.MainThreadFreezeDetection.RecoveredAfter" units="ms"
- expires_after="2020-06-30">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The time during which main thread was not responding. 0 if application was
@@ -72011,6 +74095,99 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="IOS.MetricKit.ApplicationHangTime" units="ms"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The durations of time in which the app is too busy to handle user
+ interaction responsively. Logged when a MXMetricPayload is received (one per
+ day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.ApplicationResumeTime" units="ms"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The amount of time taken to resume the app from the background. Logged when
+ a MXMetricPayload is received (one per day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.AverageSuspendedMemory" units="MB"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The average amount of memory in use by the app when it's suspended. Logged
+ when a MXMetricPayload is received (one per day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.BackgroundExitData" enum="MetricKitExitData"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The reason for the application termination in background. Logged when a
+ MXMetricPayload is received (one per day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.BackgroundTimePerDay" units="ms"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The total time the app is in the background. Logged when a MXMetricPayload
+ is received (one per day). Note: The date the data is reported is later than
+ the day it account for.
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.ForegroundExitData" enum="MetricKitExitData"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The reason for the application termination in background. Logged when a
+ MXMetricPayload is received (one per day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.ForegroundTimePerDay" units="s"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The total time the app is in the foreground. Logged when a MXMetricPayload
+ is received (one per day). Note: The date the data is reported is later than
+ the day it account for.
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.PeakMemoryUsage" units="MB"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The largest amount of memory used by the app. Logged when a MXMetricPayload
+ is received (one per day).
+ </summary>
+</histogram>
+
+<histogram name="IOS.MetricKit.TimeToFirstDraw" units="ms"
+ expires_after="2021-01-06">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ The amount of time taken to launch the app. Logged when a MXMetricPayload is
+ received (one per day).
+ </summary>
+</histogram>
+
<histogram name="IOS.MultiWindow.OpenInNewWindow" enum="WindowActivityOrigin"
expires_after="2021-06-30">
<owner>marq@chromium.org</owner>
@@ -72021,8 +74198,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="IOS.NSString.stringByReplacingCharactersInRange.NilArgument"
+ enum="Boolean" expires_after="2021-07-31">
+ <owner>javierrobles@chromium.org</owner>
+ <owner>eugenebut@chromium.org</owner>
+ <summary>
+ NSString API: stringByReplacingCharactersInRange:withString: was invoked
+ with a nil argument.
+ </summary>
+</histogram>
+
<histogram name="IOS.NTP.Impression" enum="IOSNTPImpression"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>gambard@chromium.org</owner>
<summary>
The type of NTP impressions on iOS, split by type of suggestions shown
@@ -72040,7 +74227,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.PageLoadCount.Counts"
- enum="IOSPageLoadCountNavigationType" expires_after="2020-12-06">
+ enum="IOSPageLoadCountNavigationType" expires_after="2021-02-07">
<owner>danyao@chromium.org</owner>
<summary>The number of navigation started events by navigation type.</summary>
</histogram>
@@ -72067,7 +74254,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.PageLoadedSnapshotResult" enum="PageLoadedSnapshotResult"
- expires_after="2020-08-01">
+ expires_after="2021-08-01">
<owner>edchin@chromium.org</owner>
<owner>justincohen@chromium.org</owner>
<summary>
@@ -72087,6 +74274,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="IOS.ProviderIsValidOnShutdown" enum="Boolean"
expires_after="2020-08-01">
+ <obsolete>
+ Removed 2019-07.
+ </obsolete>
<owner>eugenebut@chromium.org</owner>
<owner>marq@chromium.org</owner>
<summary>
@@ -72100,6 +74290,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="IOS.Reauth.Password.Autofill" enum="ReauthenticationEvent"
+ expires_after="2021-02-01">
+ <owner>javierrobles@chromium.org</owner>
+ <owner>bling-team@google.com</owner>
+ <summary>
+ Tracks the results and attempts of reauthentication when using password
+ Autofill suggestions.
+ </summary>
+</histogram>
+
+<histogram name="IOS.Reauth.Password.ManualFallback"
+ enum="ReauthenticationEvent" expires_after="2021-02-01">
+ <owner>javierrobles@chromium.org</owner>
+ <owner>bling-team@google.com</owner>
+ <summary>
+ Tracks the results and attempts of reauthentication when using a password in
+ Manual Fallback.
+ </summary>
+</histogram>
+
<histogram name="IOS.RepeatedExternalAppPromptResponse"
enum="IOSRepeatedExternalAppPromptResponse" expires_after="2020-07-01">
<owner>mrefaat@chromium.org</owner>
@@ -72138,13 +74348,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.SearchExtension.Action" enum="IOSSearchExtensionAction"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>The action selected by the user in the Search Extension.</summary>
</histogram>
<histogram name="IOS.SearchExtension.DisplayCount" units="count"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The number of times the Search Extension was displayed since last Chrome
@@ -72153,7 +74365,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.ShareExtension.ReceivedEntriesCount" units="files"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The number of items received simultaneously in Chrome from the IOS share
@@ -72162,13 +74375,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.ShareExtension.ReceivedEntry"
- enum="IOSShareExtensionReceivedEntryType" expires_after="M85">
+ enum="IOSShareExtensionReceivedEntryType" expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>Type of the item received from the iOS share extension.</summary>
</histogram>
<histogram name="IOS.ShareExtension.ReceivedEntryDelay" units="ms"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The delay in milliseconds between the item creation in the extension and its
@@ -72177,7 +74392,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.ShareExtension.Source"
- enum="IOSShareExtensionReceivedEntrySource" expires_after="M85">
+ enum="IOSShareExtensionReceivedEntrySource" expires_after="2020-12-25">
+ <owner>javierrobles@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The source application that sent the external command to Chrome.
@@ -72205,13 +74421,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.Spotlight.Action" enum="IOSSpotlightAction"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>The Spotlight Action pressed by the user.</summary>
</histogram>
<histogram name="IOS.Spotlight.Availability" enum="IOSSpotlightAvailability"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
Tracks the availability of the Spotlight indexation on the device. It is
@@ -72221,19 +74439,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="IOS.Spotlight.BookmarksIndexingDuration" units="ms"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>Time spent in Spotlight initial indexation of bookmarks.</summary>
</histogram>
<histogram name="IOS.Spotlight.BookmarksInitialIndexSize" units="units"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>Number of bookmarks indexed during initial indexation.</summary>
</histogram>
<histogram name="IOS.Spotlight.Origin" enum="IOSSpotlightOrigin"
- expires_after="M85">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
This event is recorded each time a Chrome Spotlight entry is selected by the
@@ -72949,7 +75170,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Keyboard.ShortcutViewer.StartupTime" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>jamescook@chromium.org</owner>
<owner>msw@chromium.org</owner>
<owner>wutao@chromium.org</owner>
@@ -72961,7 +75182,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessoryActionImpression"
- enum="AccessoryAction" expires_after="2020-12-06">
+ enum="AccessoryAction" expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records whenever users faces an action in the accessory bar or
@@ -72970,7 +75191,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessoryActionSelected"
- enum="AccessoryAction" expires_after="2020-12-06">
+ enum="AccessoryAction" expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records whenever users select an action in the accessory bar
@@ -72979,7 +75200,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessoryBarShown"
- enum="AccessoryBarContents" expires_after="2020-10-18">
+ enum="AccessoryBarContents" expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<owner>ioanap@chromium.org</owner>
<summary>
@@ -72990,7 +75211,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessorySheetSuggestionCount" units="count"
- expires_after="2020-08-30">
+ expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records how many suggestions a user faced when opening a
@@ -72999,7 +75220,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessorySheetSuggestionsSelected"
- enum="AccessorySuggestionType" expires_after="2020-11-08">
+ enum="AccessorySuggestionType" expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records which type of suggestion was selected from an open
@@ -73008,7 +75229,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessorySheetToggleClicked"
- enum="AccessoryToggleType" expires_after="M86">
+ enum="AccessoryToggleType" expires_after="M88">
<owner>ioanap@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -73019,7 +75240,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessorySheetToggleImpression"
- enum="AccessoryToggleType" expires_after="M86">
+ enum="AccessoryToggleType" expires_after="M88">
<owner>ioanap@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -73029,7 +75250,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.AccessorySheetTriggered"
- enum="AccessorySheetTrigger" expires_after="2020-11-08">
+ enum="AccessorySheetTrigger" expires_after="2021-01-17">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records how often the bottom sheet was opened or closed by a
@@ -73039,7 +75260,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="KeyboardAccessory.DisabledSavingAccessoryImpressions"
- enum="BooleanShown" expires_after="M86">
+ enum="BooleanShown" expires_after="M88">
<owner>ioanap@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -73091,7 +75312,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Kiosk.LaunchType" enum="KioskLaunchType"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>xiyuan@chromium.org</owner>
<owner>aghuie@chromium.org</owner>
<summary>
@@ -73184,8 +75405,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="LanguageSettings.Actions" enum="LanguageSettingsActionType"
expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
<owner>googleo@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The actions taken on languages settings, recorded every time they happen.
This histogram will record every single event that happens separately.
@@ -73193,37 +75414,37 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LanguageSettings.PageImpression"
- enum="LanguageSettingsPageType" expires_after="2020-11-01">
- <owner>chrome-language@google.com</owner>
+ enum="LanguageSettingsPageType" expires_after="2021-01-03">
<owner>googleo@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>The type of panes which language settings loads.</summary>
</histogram>
<histogram name="LanguageUsage.AcceptLanguage" enum="LanguageCode"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>Accept languages.</summary>
</histogram>
<histogram name="LanguageUsage.AcceptLanguage.Count" units="units"
expires_after="2021-06-01">
- <owner>chrome-language@google.com</owner>
<owner>dvallet@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>The number of accepted languages in the user preferences.</summary>
</histogram>
<histogram name="LanguageUsage.ApplicationLanguage" enum="LanguageCode"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>Application languages used for UI.</summary>
</histogram>
<histogram name="Launch.FlagsAtStartup" enum="LoginCustomFlags"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>asvitkine@chromium.org</owner>
<owner>ntfschr@chromium.org</owner>
<summary>
@@ -73237,7 +75458,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Launch.HomeScreen" enum="LaunchFromHomeScreen"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>dominickn@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>peconn@chromium.org</owner>
@@ -73247,7 +75468,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Launch.HomeScreenSource" enum="LaunchFromHomeScreenSource"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dominickn@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>peconn@chromium.org</owner>
@@ -73520,7 +75741,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LevelDB.ApproximateMemTableMemoryUse" units="bytes"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>nyquist@chromium.org</owner>
<owner>salg@google.com</owner>
<summary>
@@ -73885,8 +76106,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Linux.SandboxStatus" enum="LinuxSandboxStatus"
- expires_after="M86">
+ expires_after="2021-07-20">
<owner>mpdenton@google.com</owner>
+ <owner>src/sandbox/linux/OWNERS</owner>
<summary>
The Linux sandbox status. This describes what sandboxing features are
enabled (such as the suid/namespace sandboxes, various namespaces, seccomp
@@ -73969,6 +76191,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="LiteVideo.LiteVideoDecider.OptGuideHintCacheSize"
+ units="count" expires_after="M90">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>rajendrant@chromium.org</owner>
+ <summary>
+ Records the total number of LiteVideoHints, keyed by host, cached locally by
+ the LiteVideoDecider for use when queried by subframes.
+ </summary>
+</histogram>
+
<histogram name="LiteVideo.OriginHints.ParseResult" enum="BooleanSuccess"
expires_after="M90">
<owner>mcrouse@chromium.org</owner>
@@ -73992,7 +76224,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="LoadingPredictor.OptimizationHintsReceiveStatus"
enum="LoadingPredictorOptimizationHintsReceiveStatus"
- expires_after="2020-12-06">
+ expires_after="2021-02-14">
<owner>sophiechang@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -74003,7 +76235,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LoadingPredictor.PreconnectCount" units="origins"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>alexilin@chromium.org</owner>
<summary>
The number of origins that were preconnected for a page load. It includes
@@ -74013,7 +76245,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LoadingPredictor.PreconnectHitsPercentage" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>alexilin@chromium.org</owner>
<summary>
The percentage of origins that were preconnected and requested by a page
@@ -74024,7 +76256,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningCount"
- units="origins" expires_after="2020-12-06">
+ units="origins" expires_after="2021-02-07">
<owner>alexilin@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -74034,7 +76266,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningPrecision"
- units="%" expires_after="2020-12-06">
+ units="%" expires_after="2021-02-07">
<owner>alexilin@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -74046,7 +76278,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="LoadingPredictor.PreconnectLearningRecall"
- units="%" expires_after="2020-12-13">
+ units="%" expires_after="2021-02-14">
<owner>alexilin@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -74069,7 +76301,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LoadingPredictor.PreresolveCount" units="hosts"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>alexilin@chromium.org</owner>
<summary>
The number of hosts that were preresolved for a page load. It includes only
@@ -74225,7 +76457,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="LocalSearchService.MetricsDailyEventInterval"
- enum="DailyEventIntervalType" expires_after="2020-11-30">
+ enum="DailyEventIntervalType" expires_after="2021-01-31">
<owner>jiameng@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
@@ -74235,6 +76467,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="LocalSearchService.NumberDocuments" units="count"
+ expires_after="2020-11-30">
+<!-- Name completed by histogram_suffixes name="IndexId" -->
+
+ <owner>jiameng@chromium.org</owner>
+ <owner>tby@chromium.org</owner>
+ <owner>thanhdng@chromium.org</owner>
+ <owner>wrong@chromium.org</owner>
+ <summary>
+ Number of documents in the corpus. Recorded each time the index is updated
+ (documents added, updated or removed) and if the index is not empty. Chrome
+ OS only.
+ </summary>
+</histogram>
+
<histogram name="LocalSearchService.NumberResults" units="count"
expires_after="2020-11-30">
<!-- Name completed by histogram_suffixes name="IndexId" -->
@@ -74261,6 +76508,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="LocalSearchService.SearchLatency" units="ms"
+ expires_after="2020-11-30">
+<!-- Name completed by histogram_suffixes name="IndexId" -->
+
+ <owner>jiameng@chromium.org</owner>
+ <owner>tby@chromium.org</owner>
+ <owner>thanhdng@chromium.org</owner>
+ <owner>wrong@chromium.org</owner>
+ <summary>
+ Time taken to find search results. Only recorded if search response status
+ is success, i.e. neither index nor query is empty. Chrome OS only.
+ </summary>
+</histogram>
+
<histogram name="LocalStorage.BrowserLocalStorageCachePurgedInKB" units="KB"
expires_after="M77">
<owner>ssid@chromium.org</owner>
@@ -74291,8 +76552,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="LocalStorage.BrowserTimeToPrimeLocalStorage" units="units"
- expires_after="M77">
+<histogram
+ name="LocalStorage.BrowserTimeToPrimeLocalStorage{LocalStorageSizes}"
+ units="units" expires_after="M77">
<obsolete>
No longer emitted after onion soup refactor.
</obsolete>
@@ -74300,7 +76562,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<owner>dmurph@chromium.org</owner>
<summary>
Time to load HTML5 LocalStorage into the browser-side cache.
+ {LocalStorageSizes}
</summary>
+ <token key="LocalStorageSizes" variants="LocalStorageSizes"/>
</histogram>
<histogram name="LocalStorage.CommitDelay" units="ms" expires_after="M95">
@@ -74334,14 +76598,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="LocalStorage.MojoTimeToPrimeFor" units="ms"
+<histogram name="LocalStorage.MojoTimeToPrimeFor{LocalStorageSizes}" units="ms"
expires_after="M95">
<owner>mek@chromium.org</owner>
<owner>dmurph@chromium.org</owner>
<summary>
Time (in ms) to load HTML5 LocalStorage into the renderer-side cache using
- Mojo implementation, split by size.
+ Mojo implementation, split by size. {LocalStorageSizes}
</summary>
+ <token key="LocalStorageSizes" variants="LocalStorageSizes"/>
</histogram>
<histogram name="LocalStorage.RendererAreaCacheHit"
@@ -74362,17 +76627,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="LocalStorage.RendererTimeToPrimeLocalStorage" units="units"
- expires_after="M95">
+<histogram
+ name="LocalStorage.RendererTimeToPrimeLocalStorage{LocalStorageSizes}"
+ units="units" expires_after="M95">
<obsolete>
No longer omitted after onion soup refactor. Replaced by
- LocalStorage.MojoTimeToPrime.
+ LocalStorage.MojoTimeToPrime. {LocalStorageSizes}
</obsolete>
<owner>mek@chromium.org</owner>
<owner>dmurph@chromium.org</owner>
<summary>
Time to load HTML5 LocalStorage into the renderer-side cache.
</summary>
+ <token key="LocalStorageSizes" variants="LocalStorageSizes"/>
</histogram>
<histogram name="LocalStorage.TimeToPrimeLocalStorage" units="units"
@@ -74513,8 +76780,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.ArcBugReportBackupTime" units="ms"
- expires_after="2020-11-27">
- <owner>mhasank@chromium.org</owner>
+ expires_after="2021-01-31">
+ <owner>mhasank@google.com</owner>
<owner>arc-core@google.com</owner>
<summary>
Tracks the time to backup ARC bug report when starting ARC fails.
@@ -74522,7 +76789,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.BrowserShutdownTime" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>xiyuan@chromium.org</owner>
<summary>
Tracks the browser process shutdown time from when SIGTERM is sent to the
@@ -74563,7 +76830,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.FailureReason" enum="LoginFailureReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>achuith@chromium.org</owner>
<summary>Chrome OS login failure reason.</summary>
</histogram>
@@ -74578,7 +76845,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.MountNamespaceCreationSuccess" enum="Boolean"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<owner>chromeos-security-core@google.com</owner>
@@ -74603,7 +76870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.OfflineFailure.IsKnownUser" enum="LoginIsKnownUser"
- expires_after="2020-11-01">
+ expires_after="2021-02-07">
<owner>glevin@chromium.org</owner>
<summary>
On offline login failure, records whether it is for an existing user.
@@ -74611,7 +76878,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.OfflineSuccess.Attempts" units="units"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>glevin@chromium.org</owner>
<summary>
On offline login success, records number of attempts, including success.
@@ -74629,7 +76896,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.PasswordChangeFlow" enum="LoginPasswordChangeFlow"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>xiyuan@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -74688,7 +76955,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.SessionExitType" enum="LoginSessionExitType"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>iby@chromium.org</owner>
<summary>
Tracks whether a ChromeOS user was logged out because Chrome repeatedly
@@ -74703,7 +76970,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.SuccessReason" enum="LoginSuccessReason"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>achuith@chromium.org</owner>
<summary>Chrome OS login success reason.</summary>
</histogram>
@@ -74750,7 +77017,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.UsersActiveWeekly" units="users"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>alemate@chromium.org</owner>
<owner>achuith@chromium.org</owner>
<summary>
@@ -74771,7 +77038,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Login.UserType" enum="LoginUserType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>cmasone@chromium.org</owner>
<summary>
Chrome OS histogram that keeps track of the way a user logs in and whether
@@ -74800,19 +77067,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="MachineLearningService.CpuTimeMicrosec"
- units="microseconds" expires_after="2020-08-01">
+ units="microseconds" expires_after="2021-01-01">
<!-- Name completed by histogram_suffixes
name="MachineLearningServiceRequests" -->
<owner>amoylan@chromium.org</owner>
<owner>alanlxl@chromium.org</owner>
<summary>
- CPU time (for one CPU core) of one Chrome OS ML Service request.
+ CPU time (for one CPU core) of one Chrome OS ML Service request. Reported
+ for all users; users without high-resolution clocks will report 0 for short
+ requests.
</summary>
</histogram>
<histogram name="MachineLearningService.CpuUsageMilliPercent"
- units="1/1000ths of %" expires_after="2020-12-13">
+ units="1/1000ths of %" expires_after="2021-02-14">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<summary>
@@ -74847,7 +77116,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="MachineLearningService.ExecuteResult.Event"
- enum="MachineLearningServiceExecuteResultEvent" expires_after="2020-08-09">
+ enum="MachineLearningServiceExecuteResultEvent" expires_after="2021-01-01">
<owner>amoylan@chromium.org</owner>
<owner>alanlxl@chromium.org</owner>
<summary>
@@ -74855,6 +77124,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="MachineLearningService.HandwritingModel.Recognize.Event"
+ enum="Boolean" expires_after="2021-01-01">
+ <owner>amoylan@chromium.org</owner>
+ <owner>alanlxl@chromium.org</owner>
+ <owner>charleszhao@chromium.org</owner>
+ <summary>
+ The result of handwriting recognition, which can be OK or some specific
+ error.
+ </summary>
+</histogram>
+
<histogram name="MachineLearningService.LoadModelResult"
enum="MachineLearningServiceLoadModelResultEvent"
expires_after="2020-12-07">
@@ -74878,7 +77158,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MachineLearningService.MojoConnectionEvent"
- enum="MachineLearningServiceMojoConnectionEvent" expires_after="2020-10-11">
+ enum="MachineLearningServiceMojoConnectionEvent" expires_after="2021-01-24">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<summary>
@@ -74903,7 +77183,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MachineLearningService.PeakTotalMemoryKb" units="KB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>honglinyu@chromium.org</owner>
@@ -74946,7 +77226,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="MachineLearningService.TotalMemoryDeltaKb"
- units="KB" expires_after="2020-08-01">
+ units="KB" expires_after="2021-01-01">
<owner>amoylan@chromium.org</owner>
<owner>alanlxl@chromium.org</owner>
<owner>honglinyu@chromium.org</owner>
@@ -74956,7 +77236,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MachineLearningService.TotalMemoryKb" units="KB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>alanlxl@chromium.org</owner>
<owner>amoylan@chromium.org</owner>
<owner>honglinyu@chromium.org</owner>
@@ -74968,8 +77248,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ManagedUsers.BlockedFrameDepth" units="depth"
expires_after="M85">
+ <obsolete>
+ Removed in M86.
+ </obsolete>
<owner>yilkal@chromium.org</owner>
<owner>michaelpg@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
<summary>
The depth of blocked frame in the frame tree. The value is recorded when the
renderer frame hosting the blocking page finishes loading.
@@ -74977,9 +77261,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ManagedUsers.BlockedIframeCount" units="iframes"
- expires_after="M85">
+ expires_after="2021-07-23">
<owner>yilkal@chromium.org</owner>
<owner>michaelpg@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
<summary>
The number of blocked iframes per unblocked main frame load. The value is
recorded when the main frame finishes loading.
@@ -74988,6 +77273,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ManagedUsers.ChromeOS.PasswordChange"
enum="ManagedUserPasswordChange" expires_after="M77">
+ <obsolete>
+ Removed 07/2020 as it is no longer used.
+ </obsolete>
<owner>achuith@chromium.org</owner>
<summary>
Chrome OS histogram that keeps track of supervised user password change
@@ -75043,9 +77331,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ManagedUsers.RequestPermissionSource"
- enum="ManagedUserURLRequestPermissionSource" expires_after="M85">
+ enum="ManagedUserURLRequestPermissionSource" expires_after="2021-07-23">
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
<summary>
The counts of request for permission sent from main frame or sub-frame.
</summary>
@@ -75136,7 +77425,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Manifest.HasProperty" enum="Boolean"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>mgiuca@chromium.org</owner>
<owner>mlamouri@chromium.org</owner>
<summary>
@@ -75299,7 +77588,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Android.MediaPlayerWatchTime"
- enum="MediaPlayerWatchTimeType" expires_after="2020-07-31">
+ enum="MediaPlayerWatchTimeType" expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -75798,7 +78087,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Audio.Capture.Win.Open" enum="AudioStreamOpenResult"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>gudiou@chromium.org</owner>
<owner>olka@chromium.org</owner>
<summary>
@@ -77552,6 +79841,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Media.ConfigChangeDecoderSelectionTime" units="ms"
+ expires_after="2021-06-25">
+ <owner>cassew@google.com</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Duration of decoder selection during config changes, measured from first
+ call to 'DecoderSelector::SelectDecoder' to
+ 'DecoderSelector::FinalizeSelection'. The HW/SW suffix indicates the type of
+ the decoder that was ultimately selected.
+ </summary>
+</histogram>
+
<histogram name="Media.Controls.CTR" enum="MediaControlsCTREvent"
expires_after="2020-04-05">
<owner>mlamouri@chromium.org</owner>
@@ -77630,7 +79931,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Controls.Show.Audio" enum="MediaControlsShowReason"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>mlamouri@chromium.org</owner>
<summary>
Record whether the default media controls of an audio element were shown and
@@ -77641,7 +79942,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Controls.Show.Video" enum="MediaControlsShowReason"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>mlamouri@chromium.org</owner>
<summary>
Record whether the default media controls of a video element were shown and
@@ -77694,6 +79995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Audio codec used in HTML5 media. Reporting corrected in M51 to include all
@@ -77706,6 +80008,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>Audio codec used in HTML5 media for a local file playback.</summary>
</histogram>
@@ -77714,6 +80017,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Container used for HTML5 media. Views that include pre-M34 data will
@@ -77726,6 +80030,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>Container used for HTML5 media for a local file playback.</summary>
</histogram>
@@ -77782,6 +80087,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Video codec used in HTML5 media. Reporting corrected in M51 to include all
@@ -77794,6 +80100,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>Video codec used in HTML5 media for a local file playback.</summary>
</histogram>
@@ -77810,8 +80117,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Media.DroppedFrameCount" units="units" expires_after="M85">
- <owner>prabhur@chromium.org</owner>
+<histogram name="Media.DroppedFrameCount" units="units" expires_after="never">
+<!-- expires-never: Media pipeline health metric. -->
+
+ <owner>dalecurtis@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
<summary>
Count of dropped frames between pipeline start and stop. Media pipeline
starts/stops when an HTML5 video is loaded/unloaded respectively in the
@@ -78013,13 +80323,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.EME.CdmLoadResult" enum="CdmLoadResult"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>The result from an attempt to load a library CDM.</summary>
</histogram>
-<histogram name="Media.EME.CdmLoadTime" units="ms" expires_after="2020-12-13">
+<histogram name="Media.EME.CdmLoadTime" units="ms" expires_after="2021-02-14">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>The time spent to load a library CDM.</summary>
@@ -78150,7 +80460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Media.EME.LibraryCdmAvailable"
- enum="BooleanAvailable" expires_after="M85">
+ enum="BooleanAvailable" expires_after="2021-05-07">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78257,7 +80567,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.EME.RequestMediaKeySystemAccess"
- enum="RequestMediaKeySystemAccessStatus" expires_after="2020-12-13">
+ enum="RequestMediaKeySystemAccessStatus" expires_after="2021-02-14">
<owner>sandersd@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78292,7 +80602,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.EME.Widevine.VideoCapability.HasEmptyRobustness"
- enum="BooleanEmpty" expires_after="2020-12-13">
+ enum="BooleanEmpty" expires_after="2021-02-14">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78657,7 +80967,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.GlobalMediaControls.DismissReason"
- enum="GlobalMediaControlsDismissReason" expires_after="2020-12-10">
+ enum="GlobalMediaControlsDismissReason" expires_after="2021-02-14">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78680,7 +80990,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.GlobalMediaControls.RepeatUsage" enum="BooleanIsRepeat"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78691,7 +81001,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.GlobalMediaControls.UserActionFocus"
- enum="BooleanFocused" expires_after="2020-10-22">
+ enum="BooleanFocused" expires_after="2021-01-24">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -78827,7 +81137,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.HighLatencyAudioCaptureStartupSuccess"
- enum="AudioCaptureStartupResult" expires_after="2020-10-01">
+ enum="AudioCaptureStartupResult" expires_after="2021-01-24">
<owner>armax@chromium.org</owner>
<owner>guidou@chromium.org</owner>
<owner>olka@chromium.org</owner>
@@ -78857,6 +81167,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Media.History.Init.ResultAfterDelete"
+ enum="MediaHistoryInitResult" expires_after="2020-12-31">
+ <owner>beccahughes@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Recorded when Media History is recreated when the browser is started and the
+ Media History database has been corrupted to the point where we need to
+ delete it and start again. This is not recorded in incognito mode or if
+ &quot;save browsing history&quot; is disabled.
+ </summary>
+</histogram>
+
<histogram name="Media.History.Playback.WriteResult"
enum="MediaHistoryPlaybackWriteResult" expires_after="2020-12-31">
<owner>beccahughes@chromium.org</owner>
@@ -78894,6 +81216,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="Media.InitialDecoderSelectionTime" units="ms"
+ expires_after="2021-06-25">
+ <owner>cassew@google.com</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Duration of initial decoder selection. Measured from first call to
+ 'DecoderSelector::SelectDecoder' to 'DecoderSelector::FinalizeSelection'.
+ The HW/SW suffix indicates the type of the decoder that was ultimately
+ selected.
+ </summary>
+</histogram>
+
<histogram name="Media.Initialize.Windows" enum="WinGetLastError"
expires_after="2015-06-08">
<obsolete>
@@ -79069,7 +81403,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.LinuxAudioIO" enum="LinuxAudioIO"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>dalecurtis@chromium.org</owner>
<summary>
Audio IO layer used by the Linux OS, sampled once at startup of the browser.
@@ -79126,7 +81460,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.LowLatencyAudioCaptureStartupSuccess"
- enum="AudioCaptureStartupResult" expires_after="2020-10-01">
+ enum="AudioCaptureStartupResult" expires_after="2021-01-24">
<owner>armax@chromium.org</owner>
<owner>guidou@chromium.org</owner>
<owner>olka@chromium.org</owner>
@@ -79148,7 +81482,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MeanTimeBetweenRebuffers" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>dalecurtis@chromium.org</owner>
<summary>
The total watch time (see Media.WatchTime) of a given playback divided by
@@ -79297,8 +81631,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MojoVideoDecoder.ActiveInstances" units="units"
- expires_after="2020-08-09">
+ expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
<summary>
Records the number of active MojoVideoDecoderService instances that are
alive each time an instance becomes active. An instance is active if
@@ -79321,7 +81656,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MojoVideoDecoder.InitialPlaybackErrorCodecCounter"
- units="instances" expires_after="2020-12-13">
+ units="instances" expires_after="2021-02-14">
<owner>eugene@chromium.org</owner>
<owner>liberato@chromium.org</owner>
<summary>
@@ -79332,7 +81667,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MojoVideoDecoder.InitialPlaybackSuccessCodecCounter"
- units="instances" expires_after="2020-12-13">
+ units="instances" expires_after="2021-02-14">
<owner>eugene@chromium.org</owner>
<owner>liberato@chromium.org</owner>
<summary>
@@ -79371,7 +81706,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Media.MSE.CodecChangeTime" units="ms"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>wolenetz@chromium.org</owner>
<owner>sandersd@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
@@ -79393,7 +81728,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MSE.DetectedShakaPackagerInMp4" enum="BooleanDetected"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79485,7 +81820,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MSE.Mp4ConsecutiveEmptySamples" units="samples"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>wolenetz@chromium.org</owner>
<owner>sandersd@chromium.org</owner>
<summary>
@@ -79498,7 +81833,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MSE.Mp4EmptySamplesInTRun" units="samples"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>wolenetz@chromium.org</owner>
<owner>sandersd@chromium.org</owner>
<summary>
@@ -79509,7 +81844,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MSE.Mp4SampleSize" units="bytes"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>wolenetz@chromium.org</owner>
<owner>sandersd@chromium.org</owner>
<summary>
@@ -79520,7 +81855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.MSE.Mp4TrunSampleCount" units="samples"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<owner>wolenetz@chromium.org</owner>
<owner>sandersd@chromium.org</owner>
<summary>
@@ -79704,7 +82039,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Notification.ArtworkPresent" enum="Boolean"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79771,7 +82106,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Notification.Count" units="count"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79782,7 +82117,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Notification.MetadataPresent"
- enum="MediaNotificationMetadata" expires_after="2020-12-13">
+ enum="MediaNotificationMetadata" expires_after="2021-02-14">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79793,7 +82128,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Notification.Source" enum="MediaNotificationSource"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79804,7 +82139,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.Notification.UserAction" enum="MediaSessionAction"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -79875,7 +82210,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.PipelineStatus" enum="PipelineStatus"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>prabhur@chromium.org</owner>
<owner>dalecurtis@chromium.org</owner>
<summary>
@@ -80462,6 +82797,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec and container support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Video codec used in plain src= (not MSE) HTML5 media if the media container
@@ -80473,6 +82809,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec and container support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Video codec used in plain src= (not MSE) HTML5 media if the media container
@@ -80726,6 +83063,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="never">
<!-- expires-never: Codec support planning metric. -->
+ <owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
URL scheme used with HTML5 media; only recorded for src=URL playbacks and
@@ -80733,6 +83071,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Media.VaapiVideoDecoder.DecodeError" enum="BooleanError"
+ expires_after="2021-08-05">
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ The codec-specific delegate in VaapiVideoDecoder has returned an error from
+ Decode(). This could be a parse error, or a VA error itself.
+ </summary>
+</histogram>
+
+<histogram name="Media.VaapiVideoDecoder.VaapiWrapperCreationSuccess"
+ enum="BooleanSuccess" expires_after="2021-08-05">
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Whether the creation of VaapiWrapper succeeded or not inside
+ VaapiVideoDecoder.
+ </summary>
+</histogram>
+
<histogram name="Media.VaapiWrapper.VADisplayStateInitializeSuccess"
enum="BooleanSuccess" expires_after="M87">
<owner>mcasas@chromium.org</owner>
@@ -80746,6 +83104,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAIP.VppFailure" enum="VAIPFailure"
expires_after="2021-01-01">
+ <obsolete>
+ Removed as of 08/2020.
+ </obsolete>
<owner>hiroh@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -80756,6 +83117,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAJDA.DecoderFailure" enum="VAJDAFailure"
expires_after="M85">
+ <obsolete>
+ Replaced by Media.VaapiMjpegDecodeAccelerator.VAAPIError as of 08/2020.
+ </obsolete>
<owner>andrescj@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -80776,7 +83140,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.VAJDA.VppFailure" enum="VAJDAFailure"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
+ <obsolete>
+ Replaced by Media.VaapiMjpegDecodeAccelerator.Vpp.VAAPIError as of 08/2020.
+ </obsolete>
<owner>kamesan@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -80787,6 +83154,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAJDAWorker.DecoderFailure"
enum="VAJDAWorkerDecoderFailure" expires_after="2020-05-01">
+ <obsolete>
+ Replaced by Media.VaapiImageDecodeAcceleratorWorker.VAAPIError as of
+ 08/2020.
+ </obsolete>
<owner>andrescj@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -80806,6 +83177,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAJEA.VppFailure" enum="VAJEAEncoderResult"
expires_after="M87">
+ <obsolete>
+ Replaced by Media.VaapiJpegEncodeAccelerator.Vpp.VAAPIError as of 08/2020.
+ </obsolete>
<owner>wtlee@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -80816,6 +83190,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAVDA.DecoderFailure" enum="VAVDADecoderFailure"
expires_after="M87">
+ <obsolete>
+ Replaced by Media.VaapiVideoDecodeAccelerator.VAAPIError as of 08/2020.
+ </obsolete>
<owner>mcasas@chromium.org</owner>
<owner>posciak@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
@@ -80847,6 +83224,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Media.VAVEA.EncoderFailure" enum="VAVEAEncoderFailure"
expires_after="M78">
+ <obsolete>
+ Replaced by Media.VaapiVideoEncodeAccelerator.VAAPIError as of 08/2020.
+ </obsolete>
<owner>posciak@chromium.org</owner>
<summary>
Error codes reported by video encode using VA-API hardware video encoder.
@@ -81074,6 +83454,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Media.Video.Roughness" units="ms" expires_after="2021-01-05">
+ <owner>eugene@chromium.org</owner>
+ <owner>videostack-eng@chromium.org</owner>
+ <summary>
+ Video playback roughness for a 100s interval. Suffixed by the framerate.
+ </summary>
+</histogram>
+
<histogram name="Media.Video.TimeFromForegroundToFirstFrame" units="ms"
expires_after="2017-01-19">
<obsolete>
@@ -81782,7 +84170,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.VTVDA.HardwareAccelerated"
- enum="BooleanHardwareAccelerated" expires_after="2020-12-31">
+ enum="BooleanHardwareAccelerated" expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -81792,8 +84180,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.VTVDA.InitializationFailureReason"
- enum="VTVDAInitializationFailureType" expires_after="M85">
+ enum="VTVDAInitializationFailureType" expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
<summary>
Count of VideoToolbox initialization failure reasons. Successful
initializations are counted as a special failure type. The sum of successes
@@ -81802,8 +84191,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.VTVDA.SessionFailureReason"
- enum="VTVDASessionFailureType" expires_after="M82">
+ enum="VTVDASessionFailureType" expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
<summary>
Count of VTVDA session failure reasons. Successful initializations are
counted as a special failure type. Since only successfully initialized
@@ -81811,7 +84201,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Media.WatchTime" units="ms" expires_after="2020-12-13">
+<histogram name="Media.WatchTime" units="ms" expires_after="2021-02-14">
<owner>dalecurtis@chromium.org</owner>
<summary>
Watch time is defined as the amount of elapsed media time for audio+video
@@ -81912,7 +84302,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Media.WebMediaPlayerImpl.WatchTime"
- enum="WebMediaPlayerWatchTimeType" expires_after="2020-07-31">
+ enum="WebMediaPlayerWatchTimeType" expires_after="2021-08-01">
<owner>sandersd@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -82000,6 +84390,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Media.{VaapiClientName}.VAAPIError" enum="VaapiFunctions"
+ expires_after="2021-08-05">
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Error codes reported by libva (via VaapiWrapper) while being used from the
+ specified client name.
+ </summary>
+ <token key="VaapiClientName">
+ <variant name="VaapiImageDecodeAcceleratorWorker" label=""/>
+ <variant name="VaapiJpegEncodeAccelerator" label=""/>
+ <variant name="VaapiJpegEncodeAccelerator.Vpp" label=""/>
+ <variant name="VaapiMjpegDecodeAccelerator" label=""/>
+ <variant name="VaapiMjpegDecodeAccelerator.Vpp" label=""/>
+ <variant name="VaapiVideoDecodeAccelerator" label=""/>
+ <variant name="VaapiVideoDecodeAccelerator.Vpp" label=""/>
+ <variant name="VaapiVideoDecoder" label=""/>
+ <variant name="VaapiVideoEncodeAccelerator" label=""/>
+ <variant name="VaapiVideoEncodeAccelerator.Vpp" label=""/>
+ </token>
+</histogram>
+
<histogram name="MediaGalleries.ScanCancelTime" units="ms" expires_after="M85">
<owner>vandebo@chromium.org</owner>
<summary>If a media scan was cancelled, the duration (in ms) it ran.</summary>
@@ -82055,7 +84467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MediaLauncherActivity.MediaType"
- enum="MediaLauncherActivityMediaType" expires_after="2020-10-11">
+ enum="MediaLauncherActivityMediaType" expires_after="2021-01-24">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -82194,10 +84606,46 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MediaRouter.CastStreaming.Session.Length" units="ms"
- expires_after="2021-02-01">
+ expires_after="2021-07-01">
<owner>takumif@chromium.org</owner>
<owner>openscreen-eng@google.com</owner>
- <summary>Total length of a Cast Streaming mirror session.</summary>
+ <summary>
+ Total length of a Cast Streaming mirror session of any type, including the
+ time spent in media remoting.
+ </summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.File" units="ms"
+ expires_after="2021-07-01">
+ <owner>rwkeane@google.com</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>Total length of a Cast Streaming File mirror session.</summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.OffscreenTab"
+ units="ms" expires_after="2021-07-01">
+ <owner>rwkeane@google.com</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>
+ Total length of a Cast Streaming Offscreen Tab mirror session.
+ </summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.Screen" units="ms"
+ expires_after="2021-07-01">
+ <owner>rwkeane@google.com</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>Total length of a Cast Streaming Screen mirror session.</summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.Tab" units="ms"
+ expires_after="2021-07-01">
+ <owner>rwkeane@google.com</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>
+ Total length of a Cast Streaming mirror session of type Tab and NOT of types
+ offscreen tab or local file. This includes the time spent in media remoting.
+ </summary>
</histogram>
<histogram name="MediaRouter.CastStreaming.Start.Failure"
@@ -82765,7 +85213,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.Browser.PrivateMemoryFootprint" units="MiB"
- expires_after="2020-09-15">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82780,7 +85228,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.Browser.PrivateSwapFootprint" units="MiB"
- expires_after="2020-09-15">
+ expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82794,7 +85242,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.BackgroundTask.Browser.ResidentSet"
- units="MiB" expires_after="2020-09-15">
+ units="MiB" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82808,7 +85256,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.Browser.SharedMemoryFootprint" units="MiB"
- expires_after="2020-09-15">
+ expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82822,7 +85270,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.PrivateMemoryFootprint"
- units="MiB" expires_after="2020-09-15">
+ units="MiB" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82839,7 +85287,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.PrivateSwapFootprint"
- units="MiB" expires_after="2020-09-15">
+ units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82856,7 +85304,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.ResidentSet"
- units="MiB" expires_after="2020-09-15">
+ units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82872,7 +85320,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.SharedMemoryFootprint"
- units="MiB" expires_after="2020-09-15">
+ units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
@@ -82961,6 +85409,62 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Memory.Browser.MemoryFootprint.Active" units="MB"
+ expires_after="2021-08-27">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint
+ but only recorded when UIApplication.sharedApplication.applicationState is
+ UIApplicationStateActive.
+ </summary>
+</histogram>
+
+<histogram name="Memory.Browser.MemoryFootprint.Active.Over200MBWatermark"
+ enum="BooleanGreaterOrEqualThan200MB" expires_after="2021-08-27">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ This metric is only recorded on iOS when
+ UIApplication.sharedApplication.applicationState is
+ UIApplicationStateActive. True if the sum of PrivateMemoryFootprint and
+ SharedMemoryFootprint is greater than 200MB. According to Apple, apps on
+ iPhone 6 and older devices get terminated by the OS if memory usage crosses
+ 200MB watermark, so it's important to keep the memory usage under 200MB.
+ &quot;true&quot; value may not show up on iPhone 6 and older devices if iOS
+ is strict about the advertised watermark.
+ </summary>
+</histogram>
+
+<histogram name="Memory.Browser.MemoryFootprint.Background" units="MB"
+ expires_after="2021-08-27">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint
+ but only recorded when UIApplication.sharedApplication.applicationState is
+ UIApplicationStateBackground. According to Apple, apps get terminated by the
+ OS if memory usage in background crosses 50MB watermark, so it's important
+ to keep the memory usage under 50MB. The timing of this metric will line up
+ so that it rarely occurs when the app is in the background. With a small
+ data set, the metrics might be biased in ways that we can't think of right
+ now.
+ </summary>
+</histogram>
+
+<histogram name="Memory.Browser.MemoryFootprint.Inactive" units="MB"
+ expires_after="2021-08-27">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint
+ but only recorded when UIApplication.sharedApplication.applicationState is
+ UIApplicationStateInactive. The timing of this metric will line up so that
+ it rarely occurs when the app is inactive. With a small data set, the
+ metrics might be biased in ways that we can't think of right now.
+ </summary>
+</histogram>
+
<histogram name="Memory.Browser.PrivateMemoryFootprint" units="MB"
expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
@@ -82977,7 +85481,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Browser.PrivateSwapFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -83000,7 +85504,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Browser.SharedMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the browser process.
@@ -83218,7 +85722,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.Experimental.Browser2.Small" units="KB"
- expires_after="2020-10-11">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
@@ -83341,7 +85845,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.Experimental.Extension2.Small" units="KB"
- expires_after="2020-10-11">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
@@ -83434,6 +85938,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true"
+ name="Memory.Experimental.GpuChannelManagerPressureHandlerDuration"
+ units="ms" expires_after="M90">
+<!-- Name completed by histogram_suffixes name="GpuChannelManagerPressureHandlerDetails" -->
+
+ <owner>sebmarchand@chromium.org</owner>
+ <owner>catan-team@chromium.org</owner>
+ <summary>
+ The time taken by the call to the various memory pressure handlers in
+ GpuChannelManager::HandleMemoryPressure.
+ </summary>
+</histogram>
+
<histogram base="true" name="Memory.Experimental.NetworkService2" units="MiB"
expires_after="2020-10-11">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
@@ -83928,7 +86445,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.Experimental.Renderer" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="RendererMemoryAllocator" -->
<owner>keishi@chromium.org</owner>
@@ -84012,7 +86529,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Experimental.Renderer.Uptime" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>keishi@chromium.org</owner>
<summary>
The uptime of a render process in time ticks (excludes extensions). Emitted
@@ -84032,7 +86549,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.Experimental.Renderer2" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
@@ -84056,7 +86573,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.Experimental.Renderer2.Small" units="KB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
@@ -84121,7 +86638,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Experimental.Total2.PrivateMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -84142,7 +86659,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintBefore"
- units="MB" expires_after="2020-12-13">
+ units="MB" expires_after="2021-02-14">
<owner>keishi@chromium.org</owner>
<owner>tasak@chromium.org</owner>
<summary>
@@ -84408,7 +86925,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.GPU.PeakMemoryAllocationSource" units="KB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by a combination of the following two histogram_suffixes: -->
<!-- histogram_suffixes name="GPU.PeakMemoryAllocationSourceBase" -->
@@ -84426,12 +86943,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.GPU.PeakMemoryUsage" units="KB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="GPU.PeakMemoryUsage" -->
- <owner>graphics-dev@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
<summary>
The maximum amount of memory of the GPU process during a particular
interaction (e.g. tab-switch, page-load, scroll etc.).
@@ -84478,7 +86995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Gpu.SharedMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -84599,7 +87116,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprint2"
- units="KB" expires_after="2020-12-13">
+ units="KB" expires_after="2021-02-14">
<owner>msalama@google.com</owner>
<owner>lizeb@chromium.org</owner>
<summary>
@@ -84612,7 +87129,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Memory.NativeLibrary.MappedAndResidentMemoryFootprintCollectionStatus"
- enum="MappedAndResidentPagesDumpState" expires_after="2020-12-13">
+ enum="MappedAndResidentPagesDumpState" expires_after="2021-02-14">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -84649,7 +87166,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.NetworkService.PrivateMemoryFootprint" units="MiB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>mmenke@chromium.org</owner>
<owner>morlovich@chromium.org</owner>
<summary>
@@ -84819,7 +87336,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.CompressedSizeKb" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<summary>
Total size of compressed ParkableStrings, in KB. Recorded at the same time
@@ -84847,7 +87364,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.Compression.ThroughputMBps" units="MBps"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<summary>
Size of a compressed ParkableString, recorded at compression time.
@@ -84868,7 +87385,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.CompressionRatio.5min" units="%"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -84908,7 +87425,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.DiskIsUsable.5min" enum="BooleanYesNo"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -84942,7 +87459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.MainThreadTime.5min" units="ms"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -84988,7 +87505,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.ParkingThreadTime.5min" units="ms"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -84999,7 +87516,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.Read.Latency" units="microseconds"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -85011,21 +87528,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.Read.SizeKb" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Size read from disk for a ParkableString.</summary>
</histogram>
<histogram name="Memory.ParkableString.Read.ThroughputMBps" units="MBps"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Read throughput from disk for a ParkableString.</summary>
</histogram>
<histogram name="Memory.ParkableString.SavingsKb" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -85035,7 +87552,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.SavingsKb.5min" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -85058,7 +87575,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.TotalSizeKb.5min" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -85069,7 +87586,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.Write.Latency" units="microseconds"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -85081,21 +87598,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ParkableString.Write.SizeKb" units="KB"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Size of an on-disk ParkableString, recorded at write time.</summary>
</histogram>
<histogram name="Memory.ParkableString.Write.ThroughputMBps" units="MBps"
- expires_after="M85">
+ expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Throughput of a ParkableString disk write.</summary>
</histogram>
<histogram name="Memory.PartitionAlloc.MainThreadTime.5min" units="ms"
- expires_after="M85">
+ expires_after="M87">
<obsolete>
Deprecated and removed from the code 06/2020.
</obsolete>
@@ -85201,7 +87718,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.PressureLevel" enum="MemoryPressureLevel"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>chrisha@chromium.org</owner>
<summary>
The memory pressure level, which is recorded periodically. This shows the
@@ -85220,7 +87737,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Memory.PressureWindowDuration" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<!-- Name completed by histogram_suffixes name="Memory.Pressure.TransitionType" -->
<owner>sebmarchand@chromium.org</owner>
@@ -85233,7 +87750,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.ProcessCount" units="processes"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>creis@chromium.org</owner>
<owner>nasko@chromium.org</owner>
<summary>
@@ -85266,7 +87783,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Renderer.BlinkCachedMetadataGetResult"
- enum="CachedMetadataHandlerState" expires_after="M84">
+ enum="CachedMetadataHandlerState" expires_after="M87">
<owner>pasko@chromium.org</owner>
<owner>leszeks@chromium.org</owner>
<summary>
@@ -85342,7 +87859,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Renderer.SharedMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -85406,7 +87923,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.RendererProcessCount" units="processes"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>creis@chromium.org</owner>
<owner>nasko@chromium.org</owner>
<summary>
@@ -85443,7 +87960,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.RenderProcessHost.Count.All" units="processes"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
@@ -85461,7 +87978,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.RenderProcessHost.Count.InitializedAndNotDead"
- units="processes" expires_after="2020-12-13">
+ units="processes" expires_after="2021-02-14">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
@@ -86012,7 +88529,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Total.RendererPrivateMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>tommckee@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of all renderer processes.
@@ -86039,7 +88556,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Memory.Total.SharedMemoryFootprint" units="MB"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -86357,6 +88874,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Mist.SwitchResult" enum="MistSwitchResult" expires_after="M77">
+ <owner>akhouderchah@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
The result (e.g. success or the type of failure) of a modem interface switch
@@ -86445,6 +88963,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Mobile.AppMenu.TimeToTakeAction.Abandoned" units="ms"
+ expires_after="M93">
+ <owner>gangwu@chromium.org</owner>
+ <owner>twellington@chromium.org</owner>
+ <summary>
+ The time it takes for the user to abandon the app menu after it's shown by
+ pressing back or touching outside the menu. This is only logged if the menu
+ is abandoned. See Mobile.AppMenu.TimeToTakeAction.SelectedItem for the cases
+ where it is closed as a result of user interaction with the menu. Android
+ only.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.AppMenu.TimeToTakeAction.SelectedItem" units="ms"
+ expires_after="M93">
+ <owner>gangwu@chromium.org</owner>
+ <owner>twellington@chromium.org</owner>
+ <summary>
+ The time it takes for the user to select an item. This is only logged if the
+ menu is closed as a result of the user clicking a menu item. See
+ Mobile.AppMenu.TimeToTakeAction.Abandoned for the cases where it is
+ abandoned by the user. Android only.
+ </summary>
+</histogram>
+
<histogram name="Mobile.CanonicalURLResult" enum="CanonicalURLResult"
expires_after="M87">
<owner>pkl@chromium.org</owner>
@@ -86454,6 +88997,95 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Mobile.ContextMenu.BookmarkEntry.Actions" enum="IOSMenuAction"
+ expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Bookmark
+ entries. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.BookmarkFolder.Actions"
+ enum="IOSMenuAction" expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Bookmark
+ folders. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.EntryPoints" enum="IOSMenuScenario"
+ expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which context menu was shown. To drill down into a specific context
+ menu's usage, take a look at its actions' histogram (the format for actions
+ histograms is Mobile.ContextMenu.*.Actions). Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.HistoryEntry.Actions" enum="IOSMenuAction"
+ expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for History
+ entries. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.MostVisitedEntry.Actions"
+ enum="IOSMenuAction" expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Most Visited
+ entries. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.ReadingListEntry.Actions"
+ enum="IOSMenuAction" expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Reading List
+ entries. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.RecentTabsEntry.Actions"
+ enum="IOSMenuAction" expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Recent Tabs
+ entries. To view how often this context menu was shown, take a look at this
+ other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.ContextMenu.RecentTabsHeader.Actions"
+ enum="IOSMenuAction" expires_after="2021-07-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Tracks which action was selected in the context menu shown for Recent Tabs
+ headers/devices. To view how often this context menu was shown, take a look
+ at this other histogram: Mobile.ContextMenu.EntryPoints. Currently only on
+ iOS.
+ </summary>
+</histogram>
+
<histogram base="true" name="Mobile.DefaultBrowser.BrowserCount" units="units"
expires_after="never">
<!-- Name completed by histogram_suffixes name="Mobile.DefaultBrowser.Type" -->
@@ -86677,11 +89309,48 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Mobile.Share.BookmarkEntry.Actions" enum="IOSShareAction"
+ expires_after="2021-06-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>chrome-sharing-core@google.com</owner>
+ <summary>
+ Tracks the sharing actions executed when the sharing scenario was initiated
+ for a bookmark entry. To view how often this sharing scenario was triggered,
+ take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
<histogram name="Mobile.Share.EntryPoints" enum="IOSActivityScenario"
expires_after="2021-06-01">
<owner>seblalancette@chromium.org</owner>
<owner>chrome-sharing-core@google.com</owner>
- <summary>Tracks which sharing entry point was triggered.</summary>
+ <summary>
+ Tracks which sharing entry point was triggered. To view the outcome of these
+ sharing scenarios, take a look at their actions' histogram (the format is
+ Mobile.Share.*.Actions). Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Share.HistoryEntry.Actions" enum="IOSShareAction"
+ expires_after="2021-06-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>chrome-sharing-core@google.com</owner>
+ <summary>
+ Tracks the sharing actions executed when the sharing scenario was initiated
+ for a history entry. To view how often this sharing scenario was triggered,
+ take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Share.MostVisitedEntry.Actions" enum="IOSShareAction"
+ expires_after="2021-06-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>chrome-sharing-core@google.com</owner>
+ <summary>
+ Tracks the sharing actions executed when the sharing scenario was initiated
+ for a most visited tile. To view how often this sharing scenario was
+ triggered, take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
</histogram>
<histogram name="Mobile.Share.QRCodeImage.Actions" enum="IOSShareAction"
@@ -86690,7 +89359,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<owner>chrome-sharing-core@google.com</owner>
<summary>
Tracks the sharing actions executed when the sharing scenario was initiated
- for the generated QR code image.
+ for the generated QR code image. To view how often this sharing scenario was
+ triggered, take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Share.ReadingListEntry.Actions" enum="IOSShareAction"
+ expires_after="2021-06-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>chrome-sharing-core@google.com</owner>
+ <summary>
+ Tracks the sharing actions executed when the sharing scenario was initiated
+ for a reading list entry. To view how often this sharing scenario was
+ triggered, take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Share.RecentTabsEntry.Actions" enum="IOSShareAction"
+ expires_after="2021-06-01">
+ <owner>seblalancette@chromium.org</owner>
+ <owner>chrome-sharing-core@google.com</owner>
+ <summary>
+ Tracks the sharing actions executed when the sharing scenario was initiated
+ for a recent tab entry. To view how often this sharing scenario was
+ triggered, take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
</summary>
</histogram>
@@ -86700,12 +89392,30 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<owner>chrome-sharing-core@google.com</owner>
<summary>
Tracks the sharing actions executed when the sharing scenario was initiated
- from the tab's share button.
+ from the tab's share button. To view how often this sharing scenario was
+ triggered, take a look at: Mobile.Share.EntryPoints. Currently only on iOS.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Splash.HideSplashWhenFinishing" enum="Boolean"
+ expires_after="M86">
+ <obsolete>
+ Removed in 07/2020 because it is no longer needed for analysis.
+ </obsolete>
+ <owner>peconn@chromium.org</owner>
+ <owner>pkotwicz@chromium.org</owner>
+ <summary>
+ Records the cases when the splash screen is hidden when the activity is
+ finishing. Only &quot;true&quot; is recorded. The purpose is to help
+ determine cause of http://crbug.com/1096171
</summary>
</histogram>
<histogram name="Mobile.Splash.TranslucencyRemovalFailed" enum="Boolean"
expires_after="M88">
+ <obsolete>
+ Removed in 06/2020 because it is no longer needed for analysis.
+ </obsolete>
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -87194,6 +89904,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="MobileFre.ChildAccountStatusDuration" units="ms"
+ expires_after="2021-07-31">
+ <owner>skym@chromium.org</owner>
+ <owner>wenyufu@chromium.org</owner>
+ <summary>
+ Android: The amount of time spent fetching child account status during the
+ FRE. Not applicable for light weight FRE.
+ </summary>
+</histogram>
+
+<histogram base="true" name="MobileFre.FragmentInflationSpeed" units="ms"
+ expires_after="2021-07-31">
+ <owner>skym@chromium.org</owner>
+ <owner>wenyufu@chromium.org</owner>
+ <summary>
+ Android: Enterprise FRE cannot fully show the first page until the
+ appRestrictions call returns. This suffixed histogram measures when fragment
+ inflation was slower or faster than the appRestrictions call, and wether the
+ UI had to wait. Note this is recorded for all clients, not just enterprise.
+ Not applicable for light weight FRE.
+ </summary>
+</histogram>
+
+<histogram base="true" name="MobileFre.FromLaunch" units="ms"
+ expires_after="2021-07-31">
+ <owner>skym@chromium.org</owner>
+ <owner>wenyufu@chromium.org</owner>
+ <summary>
+ Android: This suffixed histogram represents the amount of time from when the
+ FRE intent was initially constructed, until some event in the future occurs.
+ Not applicable for light weight FRE.
+ </summary>
+</histogram>
+
<histogram name="MobileFre.PrivacyLinkTappedStatus"
enum="MobileFreLinkTappedStatus" expires_after="M82">
<obsolete>
@@ -87209,7 +89953,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MobileFre.Progress" enum="MobileFreProgress"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
@@ -87307,6 +90051,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="MobileIntent.FirstPartyToInternalScheme" enum="Boolean"
+ expires_after="2021-01-01">
+ <owner>peconn@chromium.org</owner>
+ <owner>peter@chromium.org</owner>
+ <summary>
+ Recorded when Chrome on Android is launched to an internal Chrome scheme
+ (chrome://, chrome-native://, about://) by a first party app (not Chrome).
+ This metric is to be used to determine whether any first party app uses the
+ feature, and whether we can remove it.
+ </summary>
+</histogram>
+
<histogram name="MobileIntent.PageLoadDueToExternalApp" enum="ClientAppId"
expires_after="never">
<!-- expires-never: Navigation (external-apps) heartbeat metric for Android. -->
@@ -87318,7 +90074,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MobileOmnibox.LongPressPasteAge" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>gangwu@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -87341,7 +90097,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<summary>
@@ -87431,7 +90187,32 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
expires_after="2021-03-01">
<owner>tedchoc@chromium.org</owner>
<owner>twellington@chromium.org</owner>
- <summary>The count of launching Chrome mobile app within a day.</summary>
+ <summary>
+ Android only.
+
+ The number of times the tabbed mode of Chrome is launched within a given 24
+ hour window. A &quot;launch&quot; here is defined as anytime the tabbed mode
+ is made visible (foregrounded), but all Chrome activities must be completely
+ hidden before we'll count an additional launch. It includes all kinds of
+ intents, such as MAIN and VIEW. By ensuring all Chrome activities are
+ hidden, we avoid overcounting by going to Settings and returning to Chrome.
+
+ This launch definition includes some items one might not expect: (i) click a
+ link in Chrome that opens in another app, then click back. (ii) have Chrome
+ in the foreground, then the screen times out (goes blank) or engages the
+ lock screen, then wake up/unlock the device. (iii) switch to
+ &quot;Recents&quot;, then re-select Chrome. In all these cases, Chrome has
+ gone to the background so returning to it counts as another launch.
+
+ The value reported reflects activity over a 24-hour window in the past,
+ possibly the distant past. Reporting is controlled by storing an initial
+ launch timestamp and counting all &quot;launches&quot; as a count until a
+ new launch happens after the 24hr window has elapsed (at this point, a new
+ 24hr window is started). The count is reported at the start of the next 24hr
+ window, so this is a retroactive count. For example, if a user uses Chrome
+ in one day two months ago, then doesn't use Chrome at all, then when Chrome
+ launches today it'll report the value during that 24-hour window.
+ </summary>
</histogram>
<histogram name="MobileStartup.IntentToCreationTime" units="ms"
@@ -87731,8 +90512,56 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Mojo.Channel.WriteMessageHandles" units="count"
+ expires_after="2021-07-01">
+ <owner>amistry@chromium.org</owner>
+ <owner>bgeffon@chromium.org</owner>
+ <owner>rockot@google.com</owner>
+ <summary>The number of handles sent with a channel message.</summary>
+</histogram>
+
+<histogram name="Mojo.Channel.WriteMessageLatency" units="ms"
+ expires_after="2021-07-01">
+ <owner>amistry@chromium.org</owner>
+ <owner>bgeffon@chromium.org</owner>
+ <owner>rockot@google.com</owner>
+ <summary>
+ Measures the time taken to fully write a channel message to the underlying
+ channel.
+ </summary>
+</histogram>
+
+<histogram name="Mojo.Channel.WriteMessageSize" units="bytes"
+ expires_after="2021-07-01">
+ <owner>amistry@chromium.org</owner>
+ <owner>bgeffon@chromium.org</owner>
+ <owner>rockot@google.com</owner>
+ <summary>The size of a message written to a channel.</summary>
+</histogram>
+
+<histogram name="Mojo.Channel.WriteQueued" enum="Boolean"
+ expires_after="2021-07-01">
+ <owner>amistry@chromium.org</owner>
+ <owner>bgeffon@chromium.org</owner>
+ <owner>rockot@google.com</owner>
+ <summary>
+ Tracks whether or not a message is written directly to a channel or queued.
+ </summary>
+</histogram>
+
+<histogram name="Mojo.Channel.WriteQueuePendingMessages" units="count"
+ expires_after="2021-07-01">
+ <owner>amistry@chromium.org</owner>
+ <owner>bgeffon@chromium.org</owner>
+ <owner>rockot@google.com</owner>
+ <summary>
+ The number queued messages waiting to be written, measured when a channel
+ flush is attempted.
+ </summary>
+</histogram>
+
<histogram name="Mojo.Connector.MaxUnreadMessageQuotaUsed" units="messages"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>siggi@chromium.org</owner>
<owner>rockot@chromium.org</owner>
<summary>
@@ -87893,8 +90722,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Mouse.PointerSensitivity.Changed" enum="PointerSensitivity"
- expires_after="2018-08-30">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>
Tracks mouse sensitivity setting changes by the user. This replaces the old
Mouse.Sensitivity.Changed metric.
@@ -87902,8 +90732,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Mouse.PointerSensitivity.Started" enum="PointerSensitivity"
- expires_after="2018-08-30">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>
Tracks mouse sensitivity setting on startup. This replaces the old
Mouse.Sensitivity.Started metric.
@@ -88080,7 +90911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MPArch.ChildProcessLaunchFirst" units="units"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>ppi@chromium.org</owner>
<summary>
The time it takes to spawn the first child subprocess (including sandbox
@@ -88089,7 +90920,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MPArch.ChildProcessLaunchSubsequent" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>ppi@chromium.org</owner>
<summary>
The time it takes to spawn child sub processes not counting the first one.
@@ -88577,6 +91408,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="MultiProfile.SigninUserUIPath"
enum="MultiProfileSigninUserAction" expires_after="2020-08-23">
+ <obsolete>
+ Retired in M86.
+ </obsolete>
<owner>skuhne@chromium.org</owner>
<summary>
Count the number of times each UI path is taken for signing into a new
@@ -88630,7 +91464,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="MultiProfile.UsersPerSessionIncremental" units="units"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>skuhne@chromium.org</owner>
<summary>
The number of users simultaneously signed into a multiprofile session on
@@ -89298,14 +92132,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NativeTheme.GetSystemColor" units="ms"
- expires_after="2020-12-02">
+ expires_after="2021-01-31">
<owner>pkasting@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>Time required to run ui::NativeTheme::GetSystemColor().</summary>
</histogram>
<histogram name="NativeTheme.GetSystemColor.UsesColorProvider" enum="Boolean"
- expires_after="2020-12-02">
+ expires_after="2021-01-31">
<owner>pkasting@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>Records if the color provider computed the color.</summary>
@@ -89618,8 +92452,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Navigation.EngagementTime.HTTP" units="ms" expires_after="M85">
- <owner>felt@chromium.org</owner>
+<histogram name="Navigation.EngagementTime.HTTP" units="ms" expires_after="M89">
+ <owner>estark@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
The amount of time that an HTTP page was in the foreground. Recorded on
every page close/transition.
@@ -89627,16 +92462,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.EngagementTime.HTTPS" units="ms"
- expires_after="M85">
- <owner>felt@chromium.org</owner>
+ expires_after="M89">
+ <owner>estark@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
The amount of time that an HTTPS page was in the foreground. Recorded on
every page close/transition.
</summary>
</histogram>
-<histogram name="Navigation.EngagementTime.Ratio" units="%" expires_after="M85">
- <owner>felt@chromium.org</owner>
+<histogram name="Navigation.EngagementTime.Ratio" units="%" expires_after="M89">
+ <owner>estark@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
The percentage of time that HTTPS pages were in the foreground, as compared
to total foreground time. Recorded whenever user metrics are uploaded.
@@ -89805,9 +92642,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrame.FrameCount" units="frames"
- expires_after="2020-08-01">
+ expires_after="2021-08-01">
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
<summary>
The number of frames that are present in a WebContents. Recorded once when
the main frame finishes loading.
@@ -89815,9 +92653,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrame.MaxFrameCount" units="frames"
- expires_after="2020-08-01">
+ expires_after="2021-08-01">
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
+ <owner>cros-families-eng@google.com</owner>
<summary>
The maximum number of loaded frames that are present in a WebContents.
Recorded once when the main frame is moving away from current page. This can
@@ -89827,7 +92666,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrame.SiteEngagementLevel"
- enum="SiteEngagementLevel" expires_after="2020-12-01">
+ enum="SiteEngagementLevel" expires_after="2021-01-31">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
@@ -89971,7 +92810,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrameScheme2" enum="NavigationScheme"
- expires_after="M85">
+ expires_after="2021-06-01">
<owner>elawrence@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -89999,7 +92838,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrameSchemeDifferentPage2"
- enum="NavigationScheme" expires_after="M85">
+ enum="NavigationScheme" expires_after="2021-06-01">
<owner>elawrence@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -90030,7 +92869,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrameSchemeDifferentPageOTR2"
- enum="NavigationScheme" expires_after="M85">
+ enum="NavigationScheme" expires_after="2021-06-01">
<owner>elawrence@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -90057,7 +92896,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Navigation.MainFrameSchemeOTR2" enum="NavigationScheme"
- expires_after="M85">
+ expires_after="2021-06-01">
<owner>elawrence@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -90526,6 +93365,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="NavigationPredictor.ExternalAndroidApp.CountPredictedURLs"
+ units="Count" expires_after="2021-07-26">
+ <owner>sophiechang@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Count of likely URLs for the next navigation as reported by an external
+ Android app via mayLaunchUrl() Android API. Recorded at the time the
+ prediction was received by Chrome.
+ </summary>
+</histogram>
+
<histogram base="true" name="NavigationPredictor.LinkClickedPrerenderResult"
enum="NavigationPredictorLinkClickedPrerenderResult" expires_after="M85">
<owner>ryansturm@chromium.org</owner>
@@ -90538,8 +93388,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NavigationSuggestion.Event" enum="NavigationSuggestionEvent"
- expires_after="M85">
+ expires_after="M89">
<owner>meacer@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Tracks events when the currently navigated domain name is a lookalike to one
of the top 10K domains or a domain that the user interacted with, resulting
@@ -91356,7 +94207,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NCN.NetworkOperatorMCCMNC" units="units"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbansal@chromium.org</owner>
<owner>bengr@google.com</owner>
<summary>
@@ -91778,6 +94629,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.ReceivedBytes" units="bytes"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>Number of bytes received over this stream.</summary>
@@ -91785,6 +94639,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.SentBytes" units="bytes"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>Number of bytes sent over this stream.</summary>
@@ -91792,6 +94649,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.TimeToReadEnd" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>
@@ -91802,6 +94662,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.TimeToReadStart" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>
@@ -91812,6 +94675,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.TimeToSendEnd" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>
@@ -91821,6 +94687,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.BidirectionalStream.TimeToSendStart" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>
@@ -94017,6 +96886,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.DNS.DnsTransaction.AttemptType" enum="DNS.AttemptType"
+ expires_after="2021-02-28">
+ <owner>ericorth@chromium.org</owner>
+ <owner>src/net/OWNERS</owner>
+ <summary>
+ Enumeration of the logic path used (e.g. different protocols) for each
+ started DnsAttempt (the representation of an individual network request to a
+ DNS server).
+ </summary>
+</histogram>
+
<histogram
name="Net.DNS.DnsTransaction.EsniTask.EsniTransactionEndToEndElapsed"
units="ms" expires_after="M82">
@@ -94249,7 +97129,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.DNS.DnsTransaction.UDP.IdMismatch"
- enum="DNS.UdpIdMismatchStatus" expires_after="2020-12-01">
+ enum="DNS.UdpIdMismatchStatus" expires_after="2021-01-31">
<owner>ericorth@chromium.org</owner>
<owner>src/net/OWNERS</owner>
<summary>
@@ -94260,7 +97140,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.DNS.DnsTransaction.UDP.IdMismatch.OldestMatchTime"
- units="ms" expires_after="2020-12-01">
+ units="ms" expires_after="2021-01-31">
<owner>ericorth@chromium.org</owner>
<owner>src/net/OWNERS</owner>
<summary>
@@ -94271,8 +97151,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.DNS.DnsTransaction.UDP.LowEntropyReason"
+ enum="DNS.UdpLowEntropyReason" expires_after="2021-02-28">
+ <owner>ericorth@chromium.org</owner>
+ <owner>src/net/OWNERS</owner>
+ <summary>
+ Enumerated status of the reason why the built-in DNS resolver has detected a
+ &quot;low entropy&quot; situation for DNS over UDP and has switched to DNS
+ over TCP.
+ </summary>
+</histogram>
+
<histogram name="Net.DNS.DnsTransaction.UDP.ReusedPort.Count"
- units="num recent uses" expires_after="2020-12-01">
+ units="num recent uses" expires_after="2021-01-31">
<owner>ericorth@chromium.org</owner>
<owner>src/net/OWNERS</owner>
<summary>
@@ -94282,7 +97173,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.DNS.DnsTransaction.UDP.ReusedPort.MostRecentAge"
- units="ms" expires_after="2020-12-01">
+ units="ms" expires_after="2021-01-31">
<owner>ericorth@chromium.org</owner>
<owner>src/net/OWNERS</owner>
<summary>
@@ -95285,6 +98176,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksShown"
enum="NetErrorNavigationCorrectionTypes" expires_after="2021-06-01">
+ <obsolete>
+ Removed as of 2020/07
+ </obsolete>
<owner>edwardjung@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
@@ -95295,6 +98189,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksUsed"
enum="NetErrorNavigationCorrectionTypes" expires_after="2021-06-01">
+ <obsolete>
+ Removed as of 2020/07
+ </obsolete>
<owner>edwardjung@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
@@ -95976,7 +98873,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.HttpAuthCount" enum="HttpAuthCount"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>asanka@chromium.org</owner>
<owner>mmenke@chromium.org</owner>
<summary>
@@ -96016,7 +98913,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.HttpAuthTarget" enum="HttpAuthTarget"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>asanka@chromium.org</owner>
<owner>mmenke@chromium.org</owner>
<summary>
@@ -96849,6 +99746,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.MediaCache.Response.EnabledOrDisabled"
enum="MediaResponseCacheType" expires_after="2020-09-01">
+ <owner>morlovich@chromium.org</owner>
<owner>shawnpi@microsoft.com</owner>
<owner>webmedia@microsoft.com</owner>
<summary>
@@ -96968,7 +99866,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.NetworkErrorLogging.SignedExchangeRequestOutcome"
- enum="NetNetworkErrorLoggingRequestOutcome" expires_after="2020-10-01">
+ enum="NetNetworkErrorLoggingRequestOutcome" expires_after="2021-01-24">
<owner>horo@chromium.org</owner>
<owner>ksakamoto@chromium.org</owner>
<owner>kinuko@chromium.org</owner>
@@ -98170,6 +101068,161 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.QuicConnectivityMonitor.NumActiveDegradingSessions"
+ units="sessions" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of active sessions that are degrading on network changes. The
+ suffix specifies the network change. Emitted when there are more than one
+ active sessions.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.QuicConnectivityMonitor.NumActiveQuicSessionsAtNetworkChange"
+ units="sessions" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of active QUIC sessions when a network change is detected. The
+ suffix specifies the network change.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicConnectivityMonitor.NumAllDegradedSessions"
+ units="sessions" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of all sessions that detectes path degradation until a network
+ change happens, including both active sessions and closed sessions. The
+ suffix specifies the network change.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.QuicConnectivityMonitor.NumAllSessionsDegradedAtNetworkChange"
+ units="sessions" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The total number of sessions that reports path degradation before a network
+ change happens, including both still active sessions and closed sessions.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.QuicConnectivityMonitor.NumSessionsTrackedSinceSpeculativeError"
+ units="sessions" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of total sessions that has been tracked since the first
+ speculative error, including both active and closed sessions. Only recorded
+ if non-zero.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.QuicConnectivityMonitor.NumWriteErrorsSeenBeforeDegradation"
+ units="errors" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of total sessions that has been closed due to
+ QUIC_PACKET_WRITE_ERROR before first path degradation detection.
+
+ The histogram is emitted when session path degrading is detected for the
+ first time on the current network and there was a session closed with a
+ speculative signal (QUIC_PACKET_WRITE_ERROR).
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicConnectivityMonitor.PercentageActiveDegradingSessions"
+ units="%" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The percentage of active sessions that are degrading on network changes. The
+ suffix specifies the network change. Emitted when there are at least two
+ active sessions.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicConnectivityMonitor.PercentageAllDegradedSessions"
+ units="%" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The percentage of all sessions that detectes path degradation until a
+ network change happens, including both active sessions and closed sessions.
+ Always emit 0 when there is no session reporting path degrading to speculate
+ a connectivity failure on the current network. The suffix specifies the
+ network change.
+
+ The histogram is emitted when a network change happens which could affect
+ the current default network, which includes the default network being
+ changed, alternate networks being connected. It, however, doesn't emit when
+ disconnecting an alternate network because that does not affect the current
+ default network.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicConnectivityMonitor.SessionDegradedBeforeWriteError"
+ enum="BooleanDetected" expires_after="2021-05-11">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ When a packet write error is detected by the session, if path degradation
+ has been detected already on the same session.
+
+ The histogram is emitted when a session encounters a QUIC_PACKET_WRITE_ERROR
+ and is soon to be closed.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicCryptoClientConfig.PopulatedFromCanonicalConfig"
enum="BooleanPopulated" expires_after="2018-08-30">
<obsolete>
@@ -98398,6 +101451,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.QuicNumStreamFramesInPacket" units="units"
expires_after="2021-05-11">
+ <obsolete>
+ Removed in 07/2020.
+ </obsolete>
<owner>dschinazi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
@@ -98407,6 +101463,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.QuicNumStreamFramesPerStreamInPacket" units="units"
expires_after="2021-05-11">
+ <obsolete>
+ Removed in 07/2020.
+ </obsolete>
<owner>dschinazi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
@@ -98926,6 +101985,23 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.QuicSession.ConnectionDuration" units="ms"
+ expires_after="2021-05-11">
+ <owner>renjietang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The duration of a QUIC connection starting from 1-RTT key available to
+ connection close.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.ConnectionDurationWithPublicReset" units="ms"
+ expires_after="2021-05-11">
+ <owner>fayang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>Duration of connections received PUBLIC_RESET.</summary>
+</histogram>
+
<histogram name="Net.QuicSession.ConnectionFlowControlBlocked"
enum="BooleanBlocked" expires_after="2021-05-11">
<owner>dschinazi@chromium.org</owner>
@@ -99068,6 +102144,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.QuicSession.EncryptionEstablishedTime"
+ units="Milliseconds" expires_after="2021-05-11">
+ <owner>fayang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The elapsed time between starting the crypto handshake and installing the
+ first encryption key that can carry application data (either 0-RTT or
+ 1-RTT).
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.FinalTcpCwnd" units="units"
expires_after="2021-05-11">
<owner>dschinazi@chromium.org</owner>
@@ -99281,7 +102368,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram
- name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived"
+ name="Net.QuicSession.LastInFlightPacketSentTimeFromHandshakeCompletionWithPublicReset"
+ units="ms" expires_after="2021-05-11">
+ <owner>fayang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ Time from handshake completion to last packet was sent for connections
+ received PUBLIC_RESET.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.LastSentPacketContentBeforePublicReset"
+ units="bitfield value" expires_after="2021-05-11">
+ <owner>fayang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ A bitfield representing the last sent packet content before connection
+ receives PUBLIC_RESET.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived{UnackedPackets}"
units="units" expires_after="2021-05-11">
<owner>dschinazi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
@@ -99291,6 +102399,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
closed. The suffix specifies whether there were any unacked packets pending
when the connection timed out.
</summary>
+ <token key="UnackedPackets">
+ <variant name="" label="">
+ <obsolete>
+ Removed as of 08/2016.
+ </obsolete>
+ </variant>
+ <variant name=".NoUnackedPackets"
+ label="The session had no outstanding unacked packets.">
+ <obsolete>
+ Removed as of 08/2016.
+ </obsolete>
+ </variant>
+ <variant name=".UnackedPackets"
+ label="The session had outstanding unacked packets.">
+ <obsolete>
+ Removed as of 08/2016.
+ </obsolete>
+ </variant>
+ </token>
</histogram>
<histogram name="Net.QuicSession.MaxConsecutiveRtoWithForwardProgress"
@@ -99389,6 +102516,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.QuicSession.NumPingsSent" units="pings"
+ expires_after="2021-05-11">
+ <owner>renjietang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of pings a QUIC connection sends during its lifetime.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.NumQueuedPacketsAtOutOfOrder" units="packets"
expires_after="M85">
<obsolete>
@@ -100294,6 +103430,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Net.QuicSession.ZeroRttState" enum="ZeroRttState"
+ expires_after="2021-05-11">
+ <owner>renjietang@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>Whether 0-RTT was successfully used in the connection.</summary>
+</histogram>
+
<histogram name="Net.QuicStreamFactory.AttemptMigrationBeforeHandshake"
enum="BooleanAttempted" expires_after="2021-05-11">
<owner>zhongyi@chromium.org</owner>
@@ -100416,16 +103559,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.QuicStreamFactory.NumDegradingSessions" units="sessions"
expires_after="2021-05-11">
+ <obsolete>
+ Depecated on 07/2020. Replaced by
+ Net.QuicConnectivityMonitor.NumAllDegradedSessions.
+ </obsolete>
<owner>zhongyi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
- The number number of sessions that are degrading on network change. The
- suffix specifies the network change.
+ The number of sessions that are degrading on network change. The suffix
+ specifies the network change.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicStreamFactory.NumQuicSessionsAtNetworkChange"
+ units="units" expires_after="2021-05-11">
+ <obsolete>
+ Deprecated on 07/2020. Replaced by
+ Net.QuicConnectivityMonitor.NumActiveQuicSessionsAtNetworkChange.
+ </obsolete>
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rockot@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ The number of QUIC sessions when a network change is detected.
</summary>
</histogram>
<histogram name="Net.QuicStreamFactory.PercentageDegradingSessions" units="%"
expires_after="2021-05-11">
+ <obsolete>
+ Depecated on 07/2020. Replaced by
+ Net.QuicConnectivityMonitor.PercentageAllDegradedSessions.
+ </obsolete>
<owner>zhongyi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
<summary>
@@ -100975,6 +104140,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Net.RestrictedCookieManager.SetCanonicalCookieDomainMatch"
enum="Boolean" expires_after="2020-08-30">
+ <obsolete>
+ Removed Aug 2020. This was added to evaluate safety of proposed code
+ changes, and is no longer necessary as the necessary results were obtained.
+ </obsolete>
<owner>chlily@chromium.org</owner>
<owner>morlovich@chromium.org</owner>
<summary>
@@ -102534,7 +105703,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.SSLTLS13Downgrade" enum="BooleanDowngrade"
- expires_after="2020-10-30">
+ expires_after="2020-07-28">
+ <obsolete>
+ Removed 2020-07-28.
+ </obsolete>
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -102545,7 +105717,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.SSLTLS13DowngradeTLS13Experiment" enum="BooleanDowngrade"
- expires_after="2020-10-30">
+ expires_after="2020-07-28">
+ <obsolete>
+ Removed 2020-07-28.
+ </obsolete>
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -102557,7 +105732,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.SSLTLS13DowngradeType" enum="TLS13DowngradeType"
- expires_after="2020-10-30">
+ expires_after="2020-07-28">
+ <obsolete>
+ Removed 2020-07-28.
+ </obsolete>
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -102567,7 +105745,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.SSLTLS13DowngradeTypeTLS13Experiment"
- enum="TLS13DowngradeType" expires_after="2020-10-30">
+ enum="TLS13DowngradeType" expires_after="2020-07-28">
+ <obsolete>
+ Removed 2020-07-28.
+ </obsolete>
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -103112,7 +106293,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Net.TrustTokens.OperationBeginTime" units="ms"
- expires_after="M86">
+ expires_after="2021-03-30">
<!-- Name completed by histogram_suffixes name="TrustTokenOperationType" -->
<owner>davidvc@chromium.org</owner>
@@ -103124,7 +106305,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Net.TrustTokens.OperationFinalizeTime" units="ms"
- expires_after="M88">
+ expires_after="2021-03-30">
<!-- Name completed by histogram_suffixes name="TrustTokenOperationType" -->
<owner>davidvc@chromium.org</owner>
@@ -103136,7 +106317,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Net.TrustTokens.OperationServerTime" units="ms"
- expires_after="M88">
+ expires_after="2021-03-30">
<!-- Name completed by histogram_suffixes name="TrustTokenOperationType" -->
<owner>davidvc@chromium.org</owner>
@@ -103149,7 +106330,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Net.TrustTokens.OperationTotalTime" units="ms"
- expires_after="M88">
+ expires_after="2021-03-30">
<!-- Name completed by histogram_suffixes name="TrustTokenOperationType" -->
<owner>davidvc@chromium.org</owner>
@@ -103161,6 +106342,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="Net.TrustTokens.SubresourceOperationRequiringFeaturePolicy.PolicyIsConsistentWithBrowserOpinion"
+ enum="BooleanConsistent" expires_after="2021-03-30">
+ <owner>davidvc@chromium.org</owner>
+ <owner>privacy-sandbox-dev@chromium.org</owner>
+ <summary>
+ For a Trust Tokens operation associated with a subresource request, stores
+ whether the browser believed the frame had the Feature Policy feature
+ necessary for executing the operation.
+ </summary>
+</histogram>
+
<histogram name="Net.UdpSocketBindErrorFromPosix" units="PosixError"
expires_after="2017-10-18">
<obsolete>
@@ -103275,7 +106468,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Net.WebSocket.CloseCode" enum="WebSocketCloseCode"
- expires_after="M86">
+ expires_after="2020-12-01">
<owner>ricea@chromium.org</owner>
<owner>yhirano@chromium.org</owner>
<owner>yoichio@chromium.org</owner>
@@ -104259,11 +107452,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.3G.Gobi.Activation" units="ms" expires_after="M85">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>The time the Gobi modem takes to complete activation.</summary>
</histogram>
<histogram name="Network.3G.Gobi.Connect" units="ms" expires_after="2019-12-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
The time the Gobi modem takes to connect to the cellular network.
@@ -104272,6 +107467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.3G.Gobi.Disconnect" units="ms"
expires_after="2019-12-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
The time the Gobi modem takes to disconnect from the cellular network.
@@ -104280,18 +107476,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.3G.Gobi.FirmwareDownload.Attempts" units="units"
expires_after="M85">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>Number of attempts taken to install Gobi firmware.</summary>
</histogram>
<histogram name="Network.3G.Gobi.FirmwareDownload.Time" units="ms"
expires_after="M85">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>The time it takes to install Gobi firmware.</summary>
</histogram>
<histogram name="Network.3G.Gobi.Registration" units="ms"
expires_after="2019-12-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
The time the Gobi modem takes to register on the cellular network.
@@ -104300,6 +107499,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.3G.Gobi.SetPower" enum="Network3GGobiError"
expires_after="2019-12-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>Errors experienced during Gobi device powerup.</summary>
</histogram>
@@ -104479,6 +107679,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.3GPPRegistrationDelayedDrop"
enum="NetworkCellular3GPPRegistrationDelayedDrop"
expires_after="2020-06-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104490,6 +107691,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.AutoConnectTotalTime" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104501,6 +107703,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.AutoConnectTries" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104512,6 +107715,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.DevicePresenceStatus"
enum="BooleanPresent" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104536,6 +107740,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.Disconnect"
enum="NetworkDisconnectType" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104546,6 +107751,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.Drop" enum="NetworkCellularTechnology"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104571,6 +107777,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.ExpiredLeaseLengthSeconds2"
units="seconds" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104582,6 +107789,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.IPv6ConnectivityStatus"
enum="IPv6ConnectivityStatus" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104591,7 +107799,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Cellular.NetworkConnectionIPType"
- enum="NetworkConnectionIPType" expires_after="2020-12-01">
+ enum="NetworkConnectionIPType" expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104602,6 +107811,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.OutOfCreditsReason"
enum="NetworkCellularOutOfCreditsReason" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104612,6 +107822,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.PortalAttempts" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104623,6 +107834,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.PortalAttemptsToOnline" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104633,7 +107845,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Cellular.PortalResult"
- enum="NetworkPortalResult" expires_after="2020-12-01">
+ enum="NetworkPortalResult" expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104642,8 +107855,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Network.Shill.Cellular.ServiceErrors"
+ enum="NetworkServiceError" expires_after="2021-07-01">
+ <owner>kuabhs@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
+ <summary>
+ Chrome OS connection manager service errors for cellular interface.
+ </summary>
+</histogram>
+
<histogram name="Network.Shill.Cellular.SignalStrengthBeforeDrop" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104653,7 +107876,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Cellular.TimeOnline" units="seconds"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104665,6 +107889,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToConfig" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104675,6 +107900,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToConnect" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104685,6 +107911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToDisable" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104695,6 +107922,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToEnable" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104705,6 +107933,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToInitialize" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104715,6 +107944,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToOnline" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104725,6 +107955,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToPortal" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104746,6 +107977,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Cellular.TimeToScan" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104756,6 +107988,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.ConnectionDiagnosticsIssue"
enum="ConnectionDiagnosticsIssue" expires_after="M85">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
Chrome OS network metric that tracks the connectivity issue diagnosed by the
@@ -104767,6 +108000,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.CorruptedProfile" enum="NetworkCorruptedProfile"
expires_after="M78">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<summary>
Chrome OS cellular network metric that tracks the number of corrupted
@@ -104777,6 +108011,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.CumulativeTimeOnline" units="seconds"
expires_after="2020-12-01">
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS device time on line in the previous 24-hour sample period.
@@ -104790,8 +108025,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DailyChosenFractionOnline.Cellular" units="%"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS fraction of daily cumulative time on a cellular connection when
@@ -104803,9 +108038,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.DailyChosenFractionOnline.Wifi" units="%"
- expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS fraction of daily cumulative time on a WiFi connection when both
@@ -104817,9 +108052,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.DailyChosenTimeOnline.Any" units="seconds"
- expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS daily cumulative time on line when both cellular and WiFi adaptors
@@ -104832,8 +108067,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DailyChosenTimeOnline.Cellular" units="seconds"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS daily cumulative time on a cellular connection when both cellular
@@ -104846,8 +108081,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DailyChosenTimeOnline.Wifi" units="seconds"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS daily cumulative time on a WiFi connection when both cellular and
@@ -104861,6 +108096,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DarkResumeActionResult"
enum="ShillSuspendTerminationDarkResumeActionResult"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104871,6 +108107,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DarkResumeActionsTimeTaken" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104893,6 +108130,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DarkResumeScanNumRetries" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104903,6 +108141,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DarkResumeScanRetryResult"
enum="DarkResumeScanRetryResult" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104914,7 +108153,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.DeviceConnectionStatus" enum="ConnectionStatus"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104925,6 +108165,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DeviceRemovedEvent" enum="DeviceTechnologyType"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104934,7 +108175,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.DHCPClientMTUValue" units="bytes"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network diagnostic metric sampling the MTU value proposed by the
@@ -104945,6 +108188,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DHCPClientStatus" enum="NetworkDhcpClientStatus"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network diagnostic metric sampling the current state of the DHCP
@@ -104954,6 +108199,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.DHCPOptionFailureDetected"
enum="NetworkTechnology" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104966,6 +108212,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.DevicePresenceStatus"
enum="BooleanPresent" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -104990,6 +108237,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.Disconnect"
enum="NetworkDisconnectType" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105015,6 +108263,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.ExpiredLeaseLengthSeconds2"
units="seconds" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105026,6 +108275,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.LinkMonitorBroadcastErrorsAtFailure"
units="units" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105037,6 +108287,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.LinkMonitorFailure"
enum="LinkMonitorFailureType" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105047,6 +108298,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.LinkMonitorResponseTimeSample"
units="ms" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105057,6 +108309,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.LinkMonitorSecondsToFailure"
units="seconds" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105067,6 +108320,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.LinkMonitorUnicastErrorsAtFailure"
units="units" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105078,6 +108332,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.PortalAttempts" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105089,6 +108344,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.PortalAttemptsToOnline" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105100,6 +108356,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.PortalResult"
enum="NetworkPortalResult" expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105108,8 +108365,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Network.Shill.Ethernet.ServiceErrors"
+ enum="NetworkServiceError" expires_after="2021-07-01">
+ <owner>kuabhs@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
+ <summary>
+ Chrome OS connection manager service errors for ethernet interface.
+ </summary>
+</histogram>
+
<histogram name="Network.Shill.Ethernet.TimeOnline" units="seconds"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105121,6 +108388,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.TimeToConfig" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105132,6 +108400,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.TimeToInitialize" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105142,6 +108411,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.TimeToOnline" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105152,6 +108422,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.Ethernet.TimeToPortal" units="ms"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105173,8 +108444,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.MonthlyChosenFractionOnline.Cellular" units="%"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS fraction of monthly cumulative time on a cellular connection when
@@ -105187,8 +108458,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.MonthlyChosenFractionOnline.Wifi" units="%"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS fraction of monthly cumulative time on a WiFi connection when both
@@ -105201,8 +108472,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.MonthlyChosenTimeOnline.Any" units="seconds"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS monthly cumulative time on line when both cellular and WiFi
@@ -105215,8 +108486,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.MonthlyChosenTimeOnline.Cellular"
units="seconds" expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS monthly cumulative time on a cellular connection when both
@@ -105229,8 +108500,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.MonthlyChosenTimeOnline.Wifi" units="seconds"
expires_after="2020-12-01">
- <owner>benchan@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
+ <owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS monthly cumulative time on a WiFi connection when both cellular
@@ -105278,13 +108549,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.ServiceErrors" enum="NetworkServiceError"
- expires_after="M85">
+ expires_after="2021-07-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
- <summary>Chrome OS connection manager service errors seen.</summary>
+ <owner>cros-network-metrics@google.com</owner>
+ <summary>
+ Chrome OS connection manager service errors across all technologies.
+ </summary>
</histogram>
<histogram name="Network.Shill.ServicesOnSameNetwork" units="units"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105295,7 +108571,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.SuspendActionResult"
enum="ShillSuspendTerminationDarkResumeActionResult"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105333,7 +108610,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.SuspendActionTimeTaken" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>briannorris@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105345,6 +108622,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.TerminationActionResult"
enum="ShillSuspendTerminationDarkResumeActionResult"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105382,7 +108660,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.TerminationActionsTimeTaken" units="ms"
expires_after="M85">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network diagnostic metric sampling the time in milliseconds it
takes termination actions to complete when shill terminates.
@@ -105426,7 +108706,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.TimeToDrop" units="seconds"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
+ <owner>stevenjb@chromium.org</owner>
<owner>benchan@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105439,6 +108720,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.UserInitiatedEvents" enum="UserInitiatedEvent"
expires_after="2020-12-01">
+ <owner>stevenjb@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network metric that tracks the number of user-initiated events.
@@ -105446,7 +108728,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.Driver" enum="VPNDriver"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105456,7 +108738,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.RemoteAuthenticationType"
- enum="VPNRemoteAuthenticationType" expires_after="2020-12-01">
+ enum="VPNRemoteAuthenticationType" expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105466,7 +108748,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.TimeOnline" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105480,7 +108762,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.TimeToConfig" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105490,7 +108772,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.TimeToOnline" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105500,7 +108782,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Vpn.UserAuthenticationType"
- enum="VPNUserAuthenticationType" expires_after="2020-12-01">
+ enum="VPNUserAuthenticationType" expires_after="2021-01-31">
<owner>akhouderchah@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105582,7 +108864,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.ApDisconnectType" enum="WiFiStatusType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105710,7 +108992,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Wifi.DevicePresenceStatus" enum="BooleanPresent"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105745,7 +109027,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Wifi.EapInnerProtocol" enum="EAPInnerProtocol"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105755,7 +109037,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Wifi.EapOuterProtocol" enum="EAPOuterProtocol"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105811,13 +109093,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>
Chrome OS metric sampling the number of different frequencies (i.e.
channels) on which a device has connected to a WiFi network. This value is
- sampled every time a WiFi connection is established
+ recorded every time a WiFi connection is established
(WPASupplicant::kInterfaceStateCompleted). Note that the word
&quot;Ever&quot; in the metric name is misleading. Chrome OS actually ages
out historical information, currently after 3 weeks.
</summary>
</histogram>
+<histogram name="Network.Shill.WiFi.HiddenSSIDNetworkCount" units="units"
+ expires_after="2021-08-15">
+ <owner>tnagel@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
+ <owner>cros-privacy-core@google.com</owner>
+ <summary>
+ Chrome OS network metric tracking WiFi networks configured with hidden SSID.
+ The metric includes networks from system and user profile and it's recorded
+ each time a user configuration profile is loaded, such as when a user logs
+ in. The fraction of non-zero buckets should roughly correspond to the
+ fraction of devices that are trying to connect to hidden SSIDs at any given
+ point in time.
+ </summary>
+</histogram>
+
<histogram name="Network.Shill.WiFi.HS20Support" enum="HotspotSupport"
expires_after="2021-01-10">
<owner>kglund@google.com</owner>
@@ -105956,7 +109253,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.RegulatoryDomain" enum="RegulatoryDomain"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>briannorris@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -105968,6 +109265,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Shill.WiFi.RememberedNetworkCount" units="units"
expires_after="M85">
+ <owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network diagnostic metric sampling the number of 802.11 wireless
@@ -106051,7 +109349,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Wifi.Security" enum="NetworkSecurityType"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -106060,6 +109358,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Network.Shill.Wifi.ServiceErrors" enum="NetworkServiceError"
+ expires_after="2021-07-01">
+ <owner>kuabhs@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
+ <summary>
+ Chrome OS connection manager service errors for wifi interface.
+ </summary>
+</histogram>
+
<histogram base="true" name="Network.Shill.WiFi.SessionLength" units="ms"
expires_after="2020-12-31">
<!-- Name completed by histogram_suffixes name="RoamSecurityType" -->
@@ -106129,7 +109436,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.SupplicantAttempts" units="attempts"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>briannorris@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
<owner>chromeos-kernel-wifi@google.com</owner>
@@ -106148,7 +109455,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.SuspendDurationWoWOffConnected"
- units="seconds" expires_after="2020-12-01">
+ units="seconds" expires_after="2021-01-31">
<owner>semenzato@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
@@ -106160,7 +109467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.SuspendDurationWoWOffDisconnected"
- units="seconds" expires_after="2020-12-01">
+ units="seconds" expires_after="2021-01-31">
<owner>semenzato@chromium.org</owner>
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
@@ -106216,7 +109523,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.Wifi.TimeToConfig" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -106332,7 +109639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.UserInitiatedConnectionFailureReason"
- enum="ConnectionFailureReason" expires_after="2020-12-01">
+ enum="ConnectionFailureReason" expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -106344,7 +109651,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.UserInitiatedConnectionResult"
- enum="ConnectionResult" expires_after="2020-12-01">
+ enum="ConnectionResult" expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -106398,7 +109705,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Shill.WiFi.WiFiConnectionStatusAfterWake"
- enum="WiFiConnectionStatusAfterWake" expires_after="2020-12-01">
+ enum="WiFiConnectionStatusAfterWake" expires_after="2021-01-31">
<owner>kirtika@chromium.org</owner>
<owner>cros-network-metrics@google.com</owner>
<summary>
@@ -106604,6 +109911,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Channel" enum="NetworkChannelType"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Chrome OS network usage metric. The channel used for each successful WiFi
@@ -106613,6 +109921,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.PhyMode" enum="NetworkPhyModeType"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Chrome OS network usage metric. The channel type used for each successful
@@ -106621,6 +109930,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Network.Wifi.RoundTripTime" units="ms" expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Network metric reporting the average round trip time to the WiFi gateway.
@@ -106630,6 +109940,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Security" enum="NetworkSecurityType"
expires_after="M85">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<owner>cast-analytics@google.com</owner>
<summary>
Chrome OS network usage metric. The security setting for each successful
@@ -106640,7 +109951,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.Connection.FailureReason"
enum="ConnectionFailureReason" expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the failure reason for all connection attempts,
manual or automatic, to Wi-Fi networks which were added from Chrome Sync.
@@ -106650,7 +109961,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.Connection.Result" enum="BooleanSuccess"
expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the result of all connection attempts, manual
or automatic, to Wi-Fi networks which were added from Chrome Sync.
@@ -106660,7 +109971,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.ManualConnection.FailureReason"
enum="ConnectionFailureReason" expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the failure reason for manual connection
attempts to Wi-Fi networks which were added from Chrome Sync.
@@ -106670,7 +109981,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.ManualConnection.Result"
enum="BooleanSuccess" expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the result of manual connection attempts to
Wi-Fi networks which were added from Chrome Sync.
@@ -106680,7 +109991,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.TotalCount" units="units"
expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the total number of Wi-Fi networks which are
stored in Chrome Sync for the active user.
@@ -106690,7 +110001,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.UpdateOperation.FailureReason"
enum="ConnectionFailureReason" expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the failure reason for update attempts to
synced Wi-Fi networks. This includes create/modify/remove operations. Each
@@ -106701,7 +110012,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Network.Wifi.Synced.UpdateOperation.Result"
enum="BooleanSuccess" expires_after="2021-04-22">
<owner>jonmann@chromium.org</owner>
- <owner>better-together-dev@google.org</owner>
+ <owner>better-together-dev@google.com</owner>
<summary>
Chrome OS metric that tracks the result of update attempts to synced Wi-Fi
networks. This includes create/modify/remove operations. failures are only
@@ -106936,7 +110247,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
Whether the request origin (i.e.
network::ResourceRequest::request_initiator) matches the origin that the
browser process expected when creating the URLLoaderFactory (i.e. whether it
- matches URLLoaderFactoryParams::request_initiator_site_lock).
+ matches URLLoaderFactoryParams::request_initiator_origin_lock).
Recorded when a request is started (i.e. at the time of constructing
network::URLLoader).
@@ -107085,7 +110396,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ActionAndroid2" enum="NewTabPageActionAndroid2"
- expires_after="M85">
+ expires_after="2021-07-01">
+ <owner>twellington@chromium.org</owner>
<owner>finkm@chromium.org</owner>
<summary>
Actions taken from the new tab page on Android. These actions may navigate
@@ -107223,9 +110535,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.ArticlesListVisible"
- enum="BooleanVisible" expires_after="M85">
- <owner>twellington@chromium.org</owner>
- <owner>chrome-android-app@chromium.org</owner>
+ enum="BooleanVisible" expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: Whether article suggestions on New Tab Page are set visible by user
on startup and when the visibility is changed.
@@ -107445,8 +110757,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.MenuOpened" units="index"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The position of a suggestion card whose long-press menu was opened,
analogous to NewTabPage.ContentSuggestions.Opened.
@@ -107490,8 +110803,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.MoreButtonClicked" units="index"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The position of a &quot;More&quot; suggestion card that was clicked
on the NTP. A card is considered shown when at least 2/3 of its height is
@@ -107504,8 +110818,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.MoreButtonShown" units="index"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The position of a &quot;More&quot; suggestion card that was shown
on the NTP. A card is considered shown when at least 2/3 of its height is
@@ -107570,8 +110885,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.Opened" units="index"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The position of the suggestion card on the NTP, that is clicked
through to the host website of the content. We track the position the card
@@ -107668,8 +110984,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.Shown" units="index"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The position of a suggestion card that was shown on the NTP. A card
is considered shown when at least 2/3 of its height is visible on the
@@ -107723,8 +111040,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.ShownAge" units="ms"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The age of a suggestion card that was shown on the NTP. A card is
considered shown when at least 2/3 of its height is visible on the screen.
@@ -107911,8 +111229,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.ContentSuggestions.VisitDuration" units="ms"
- expires_after="M85">
- <owner>treib@chromium.org</owner>
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: Time spent reading the page linked by an opened suggestion card.
Exit conditions include the tab not being in the foreground or starting a
@@ -107920,6 +111239,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="NewTabPage.CryptidRenderResult" enum="CryptidRenderResult"
+ expires_after="M90">
+ <owner>tmartino@chromium.org</owner>
+ <owner>chrome-creation@google.com</owner>
+ <summary>
+ Tracks the outcome of Probabilistic Cryptid Rendering (succeeded, failed, or
+ was disabled because preconditions were not met).
+ </summary>
+</histogram>
+
<histogram name="NewTabPage.CustomizationAvailability.Backgrounds"
enum="NTPBackgroundCustomizationAvailability" expires_after="M90">
<obsolete>
@@ -108555,7 +111884,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="NewTabPage.OfflineUrlsLoadTime" units="ms" expires_after="M85">
+<histogram name="NewTabPage.OfflineUrlsLoadTime" units="ms" expires_after="M58">
+ <obsolete>
+ Removed in M58.
+ </obsolete>
<owner>dewittj@chromium.org</owner>
<summary>
The amount of time spent waiting for the offline page model to return which
@@ -108674,6 +112006,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="NewTabPage.Promos.PromoBrowserCommand"
+ enum="PromoBrowserCommandEnum" expires_after="M90">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>chrome-desktop-ntp@google.com</owner>
+ <summary>
+ Logs how many times various promo browser commands are executed. Triggered
+ when a supported and enabled promo browser command is sent via the New Tab
+ Page promos and is executed by the PromoBrowserCommandHandler.
+ </summary>
+</histogram>
+
<histogram name="NewTabPage.Promos.RequestLatency" units="ms"
expires_after="M76">
<obsolete>
@@ -109553,8 +112896,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="NewTabPage.TimeSpent" units="ms" expires_after="M85">
- <owner>twellington@chromium.org</owner>
+<histogram name="NewTabPage.TimeSpent" units="ms" expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
The time spent on the new tab page as measured from when it was loaded or
last brought to the foreground until it was navigated away from or hidden.
@@ -109579,9 +112923,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="NewTabPage.TimeToFirstDraw2" units="ms" expires_after="M85">
- <owner>skym@chromium.org</owner>
- <owner>twellington@chromium.org</owner>
+<histogram name="NewTabPage.TimeToFirstDraw2" units="ms"
+ expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
The time from when a new tab page is created until the first pre-draw call
on the root view containing the search provider logo (if available), fake
@@ -109592,9 +112937,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="NewTabPage.URLState" enum="NewTabURLState" expires_after="M85">
- <owner>dbeam@chromium.org</owner>
+<histogram name="NewTabPage.URLState" enum="NewTabURLState"
+ expires_after="2021-01-01">
+ <owner>tiborg@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
+ <owner>chrome-desktop-ntp@google.com</owner>
<summary>
Records the status of the New Tab page URL when an NTP is opened.
</summary>
@@ -109622,8 +112969,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NewTabPage.UserClassifier.AverageHoursToUseSuggestions"
- units="hours" expires_after="M85">
- <owner>jkrcal@chromium.org</owner>
+ units="hours" expires_after="2021-07-01">
+ <owner>freedjm@chromium.org</owner>
+ <owner>feed@chromium.org</owner>
<summary>
Android: The estimated average number of hours between two successive times
when the user opens a content suggestion or clicks on the &quot;More&quot;
@@ -109792,7 +113140,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Database.DeleteAllForOriginsResult"
- enum="NotificationDatabaseStatus" expires_after="M86">
+ enum="NotificationDatabaseStatus" expires_after="M90">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -109874,7 +113222,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Database.ReadResourcesForTriggeredResult"
- enum="NotificationDatabaseStatus" expires_after="M86">
+ enum="NotificationDatabaseStatus" expires_after="M90">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -109885,7 +113233,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Database.ReadResourcesResult"
- enum="NotificationDatabaseStatus" expires_after="M86">
+ enum="NotificationDatabaseStatus" expires_after="M90">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -109916,7 +113264,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Database.WriteTriggeredResult"
- enum="NotificationDatabaseStatus" expires_after="M86">
+ enum="NotificationDatabaseStatus" expires_after="M90">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -109955,6 +113303,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Notifications.ExtensionNotificationActionCount"
units="buttons" expires_after="M86">
+ <obsolete>
+ Removed in July 2020 as the metrics are not needed anymore, and
+ documentation has been amended as a result of this collection.
+ </obsolete>
<owner>dewittj@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -109982,6 +113334,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Notifications.ExtensionNotificationType"
enum="ExtensionNotificationType" expires_after="M86">
+ <obsolete>
+ Removed in July 2020 as the metrics are not needed anymore as platforms have
+ moved to native notifications, for which these metrics were used.
+ </obsolete>
<owner>dewittj@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -110190,7 +113546,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Permissions.RevokeDeleteCount" units="units"
- expires_after="M86">
+ expires_after="M90">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -110254,7 +113610,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.BackgroundTask.Event"
- enum="NotificationSchedulerBackgroundTaskEvent" expires_after="2020-08-01">
+ enum="NotificationSchedulerBackgroundTaskEvent" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110264,7 +113620,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.BackgroundTask.NotificationShown"
- units="notifications" expires_after="2020-08-01">
+ units="notifications" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110273,7 +113629,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.BackgroundTask.Start" units="hours"
- expires_after="2020-08-01">
+ expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110283,7 +113639,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.IconDb.InitResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110293,7 +113649,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.IconDb.OperationResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110303,7 +113659,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.IconDb.RecordCount" units="records"
- expires_after="2020-08-01">
+ expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110313,7 +113669,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.IhnrActionButtonEvent"
- enum="NotificationSchedulerActionButtonEvent" expires_after="2020-08-01">
+ enum="NotificationSchedulerActionButtonEvent" expires_after="2021-07-01">
<!-- Name completed by histogram_suffixes name="NotificationSchedulerClientType" -->
<owner>xingliu@chromium.org</owner>
@@ -110325,7 +113681,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.Impression.Count" units="records"
- expires_after="2020-08-01">
+ expires_after="2021-07-01">
<!-- Name completed by histogram_suffixes name="NotificationSchedulerClientType" -->
<owner>xingliu@chromium.org</owner>
@@ -110337,7 +113693,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.Impression.Event"
- enum="NotificationSchedulerImpressionEvent" expires_after="2020-08-01">
+ enum="NotificationSchedulerImpressionEvent" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110347,7 +113703,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.ImpressionDb.InitResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110357,7 +113713,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.ImpressionDb.OperationResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110367,7 +113723,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.ImpressionDb.RecordCount"
- units="records" expires_after="2020-08-01">
+ units="records" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110377,7 +113733,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.NotificationDb.InitResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110387,7 +113743,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.NotificationDb.OperationResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110397,7 +113753,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.NotificationDb.RecordCount"
- units="records" expires_after="2020-08-01">
+ units="records" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110408,7 +113764,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Notifications.Scheduler.NotificationLifeCycleEvent"
enum="NotificationSchedulerNotificationLifeCycleEvent"
- expires_after="2020-08-01">
+ expires_after="2021-07-01">
<!-- Name completed by histogram_suffixes name="NotificationSchedulerClientType" -->
<owner>xingliu@chromium.org</owner>
@@ -110420,7 +113776,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.PngIconConverter.DecodeResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110432,7 +113788,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.PngIconConverter.EncodeResult"
- enum="BooleanSuccess" expires_after="2020-08-01">
+ enum="BooleanSuccess" expires_after="2021-07-01">
<owner>xingliu@chromium.org</owner>
<owner>hesen@chromium.org</owner>
<summary>
@@ -110444,7 +113800,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Notifications.Scheduler.UserAction"
- enum="NotificationSchedulerUserActionType" expires_after="2020-08-01">
+ enum="NotificationSchedulerUserActionType" expires_after="2021-07-01">
<!-- Name completed by histogram_suffixes name="NotificationSchedulerClientType" -->
<owner>xingliu@chromium.org</owner>
@@ -110467,6 +113823,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Notifications.Triggers.HasShowTrigger" enum="Boolean"
expires_after="M86">
+ <obsolete>
+ Removed July 2020 as the Origin Trial is ramping down.
+ </obsolete>
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -110478,6 +113837,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Notifications.Triggers.ShowTriggerDelay" units="days"
expires_after="M86">
+ <obsolete>
+ Removed July 2020 as the Origin Trial is ramping down.
+ </obsolete>
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -110927,7 +114289,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.CellularSignalStrength.LevelAvailable"
- enum="BooleanAvailable" expires_after="2020-11-29">
+ enum="BooleanAvailable" expires_after="2021-01-31">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -111011,6 +114373,33 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="NQE.ConnectivityMonitor.NetworkChangeEvent"
+ enum="NQE.ConnectivityMonitor.NetworkChangeType" expires_after="2021-06-30">
+ <owner>rockot@google.com</owner>
+ <owner>zhongyi@chromium.org</owner>
+ <summary>
+ When ConnectivityMonitor establishes that the current default network may be
+ failing and is Wi-Fi, it asks the operating system to activate a mobile
+ network for subsequent use. Whenever the system's default network changes,
+ this logs the relationship between the new default network and the network
+ preemptively activated by ConnectivityMonitor, if any.
+ </summary>
+</histogram>
+
+<histogram name="NQE.ConnectivityMonitor.TimeToSwitchNetworks" units="ms"
+ expires_after="2021-06-30">
+ <owner>rockot@google.com</owner>
+ <owner>zhongyi@chromium.org</owner>
+ <summary>
+ The Network Quality Estimator (NQE) observes network activity to look for
+ connectivity issues. If it begins to observe failures on a previously
+ functioning network, it tracks the time at which the failures were first
+ observed. If the device subsequently switches its default network to
+ different network (or offline), this histogram logs the number of
+ milliseconds elapsed since the original failures were observed.
+ </summary>
+</histogram>
+
<histogram name="NQE.ContentObserver.NetworkQualityMeaningfullyChanged"
enum="BooleanChanged" expires_after="M81">
<obsolete>
@@ -111073,7 +114462,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.EffectiveConnectionType.OnECTComputation"
- enum="NQEEffectiveConnectionType" expires_after="2020-12-06">
+ enum="NQEEffectiveConnectionType" expires_after="2021-02-07">
<owner>tbansal@chromium.org</owner>
<owner>src/net/nqe/OWNERS</owner>
<summary>
@@ -111083,7 +114472,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.EndToEndRTT.OnECTComputation" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>tbansal@chromium.org</owner>
<owner>src/net/nqe/OWNERS</owner>
<summary>
@@ -111198,7 +114587,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.Kbps.OnECTComputation" units="Kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>bengr@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -111279,7 +114668,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.NetworkIdAvailable" enum="BooleanAvailable"
- expires_after="M85">
+ expires_after="2021-07-22">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -111457,7 +114846,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.RTT.ObservationSource" enum="NQEObservationSource"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -111468,7 +114857,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.RTT.OnECTComputation" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>bengr@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -111647,7 +115036,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="NQE.WifiSignalStrength.AtECTComputation"
- units="Signal Strength Level" expires_after="2020-04-05">
+ units="Signal Strength Level" expires_after="2021-07-22">
<obsolete>
Obsoleted April 2020.
</obsolete>
@@ -111855,7 +115244,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OAuth2Login.PostMergeVerification"
- enum="PostMergeVerificationOutcome" expires_after="M85">
+ enum="PostMergeVerificationOutcome" expires_after="M88">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
@@ -111867,7 +115256,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OAuth2Login.PreMergeVerification"
- enum="PostMergeVerificationOutcome" expires_after="M85">
+ enum="PostMergeVerificationOutcome" expires_after="M88">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
@@ -111951,7 +115340,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflineIndicator.CTR" enum="OfflineIndicatorCTREvent"
- expires_after="2019-11-30">
+ expires_after="2021-01-25">
<owner>dimich@chromium.org</owner>
<owner>jianli@chromium.org</owner>
<summary>
@@ -112009,9 +115398,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.AggregatedRequestResult2"
- enum="OfflinePagesAggregatedRequestResult" expires_after="M85">
+ enum="OfflinePagesAggregatedRequestResult" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
<owner>jianli@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Result of servicing requests that may contain offline page.</summary>
</histogram>
@@ -112062,7 +115452,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.BackgroundLoadingFailedCode"
- enum="NetErrorCodes" expires_after="M85">
+ enum="NetErrorCodes" expires_after="M61">
+ <obsolete>
+ Removed in M61.
+ </obsolete>
<owner>chili@chromium.org</owner>
<summary>The error codes that caused a page load failure.</summary>
</histogram>
@@ -112147,15 +115540,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.FinalSavePageResult"
- enum="OfflinePagesBackgroundSavePageResult" expires_after="M85">
+ enum="OfflinePagesBackgroundSavePageResult" expires_after="2021-06-25">
<owner>chili@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Status code of background offlining requests at the final step.
</summary>
</histogram>
<histogram name="OfflinePages.Background.ImmediateStart.AvailableRequestCount"
- units="units" expires_after="M77">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112167,7 +115561,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ImmediateStart.AvailableRequestCount.Svelte"
- units="units" expires_after="M85">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112179,7 +115573,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount"
- units="units" expires_after="M78">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112191,7 +115585,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ImmediateStart.UnavailableRequestCount.Svelte"
- units="units" expires_after="M85">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112202,7 +115596,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.ImmediateStartStatus"
- enum="OfflinePagesBackgroundImmediateStartStatus" expires_after="M77">
+ enum="OfflinePagesBackgroundImmediateStartStatus"
+ expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112213,8 +115608,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.LoadingErrorStatusCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="M85">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-06-25">
<owner>chili@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The combined http and net error codes that caused a page load failure.
</summary>
@@ -112231,8 +115627,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.OffliningPreviewStatus"
- enum="BooleanEnabled" expires_after="M85">
+ enum="BooleanEnabled" expires_after="2021-01-25">
<owner>petewil@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Whether any previews were selected for a page we were asked to make
available offline.
@@ -112240,7 +115637,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.RequestFailure.StartedAttemptCount"
- units="units" expires_after="M77">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112249,7 +115646,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.RequestSuccess.StartedAttemptCount"
- units="units" expires_after="M77">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112291,13 +115688,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.SavePageFromCCT" units="units"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>chili@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Whether the save page result came from chrome custom tabs.</summary>
</histogram>
<histogram name="OfflinePages.Background.ScheduledStart.AvailableRequestCount"
- units="units" expires_after="M77">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112309,7 +115707,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ScheduledStart.AvailableRequestCount.Svelte"
- units="units" expires_after="M78">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112321,7 +115719,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount"
- units="units" expires_after="M78">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112333,7 +115731,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.Background.ScheduledStart.UnavailableRequestCount.Svelte"
- units="units" expires_after="M78">
+ units="units" expires_after="2021-06-25">
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112380,7 +115778,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Background.UnsupportedScheme.ConnectionType"
- enum="NetworkConnectionType" expires_after="M85">
+ enum="NetworkConnectionType" expires_after="M61">
+ <obsolete>
+ Removed in M61.
+ </obsolete>
<owner>dougarnett@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -112402,7 +115803,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.BatchDelete.TotalPageSize" units="KB"
- expires_after="M85">
+ expires_after="M65">
+ <obsolete>
+ Removed in M65.
+ </obsolete>
<owner>jianli@chromium.org</owner>
<summary>
Total size, in kilobytes, of all offline pages that are deleted in a batch.
@@ -112424,8 +115828,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.CleanupThumbnails.Count" units="thumbnails"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>harringtond@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Number of thumbnails removed by the thumbnail cleanup task.</summary>
</histogram>
@@ -112439,7 +115844,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ClearAllStatus2"
- enum="OfflinePagesClearAllStatus" expires_after="M85">
+ enum="OfflinePagesClearAllStatus" expires_after="M83">
+ <obsolete>
+ Removed a long time ago, marked as expired for M83.
+ </obsolete>
<owner>jianli@chromium.org</owner>
<summary>Status code of wiping out the offline page data.</summary>
</histogram>
@@ -112470,8 +115878,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ClearStoragePreRunUsage2" units="KiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The total disk storage size used by all offline pages from a specific client
namespace.
@@ -112488,24 +115897,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ClearTemporaryPages.BatchSize" units="pages"
- expires_after="M77">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of pages deleted in a batch in one clear storage task.
</summary>
</histogram>
<histogram name="OfflinePages.ClearTemporaryPages.Result"
- enum="OfflinePagesClearStorageResult" expires_after="M77">
+ enum="OfflinePagesClearStorageResult" expires_after="2021-06-25">
<owner>romax@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Result of clearing temporary pages to release storage space.
</summary>
</histogram>
<histogram name="OfflinePages.ClearTemporaryPages.TimeSinceCreation"
- units="minutes" expires_after="M85">
+ units="minutes" expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
When a temporary page is deleted due to storage pressure, reports the time
since its creation. This metric should be useful to track the occurrence of
@@ -112577,8 +115989,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Legacy.DeletedHeadlessFileCount"
- units="files" expires_after="M77">
+ units="files" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of files which are deleted during legacy dir clearing since they have
no associated DB entry and live in private directory.
@@ -112586,8 +115999,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Persistent.ExpiredEntryCount"
- units="entries" expires_after="M78">
+ units="entries" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of DB entries (in persistent namespaces) that have been missing their
files for longer than 365 days, and deleted during maintenance task.
@@ -112595,8 +116009,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Persistent.MissingFileCount"
- units="files" expires_after="M77">
+ units="files" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of files that are found missing during maintenance task, which is
also the number of DB entries that are updated with valid file missing time.
@@ -112632,8 +116047,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Persistent.ReappearedFileCount"
- units="files" expires_after="M77">
+ units="files" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of files that were marked as missing reappeared in the file system,
which is also the number of DB entries that removes file missing time.
@@ -112641,15 +116057,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Persistent.Result"
- enum="OfflinePagesSyncOperationResult" expires_after="M77">
+ enum="OfflinePagesSyncOperationResult" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Result of persistent page consistency check.</summary>
</histogram>
<histogram
name="OfflinePages.ConsistencyCheck.Temporary.PagesMissingArchiveFileCount"
- units="pages" expires_after="M78">
+ units="pages" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of temporary offline pages without archive file when checking
consistency. It will only be reported if the number is larger than 0.
@@ -112658,8 +116076,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OfflinePages.ConsistencyCheck.Temporary.PagesMissingDbEntryCount"
- units="pages" expires_after="M85">
+ units="pages" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of archives without database entry when checking temporary page
consistency. It will only be reported if the number is larger than 0.
@@ -112667,8 +116086,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.ConsistencyCheck.Temporary.Result"
- enum="OfflinePagesSyncOperationResult" expires_after="M85">
+ enum="OfflinePagesSyncOperationResult" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Result of temporary page consistency check.</summary>
</histogram>
@@ -112767,8 +116187,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.DeletePageCount"
- enum="OfflinePagesNamespaceEnumeration" expires_after="M77">
+ enum="OfflinePagesNamespaceEnumeration" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Counts the number of times an offline page is deleted. Events are reported
per offline pages namespace.
@@ -112776,8 +116197,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.DeletePageResult"
- enum="OfflinePagesDeletePageResult" expires_after="M82">
+ enum="OfflinePagesDeletePageResult" expires_after="2021-06-25">
<owner>jianli@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Result of removing an offline copy for a page.</summary>
</histogram>
@@ -112795,9 +116217,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.DownloadRequestTimeSinceDuplicateRequested"
- units="seconds" expires_after="M77">
+ units="seconds" expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
If at request time there is another request with the same URL, this tracks
this amount of time between creation of the most recent request and the
@@ -112806,9 +116229,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.DownloadRequestTimeSinceDuplicateSaved"
- units="seconds" expires_after="M77">
+ units="seconds" expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
If at request time there is another downloaded page with the same URL, this
tracks this amount of time between creation of the most recent existing page
@@ -112844,8 +116268,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.DownloadUI.PrefetchedItemHasThumbnail"
- enum="BooleanAvailable" expires_after="M85">
+ enum="BooleanAvailable" expires_after="2021-06-25">
<owner>harringtond@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Whether or not a thumbnail was provided for a prefetched offline article.
Recorded when the item is shown in Downloads Home.
@@ -112975,7 +116400,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.LoadStatus" enum="OfflinePagesLoadStatus"
- expires_after="M85">
+ expires_after="M65">
+ <obsolete>
+ Removed in M65.
+ </obsolete>
<owner>jianli@chromium.org</owner>
<summary>
Status code of loading from the offline pages metadata store.
@@ -113028,7 +116456,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Model.ConstructionToLoadedEventTime" units="ms"
- expires_after="M85">
+ expires_after="M65">
+ <obsolete>
+ Removed in M65.
+ </obsolete>
<owner>dewittj@chromium.org</owner>
<owner>jianli@chromium.org</owner>
<summary>
@@ -113073,8 +116504,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.OfflineUsage" enum="OfflinePagesOfflineUsage"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Counts user-days when Chrome was used in specific ways regarding navigation
to online and offline content. Buckets are mutually exclusive so that only
@@ -113122,8 +116554,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="OfflinePages.PageAccessInterval" units="minutes"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Length of time between accesses to an offline page. This is the same time
period used for expiring temporary pages. This metric is recorded when an
@@ -113132,22 +116565,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="OfflinePages.PageLifetime" units="minutes"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>jianli@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Length of time between when an offline page was created and was removed.
</summary>
</histogram>
<histogram base="true" name="OfflinePages.PageSize" units="KB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>jianli@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Size of the saved copy of an offline page.</summary>
</histogram>
<histogram name="OfflinePages.PageSizeOnAccess.Offline" units="KiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Records the archive size of an offline page loaded during a navigation that
took place while the device was considered to be offline or with poor
@@ -113156,8 +116592,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.PageSizeOnAccess.Online" units="KiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Records the archive size of an offline page loaded during a navigation that
took place while the device was considered to be online.
@@ -113165,8 +116602,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.PrefetchEnabled" enum="BooleanEnabled"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Counts user-days when candidate articles were suggested to the Offline
Prefetch pipeline while it was enabled. This metric is not recorded to UMA
@@ -113177,8 +116615,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.ActionAttempts" units="attempts"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Number of attempts to perform a specific retriable pipeline action for each
finished prefetch item.
@@ -113211,8 +116650,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.DownloadedFileSize" units="KiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Actual size of archive file successfully downloaded by offline page
prefetching.
@@ -113220,8 +116660,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.DownloadExpectedFileSize" units="KiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Expected download size of archive file, after gzip content encoding, that
started being downloaded by offline page prefetching. Sizes reported in this
@@ -113231,8 +116672,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.DownloadFinishedUpdate"
- enum="OfflinePrefetchDownloadFinishedOutcome" expires_after="M85">
+ enum="OfflinePrefetchDownloadFinishedOutcome" expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Reports the possible outcomes of an archive download finishing and its
respective prefetch item being updated in the store. Downloads are expected
@@ -113280,8 +116722,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.FinishedItemErrorCode"
- enum="OfflinePrefetchItemErrorCode" expires_after="M85">
+ enum="OfflinePrefetchItemErrorCode" expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Error code representing the reason why each offline prefetch item was
finalized.
@@ -113289,8 +116732,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.ItemLifetime" units="seconds"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The lifetime of an offline prefetch item, from creation until
&quot;zombie-fication&quot; (after metrics collection).
@@ -113298,8 +116742,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.NotificationAction"
- enum="OfflinePagePrefetchNotificationAction" expires_after="M85">
+ enum="OfflinePagePrefetchNotificationAction" expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Actions taken with respect to the offline prefetch notification, includes
show attempts to calculate CTR.
@@ -113307,8 +116752,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.OfflinePageImportResult"
- enum="OfflinePrefetchPageImportResult" expires_after="M85">
+ enum="OfflinePrefetchPageImportResult" expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Final result of an attempt to import a prefetched article into the Offline
Pages system.
@@ -113316,8 +116762,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.ServiceGetOperationStatus"
- enum="OfflinePrefetchRequestStatus" expires_after="M85">
+ enum="OfflinePrefetchRequestStatus" expires_after="2021-06-25">
<owner>petewil@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Status returned by a request to the Offline Page Service's GetOperation
method.
@@ -113325,8 +116772,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.ServiceGetPageBundleStatus"
- enum="OfflinePrefetchRequestStatus" expires_after="M85">
+ enum="OfflinePrefetchRequestStatus" expires_after="2021-06-25">
<owner>petewil@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Status returned by a request to the Offline Page Service's GetPageBundle
method.
@@ -113334,16 +116782,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.StateCounts"
- enum="OfflinePrefetchItemState" expires_after="M85">
+ enum="OfflinePrefetchItemState" expires_after="2021-06-25">
<owner>petewil@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
A prefetch item was seen in this state when starting the background task.
</summary>
</histogram>
<histogram name="OfflinePages.Prefetching.StuckItemState"
- enum="OfflinePrefetchItemState" expires_after="M85">
+ enum="OfflinePrefetchItemState" expires_after="2021-06-25">
<owner>petewil@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
A prefetch item was found in this state after more than 7 days since its
creation, time enough for it to have been finalized by the pipeline.
@@ -113351,8 +116801,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Prefetching.UniqueUrlsAddedCount" units="urls"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
When receiving suggestions in the prefetch pipeline, emits the number of new
suggestions added to the database. If there is an error, nothing is emitted.
@@ -113385,8 +116836,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.PrefetchUsage" enum="OfflinePagesPrefetchUsage"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Counts user-days categorized by how Offline Prefetch performed and had its
content accessed by the user. Buckets are mutually exclusive so that only
@@ -113685,22 +117137,25 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="OfflinePages.SavePageTime" units="ms"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>jianli@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The amount of time taken to save an offline copy for a page.
</summary>
</histogram>
<histogram name="OfflinePages.SharedPageWasOffline"
- enum="OfflinePagesSharedPageWasOffline" expires_after="M85">
+ enum="OfflinePagesSharedPageWasOffline" expires_after="2021-06-25">
<owner>dewittj@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>Whether a shared page was an offline page or not.</summary>
</histogram>
<histogram name="OfflinePages.Sharing.PublishInternalPageResult"
- enum="OfflinePagesSavePageResult" expires_after="M85">
+ enum="OfflinePagesSavePageResult" expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Result of publishing internal page while sharing. CANCELLED means the page
to publish isn't found. ALREADY_EXISTS means the page have already been
@@ -113734,8 +117189,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.SQLStorage.StoreEvent"
- enum="OfflinePagesStoreEvent" expires_after="M85">
- <owner>fgorski@chromium.org</owner>
+ enum="OfflinePagesStoreEvent" expires_after="2021-06-25">
+ <owner>sclittle@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Used as a counter to track different events related to offline page store
inner working.
@@ -113759,8 +117215,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.ExternalArchiveSizeMiB" units="MiB"
- expires_after="M77">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The storage space used by the archive files of offline pages, including all
files in public directory with mhtml/mht extensions. Collected after every
@@ -113769,8 +117226,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.ExternalFreeSpaceMiB" units="MiB"
- expires_after="M77">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The amount of free space on the external drive (which contains the public
download directory). Collected after every time an offline page is saved
@@ -113779,8 +117237,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.ExternalUsagePercentage" units="%"
- expires_after="M77">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The percentage of storage space on the external volume (that contains public
download directory) used by offline pages archives.
@@ -113788,8 +117247,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.InternalArchiveSizeMiB" units="MiB"
- expires_after="M77">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The storage space used by the archive files of offline pages, including the
files in temporary and private directory. Collected after every time an
@@ -113798,8 +117258,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.InternalFreeSpaceMiB" units="MiB"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The amount of free space on the internal drive (which contains the app
directory). Collected after every time an offline page is saved
@@ -113808,8 +117269,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.StorageInfo.InternalUsagePercentage" units="%"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>dimich@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
The percentage of storage space on internal volume (that contains the app
directory) used by offline pages archives.
@@ -113817,8 +117279,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.TabRestore" enum="OfflinePagesTabRestoreType"
- expires_after="M85">
+ expires_after="2021-06-25">
<owner>carlosk@chromium.org</owner>
+ <owner>offline-dev@chromium.org</owner>
<summary>
Tracks the reload of contents of an existing tab that is being restored
either because that tab is being presented for the first time after Chrome
@@ -113909,7 +117372,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OfflinePages.Wakeup.NetworkAvailable"
- enum="NetworkConnectionType" expires_after="M85">
+ enum="NetworkConnectionType" expires_after="M77">
+ <obsolete>
+ Removed in M77.
+ </obsolete>
<owner>petewil@chromium.org</owner>
<owner>jianli@chromium.org</owner>
<summary>
@@ -114001,9 +117467,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.AnswerInSuggestShown"
enum="SuggestionAnswerOptionalType" expires_after="M83">
- <owner>chrome-android-omnibox-team@google.com</owner>
+ <obsolete>
+ Removed in August 2020.
+ </obsolete>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-android-omnibox-team@google.com</owner>
<summary>
Records number of times an Answer is presented as one of the Omnibox
Suggestions at the time the user exited the omnibox. Exiting the omnibox
@@ -114028,9 +117497,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.AnswerParseSuccess" enum="BooleanSuccess"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
For each answer received in suggest responses, the number that are
well-formed and contain all the required elements.
@@ -114038,9 +117507,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.AnswerParseType" enum="SuggestionAnswerType"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of times each omnibox suggestion answer type (e.g., weather,
sports score) was received and parsed successfully. Can be normalized with
@@ -114105,7 +117574,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.InsertToPresent" units="ms"
- expires_after="M85">
+ expires_after="2021-06-30">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
@@ -114121,18 +117590,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.PaintToPresent" units="ms"
- expires_after="M85">
+ expires_after="2021-06-30">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Records the time between when OnPaint() is called to the time the compositor
- reports pixels were successfully drawn to the screen.
+ reports pixels were successfully drawn to the screen. This a subset of the
+ time reported in Omnibox.CharTypedToRepaintLatency.InsertToPresent.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.ToPaint" units="ms"
- expires_after="M85">
+ expires_after="2021-06-30">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
@@ -114228,9 +117698,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.CutOrCopyAllText" units="count" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.CutOrCopyAllText" units="count"
+ expires_after="2021-01-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of cut or copy commands on all selected text in the omnibox.
Gathered on desktop platforms (Win, Mac, Linux, Chrome OS).
@@ -114261,9 +117733,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.EditUrlSuggestionAction"
enum="OmniboxEditUrlSuggestionAction" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ <obsolete>
+ Removed 06/2020. Use &quot;Omnibox.EditUrlSuggestion.*&quot; user actions
+ instead.
+ </obsolete>
<owner>jdonnelly@chromium.org</owner>
<owner>mdjones@chromium.org</owner>
+ <owner>fgorski@chromium.org</owner>
+ <owner>ender@chromium.org</owner>
<summary>
The action performed on the edit-URL omnibox suggestion that contains the
&quot;what you typed&quot;/current URL. If visible, this is the first
@@ -114272,7 +117749,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ElisionConfig" enum="OmniboxElisionConfig"
- expires_after="M86">
+ expires_after="M88">
<owner>livvielin@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -114299,9 +117776,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.EnteredKeywordMode2" enum="OmniboxEnteredKeywordMode2"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ expires_after="2021-01-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The new enumeration of how many times users enter keyword hint mode
&quot;Search ___ for:&quot; and how. Note that we don't recognize the
@@ -114311,8 +117789,32 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.FocusToEditTime" units="ms" expires_after="M85">
+<histogram name="Omnibox.FocusResultedInNavigation" enum="BooleanNavigated"
+ expires_after="2021-06-30">
+ <owner>ender@chromium.org</owner>
+ <owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ This records whether user initiated navigation after focusing the Omnibox
+ versus switches focus elsewhere without navigating. This metric includes
+ accidental focus-then-losing-focus events, including brief ones. It also
+ includes ones in which the user did not type any text or otherwise engage
+ with the Omnibox. E.g., the user tabbing through all top Chrome UI controls
+ will cause this metric to be recorded. If the user switches focus from the
+ Chrome window to another window while the Omnibox is focussed, that also
+ counts as a loss of focus.
+
+ This metric is not recorded for the Realbox interactions.
+
+ Recorded every time the Omnibox focus is cleared.
+ </summary>
+</histogram>
+
+<histogram name="Omnibox.FocusToEditTime" units="ms" expires_after="2021-06-30">
+ <owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time between when a user focused on the omnibox and first
modifies the omnibox.
@@ -114365,9 +117867,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.FocusToOpenTimeAnyPopupState3" units="ms"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time between when a user focused on the omnibox and opened an
omnibox match (which could be what they typed or a suggestion). This is
@@ -114382,6 +117885,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.HardwareKeyboardModeEnabled" enum="BooleanEnabled"
expires_after="M85">
+ <obsolete>
+ Removed 2020-07-15
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>pkl@chromium.org</owner>
@@ -114408,6 +117914,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.HistoryQuickHistoryIDSetFromWords" units="ms"
expires_after="M86">
+ <obsolete>
+ Removed in August 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -114419,12 +117928,24 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Omnibox.HoverTime" units="ms" expires_after="M88">
+ <owner>estark@chromium.org</owner>
+ <owner>carlosil@chromium.org</owner>
+ <summary>
+ The time duration that the user hovers the mouse over the omnibox before
+ exiting the hover or focusing the omnibox. Whenever the user's mouse enters
+ the omnibox, this histogram is recorded when the mouse next exits or the
+ omnibox is focused, whichever comes first. The recorded value is a delta
+ from a timestamp noted when the user's mouse first entered the omnibox.
+ </summary>
+</histogram>
+
<histogram name="Omnibox.IconOrFaviconShown" enum="SuggestionIconOrFaviconType"
expires_after="M83">
- <owner>chrome-android-omnibox-team@google.com</owner>
<owner>ender@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-android-omnibox-team@google.com</owner>
<summary>
Records suggestions decorated with specific icon or favicon at the time the
user exited the omnibox. Exiting the omnibox includes navigating (to entered
@@ -114438,9 +117959,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.InputType" enum="OmniboxInputType" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.InputType" enum="OmniboxInputType"
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The kind of input the user provided when using the omnibox to go somewhere.
The type can be misleading. For example if the user typed 'http:/', it gets
@@ -114454,9 +117977,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.IsPasteAndGo" enum="Boolean" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.IsPasteAndGo" enum="Boolean"
+ expires_after="2021-01-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether an omnibox interaction is a paste-and-search/paste-and-go action.
(This histogram records both of these in the &quot;True&quot; bucket for
@@ -114471,9 +117996,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.IsPopupOpen" enum="Boolean" expires_after="2020-08-20">
+<histogram name="Omnibox.IsPopupOpen" enum="Boolean" expires_after="2021-01-30">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether the omnibox popup (a.k.a. dropdown) is open at the time the user
used the omnibox to go somewhere. It can be closed if, for instance, the
@@ -114489,9 +118015,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.JustDeletedText" enum="Boolean" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.JustDeletedText" enum="Boolean"
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether the user deleted text immediately before selecting an omnibox
suggestion. This is usually the result of pressing backspace or delete.
@@ -114504,7 +118032,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.AsyncDeleteTime" units="ms"
- expires_after="M80">
+ expires_after="M87">
<owner>mahmadi@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -114516,6 +118044,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.LocalHistoryZeroSuggest.MaxMatchesCount" units="count"
expires_after="M80">
+ <obsolete>
+ Made obsolete in July 2020 for the M86 Milestone.
+ </obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -114525,8 +118056,34 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Omnibox.LocalHistoryZeroSuggest.SearchTermsExtractedCount"
+ units="count" expires_after="M87">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The number of search terms extracted from the keyword search terms database
+ and examined (e.g., sorted) to produce local zero-prefix suggestions.
+ Triggered when zero-prefix suggestions are enabled and requested as a result
+ of user focus into the Omnibox or the Realbox on the NTP.
+ </summary>
+</histogram>
+
+<histogram name="Omnibox.LocalHistoryZeroSuggest.SearchTermsExtractionTime"
+ units="ms" expires_after="M87">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The length of time it takes to extract search terms from the keyword search
+ terms database and examine (e.g., sort) them to produce local zero-prefix
+ suggestions.
+ </summary>
+</histogram>
+
<histogram name="Omnibox.LocalHistoryZeroSuggest.SearchTermsSeenCount"
units="count" expires_after="M80">
+ <obsolete>
+ Made obsolete in July 2020 for the M86 Milestone.
+ </obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -114539,7 +118096,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.SyncDeleteTime" units="ms"
- expires_after="M80">
+ expires_after="M87">
<owner>mahmadi@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -114615,9 +118172,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.NumEvents" enum="UsedOmnibox" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.NumEvents" enum="UsedOmnibox"
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of times users used the omnibox to go somewhere.
@@ -114628,9 +118187,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.NumTypedTerms" units="terms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.NumTypedTerms" units="terms"
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of terms in the text the user entered in the omnibox when they
used the omnibox to go somewhere. Terms are defined by splitting on
@@ -114663,7 +118224,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.PaintTime" units="ms" expires_after="M85">
+<histogram name="Omnibox.PaintTime" units="ms" expires_after="2021-06-30">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
@@ -114673,16 +118234,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.Paste" units="count" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.Paste" units="count" expires_after="2021-01-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of paste commands on the text in the omnibox. Reported every time
a paste command is done.
</summary>
</histogram>
-<histogram name="Omnibox.PasteAndGo" units="count" expires_after="2020-12-06">
+<histogram name="Omnibox.PasteAndGo" units="count" expires_after="2021-02-07">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -114691,6 +118253,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Omnibox.PedalShown" enum="SuggestionPedalType"
+ expires_after="2021-06-01">
+ <owner>jdonnelly@chromium.org</owner>
+ <owner>orinj@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
+ <summary>
+ Counts the type (concept ID) of omnibox pedals shown when the user used the
+ omnibox to go somewhere.
+
+ Pedals are a button attached to a search suggestion that either navigate to
+ a chrome:// URL or trigger a Chrome action (for example, opening the page
+ translation dialog or opening a new window in Incognito mode).
+
+ Note that, while it is uncommon, it is possible for multiple pedals to be
+ shown at one time so this can't be used as a count of how many times a pedal
+ or pedals were present.
+
+ This histogram is related to Omnibox.SuggestionUsed.Pedal.
+ </summary>
+</histogram>
+
<histogram name="Omnibox.PhysicalWebProvider.SuggestionUsedWithoutOmniboxFocus"
enum="Boolean" expires_after="2018-04-17">
<obsolete>
@@ -114760,9 +118343,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.ProviderTime2" units="ms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.ProviderTime2" units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time taken by the named provider&quot;s synchronous pass.
</summary>
@@ -114809,6 +118393,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.QueryIosLocationAuthorizationStatus"
enum="IosLocationAuthorizationStatus" expires_after="M86">
+ <obsolete>
+ Removed in August 2020
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>stkhapugin@chromium.org</owner>
@@ -114830,9 +118417,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.QueryTime2" units="ms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.QueryTime2" units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Time it takes for the omnibox to become responsive to user input after the
user has typed N characters. This measures the time it takes to start all
@@ -114842,10 +118430,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.RichEntity.DecorationType"
enum="SuggestionEntityDecorationType" expires_after="M84">
- <owner>chrome-android-omnibox-team@google.com</owner>
+ <obsolete>
+ Removed in August 2020.
+ </obsolete>
<owner>ender@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-android-omnibox-team@google.com</owner>
<summary>
Records, for each entity suggestion (people, music, ...) whether it was
decorated with image / color / icon at the time the user exited the omnibox.
@@ -114859,9 +118450,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.RichEntityShown" units="count" expires_after="M84">
- <owner>chrome-android-omnibox-team@google.com</owner>
+ <obsolete>
+ Removed in August 2020.
+ </obsolete>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-android-omnibox-team@google.com</owner>
<summary>
Records number of presented Rich Entity suggestions at the time the user
exited the omnibox. Exiting the omnibox includes navigating (to entered text
@@ -114916,9 +118510,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.SearchEngineType" enum="OmniboxSearchEngineType"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The type of search engine associated with a match opened from the omnibox.
</summary>
@@ -114962,8 +118557,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.SearchProviderMatches" units="units"
- expires_after="M85">
+ expires_after="2021-01-30">
+ <owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of matches returned by SearchProvider. Emitted on every call to
SearchProvider::Start(), which effectively means every key stroke in the
@@ -114971,9 +118568,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Omnibox.SelectedPosition" units="position" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+<histogram name="Omnibox.SelectedPosition" units="position"
+ expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The index of the item that the user selected in the omnibox popup (a.k.a.
dropdown) list. 0 means the inline suggestion shown within the omnibox. This
@@ -114990,7 +118589,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ShowFullUrlsEnabled" enum="BooleanEnabled"
- expires_after="M86">
+ expires_after="M88">
<owner>livvielin@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
@@ -115017,15 +118616,15 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.SuggestionUsed.AnswerInSuggest"
- enum="SuggestionAnswerOptionalType" expires_after="M83">
- <owner>chrome-android-omnibox-team@google.com</owner>
+ enum="SuggestionAnswerOptionalType" expires_after="2021-06-01">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts how often omnibox suggestions are used, and in the case an Answer
- suggestion was selected - records the type of an answer.
-
- This histogram is related to Omnibox.AnswerInSuggestShown.
+ suggestion was selected - records the type of an answer. This histogram is
+ useful because there is no distinct suggestion type recorded for answers so
+ their use is not recorded by Omnibox.SuggestionUsed.ProviderAndResultType.
</summary>
</histogram>
@@ -115126,11 +118725,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Omnibox.SuggestionUsed.Pedal" enum="SuggestionPedalType"
+ expires_after="2021-06-01">
+ <owner>jdonnelly@chromium.org</owner>
+ <owner>orinj@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
+ <summary>
+ Counts how often omnibox pedals are used and records the type (concept ID)
+ of the pedal used.
+
+ Pedals are a button attached to a search suggestion that either navigate to
+ a chrome:// URL or trigger a Chrome action (for example, opening the page
+ translation dialog or opening a new window in Incognito mode).
+
+ This histogram is related to Omnibox.PedalShown.
+ </summary>
+</histogram>
+
<histogram name="Omnibox.SuggestionUsed.RichEntity" enum="BooleanUsage"
expires_after="M84">
- <owner>chrome-android-omnibox-team@google.com</owner>
+ <obsolete>
+ Removed in August 2020.
+ </obsolete>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
+ <owner>chrome-android-omnibox-team@google.com</owner>
<summary>
Whether a Rich Entity omnibox suggestion was selected when the user used the
omnibox to go somewhere.
@@ -115142,6 +118761,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.Search.Experimental.ForegroundToFirstMeaningfulPaint.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115153,9 +118776,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.Search.Experimental.NavigationToFirstMeaningfulPaint"
- units="ms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first meaningful paint. Only
recorded for a search query suggestion selected from the omnibox.
@@ -115165,6 +118789,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.Search.ForegroundToFirstContentfulPaint.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115176,9 +118804,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.Search.NavigationToFirstContentfulPaint"
- units="ms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first contentful paint. Only
recorded for a search query suggestion selected from the omnibox.
@@ -115188,6 +118817,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.Search.NavigationToFirstForeground.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115230,6 +118863,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.URL.Experimental.ForegroundToFirstMeaningfulPaint.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115241,9 +118878,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.URL.Experimental.NavigationToFirstMeaningfulPaint"
- units="ms" expires_after="2020-08-20">
- <owner>mpearson@chromium.org</owner>
+ units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first meaningful paint. Only
recorded for a URL suggestion selected from the omnibox.
@@ -115253,6 +118891,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.URL.ForegroundToFirstContentfulPaint.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115263,9 +118905,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.SuggestionUsed.URL.NavigationToFirstContentfulPaint"
- units="ms" expires_after="M85">
- <owner>mpearson@chromium.org</owner>
+ units="ms" expires_after="2021-06-30">
<owner>jdonnelly@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first contentful paint. Only
recorded for a URL suggestion selected from the omnibox.
@@ -115275,6 +118918,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Omnibox.SuggestionUsed.URL.NavigationToFirstForeground.Prerender"
units="ms" expires_after="M85">
+ <obsolete>
+ Prerender was retired from the code long ago; this histogram was finally
+ removed in July 2020.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115336,7 +118983,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ToggleSuggestionGroupId.Off" enum="SuggestionGroupId"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>mahmadi@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
@@ -115348,7 +118995,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ToggleSuggestionGroupId.On" enum="SuggestionGroupId"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>mahmadi@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
@@ -115360,9 +119007,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.URLNavigationScheme" enum="NavigationScheme"
- expires_after="M85">
+ expires_after="2021-06-30">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
The scheme of the destination URL for the selected omnibox suggestion. This
could be a what-you-typed suggestion (if the user fully typed a URL), an
@@ -115463,7 +119111,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ZeroSuggest.Eligible.OnFocusV2"
- enum="ZeroSuggestEligibleOnFocus" expires_after="2020-12-01">
+ enum="ZeroSuggestEligibleOnFocus" expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115496,7 +119144,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ZeroSuggest.Eligible.OnProfileOpen"
- enum="BooleanSupported" expires_after="2020-12-01">
+ enum="BooleanSupported" expires_after="2021-01-31">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
@@ -115560,6 +119208,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Omnibox.ZeroSuggest.MostVisitedResultsCounterfactual"
units="units" expires_after="M85">
+ <obsolete>
+ Obsolete as of M85. Added back in 2013 (https://crrev.com/23600051), this is
+ no longer useful.
+ </obsolete>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>hfung@chromium.org</owner>
@@ -115571,10 +119223,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Omnibox.ZeroSuggestRequests" enum="OmniboxZeroSuggestRequests"
- expires_after="M85">
- <owner>mpearson@chromium.org</owner>
- <owner>jdonnelly@chromium.org</owner>
- <owner>hfung@chromium.org</owner>
+ expires_after="2021-01-31">
+ <owner>ender@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts about the number of zero suggest requests (requests for suggestions
when the user has focused but not modified the omnibox) the omnibox sent,
@@ -115596,7 +119248,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.ArcTermsOfServiceScreen.ReviewFollowingSetup"
- enum="BooleanChecked" expires_after="2020-12-06">
+ enum="BooleanChecked" expires_after="2021-02-14">
<owner>raleksandrov@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -115639,7 +119291,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.ErrorScreensTime.Update" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>raleksandrov@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>Time spent on error screens during update.</summary>
@@ -115749,7 +119401,12 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="OOBE.NetworkErrorShown.Supervised" enum="NetworkErrorType"
expires_after="M85">
- <owner>achuith@google.com</owner>
+ <obsolete>
+ Obsolete as of M85. Supervised screen has gone so this metric became
+ obsolete.
+ </obsolete>
+ <owner>raleksandrov@google.com</owner>
+ <owner>cros-oac@google.com</owner>
<summary>
Number of times error screen has appeared during supervised user creation.
</summary>
@@ -115778,7 +119435,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.ResponseCode"
- enum="HttpResponseCode" expires_after="2020-11-01">
+ enum="HttpResponseCode" expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
@@ -115802,7 +119459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.RecommendApps.Screen.Action"
- enum="RecommendAppsScreenAction" expires_after="2020-11-01">
+ enum="RecommendAppsScreenAction" expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
@@ -115810,7 +119467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.RecommendApps.Screen.SelectedAppCount" units="units"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
@@ -115826,7 +119483,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.RecommendApps.Screen.State"
- enum="RecommendAppsScreenState" expires_after="2020-11-01">
+ enum="RecommendAppsScreenState" expires_after="2021-01-03">
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
@@ -115844,14 +119501,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.StepCompletionTimeByExitReason" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>raleksandrov@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>Time spent on specific OOBE screen grouped by exit reason.</summary>
</histogram>
<histogram name="OOBE.SyncConsentScreen.Behavior" enum="SyncConsentBehavior"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>jamescook@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -115863,7 +119520,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.SyncConsentScreen.ReviewFollowingSetup"
- enum="BooleanChecked" expires_after="2020-12-06">
+ enum="BooleanChecked" expires_after="2021-02-07">
<owner>raleksandrov@google.com</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -115873,7 +119530,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.SyncConsentScreen.SyncEnabled" enum="BooleanEnabled"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>jamescook@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -115884,7 +119541,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OOBE.SyncConsentScreen.UserChoice"
- enum="SyncConsentUserChoice" expires_after="2020-12-01">
+ enum="SyncConsentUserChoice" expires_after="2021-01-31">
<owner>jamescook@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -115953,8 +119610,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="OOBE.WelcomeScreen.A11yUserActions"
+ enum="WelcomeScreenA11yUserAction" expires_after="2021-01-31">
+ <owner>dkuzmin@google.com</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures usage of the accessibility options on the welcome screen during
+ OOBE. Recorded when user enables or disables any of the accessibility
+ options from accessibility menu on the welcome screen.
+ </summary>
+</histogram>
+
<histogram base="true" name="OptimizationGuide.ApplyDecision"
- enum="OptimizationGuideOptimizationTypeDecision" expires_after="2020-11-30">
+ enum="OptimizationGuideOptimizationTypeDecision" expires_after="2021-01-31">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
@@ -115964,7 +119632,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="OptimizationGuide.ApplyDecisionAsync"
- enum="OptimizationGuideOptimizationTypeDecision" expires_after="2020-11-30">
+ enum="OptimizationGuideOptimizationTypeDecision" expires_after="2021-01-31">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
@@ -115977,7 +119645,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.ClearFetchedHints.StoreAvailable"
- units="BooleanAvailable" expires_after="2020-11-30">
+ units="BooleanAvailable" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116095,7 +119763,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="OptimizationGuide.HintCacheLevelDBStore.Status"
enum="OptimizationGuideHintCacheLevelDBStoreStatus"
- expires_after="2020-11-30">
+ expires_after="2021-02-14">
<owner>dougarnett@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116158,7 +119826,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.FetchLatency"
- units="ms" expires_after="2020-11-30">
+ units="ms" expires_after="2021-01-31">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
@@ -116169,7 +119837,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.HintCount"
- units="units" expires_after="2020-11-30">
+ units="units" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116189,7 +119857,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.NetErrorCode"
- enum="NetErrorCodes" expires_after="2020-11-30">
+ enum="NetErrorCodes" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -116199,7 +119867,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.Status"
- enum="HttpResponseCode" expires_after="2020-11-30">
+ enum="HttpResponseCode" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -116209,7 +119877,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.UrlCount"
- units="total url count" expires_after="2020-11-30">
+ units="total url count" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116270,7 +119938,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.BatchUpdate"
enum="OptimizationGuideHintsFetcherRequestStatus"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -116282,7 +119950,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.PageNavigation"
enum="OptimizationGuideHintsFetcherRequestStatus"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -116356,7 +120024,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.HintsManager.RaceNavigationFetchAttemptStatus"
enum="OptimizationGuideRaceNavigationFetchAttemptStatus"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116378,7 +120046,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="OptimizationGuide.OptimizationFilterStatus"
- enum="OptimizationGuideOptimizationFilterStatus" expires_after="2020-11-30">
+ enum="OptimizationGuideOptimizationFilterStatus" expires_after="2021-01-31">
<owner>dougarnett@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116401,7 +120069,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.PredictionManager.HasHostModelFeaturesForHost"
- enum="Boolean" expires_after="2020-11-30">
+ enum="Boolean" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116423,7 +120091,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="OptimizationGuide.PredictionModelEvaluationLatency" units="ms"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116436,7 +120104,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsRequest.HostCount"
- units="total host count" expires_after="2020-11-30">
+ units="total host count" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116459,7 +120127,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.NetErrorCode"
- enum="NetErrorCodes" expires_after="2020-11-30">
+ enum="NetErrorCodes" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116470,7 +120138,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status"
- enum="HttpResponseCode" expires_after="2020-11-30">
+ enum="HttpResponseCode" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116516,7 +120184,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.PredictionModelUpdateVersion"
- units="version number" expires_after="2020-11-30">
+ units="version number" expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116526,7 +120194,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.PredictionModelValidationLatency" units="ms"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116553,7 +120221,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.ProcessHintsResult"
- enum="OptimizationGuideProcessHintsResult" expires_after="2020-11-30">
+ enum="OptimizationGuideProcessHintsResult" expires_after="2021-01-31">
<owner>dougarnett@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116564,7 +120232,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OptimizationGuide.RemoteFetchingEnabled"
- units="BooleanEnabled" expires_after="2020-11-30">
+ units="BooleanEnabled" expires_after="2021-01-31">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
@@ -116578,7 +120246,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="OptimizationGuide.ShouldTargetNavigation.PredictionModelStatus"
enum="OptimizationGuidePredictionManagerModelStatus"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>mcrouse@chromium.org</owner>
<owner>sophiechang@chromium.org</owner>
<summary>
@@ -116591,7 +120259,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true" name="OptimizationGuide.TargetDecision"
enum="OptimizationGuideOptimizationTargetDecision"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
@@ -116635,7 +120303,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="OriginTrials.ValidationResult" enum="OriginTrialTokenStatus"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>chasej@chromium.org</owner>
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
@@ -117150,7 +120818,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Overscroll.Navigated3" enum="OverscrollNavigationType"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>nzolghadr@chromium.org</owner>
<summary>
Navigations that were triggered due to completed overscroll gesture. Note
@@ -117187,7 +120855,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Overscroll.Started3" enum="OverscrollNavigationType"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>nzolghadr@chromium.org</owner>
<summary>
Overscroll gestures initiated by the user. Note that not all overscroll
@@ -117248,6 +120916,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Ozone.TouchNoiseFilter.FarApartTapDistance"
units="squared pixels" expires_after="M85">
+ <obsolete>
+ Removed Nov 2019
+ </obsolete>
<owner>pkotwicz@google.com</owner>
<summary>
The squared distance between taps which occur in quick succession. Only
@@ -117257,6 +120928,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Ozone.TouchNoiseFilter.HorizontallyAlignedDistance"
units="pixels" expires_after="M85">
+ <obsolete>
+ Removed Nov 2019
+ </obsolete>
<owner>pkotwicz@google.com</owner>
<summary>
The horizontal distance from a &quot;touch press&quot; to the closest other
@@ -117267,6 +120941,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Ozone.TouchNoiseFilter.TimeSinceLastNoiseOccurrence"
units="ms" expires_after="M85">
+ <obsolete>
+ Removed Nov 2019
+ </obsolete>
<owner>pkotwicz@google.com</owner>
<summary>
The amount of time between noisy touches. The amount of time since Chrome
@@ -117276,6 +120953,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Ozone.TouchNoiseFilter.TouchesAtSinglePositionDuration"
units="ms" expires_after="M85">
+ <obsolete>
+ Removed Nov 2019
+ </obsolete>
<owner>pkotwicz@google.com</owner>
<summary>
The time between taps which occur in quick succession at the same screen
@@ -117284,8 +120964,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.Canceled.WaitingTimeSeconds" units="seconds"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The wall-clock time spent until a lookup was canceled. This is reported
every time p2p is used to find a candidate but the request was canceled.
@@ -117293,8 +120974,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.Found.CandidateCount" units="count"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of candidates on the LAN, i.e. the number of peers on the LAN
offering at least N bytes of the requested file X. This is reported after
@@ -117303,8 +120985,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.Found.ConnectionCount" units="count"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of p2p downloads of the peer that the returned URL points to.
This is reported after examining responses from all peers on the LAN and
@@ -117313,8 +120996,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.Found.WaitingTimeSeconds" units="seconds"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The wall-clock time spent waiting for the LAN-wide number of p2p downloads
(i.e. the sum of p2p downloads from each peer on the LAN) to drop below the
@@ -117324,8 +121008,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.LookupResult" enum="P2PLookupResult"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The result of the lookup. Possible values include &quot;Found&quot; (if a
candidate - i.e. a peer offering at least N bytes of file X - was chosen),
@@ -117338,8 +121023,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="P2P.Client.NumPeers" units="count" expires_after="M93">
+<histogram name="P2P.Client.NumPeers" units="count" expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of peers implementing p2p file sharing on the network. This is
reported every time p2p is used to look up a resource on a network where
@@ -117348,8 +121034,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Client.Vanished.WaitingTimeSeconds" units="seconds"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The wall-clock time spent waiting for one or more candidates (i.e. peers
offering at least N bytes of file X) that all vanished before the LAN-wide
@@ -117360,6 +121047,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="P2P.Server.ClientCount" units="count" expires_after="M85">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of currently connected HTTP clients. This is reported every time
a HTTP client connects.
@@ -117367,8 +121055,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Server.ContentServedInterruptedMB" units="MB"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
Number of megabytes (1,000,000 bytes) served from the device (via HTTP)
where the client disconnects prematurely. This is reported every time a file
@@ -117377,32 +121066,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Server.ContentServedSuccessfullyMB" units="MB"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
Number of megabytes (1,000,000 bytes) served from the device (via HTTP).
This is reported every time a file have been served successfully.
</summary>
</histogram>
-<histogram name="P2P.Server.DownloadSpeedKBps" units="kB/s" expires_after="M93">
+<histogram name="P2P.Server.DownloadSpeedKBps" units="kB/s"
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The average speed at which the download was served at, in kB/s. This is
reported every time a file have been served successfully.
</summary>
</histogram>
-<histogram name="P2P.Server.FileCount" units="count" expires_after="M93">
+<histogram name="P2P.Server.FileCount" units="count" expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of files available via p2p. This is reported every time a file is
added or removed to the /var/cache/p2p directory.
</summary>
</histogram>
-<histogram name="P2P.Server.RangeBeginPercentage" units="%" expires_after="M93">
+<histogram name="P2P.Server.RangeBeginPercentage" units="%"
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
When a client resumes a download, the HTTP request includes range specifier
to skip the bytes it already has. This metric conveys this as a percentage
@@ -117412,8 +121107,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="P2P.Server.RequestResult" enum="P2PServerResult"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The result of the HTTP request. Possible values include &quot;Response
Sent&quot; (the resource was found and the response was successfully sent),
@@ -117567,7 +121263,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="PageLoad.AdPaintTiming.NavigationToFirstContentfulPaint" units="ms"
- expires_after="2021-05-28">
+ expires_after="2020-07-31">
+ <obsolete>
+ Removed 07/2020. Replaced with
+ PageLoad.Clients.Ads.AdPaintTiming.NavigationToFirstContentfulPaint2; see
+ http://crbug.com/1103782.
+ </obsolete>
+ <owner>jkarlin@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ Records the time from frame navigation start to FirstContentfulPaint of each
+ ad frame that receives a FirstContentfulPaint. The time could be quite
+ large, as some ads don't paint until they're scrolled into view. But the
+ metric is still useful in aggregate.
+
+ Recorded for all ad frames with non-zero bytes or cpu usage that receive a
+ FirstContentfulPaint. Recorded when the ad frame or page is destroyed.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="PageLoad.AdPaintTiming.NavigationToFirstContentfulPaint2" units="ms"
+ expires_after="2021-07-31">
<owner>jkarlin@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -117577,7 +121294,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
metric is still useful in aggregate.
Recorded for all ad frames with non-zero bytes or cpu usage that receive a
- FirstContentfulPaint. Recorded when the ad frame or page is destrroyed.
+ FirstContentfulPaint. Recorded when the ad frame or page is destroyed.
</summary>
</histogram>
@@ -117807,6 +121524,42 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PageLoad.Clients.Ads.AdDensity.MaxPercentByArea" units="%"
+ expires_after="2021-01-24">
+ <owner>justinmron@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ The page's maximum ad density by area over its lifecycle as a percent from
+ 0-100. The density measurement is throttled in page load metrics propagation
+ from renderer to browser and in the ads page load metrics observer, this may
+ lead to inaccurate maximum density. Recorded at the time a page is
+ destroyed.
+ </summary>
+</histogram>
+
+<histogram name="PageLoad.Clients.Ads.AdDensity.MaxPercentByHeight" units="%"
+ expires_after="2021-01-24">
+ <owner>justinmron@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ The page's maximum ad density by height over its lifecycle as a percent from
+ 0-100. The density measurement is throttled in page load metrics propagation
+ from renderer to browser and in the ads page load metrics observer, this may
+ lead to inaccurate maximum density. Recorded at the time a page is
+ destroyed.
+ </summary>
+</histogram>
+
+<histogram name="PageLoad.Clients.Ads.AdDensity.Recorded" units="Boolean"
+ expires_after="2021-01-24">
+ <owner>justinmron@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ Whether the ad density was recorded on the page for both density by area and
+ density by height. Recorded at the time a page is destroyed.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Clients.Ads.All.Navigations.AdFrameRenavigatedToAd"
enum="DidNavigateToAd" expires_after="2018-07-13">
<obsolete>
@@ -118051,7 +121804,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.DisallowedByBlocklist"
- enum="BooleanBlocked" expires_after="2020-10-08">
+ enum="BooleanBlocked" expires_after="2021-01-24">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -118062,7 +121815,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.FrameRemovedPriorToPageEnd"
- enum="BooleanRemoved" expires_after="2020-10-08">
+ enum="BooleanRemoved" expires_after="2021-01-24">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -118075,7 +121828,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.IgnoredByReload"
- enum="BooleanIgnored" expires_after="2020-10-08">
+ enum="BooleanIgnored" expires_after="2021-01-24">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -118089,7 +121842,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.NetworkBytesAtFrameUnload"
- units="bytes" expires_after="2020-08-05">
+ units="bytes" expires_after="2021-02-01">
<owner>johnidel@chromium.org</owner>
<owner>justinmiron@google.com</owner>
<summary>
@@ -118101,7 +121854,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.UserDidReload"
- enum="BooleanReloaded" expires_after="2020-10-08">
+ enum="BooleanReloaded" expires_after="2021-01-24">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -118797,7 +122550,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Clients.FontPreload.LayoutInstability.CumulativeShiftScore"
- units="scorex10" expires_after="2020-06-30">
+ units="scorex10" expires_after="2020-08-31">
+ <obsolete>
+ Removed in August 2020 as the behavior is launched
+ </obsolete>
<owner>xiaochengh@chromium.org</owner>
<owner>rendering-core-dev@chromium.org</owner>
<summary>
@@ -118808,7 +122564,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Clients.FontPreload.PaintTiming.NavigationToLargestImagePaint"
- units="ms" expires_after="2020-06-30">
+ units="ms" expires_after="2020-08-31">
+ <obsolete>
+ Removed in August 2020 as the behavior is launched
+ </obsolete>
<owner>xiaochengh@chromium.org</owner>
<owner>rendering-core-dev@chromium.org</owner>
<summary>
@@ -118820,7 +122579,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Clients.FontPreload.PaintTiming.NavigationToLargestTextPaint"
- units="ms" expires_after="2020-06-30">
+ units="ms" expires_after="2020-08-31">
+ <obsolete>
+ Removed in August 2020 as the behavior is launched
+ </obsolete>
<owner>xiaochengh@chromium.org</owner>
<owner>rendering-core-dev@chromium.org</owner>
<summary>
@@ -118881,7 +122643,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Scheme.HTTP.PaintTiming.UnderStat"
- enum="PageLoadTimingUnderStat" expires_after="M85">
+ enum="PageLoadTimingUnderStat" expires_after="2021-07-22">
<owner>tbansal@chromium.org</owner>
<summary>
Records if the time from navigation to first contentful paint was less than
@@ -118909,7 +122671,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Clients.Scheme.HTTPS.PaintTiming.UnderStat"
- enum="PageLoadTimingUnderStat" expires_after="M85">
+ enum="PageLoadTimingUnderStat" expires_after="2021-07-22">
<owner>tbansal@chromium.org</owner>
<summary>
Records if the time from navigation to first contentful paint was less than
@@ -119124,7 +122886,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Clients.ThirdParty.Frames.NavigationToFirstContentfulPaint3"
- units="ms" expires_after="2020-12-04">
+ units="ms" expires_after="2021-02-14">
<owner>jkarlin@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -119275,7 +123037,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PageLoad.Cpu.TotalUsage" units="ms" expires_after="2020-11-18">
+<histogram name="PageLoad.Cpu.TotalUsage" units="ms" expires_after="2021-01-31">
<owner>alexmt@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -119333,7 +123095,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -119356,7 +123118,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.DocumentTiming.NavigationToLoadEventFired" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -119428,7 +123190,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Background"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -119452,7 +123214,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Close"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -119463,7 +123225,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -119473,7 +123235,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.NewNavigation"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -119493,7 +123255,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Reload"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -119503,7 +123265,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Stop" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -119538,7 +123300,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.Bytes.Network" units="KB"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jkarlin@chromium.org</owner>
<summary>
The number of prefiltered (e.g., compressed) response body KiloBytes loaded
@@ -119549,7 +123311,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.Bytes.NetworkIncludingHeaders"
- units="KB" expires_after="2020-11-29">
+ units="KB" expires_after="2021-01-31">
<owner>jkarlin@chromium.org</owner>
<summary>
The number of prefiltered (e.g., compressed) KiloBytes loaded over the
@@ -119574,7 +123336,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.Bytes.Total2" units="KB"
- expires_after="2020-09-27">
+ expires_after="2021-01-24">
<owner>jkarlin@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -119729,7 +123491,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.InputTiming.InputToNavigationStart"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-02-14">
<owner>sullivan@chromium.org</owner>
<owner>tdresser@chromium.org</owner>
<summary>
@@ -119951,6 +123713,20 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PageLoad.Experimental.PageLoadType" enum="PageLoadType"
+ expires_after="2021-01-30">
+ <owner>npm@chromium.org</owner>
+ <owner>speed-metrics-dev@chromium.org</owner>
+ <summary>
+ Determines the PageLoadType for this page load. That is, records whether the
+ page was never foregrounded, was foregrounded but did not reach FCP, or did
+ reach FCP. The metric is recorded at the end of each page load. As usual
+ with PageLoad metrics, we consider app backgrounding on Android to be the
+ end of page load as well as the app could be evicted by Android anytime
+ after that happens.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Experimental.PageTiming.FirstPaintToFirstBackground"
units="ms" expires_after="2017-02-28">
<obsolete>
@@ -120030,7 +123806,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintStatus"
- enum="FirstMeaningfulPaintStatus" expires_after="2020-11-29">
+ enum="FirstMeaningfulPaintStatus" expires_after="2021-01-31">
<owner>ksakamoto@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -120069,7 +123845,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Experimental.PaintTiming.InputToFirstContentfulPaint"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>sullivan@chromium.org</owner>
<summary>
The time between the OS-level input event that initiated a navigation, and
@@ -120148,7 +123924,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>ksakamoto@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -120343,6 +124119,22 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PageLoad.Experimental.TotalForegroundDuration" units="ms"
+ expires_after="2021-01-30">
+ <owner>npm@chromium.org</owner>
+ <owner>speed-metrics-dev@chromium.org</owner>
+ <summary>
+ The total amount of time the page spent in the foreground. Note that this
+ metric adds all foreground durations occurring for the page. For example: if
+ the page starts foregrounded during 1 second, then goes to the background
+ for a while, then is foregrounded again for 2 seconds, and then is unloaded,
+ this metric reports 3 seconds. The metric is recorded at the end of each
+ page load. As usual with PageLoad metrics, we consider app backgrounding on
+ Android to be the end of page load as well as the app could be evicted by
+ Android anytime after that happens.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Experimental.TotalRequests.ParseStop"
units="requests" expires_after="2018-01-17">
<obsolete>
@@ -120355,7 +124147,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.CreativeOriginStatus"
- enum="CrossOriginCreativeStatus" expires_after="2020-06-30">
+ enum="CrossOriginCreativeStatus" expires_after="2020-12-31">
<owner>cammie@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -120552,7 +124344,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.HeavyAds.ComputedType2"
- enum="HeavyAdStatus2" expires_after="2020-08-05">
+ enum="HeavyAdStatus2" expires_after="2021-02-01">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -120568,7 +124360,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.HeavyAds.ComputedTypeWithThresholdNoise"
- enum="HeavyAdStatus2" expires_after="2020-08-05">
+ enum="HeavyAdStatus2" expires_after="2021-02-01">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -120604,7 +124396,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PageLoad.HeavyAds.InterventionType2"
- enum="HeavyAdStatus2" expires_after="2020-08-05">
+ enum="HeavyAdStatus2" expires_after="2021-02-01">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -121048,7 +124840,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Internal.ClientRedirect.NavigationWithoutPaint"
- enum="Boolean" expires_after="2020-11-29">
+ enum="Boolean" expires_after="2021-02-14">
<owner>bmcquade@chromium.org</owner>
<summary>
Counts how often a client-side redirect was initiated from a page that did
@@ -121090,7 +124882,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Internal.ErrorCode" enum="InternalErrorLoadEvent"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>csharrison@chromium.org</owner>
<owner>bmcquade@chromium.org</owner>
<summary>
@@ -121115,7 +124907,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Internal.NavigationStartedInForeground"
- enum="BooleanForeground" expires_after="2020-11-29">
+ enum="BooleanForeground" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<summary>Whether a navigation started in the foreground.</summary>
</histogram>
@@ -121149,7 +124941,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.Internal.PageLoadTimingStatus"
- enum="PageLoadTimingStatus" expires_after="2020-11-29">
+ enum="PageLoadTimingStatus" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<summary>
The status of PageLoadTiming structs received from the render process over
@@ -121201,7 +124993,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.ContentType"
- enum="LargestContentType" expires_after="2020-11-29">
+ enum="LargestContentType" expires_after="2021-01-31">
<owner>maxlg@chromium.org</owner>
<owner>npm@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
@@ -121215,7 +125007,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.MainFrame.ContentType"
- enum="LargestContentType" expires_after="2020-11-29">
+ enum="LargestContentType" expires_after="2021-01-31">
<owner>maxlg@chromium.org</owner>
<owner>npm@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
@@ -121389,7 +125181,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore"
- units="scorex10" expires_after="2020-11-29">
+ units="scorex10" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>skobes@chromium.org</owner>
<summary>
@@ -121403,8 +125195,41 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="PageLoad.LayoutInstability.CumulativeShiftScore.AfterBackForwardCache"
+ units="scorex10" expires_after="2021-06-30">
+ <obsolete>
+ Removed in 07/2020 due to misspelling. Use
+ PageLoad.LayoutInstability.CumulativeShiftScore.AfterBackForwardCacheRestore
+ instead.
+ </obsolete>
+ <owner>altimin@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
+ occurred on the page (including all subframes) after the page is restored
+ from the back-forward cache. Recorded when the user navigates away or closes
+ the page after the page was restored from back-forward cache.
+ </summary>
+</histogram>
+
+<histogram
+ name="PageLoad.LayoutInstability.CumulativeShiftScore.AfterBackForwardCacheRestore"
+ units="scorex10" expires_after="2021-06-30">
+ <owner>altimin@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
+ occurred on the page (including all subframes) after the page is restored
+ from the back-forward cache. Recorded when the user navigates away or closes
+ the page after the page was restored from back-forward cache.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame"
- units="scorex10" expires_after="2020-11-29">
+ units="scorex10" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>skobes@chromium.org</owner>
<summary>
@@ -121414,6 +125239,39 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame.AfterBackForwardCache"
+ units="scorex10" expires_after="2021-06-30">
+ <obsolete>
+ Removed in 07/2020 due to misspelling. Use
+ PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame.AfterBackForwardCacheRestore
+ instead.
+ </obsolete>
+ <owner>altimin@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
+ occurred in the main frame after the page is restored from the back-forward
+ cache. Recorded when the user navigates away or closes the page after the
+ page was restored from back-forward cache.
+ </summary>
+</histogram>
+
+<histogram
+ name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame.AfterBackForwardCacheRestore"
+ units="scorex10" expires_after="2021-06-30">
+ <owner>altimin@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <owner>bfcache-dev@chromium.org</owner>
+ <summary>
+ Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
+ occurred in the main frame after the page is restored from the back-forward
+ cache. Recorded when the user navigates away or closes the page after the
+ page was restored from back-forward cache.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Navigation.RedirectChainLength" units="urls"
expires_after="M77">
<owner>csharrison@chromium.org</owner>
@@ -121424,7 +125282,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PageTiming.ForegroundDuration" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<summary>
For page loads that start in the foreground, measures the duration of time
@@ -121461,7 +125319,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PageTiming.NavigationToFirstForeground" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -121472,7 +125330,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PaintTiming.ForegroundToFirstContentfulPaint"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
+ <owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Measures the time from a background tab being switched to the foreground to
@@ -121482,6 +125341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PageLoad.PaintTiming.ForegroundToFirstPaint" units="ms"
expires_after="2020-08-14">
+ <owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Measures the time from a background tab being switched to the foreground to
@@ -121491,7 +125351,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint"
- units="ms" expires_after="2020-12-11">
+ units="ms" expires_after="2021-02-14">
<owner>npm@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -121535,7 +125395,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
+ <owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
@@ -121545,7 +125406,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToFirstPaint" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>ksakamoto@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -121587,7 +125448,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>maxlg@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -121605,7 +125466,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint.MainFrame"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>maxlg@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -121618,7 +125479,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
@@ -121629,7 +125490,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.ParseTiming.NavigationToParseStart" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -121661,7 +125522,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -122067,7 +125928,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageSerialization.MhtmlGeneration.FinalSaveStatus"
- enum="MhtmlGenerationFinalSaveStatus" expires_after="2020-12-01">
+ enum="MhtmlGenerationFinalSaveStatus" expires_after="2021-01-31">
<owner>sclittle@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>Final status of the MHTML save operation for a page.</summary>
@@ -122152,7 +126013,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageSerialization.MhtmlLoading.LoadResult"
- enum="MhtmlLoadResult" expires_after="2020-12-01">
+ enum="MhtmlLoadResult" expires_after="2021-01-31">
<owner>sclittle@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>Reports the result of an attempt to load an MHTML archive.</summary>
@@ -122168,7 +126029,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PageSerialization.ProblemDetection.LoadedImagePercentage"
- units="%" expires_after="M85">
+ units="%" expires_after="2021-06-25">
<owner>sclittle@chromium.org</owner>
<owner>offline-dev@chromium.org</owner>
<summary>
@@ -122251,7 +126112,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaintHolding.CommitTrigger2" enum="PaintHoldingCommitTrigger2"
- expires_after="M86">
+ expires_after="2021-01-15">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -122273,7 +126134,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaintHolding.InputTiming2" enum="PaintHoldingInputTiming"
- expires_after="M86">
+ expires_after="2021-01-15">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -122400,7 +126261,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PartnerBookmark.LoadingTime" units="ms" expires_after="M77">
+<histogram name="PartnerBookmark.LoadingTime" units="ms"
+ expires_after="2021-07-10">
+ <owner>bttk@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
The time spent on loading partner bookmarks, from kickOffReading() to
@@ -122474,8 +126337,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PasswordBubble.CompromisedBubble.CheckClicked"
+ enum="BooleanClicked" expires_after="2020-11-29">
+ <owner>vasilii@chromium.org</owner>
+ <owner>jdoerrie@chromium.org</owner>
+ <summary>
+ Whether the user proceeded to the list of the left compromised passwords
+ from the bubble following save/update password.
+ </summary>
+</histogram>
+
+<histogram name="PasswordBubble.CompromisedBubble.Type"
+ enum="PasswordBubbleFollowupType" expires_after="2020-11-29">
+ <owner>vasilii@chromium.org</owner>
+ <owner>jdoerrie@chromium.org</owner>
+ <summary>
+ The state of the bubble shown after users saves/updates a password. It
+ notifies the user about leftover compromised passwords.
+ </summary>
+</histogram>
+
<histogram name="PasswordBubble.DisplayDisposition"
- enum="PasswordBubbleDisplayDisposition" expires_after="2020-11-29">
+ enum="PasswordBubbleDisplayDisposition" expires_after="2021-01-31">
<owner>vasilii@chromium.org</owner>
<summary>
When the password management bubble opened, what state was it in?
@@ -122483,7 +126366,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordGeneration.Event" enum="PasswordGenerationEvent"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jdoerrie@chromium.org</owner>
<owner>kolos@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
@@ -122500,7 +126383,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordGeneration.GeneratedPasswordWasEdited"
- enum="BooleanGeneratedPasswordWasEdited" expires_after="2020-09-27">
+ enum="BooleanGeneratedPasswordWasEdited" expires_after="2021-01-24">
<owner>kolos@chromium.org</owner>
<summary>
Measures the frequency of user editing of generated passwords. Uploaded once
@@ -122541,7 +126424,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordGeneration.SubmissionEvent"
- enum="PasswordSubmissionEvent" expires_after="2020-10-01">
+ enum="PasswordSubmissionEvent" expires_after="2021-01-24">
<owner>jdoerrie@chromium.org</owner>
<owner>kolos@chromium.org</owner>
<summary>
@@ -122566,7 +126449,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordGeneration.UserDecision"
- enum="PasswordGenerationUserEvent" expires_after="2020-09-27">
+ enum="PasswordGenerationUserEvent" expires_after="2021-01-24">
<owner>ioanap@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -122671,7 +126554,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.AccountChooserDialogMultipleAccounts"
- enum="AccountChooserDismissalReason" expires_after="M86">
+ enum="AccountChooserDismissalReason" expires_after="2020-12-12">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -122680,7 +126563,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.AccountChooserDialogOneAccount"
- enum="AccountChooserDismissalReason" expires_after="M86">
+ enum="AccountChooserDismissalReason" expires_after="2020-12-12">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -122713,7 +126596,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PasswordManager.AccountsPerSiteHiRes"
- units="units" expires_after="2020-10-26">
+ units="units" expires_after="2021-01-24">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -122751,6 +126634,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PasswordManager.AccountStorage.ClearedOnStartup"
+ enum="PasswordAccountStoreClearedOnStartup" expires_after="M87">
+ <owner>mamir@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Records whether the account-scoped password storage had to be cleared during
+ profile initialization.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.AccountStorage.ClearedOptInForAllAccounts"
units="accounts" expires_after="M87">
<owner>mamir@chromium.org</owner>
@@ -123234,7 +127127,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.ApplySyncChanges.AddLoginSyncError"
- enum="PasswordAddLoginSyncError" expires_after="2020-11-29">
+ enum="PasswordAddLoginSyncError" expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -123245,7 +127138,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.ApplySyncChanges.UpdateLoginSyncError"
- enum="PasswordUpdateLoginSyncError" expires_after="2020-11-29">
+ enum="PasswordUpdateLoginSyncError" expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -123256,7 +127149,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.ApplySyncChangesState"
- enum="PasswordApplySyncChangesState" expires_after="2020-11-29">
+ enum="PasswordApplySyncChangesState" expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -123279,7 +127172,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.AutoSigninFirstRunDialog"
- enum="AutoSigninFirstRun" expires_after="M86">
+ enum="AutoSigninFirstRun" expires_after="2021-02-14">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123392,6 +127285,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PasswordManager.BubbleSuppression.AccountsWithSuppressedBubble"
units="accounts" expires_after="M86">
+ <obsolete>
+ Removed as of 07/2020.
+ </obsolete>
<owner>battre@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -123404,6 +127300,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PasswordManager.BubbleSuppression.DomainsWithSuppressedBubble"
units="accounts" expires_after="M86">
+ <obsolete>
+ Removed as of 07/2020.
+ </obsolete>
<owner>battre@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -123415,7 +127314,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.CanceledCredentials"
- units="credentials" expires_after="M86">
+ units="credentials" expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123425,7 +127324,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.CanceledTime" units="ms"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123434,7 +127333,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.CheckedCredentials"
- units="credentials" expires_after="M86">
+ units="credentials" expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123444,14 +127343,14 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.Error"
- enum="PasswordLeakDetectionError" expires_after="M86">
+ enum="PasswordLeakDetectionError" expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>Error encountered during the password bulk check.</summary>
</histogram>
<histogram name="PasswordManager.BulkCheck.LeaksFound" units="credentials"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123460,7 +127359,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.PasswordCheckReferrer"
- enum="PasswordCheckReferrer" expires_after="M86">
+ enum="PasswordCheckReferrer" expires_after="M88">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -123469,7 +127368,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PasswordManager.BulkCheck.Time" units="ms" expires_after="M86">
+<histogram name="PasswordManager.BulkCheck.PasswordCheckReferrerAndroid"
+ enum="PasswordCheckReferrerAndroid" expires_after="M88">
+ <owner>ioanap@chromium.org</owner>
+ <owner>fhorschig@chromium.org</owner>
+ <summary>
+ Referrer of a navigation to the Password Check UI Settings view. Recorded
+ when the user enters the view.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.BulkCheck.Time" units="ms"
+ expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123478,7 +127388,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.TimePerCredential" units="ms"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123488,12 +127398,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.BulkCheck.UserAction"
- enum="PasswordCheckInteraction" expires_after="M86">
+ enum="PasswordCheckInteraction" expires_after="2021-02-01">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>User actions performed on the Password Check settings page.</summary>
</histogram>
+<histogram name="PasswordManager.BulkCheck.UserActionAndroid"
+ enum="PasswordCheckUIUserActionAndroid" expires_after="2021-02-01">
+ <owner>ioanap@chromium.org</owner>
+ <owner>fhorschigg@chromium.org</owner>
+ <summary>User actions performed on the Password Check settings view.</summary>
+</histogram>
+
<histogram name="PasswordManager.ButtonTitlePerformance.HasFormTag"
units="units" expires_after="2019-07-01">
<owner>kolos@chromium.org</owner>
@@ -123526,7 +127443,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.ChromeSignInPageHashSaved"
- enum="ChromeSignInPageHashSaved" expires_after="M86">
+ enum="ChromeSignInPageHashSaved" expires_after="2021-02-01">
<owner>vakh@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
@@ -123562,7 +127479,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.CompromisedCredentials.CountLeaked"
- units="credentials" expires_after="2020-11-12">
+ units="credentials" expires_after="2021-01-24">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123572,7 +127489,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PasswordManager.CompromisedCredentials.CountLeakedAfterBulkCheck"
- units="credentials" expires_after="2020-11-12">
+ units="credentials" expires_after="2021-01-24">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123582,7 +127499,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.CompromisedCredentials.CountPhished"
- units="credentials" expires_after="2020-11-12">
+ units="credentials" expires_after="2021-01-24">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123655,7 +127572,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.DeleteUndecryptableLoginsReturnValue"
- enum="DeleteCorruptedPasswordsResult" expires_after="M86">
+ enum="DeleteCorruptedPasswordsResult" expires_after="M89">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123676,9 +127593,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.DynamicFormChanges" units="units"
- expires_after="M86">
- <owner>battre@chromium.org</owner>
+ expires_after="M92">
<owner>jdoerrie@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
<summary>
Records a bitmask of password form changes after the first time this form is
seen by Password Manager. Recorded once per a form when the form is removed
@@ -123700,7 +127617,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.EmptyUsernames.CountInDatabase" units="units"
- expires_after="M86">
+ expires_after="M89">
<owner>vasilii@chromium.org</owner>
<owner>jdoerrie@chromium.org</owner>
<summary>
@@ -123890,9 +127807,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.FirstRendererFillingResult"
- enum="PasswordManagerFirstRendererFillingResult" expires_after="M86">
- <owner>battre@chromium.org</owner>
+ enum="PasswordManagerFirstRendererFillingResult" expires_after="M92">
<owner>jdoerrie@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
<summary>
Records whether the PasswordAutofillAgent in the renderer manages to fill
credentials as instructed by the browser or records a failure reason
@@ -123903,9 +127820,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.FirstWaitForUsernameReason"
- enum="PasswordManagerFirstWaitForUsernameReason" expires_after="M86">
- <owner>battre@chromium.org</owner>
+ enum="PasswordManagerFirstWaitForUsernameReason" expires_after="M92">
<owner>jdoerrie@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
<summary>
This metric records why the browser instructs the renderer not to fill the
credentials on page load but to wait for the user to confirm the credential
@@ -124101,7 +128018,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.InaccessiblePasswords" units="saved passwords"
- expires_after="M86">
+ expires_after="M89">
<owner>vasilii@chromium.org</owner>
<owner>mamir@chromium.org</owner>
<summary>
@@ -124136,8 +128053,26 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PasswordManager.iOS.InfoBar.PasswordSave" enum="Boolean"
+ expires_after="2021-07-01">
+ <owner>djean@chromium.org</owner>
+ <owner>sczs@google.com</owner>
+ <summary>
+ This metric counts how many times the Save Password infobar is shown.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.iOS.InfoBar.PasswordUpdate" enum="Boolean"
+ expires_after="2021-07-01">
+ <owner>djean@chromium.org</owner>
+ <owner>sczs@google.com</owner>
+ <summary>
+ This metric counts how many times the Update Password infobar is shown.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.IsSyncPasswordHashSaved"
- enum="IsSyncPasswordHashSaved" expires_after="M86">
+ enum="IsSyncPasswordHashSaved" expires_after="2021-02-01">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124148,8 +128083,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="PasswordManager.IsSyncPasswordHashSavedForAdvancedProtectionUser"
- enum="IsSyncPasswordHashSaved" expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ enum="IsSyncPasswordHashSaved" expires_after="2021-02-04">
+ <owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
This metric is recorded shortly after Chrome Startup, only for Advanced
@@ -124499,7 +128434,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.LoginDatabaseInit"
- enum="LoginDatabaseInitError" expires_after="M86">
+ enum="LoginDatabaseInitError" expires_after="M89">
<owner>vasilii@chromium.org</owner>
<owner>mamir@chromium.org</owner>
<summary>An error on LoginDatabase initialization.</summary>
@@ -124559,7 +128494,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.MergeSyncData.AddLoginSyncError"
- enum="PasswordAddLoginSyncError" expires_after="2020-11-29">
+ enum="PasswordAddLoginSyncError" expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -124570,7 +128505,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.MergeSyncData.UpdateLoginSyncError"
- enum="PasswordUpdateLoginSyncError" expires_after="2020-11-29">
+ enum="PasswordUpdateLoginSyncError" expires_after="2021-01-31">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -124605,7 +128540,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.NewlySavedPasswordIsGenerated"
- enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2020-11-29">
+ enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2021-01-31">
<owner>nepper@chromium.org</owner>
<owner>battre@chromium.org</owner>
<owner>kolos@chromium.org</owner>
@@ -124616,8 +128551,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.NonSyncPasswordHashChange"
- enum="GaiaPasswordHashChange" expires_after="2020-09-27">
- <owner>vakh@chromium.org</owner>
+ enum="GaiaPasswordHashChange" expires_after="2021-03-27">
+ <owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
This metric reports a type of a password hash change event where the
@@ -124751,9 +128686,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.OsPasswordStatus"
- enum="PasswordManagerOsPasswordStatus" expires_after="M83">
- <owner>battre@chromium.org</owner>
- <owner>wfh@chromium.org</owner>
+ enum="PasswordManagerOsPasswordStatus" expires_after="2020-12-12">
+ <owner>vasilii@chromium.org</owner>
+ <owner>jdoerrie@chromium.org</owner>
<summary>
Indicates whether the user's OS password is blank or not at browser startup.
</summary>
@@ -124770,7 +128705,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.PasswordDropdownItemSelected"
- enum="PasswordDropdownSelectedOption" expires_after="2020-11-29">
+ enum="PasswordDropdownSelectedOption" expires_after="2021-01-31">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -124779,7 +128714,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.PasswordDropdownShown"
- enum="PasswordDropdownState" expires_after="2020-11-29">
+ enum="PasswordDropdownState" expires_after="2021-01-31">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>Logs the state of the password dropdown when it's shown.</summary>
@@ -124877,6 +128812,43 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PasswordManager.PasswordScriptsFetcher.CacheState"
+ enum="PasswordScriptsFetcherCacheState" expires_after="M89">
+ <owner>kolos@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <summary>
+ PasswordScriptsFetcher's cache state when the fetcher is requested to return
+ script availability.
+ </summary>
+</histogram>
+
+<histogram
+ name="PasswordManager.PasswordScriptsFetcher.HttpResponseAndNetErrorCode"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="M89">
+ <owner>kolos@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <summary>
+ HTTP response code or network error code of fetching a list of available
+ password scripts.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.PasswordScriptsFetcher.ParsingResult"
+ enum="PasswordScriptsFetcherParsingResult" expires_after="M89">
+ <owner>kolos@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <summary>Result of parsing of a list of available password scripts.</summary>
+</histogram>
+
+<histogram name="PasswordManager.PasswordScriptsFetcher.ResponseTime"
+ units="ms" expires_after="M89">
+ <owner>kolos@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
+ <summary>
+ Response time for fetching a list of available password scripts.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.PasswordStoreDeletionsHaveSynced"
enum="BooleanSuccess" expires_after="M88">
<owner>dullweber@chromium.org</owner>
@@ -124902,7 +128874,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.PasswordSyncState" enum="PasswordSyncState"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -125000,7 +128972,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.RemoveCompromisedCredentials"
- enum="PasswordStoreChange" expires_after="2020-11-26">
+ enum="PasswordStoreChange" expires_after="2021-01-31">
<owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -125133,7 +129105,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.SaveUIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29">
+ enum="PasswordManagerUIDismissalReason" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="PasswordAccountStorageUserState" -->
<owner>vasilii@chromium.org</owner>
@@ -125142,8 +129114,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>Why was the save password UI (bubble or infobar) closed?</summary>
</histogram>
-<histogram name="PasswordManager.SaveUIDismissalReasonAferUnblacklisting"
- enum="PasswordManagerUIDismissalReason" expires_after="M86">
+<histogram name="PasswordManager.SaveUIDismissalReasonAfterUnblacklisting"
+ enum="PasswordManagerUIDismissalReason" expires_after="M88">
<owner>ioanap@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -125154,7 +129126,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.SavingOnUsernameFirstFlow"
- enum="SavingOnUsernameFirstFlow" expires_after="M86">
+ enum="SavingOnUsernameFirstFlow" expires_after="M92">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -125258,6 +129230,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PasswordManager.ShowAllSavedPasswordsAcceptedContext"
enum="ShowAllSavedPasswordsContext" expires_after="2020-09-30">
+ <obsolete>
+ Removed 08/2020.
+ </obsolete>
<owner>vasilii@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -125267,6 +129242,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PasswordManager.ShowAllSavedPasswordsShownContext"
enum="ShowAllSavedPasswordsContext" expires_after="2020-09-30">
+ <obsolete>
+ Removed 08/2020.
+ </obsolete>
<owner>vasilii@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -125616,8 +129594,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.SyncPasswordHashChange"
- enum="GaiaPasswordHashChange" expires_after="2020-09-27">
- <owner>vakh@chromium.org</owner>
+ enum="GaiaPasswordHashChange" expires_after="2021-03-27">
+ <owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
This metric reports a type of a sync password hash change event. Recorded
@@ -125626,9 +129604,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.TimeBetweenStoreAndServer" units="ms"
- expires_after="M83">
- <owner>battre@chromium.org</owner>
+ expires_after="M90">
<owner>jdoerrie@chromium.org</owner>
+ <owner>battre@chromium.org</owner>
<summary>
The time between receiving saved credentials from the password store and
predictions from the Autofill server. Recorded each time when predictions
@@ -125690,7 +129668,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PasswordManager.TotalAccountsHiRes.ByType"
- units="units" expires_after="M86">
+ units="units" expires_after="2021-02-14">
<owner>battre@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -125702,7 +129680,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PasswordManager.TotalAccountsHiRes.WithScheme"
- units="accounts" expires_after="M86">
+ units="accounts" expires_after="2020-12-12">
<owner>battre@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -125725,7 +129703,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.TouchToFill.DismissalReason"
- enum="BottomSheet.StateChangeReason" expires_after="2020-11-29">
+ enum="BottomSheet.StateChangeReason" expires_after="2021-01-31">
<owner>jdoerrie@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
@@ -125751,7 +129729,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.UIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29">
+ enum="PasswordManagerUIDismissalReason" expires_after="2021-01-31">
<owner>vasilii@chromium.org</owner>
<summary>
Why was the password manager's UI (bubble or infobar) closed? Save and
@@ -125779,7 +129757,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordManager.UpdateUIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-11-29">
+ enum="PasswordManagerUIDismissalReason" expires_after="2021-01-31">
<owner>vasilii@chromium.org</owner>
<summary>Why was the update password UI (bubble or infobar) closed?</summary>
</histogram>
@@ -125824,6 +129802,54 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram
+ name="PasswordManager.WellKnownChangePassword.GetChangePasswordUsage"
+ enum="GetChangePasswordUrlMetric" expires_after="2021-01-31">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ A JSON file with change password form url is fetched from gstatic. This
+ metric logs if the response arrived in time and if the url override was
+ available for a given origin.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchErrorCode"
+ units="NetErrorCode" expires_after="2021-01-31">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Logs the error code when the fetch to the gstatic file failed.
+ </summary>
+</histogram>
+
+<histogram
+ name="PasswordManager.WellKnownChangePassword.GstaticFetchHttpResponseCode"
+ units="HttpResponseCode" expires_after="2021-01-31">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Logs the response code when the fetch to the gstatic file failed.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchResult"
+ enum="ChangePasswordUrlFetchResult" expires_after="2021-01-31">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Logs if the request for the gstatic file succeeded, failed or if the
+ response was malformed.
+ </summary>
+</histogram>
+
+<histogram name="PasswordManager.WellKnownChangePassword.GstaticFetchTime"
+ units="ms" expires_after="2021-01-31">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>Logs the loading time for the gstatic file request.</summary>
+</histogram>
+
<histogram name="PasswordProtection.CacheVerdictDuration" units="ms"
expires_after="2020-01-01">
<obsolete>
@@ -125936,7 +129962,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordProtection.ModalWarningDialogAction"
- enum="PasswordProtectionWarningAction" expires_after="2020-11-29">
+ enum="PasswordProtectionWarningAction" expires_after="2021-02-07">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -126040,8 +130066,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordProtection.PasswordReuseSyncAccountType"
- enum="PasswordProtectionSyncAccountType" expires_after="2020-09-27">
- <owner>vakh@chromium.org</owner>
+ enum="PasswordProtectionSyncAccountType" expires_after="2021-03-27">
+ <owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
When password protection service detects a reuse of Chrome sync password,
@@ -126075,7 +130101,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordProtection.RequestNetworkDuration" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -126085,7 +130111,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PasswordProtection.RequestOutcome"
- enum="PasswordProtectionRequestOutcome" expires_after="2020-11-29">
+ enum="PasswordProtectionRequestOutcome" expires_after="2021-01-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -126132,7 +130158,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PasswordProtection.Verdict" enum="PasswordProtectionVerdict"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -126215,6 +130241,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PaymentRequest.CheckoutFunnel"
+ enum="PaymentRequestCheckoutFunnelSteps" expires_after="M90">
+ <owner>danyao@chromium.org</owner>
+ <owner>web-payments-team@google.com</owner>
+ <summary>
+ Counts the number of Payment Requests (PR) that go through each checkout
+ step. A single PR may be counted in multiple buckets depending on its final
+ status. e.g. A completed PR will be counted in all of the following buckets
+ 1- Initiated, 2- show() called 3- Payment request triggered 4- Payment
+ handler invoked, 5- Completed.
+ </summary>
+</histogram>
+
<histogram name="PaymentRequest.CheckoutFunnel.Aborted"
enum="PaymentRequestAbortReason" expires_after="M85">
<owner>danyao@chromium.org</owner>
@@ -126295,7 +130334,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.Events" units="bitfield value"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>danyao@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126305,7 +130344,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.JourneyLoggerHasRecorded" enum="Boolean"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126389,7 +130428,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.NumberOfSuggestionsShown" units="units"
- expires_after="2020-10-22">
+ expires_after="2021-01-24">
<owner>danyao@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126439,7 +130478,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126448,7 +130487,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed.Shown" units="ms"
- expires_after="2020-09-27">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="PaymentRequestCompletedInstrument" -->
<owner>sahel@chromium.org</owner>
@@ -126460,7 +130499,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed.SkippedShow"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="PaymentRequestCompletedInstrument" -->
<owner>sahel@chromium.org</owner>
@@ -126472,7 +130511,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.OtherAborted" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126482,7 +130521,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.UserAborted" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="PaymentRequestPaymentSheetShowStatus" -->
<owner>sahel@chromium.org</owner>
@@ -126494,7 +130533,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TransactionAmount.Completed"
- enum="PaymentRequestTransactionSize" expires_after="2020-09-27">
+ enum="PaymentRequestTransactionSize" expires_after="2021-01-24">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126504,7 +130543,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PaymentRequest.TransactionAmount.Triggered"
- enum="PaymentRequestTransactionSize" expires_after="2020-11-29">
+ enum="PaymentRequestTransactionSize" expires_after="2021-01-31">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
@@ -126591,7 +130630,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PDF.Actions" enum="ChromePDFViewerActions"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>hnakashima@chromium.org</owner>
<summary>
Tracks user actions in the PDF viewer. Logged when the document is opened
@@ -126634,7 +130673,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<summary>The size of PDF documents opened in the PDF viewer.</summary>
</histogram>
-<histogram name="PDF.FormType" enum="PDFFormTypes" expires_after="2020-10-11">
+<histogram name="PDF.FormType" enum="PDFFormTypes" expires_after="2021-01-17">
<owner>rharrison@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>
@@ -126643,7 +130682,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PDF.HasAttachment" enum="Boolean" expires_after="2020-12-06">
+<histogram name="PDF.HasAttachment" enum="Boolean" expires_after="2021-02-07">
<owner>hnakashima@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>
@@ -126685,9 +130724,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PDF.LinkHighlightOverlapsInPage" units="overlaps"
expires_after="2020-12-01">
+ <owner>thestig@chromium.org</owner>
<owner>ankk@microsoft.com</owner>
<owner>mohitb@microsoft.com</owner>
- <owner>thestig@chromium.org</owner>
<owner>virens@microsoft.com</owner>
<summary>
Records the number of overlapping link and highlight annotations in a PDF
@@ -126698,7 +130737,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PDF.LoadStatus" enum="ChromePDFViewerLoadStatus"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>kmoon@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>
@@ -126708,7 +130747,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PDF.PageCount" units="pages" expires_after="2020-11-01">
+<histogram name="PDF.PageCount" units="pages" expires_after="2021-01-03">
<owner>hnakashima@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>
@@ -126818,7 +130857,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PerformanceHints.Observer.HintForURLResult"
- enum="PerformanceHintsObserverHintForURLResult" expires_after="2020-10-01">
+ enum="PerformanceHintsObserverHintForURLResult" expires_after="2021-01-24">
<owner>jds@chromium.org</owner>
<owner>src/chrome/browser/performance_hints/OWNERS</owner>
<summary>
@@ -126829,7 +130868,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PerformanceHints.Observer.PerformanceClassForURL"
- enum="PerformanceHintsPerformanceClass" expires_after="2020-10-01">
+ enum="PerformanceHintsPerformanceClass" expires_after="2021-01-24">
<owner>jds@chromium.org</owner>
<owner>src/chrome/browser/performance_hints/OWNERS</owner>
<summary>
@@ -126841,7 +130880,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true" name="PerformanceHints.Observer.SourceLookupStatus"
enum="PerformanceHintsObserverSourceLookupStatus"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>jds@chromium.org</owner>
<owner>src/chrome/browser/performance_hints/OWNERS</owner>
<summary>
@@ -127036,8 +131075,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="PerformanceMonitor.EnergyImpact"
- units="ScaledUnits" expires_after="2020-07-30">
+ units="ScaledUnits" expires_after="2021-07-30">
<owner>lgrey@chromium.org</owner>
+ <owner>markchang@chromium.org</owner>
<summary>
(Mac only) A synthetic power use estimate, as displayed in macOS Activity
Monitor and the battery menu. This incorporates CPU utilization, idle
@@ -127103,7 +131143,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PeriodicBackgroundSync.Event.BatchSize" units="events"
- expires_after="2020-07-31">
+ expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -127114,7 +131154,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PeriodicBackgroundSync.Event.FromWakeupTask"
- enum="BackgroundSyncWakeupTask" expires_after="M86">
+ enum="BackgroundSyncWakeupTask" expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -127124,7 +131164,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PeriodicBackgroundSync.Event.Time" units="ms"
- expires_after="2020-07-31">
+ expires_after="2021-07-31">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -127181,7 +131221,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.Action.WithDisposition" enum="PermissionAction"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127307,7 +131347,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.CrowdDeny.DidHoldbackQuietUi" enum="Boolean"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127323,7 +131363,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.CrowdDeny.PreloadData.NotificationUxQuality"
- enum="CrowdDenyNotificationUxQuality" expires_after="2020-12-01">
+ enum="CrowdDenyNotificationUxQuality" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127334,7 +131374,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.CrowdDeny.PreloadData.WarningOnly" enum="Boolean"
- expires_after="2020-12-01">
+ expires_after="2021-02-14">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127346,7 +131386,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.CrowdDeny.SafeBrowsing.RequestDuration" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127358,7 +131398,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.CrowdDeny.SafeBrowsing.Verdict"
- enum="CrowdDenySafeBrowsingVerdict" expires_after="2020-12-01">
+ enum="CrowdDenySafeBrowsingVerdict" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127407,7 +131447,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.MissingOSLevelPermission.Action"
- enum="PermissionAction" expires_after="2020-12-01">
+ enum="PermissionAction" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127419,7 +131459,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.MissingOSLevelPermission.ShouldShow"
- enum="Boolean" expires_after="2020-12-01">
+ enum="Boolean" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127830,7 +131870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Permissions.QuietNotificationPrompts.DidEnableAdapativelyInPrefs"
- enum="Boolean" expires_after="2020-12-01">
+ enum="Boolean" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127842,7 +131882,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram
name="Permissions.QuietNotificationPrompts.EnabledStateInPrefsChangedTo"
- enum="BooleanEnabled" expires_after="2020-12-01">
+ enum="BooleanEnabled" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127853,7 +131893,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Permissions.QuietNotificationPrompts.IsEnabledInPrefs"
- enum="BooleanEnabled" expires_after="2020-12-01">
+ enum="BooleanEnabled" expires_after="2021-01-31">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -127919,6 +131959,36 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Permissions.Serial.ChooserClosed" enum="SerialChooserOutcome"
+ expires_after="2021-06-21">
+ <owner>reillyg@chromium.org</owner>
+ <owner>src/content/browser/serial/OWNERS</owner>
+ <summary>
+ Records the reason why the Serial API chooser, triggered by a call to
+ navigator.serial.requestPort(), was closed.
+ </summary>
+</histogram>
+
+<histogram name="Permissions.Serial.Revoked" enum="SerialPermissionRevoked"
+ expires_after="2021-06-21">
+ <owner>reillyg@chromium.org</owner>
+ <owner>src/content/browser/serial/OWNERS</owner>
+ <summary>Records when permission to access a serial port is revoked.</summary>
+</histogram>
+
+<histogram base="true" name="PhoneHub.MultiDeviceFeatureState"
+ enum="MultiDevice_FeatureState" expires_after="2021-08-01">
+<!-- Name completed by histogram_suffixes name="PhoneHubFeature" -->
+
+ <owner>khorimoto@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Indicates the feature state of Phone Hub features. This metric is emitted to
+ at the creation of the user session (when the user logs in), and when
+ feature state updates occur.
+ </summary>
+</histogram>
+
<histogram name="PhysicalWeb.ActivityReferral"
enum="PhysicalWebActivityReferer" expires_after="2018-05-16">
<obsolete>
@@ -128189,8 +132259,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.BootMode.DevSwitch"
- enum="Platform.BootMode.SwitchStatus" expires_after="M85">
+ enum="Platform.BootMode.SwitchStatus" expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>dossym@chromium.org</owner>
<summary>
Indicates the status of the developer switch on Chrome OS hardware. The
developer switch allows users to run their own code on the device.
@@ -128198,8 +132269,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.BootMode.FirmwareWriteProtect"
- enum="Platform.BootMode.FirmwareWriteProtect" expires_after="M85">
+ enum="Platform.BootMode.FirmwareWriteProtect" expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>dossym@chromium.org</owner>
<summary>
On Chrome OS hardware, indicates whether flash write protection is enabled
for the firmware indicated by the histogram suffix.
@@ -128207,8 +132279,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.BootMode.WriteProtectSwitch"
- enum="Platform.BootMode.SwitchStatus" expires_after="M85">
+ enum="Platform.BootMode.SwitchStatus" expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>dossym@chromium.org</owner>
<summary>
Indicates the status of the hardware write protect switch on Chrome OS
hardware. The write protect switch protects firmware from being rewritten.
@@ -128320,8 +132393,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Cr50.BoardIdOfRlzMismatch" enum="Cr50CrosRlzCodes"
- expires_after="2020-07-30">
+ expires_after="2021-07-26">
<owner>vbendeb@chromium.org</owner>
+ <owner>apronin@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>
A sparse histogram of values indexed by 4 byte Board ID code programmed in
H1 reported by devices where there is a mismatch between the RLZ code and
@@ -128330,7 +132405,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Cr50.FlashLog" enum="Cr50FlashLogs"
- expires_after="2021-06-30">
+ expires_after="2021-07-26">
<owner>apronin@chromium.org</owner>
<owner>vbendeb@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
@@ -128354,8 +132429,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Cr50.RlzOfBoardIdMismatch" enum="Cr50CrosRlzCodes"
- expires_after="2020-07-30">
+ expires_after="2021-07-26">
<owner>vbendeb@chromium.org</owner>
+ <owner>apronin@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>
A sparse histogram of values indexed by 4 byte RLZ code reported by devices
where there is a mismatch between the RLZ code and the Board ID value
@@ -128364,6 +132441,21 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Platform.CrOS.CrashSenderRemoveReason"
+ enum="CrosCrashSenderRemoveReason" expires_after="2021-01-30">
+ <owner>iby@chromium.org</owner>
+ <owner>mutexlox@chromium.org</owner>
+ <owner>cros-telemetry@google.com</owner>
+ <summary>
+ (Chrome OS only) An enum indicating the reasons for removal of crash reports
+ on devices. Generally, we'll remove crash reports after successfully sending
+ them, but there are other reasons for removal (e.g. if the metadata file was
+ malformed). These should be rare, but bugs in the crash reporting system may
+ cause us to start removing crashes before sending them more often. This
+ metric is intended to monitor crash reporting system health.
+ </summary>
+</histogram>
+
<histogram name="Platform.CrOSEvent" enum="CrosEventEnum" expires_after="never">
<!-- expires-never: Used by the core CrOS platform with individual buckets added
and removed as makes sense. -->
@@ -128571,7 +132663,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.DiskUsage.NumUserHomeDirectories"
- units="home directories" expires_after="M85">
+ units="home directories" expires_after="2021-08-01">
<owner>achuith@chromium.org</owner>
<owner>tls@chromium.org</owner>
<summary>
@@ -128580,7 +132672,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.DiskUsage.OldestUserOnDevice" units="units"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>achuith@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -128599,7 +132691,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.DiskUsageChronos" units="KB" expires_after="M85">
+<histogram name="Platform.DiskUsageChronos" units="KB"
+ expires_after="2021-08-01">
<owner>keescook@google.com</owner>
<summary>
Chrome OS KB in use in the /home/chronos filesystem tree. Logged once a day
@@ -128607,7 +132700,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.DiskUsageVar" units="KB" expires_after="M85">
+<histogram name="Platform.DiskUsageVar" units="KB" expires_after="2021-08-01">
<owner>keescook@google.com</owner>
<summary>
Chrome OS KB in use in the /var filesystem tree. Logged once a day during
@@ -128615,8 +132708,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Platform.DlcService.InstallResult"
+ enum="DlcService.InstallResult" expires_after="2021-06-30">
+ <owner>andrewlassalle@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
+ <summary>
+ The result of an attempt to Install a DLC package. DLCs are ChromiumOS
+ Software packages that are installed in the stateful partition.
+ </summary>
+</histogram>
+
+<histogram name="Platform.DlcService.UninstallResult"
+ enum="DlcService.UninstallResult" expires_after="2021-06-30">
+ <owner>andrewlassalle@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
+ <summary>
+ The result of an attempt to Uninstall a DLC package. DLCs are ChromiumOS
+ Software packages that are installed in the stateful partition.
+ </summary>
+</histogram>
+
<histogram name="Platform.Emmc.LifeUsed" enum="EmmcLifeUsed"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
eMMC [5.0] Device life time estimation for flash. This field provides an
@@ -128627,7 +132740,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.FileSystem.ErrorCount" units="units"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
Number of file system errors, as reported by dumpe2fs &quot;FS Error
@@ -128636,7 +132749,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.FileSystem.FsckNeeded" enum="Boolean"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
True when kernel reports that the file system needs deep recovery. File
@@ -128646,7 +132759,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.FileSystem.RecoveryNeeded" enum="Boolean"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
True when kernel reports that the file system needed recovery at boot. It
@@ -128656,8 +132769,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.IntelMaxMicroArchitecture"
- enum="IntelMaxMicroArchitecture" expires_after="M85">
+ enum="IntelMaxMicroArchitecture" expires_after="2021-07-13">
<owner>fbarchard@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>
The maximum supported micro-architecture on an Intel platform. This value is
logged at program start time.
@@ -128791,7 +132905,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.Memory.ARC" units="MiB" expires_after="2020-11-01">
+<histogram name="Platform.Memory.ARC" units="MiB" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128802,7 +132916,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Memory.Browser" units="MiB"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128814,7 +132928,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Memory.Daemons" units="MiB"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128824,7 +132938,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.Memory.Gpu" units="MiB" expires_after="2020-11-01">
+<histogram name="Platform.Memory.Gpu" units="MiB" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128835,7 +132949,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Memory.Renderers" units="MiB"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128845,7 +132959,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.Memory.VMs" units="MiB" expires_after="2020-11-01">
+<histogram name="Platform.Memory.VMs" units="MiB" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="ProcessMemoryType" -->
<owner>sonnyrao@chromium.org</owner>
@@ -128965,7 +133079,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.ReadSectorsLong" units="units" expires_after="M85">
+<histogram name="Platform.ReadSectorsLong" units="units"
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
Number of disk sectors per second read by Chrome OS in a long interval
@@ -128973,7 +133088,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.ReadSectorsShort" units="units" expires_after="M85">
+<histogram name="Platform.ReadSectorsShort" units="units"
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
Number of disk sectors per second read by Chrome OS in a short interval
@@ -128982,7 +133098,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.SATA.AvailableReservedSpace" units="%"
- expires_after="2020-10-25">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -128992,7 +133108,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.SATA.LogicalSectorsRead" units="512-byte sectors"
- expires_after="2020-10-25">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -129002,7 +133118,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.SATA.LogicalSectorsWritten" units="512-byte sectors"
- expires_after="2020-10-25">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -129012,7 +133128,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.SATA.PercentageUsed" units="%"
- expires_after="2020-10-25">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -129109,7 +133225,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.StatefulUsage" units="%" expires_after="M85">
+<histogram name="Platform.StatefulUsage" units="%" expires_after="2021-08-01">
<owner>achuith@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>Chrome OS stateful partition usage level.</summary>
@@ -129145,7 +133261,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Storage.Nvme.PercentageUsed" units="%"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -129158,7 +133274,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Storage.Ufs.LifeUsed" enum="EmmcLifeUsed"
- expires_after="M85">
+ expires_after="2021-08-01">
<owner>asavery@chromium.org</owner>
<owner>gwendal@chromium.org</owner>
<summary>
@@ -129986,7 +134102,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Temperature.Sensor00" units="Celsius"
- expires_after="M85">
+ expires_after="2020-12-01">
<owner>fletcherw@chromium.org</owner>
<summary>
Temperature reading from EC temperature sensor 0 (TSR0) taken every 30s.
@@ -130007,7 +134123,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Temperature.Sensor01" units="Celsius"
- expires_after="M85">
+ expires_after="2020-12-01">
<owner>fletcherw@chromium.org</owner>
<summary>
Temperature reading from EC temperature sensor 1 (TSR1) taken every 30s.
@@ -130028,7 +134144,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Temperature.Sensor02" units="Celsius"
- expires_after="M85">
+ expires_after="2020-12-01">
<owner>fletcherw@chromium.org</owner>
<summary>
Temperature reading from EC temperature sensor 2 (TSR2) taken every 30s.
@@ -130103,7 +134219,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.Thermal.Temperature.Cpu.0" units="Celsius"
- expires_after="M85">
+ expires_after="2020-12-01">
<owner>mka@chromium.org</owner>
<summary>
Temperature reading at sensor 0 of the CPU collected every few seconds (may
@@ -130212,7 +134328,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.TPM.DictionaryAttackCounter" units="units"
- expires_after="2020-10-07">
+ expires_after="2021-01-24">
<owner>cylai@chromium.org</owner>
<owner>cros-hwsec-userland-eng+uma@chromium.org</owner>
<summary>
@@ -130222,7 +134338,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.TPM.DictionaryAttackResetStatus"
- enum="CrosTPMDictionaryAttackResetStatusEnum" expires_after="2020-10-07">
+ enum="CrosTPMDictionaryAttackResetStatusEnum" expires_after="2021-01-24">
<owner>cylai@chromium.org</owner>
<owner>cros-hwsec-userland-eng+uma@chromium.org</owner>
<summary>
@@ -130241,8 +134357,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.TPM.FirmwareUpdate.Attempts" units="attempts"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Number of attempts until a successful TPM firmware update. This is the total
sum of attempts, i.e. number of failed attempts + 1 for the final successful
@@ -130253,14 +134370,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.TPM.FirmwareUpdate.Result"
- enum="TPMFirmwareUpdateResult" expires_after="M85">
+ enum="TPMFirmwareUpdateResult" expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>Status of a complete TPM firmware update attempt.</summary>
</histogram>
<histogram name="Platform.TPM.FirmwareUpdate.Status"
- enum="TPMFirmwareUpdateStatus" expires_after="M85">
+ enum="TPMFirmwareUpdateStatus" expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>Exit status of the TPM firmware updater script.</summary>
</histogram>
@@ -130274,8 +134393,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Platform.TPM.VersionFingerprint" enum="TPMVersionFingerprint"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>mnissler@chromium.org</owner>
+ <owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Indicates a fingerprint of hardware + firmware versions for the TPM chip
present in a Chrome OS device.
@@ -130396,7 +134516,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.WriteSectorsLong" units="units" expires_after="M85">
+<histogram name="Platform.WriteSectorsLong" units="units"
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
Number of disk sectors per second written by Chrome OS in a long interval
@@ -130404,7 +134525,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Platform.WriteSectorsShort" units="units" expires_after="M85">
+<histogram name="Platform.WriteSectorsShort" units="units"
+ expires_after="2021-08-01">
<owner>gwendal@google.com</owner>
<summary>
Number of disk sectors per second written by Chrome OS in a short interval
@@ -131150,7 +135272,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PLT.iOS.BrowserInitiatedPageLoadTime" units="ms"
- expires_after="2020-08-09">
+ expires_after="2022-08-09">
<owner>djean@chromium.org</owner>
<owner>eugenebut@chromium.org</owner>
<summary>
@@ -131176,7 +135298,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PLT.iOS.RendererInitiatedPageLoadTime" units="ms"
- expires_after="2020-08-09">
+ expires_after="2022-08-09">
<owner>djean@chromium.org</owner>
<owner>eugenebut@chromium.org</owner>
<summary>
@@ -132032,7 +136154,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Plugin.FlashUsage" enum="FlashUsage"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>yzshen@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>Collects Flash usage data.</summary>
@@ -132209,7 +136331,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PluginVm.AppsInstalledAtLogin" units="apps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
<summary>
@@ -132226,7 +136348,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PluginVm.EngagementTime.Background" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
<summary>
@@ -132237,7 +136359,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PluginVm.EngagementTime.Foreground" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
<summary>
@@ -132247,7 +136369,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PluginVm.EngagementTime.PluginVmTotal" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
<summary>
@@ -132258,7 +136380,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PluginVm.EngagementTime.Total" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
<summary>
@@ -132295,8 +136417,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="PluginVm.SetupFailureReason" enum="PluginVmSetupFailureReason"
expires_after="2020-12-31">
- <owner>kimjae@chromium.org</owner>
<owner>timloh@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>Recorded when the Plugin VM installer fails.</summary>
</histogram>
@@ -132324,6 +136446,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Power.ApproxCpuTimeSecondsPerCoreTypeAndFrequency"
+ units="50 MHz" expires_after="2021-08-17">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Total seconds of CPU time consumed by Chrome, split by process type as well
+ as core type and core frequency. Currently only implemented on Android. For
+ every second of CPU time consumed by a process on a specific CPU core type
+ and at a specific frequency, a sample is recorded into the bucket for the
+ frequency range. Samples are recorded periodically depending on the task
+ load of each process's main thread. The histogram thus shows the total sum
+ of CPU time seconds spent for a specific process and core type across all
+ users.
+
+ Compared with Power.CpuTimeSecondsPerCoreTypeAndFrequency, the values in
+ this histogram are approximated from more widely supported global
+ per-CPU-core time_in_state stats, while
+ Power.CpuTimeSecondsPerCoreTypeAndFrequency reads per-thread time_in_state
+ stats that are only supported on newer Pixel devices (as of mid-2020).
+
+ For a histogram of daily per-user values, select &quot;Per-Client
+ Aggregation Mode&quot;.
+ </summary>
+</histogram>
+
<histogram name="Power.BacklightLevelOnAC" units="%" expires_after="2020-12-20">
<owner>tbroch@chromium.org</owner>
<summary>
@@ -132333,7 +136480,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BacklightLevelOnBattery" units="%"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>tbroch@chromium.org</owner>
<summary>
The level of the backlight as a percentage when the user is on battery.
@@ -132342,7 +136489,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryChargeHealth" units="%"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery charge health percentage. Sampled once when device starts
@@ -132374,7 +136521,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryDischargeRate" units="mW"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery discharge rate in mW sampled every 30 seconds while the
@@ -132440,7 +136587,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery discharge rate in mW while the system was suspended,
@@ -132460,7 +136607,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2020-11-29">
+<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2021-01-31">
<owner>ryansturm@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -132485,7 +136632,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryRemainingAtEndOfSessionOnBattery" units="%"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -132494,7 +136641,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryRemainingAtStartOfSessionOnAC" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -132503,7 +136650,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryRemainingAtStartOfSessionOnBattery" units="%"
- expires_after="2020-10-25">
+ expires_after="2021-01-10">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -132524,7 +136671,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.BatteryRemainingWhenChargeStarts" units="%"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -132604,7 +136751,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.ConnectedChargingPorts"
- enum="PowerConnectedChargingPorts" expires_after="2020-11-29">
+ enum="PowerConnectedChargingPorts" expires_after="2021-01-31">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -132619,6 +136766,34 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Power.CpuAffinityExperiments.ProcessAffinityUpdateSuccess"
+ enum="BooleanSuccess" expires_after="2021-08-05">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ For clients enrolled in CPU affinity restriction experiments (e.g.
+ restricting execution to little cores only), records whether the CPU
+ affinity for a process could be succcessfully set.
+ </summary>
+</histogram>
+
+<histogram name="Power.CpuTimeSecondsPerCoreTypeAndFrequency" units="50 MHz"
+ expires_after="2021-06-26">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Total seconds of CPU time consumed by Chrome, split by process type as well
+ as core type and core frequency. Currently only implemented on Android. For
+ every second of CPU time consumed by a process on a specific CPU core type
+ and at a specific frequency, a sample is recorded into the bucket for the
+ frequency range. The histogram thus shows the total sum of CPU time seconds
+ spent for a specific process and core type across all users.
+
+ For a histogram of daily per-user values, select &quot;Per-Client
+ Aggregation Mode&quot;.
+ </summary>
+</histogram>
+
<histogram name="Power.CpuTimeSecondsPerProcessType" enum="ProcessType2"
expires_after="2021-05-14">
<owner>eseckler@chromium.org</owner>
@@ -132750,7 +136925,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.ExternalDisplayOpenResult"
- enum="ExternalDisplayOpenResult" expires_after="2020-11-22">
+ enum="ExternalDisplayOpenResult" expires_after="2021-01-24">
<owner>tbroch@chromium.org</owner>
<summary>
The result of attempting to open an I2C device to control an external
@@ -132777,6 +136952,120 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Power.ForegroundBatteryDrain" units="0.1 mAh"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Records a sample for every 0.1 milliampere-hours of battery capacity that
+ are drained while Chrome is the foreground app and the device is on battery
+ power. Only supported on Android. The histogram thus shows the total sum of
+ battery capacity consumed across all users.
+
+ For a histogram of daily per-user values, see the computed histogram
+ Power.DailyForegroundBatteryDrain.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.30Seconds" units="uAh"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Periodically samples the battery capacity drained while Chrome is the
+ foreground app and the device is on battery power. Sampled every 30 seconds
+ and when Chrome is backgrounded or the device connects to a charger. Sample
+ values are reported as provided by the battery capacity counter (in
+ microampere-hours). Because the resolution of this counter is rather coarse
+ (usually between .5 and 50 mAh), the uAh value may have been drained over a
+ longer time period than 30 seconds. See also
+ Power.ForegroundBatteryDrain.30SecondsAvg, which averages the values over
+ successive sampling points without change in counter values.
+
+ Only supported on Android.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.30Seconds.Exclusive" units="uAh"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Periodically samples the battery capacity drained while Chrome is the
+ foreground app and the device is on battery power. Sampled every 30 seconds
+ and when Chrome is backgrounded or the device connects to a charger. Sample
+ values are reported as provided by the battery capacity counter (in
+ microampere-hours). Because the resolution of this counter is rather coarse
+ (usually between .5 and 50 mAh), the uAh value may have been drained over a
+ longer time period than 30 seconds. Only time intervals where Chrome was the
+ only foreground app are reported. See also
+ Power.ForegroundBatteryDrain.30SecondsAvg.Exclusive, which averages the
+ values over successive sampling points without change in counter values.
+
+ Only supported on Android.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.30SecondsAvg" units="uAh"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Periodically samples the battery capacity drained while Chrome is the
+ foreground app and the device is on battery power. Sampled every 30 seconds
+ and when Chrome is backgrounded or the device connects to a charger. Sample
+ values are reported in microampere-hours and averaged over successive
+ sampling points without a change in capacity counter values.
+
+ Only supported on Android.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.30SecondsAvg.Exclusive"
+ units="uAh" expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Periodically samples the battery capacity drained while Chrome is the
+ foreground app and the device is on battery power. Sampled every 30 seconds
+ and when Chrome is backgrounded or the device connects to a charger. Sample
+ values are reported in microampere-hours and averaged over successive
+ sampling points without a change in capacity counter values. Only time
+ intervals where Chrome was the only foreground app are reported.
+
+ Only supported on Android.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.Exclusive" units="0.1 mAh"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ Records a sample for every 0.1 milliampere-hours of battery capacity that
+ are drained while Chrome is the foreground app and the device is on battery
+ power. Only supported on Android. The histogram thus shows the total sum of
+ battery capacity consumed across all users. Only time intervals where Chrome
+ was the only foreground app are reported.
+
+ For a histogram of daily per-user values, see the computed histogram
+ Power.DailyForegroundBatteryDrain.Exclusive.
+ </summary>
+</histogram>
+
+<histogram name="Power.ForegroundBatteryDrain.TimeBetweenEvents" units="ms"
+ expires_after="2021-07-03">
+ <owner>eseckler@chromium.org</owner>
+ <owner>skyostil@chromium.org</owner>
+ <summary>
+ A companion metric for Power.ForegroundBatteryDrain.30SecondsAvg which
+ reports the time interval between successive capacity drops reported by the
+ battery manager.
+
+ Only supported on Android.
+ </summary>
+</histogram>
+
<histogram name="Power.IdleScreenDimCountDaily" units="count"
expires_after="M100">
<owner>tbroch@chromium.org</owner>
@@ -132808,7 +137097,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.IdleSuspendCountDaily" units="count"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -132870,7 +137159,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2020-12-06">
+<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2021-02-07">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -132880,7 +137169,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.KernelResumeTimeOnAC" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to resume the Chrome OS device from
@@ -132907,7 +137196,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.KernelSuspendTimeOnBattery" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
@@ -132925,7 +137214,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.LengthOfSession" units="seconds"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>tbroch@chromium.org</owner>
<summary>
The length of time, in seconds, that a user spent in a single session.
@@ -132935,7 +137224,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.LidClosedSuspendCountDaily" units="count"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Number of times that that the system has suspended in response to its lid
@@ -132959,7 +137248,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.Mac.AppleSMCOpened" enum="BooleanSuccess"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>lgrey@chromium.org</owner>
<summary>
When metrics collection started, records true if a handle to the System
@@ -133116,14 +137405,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.PowerButtonMenuAction" enum="PowerButtonMenuActionType"
- expires_after="2020-12-23">
+ expires_after="2021-01-29">
<owner>minch@chromium.org</owner>
+ <owner>xdai@chromium.org</owner>
<summary>Actions performed while the power button menu is open.</summary>
</histogram>
<histogram name="Power.PowerButtonPressInLaptopMode"
- enum="PowerButtonPressType" expires_after="2020-12-06">
+ enum="PowerButtonPressType" expires_after="2021-01-29">
<owner>minch@chromium.org</owner>
+ <owner>xdai@chromium.org</owner>
<summary>
Press power button in laptop mode will result in different scenarios
according to the power button up state. Counts the different power button
@@ -133132,8 +137423,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.PowerButtonPressInTabletMode"
- enum="PowerButtonPressType" expires_after="2020-08-02">
+ enum="PowerButtonPressType" expires_after="2021-01-29">
<owner>minch@chromium.org</owner>
+ <owner>xdai@chromium.org</owner>
<summary>
Press power button in tablet mode will result in different scenarios
according to the power button up state. Counts the different power button
@@ -133142,7 +137434,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.PowerSupplyMaxPower" units="W"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -133163,7 +137455,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.PowerSupplyType" enum="PowerSupplyType"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -133202,7 +137494,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.SuspendAttempt" enum="SuspendAttempt"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts on Chrome OS. Samples are reported before
@@ -133212,7 +137504,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.SuspendAttemptsBeforeCancel" units="units"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
@@ -133223,7 +137515,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.SuspendAttemptsBeforeSuccess" units="units"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
@@ -133233,7 +137525,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.SuspendResult" enum="SuspendResult"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
The results of suspend attempts on Chrome OS. Samples are reported after
@@ -133277,7 +137569,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.TimeInSuspendAtBoot" units="minutes"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at boot
@@ -133286,7 +137578,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.TimeInSuspendAtResume" units="minutes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume.
@@ -133305,7 +137597,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnBattery"
- units="units" expires_after="2020-12-13">
+ units="units" expires_after="2021-02-14">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -133316,7 +137608,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.DimImminent.Action" enum="PowerMLDimImminentAction"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>jiameng@chromium.org</owner>
<summary>
What happens when UserActivityManager receives a screen dim imminent
@@ -133325,7 +137617,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.ModelDim.Result" enum="PowerMLFinalResult"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>jiameng@chromium.org</owner>
<summary>
What happens after screen is dimmed following model instruction. Only
@@ -133334,7 +137626,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.ModelNoDim.Result" enum="PowerMLFinalResult"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>jiameng@chromium.org</owner>
<summary>
What happens after screen dim is deferred following model instruction. Only
@@ -133343,7 +137635,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.NonModelDim.Result" enum="PowerMLFinalResult"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>jiameng@chromium.org</owner>
<summary>
What happens after screen is dimmed by powerd by ignoring the model
@@ -133395,7 +137687,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.SmartDimModel.RequestCanceledDuration" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>amoylan@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
@@ -133407,7 +137699,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.SmartDimModel.RequestCompleteDuration" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>amoylan@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
@@ -133419,7 +137711,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.SmartDimModel.Result"
- enum="PowerMLSmartDimModelResult" expires_after="2020-12-06">
+ enum="PowerMLSmartDimModelResult" expires_after="2021-02-07">
<owner>jiameng@chromium.org</owner>
<summary>
This is the status code returned by the model when calculating a user
@@ -133431,7 +137723,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PowerML.SmartDimParameter.Result"
- enum="PowerMLSmartDimParameterResult" expires_after="2020-12-13">
+ enum="PowerMLSmartDimParameterResult" expires_after="2021-02-14">
<owner>jiameng@chromium.org</owner>
<summary>
The result of parsing the dim threshold parameter value. Only applicable to
@@ -133830,6 +138122,34 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PreferredApps.FileIOAction" enum="PreferredAppsFileIOAction"
+ expires_after="M89">
+ <obsolete>
+ This was used by mistake, add the entry to avoid anyone accidently using
+ this name. Obsolete in 10/2020. Replaced by Apps.PreferredApps.FileIOAction.
+ </obsolete>
+ <owner>dominickn@chromium.org</owner>
+ <owner>mxcai@chromium.org</owner>
+ <summary>
+ Recorded at the time a read/write operation happens for preferred app to
+ indicate whether the I/O succeeded or not.
+ </summary>
+</histogram>
+
+<histogram name="PreferredApps.UpdateAction" enum="PreferredAppsUpdateAction"
+ expires_after="M89">
+ <obsolete>
+ This was used by mistake, add the entry to avoid anyone accidently using
+ this name. Obsolete in 10/2020. Replaced by Apps.PreferredApps.UpdateAction.
+ </obsolete>
+ <owner>dominickn@chromium.org</owner>
+ <owner>mxcai@chromium.org</owner>
+ <summary>
+ Recorded at the time a update operation happens for preferred apps to
+ indicate the type of update action.
+ </summary>
+</histogram>
+
<histogram name="Prefetch.Redirect" enum="PrefetchRedirect"
expires_after="2020-03-31">
<obsolete>
@@ -133851,7 +138171,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.BodySize" units="bytes"
- expires_after="2020-09-30">
+ expires_after="2021-01-24">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -133862,7 +138182,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.BodySizeTotal" units="bytes"
- expires_after="2020-09-30">
+ expires_after="2021-01-24">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -133874,7 +138194,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.Count" units="count"
- expires_after="2020-09-30">
+ expires_after="2021-01-24">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -133886,7 +138206,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.HeadersSizeTotal" units="bytes"
- expires_after="2020-09-30">
+ expires_after="2021-01-24">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -134912,6 +139232,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Prerender.PrefetchAge" units="ms" expires_after="M85">
+ <obsolete>
+ Deprecated July 2020
+ </obsolete>
<owner>droger@chromium.org</owner>
<owner>mattcary@chromium.org</owner>
<owner>pasko@chromium.org</owner>
@@ -134925,6 +139248,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Prerender.PrefetchTTFCP" units="ms" expires_after="M85">
+ <obsolete>
+ Deprecated July 2020
+ </obsolete>
<owner>droger@chromium.org</owner>
<owner>mattcary@chromium.org</owner>
<owner>pasko@chromium.org</owner>
@@ -135335,7 +139661,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Previews.EligibilityReason" enum="PreviewsEligibilityReason"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>ryansturm@chromium.org</owner>
<summary>
When evaluating whether to show a user a preview, the preview might be
@@ -135502,6 +139828,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Previews.Offline.CommittedErrorPage" enum="BooleanError"
expires_after="M90">
+ <obsolete>
+ Offline Previews functionality removed in M86.
+ </obsolete>
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -135512,6 +139841,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Previews.Offline.FalsePositivePrevention.Allowed"
enum="BooleanAllowed" expires_after="M85">
+ <obsolete>
+ Offline Previews functionality removed in M86.
+ </obsolete>
<owner>robertogden@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<summary>
@@ -135525,6 +139857,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Previews.Offline.FalsePositivePrevention.PrefSize"
units="count of entries" expires_after="M85">
+ <obsolete>
+ Offline Previews functionality removed in M86.
+ </obsolete>
<owner>robertogden@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<summary>
@@ -135535,7 +139870,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Previews.OmniboxAction" enum="PreviewsUserOmniboxAction"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>robertogden@chromium.org</owner>
<summary>User interactions with the Previews Android Omnibox UI.</summary>
</histogram>
@@ -135701,7 +140036,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Previews.PageEndReason" enum="PageEndReason"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>robertogden@chromium.org</owner>
<summary>Records why the page load ended on a given preview type.</summary>
</histogram>
@@ -135733,7 +140068,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Previews.ServerLitePage.HostBlacklistedOnBypass"
- enum="Boolean" expires_after="2020-12-25">
+ enum="Boolean" expires_after="2020-07-10">
+ <obsolete>
+ Removed in M84.
+ </obsolete>
<owner>robertogden@chromium.org</owner>
<owner>tombergan@chromium.org</owner>
<owner>src/components/data_reduction_proxy/OWNERS</owner>
@@ -135956,7 +140294,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Previews.StalePreviewTimestampShown"
- enum="PreviewsStalePreviewTimestamp" expires_after="2020-12-31">
+ enum="PreviewsStalePreviewTimestamp" expires_after="2020-07-10">
+ <obsolete>
+ Stale timestamp functionality removed in M86.
+ </obsolete>
<owner>robertogden@chromium.org</owner>
<summary>
Whether the timestamp for a stale preview was shown on the UI. If the
@@ -136111,7 +140452,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Printing.CUPS.HighestIppVersion" enum="IppVersion"
- expires_after="2020-11-02">
+ expires_after="2021-01-24">
<owner>skau@chromium.org</owner>
<owner>pawliczek@chromium.org</owner>
<summary>
@@ -136294,6 +140635,27 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Printing.CUPS.PrinterStatusQueryResult"
+ enum="PrinterStatusQueryResult" expires_after="2021-08-10">
+ <owner>gavinwill@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>
+ Records the success outcome of a printer status query to a local printer.
+ </summary>
+</histogram>
+
+<histogram name="Printing.CUPS.PrinterStatusReasons"
+ enum="PrinterStatusReasons" expires_after="2021-08-10">
+ <owner>gavinwill@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>
+ Records the status reasons returned by a local printer from a printer status
+ query. Each returned printer status request can contain multiple status
+ reasons so summing these buckets will overcount the total # of status
+ queries.
+ </summary>
+</histogram>
+
<histogram name="Printing.CUPS.PrintJobDatabaseEntries" units="entries"
expires_after="2020-09-11">
<owner>nikitapodguzov@chromium.org</owner>
@@ -136354,7 +140716,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Printing.CUPS.PrintManagementAppEntryPoint"
enum="PrintManagementAppEntryPoint" expires_after="2021-06-22">
- <owner>jimmyxgong@chromium.com</owner>
+ <owner>jimmyxgong@chromium.org</owner>
<owner>cros-peripherals@google.com</owner>
<summary>
Records the entry point of where the Print Management App was launched from
@@ -136431,6 +140793,11 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Printing.FrameIsActiveOnCreateLoaderFactory"
enum="BooleanEnabled" expires_after="2020-07-31">
+ <obsolete>
+ Removed in 2020-06. kUseFrameAssociatedLoaderFactory has shipped in M83 and
+ Printing.FrameIsActiveOnCreateLoaderFactory is true in 100% of cases on all
+ platforms.
+ </obsolete>
<owner>yhirano@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
<summary>
@@ -136451,7 +140818,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Printing.PrintServers.ServersToQuery" units="servers"
- expires_after="M86">
+ expires_after="M90">
<owner>pawliczek@chromium.org</owner>
<owner>skau@chromium.org</owner>
<summary>
@@ -136718,7 +141085,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrintPreview.PrintDocumentType"
- enum="PrintPreviewPrintDocumentTypeBuckets" expires_after="2020-10-04">
+ enum="PrintPreviewPrintDocumentTypeBuckets" expires_after="2021-01-17">
<owner>rbpotter@chromium.org</owner>
<summary>
Track type of documents printed (HTML vs PDF). Recorded immediately after a
@@ -136726,8 +141093,38 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PrintPreview.PrinterStatus.AttemptedPrintWithErrorStatus"
+ enum="Boolean" expires_after="2021-08-17">
+ <owner>gavinwill@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>
+ Records true if the user printed, or false if the user canceled, while being
+ shown a red/error status for their selected printer on Chrome OS.
+ </summary>
+</histogram>
+
+<histogram name="PrintPreview.PrinterStatus.AttemptedPrintWithGoodStatus"
+ enum="Boolean" expires_after="2021-08-17">
+ <owner>gavinwill@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>
+ Records true if the user printed, or false if the user canceled, while being
+ shown a green/good status for their selected printer on Chrome OS.
+ </summary>
+</histogram>
+
+<histogram name="PrintPreview.PrinterStatus.AttemptedPrintWithUnknownStatus"
+ enum="Boolean" expires_after="2021-08-17">
+ <owner>gavinwill@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>
+ Records true if the user printed, or false if the user canceled, while being
+ shown a grey/unknown status for their selected printer on Chrome OS.
+ </summary>
+</histogram>
+
<histogram name="PrintPreview.PrintSettings" enum="PrintSettings"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>thestig@chromium.org</owner>
<summary>
Track the popularity of print settings. (Settings when printing to PDF are
@@ -136808,7 +141205,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrintPreview.RenderToPDFTime" units="ms"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>thestig@chromium.org</owner>
<summary>Time taken to render to PDF for print preview.</summary>
</histogram>
@@ -136849,7 +141246,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PrintPreview.UserAction" enum="PrintPreviewUserActionType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>thestig@chromium.org</owner>
<summary>
Action taken by the user in the preview tab such as print, cancel, print to
@@ -136857,6 +141254,61 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Privacy.AccessContextAudit.CookieDomainCount" units="units"
+ expires_after="M89">
+ <owner>msramek@chromium.org</owner>
+ <owner>sauski@google.com</owner>
+ <summary>
+ The number of unique cookie domains for which accesses has been recorded for
+ in the Access Context Audit database. Logged on initialization of the Access
+ Context Audit DB on 1% of starts.
+ </summary>
+</histogram>
+
+<histogram name="Privacy.AccessContextAudit.DatabaseSize" units="KiB"
+ expires_after="M89">
+ <owner>msramek@chromium.org</owner>
+ <owner>sauski@google.com</owner>
+ <summary>
+ Size of the Access Context Audit database file in KiB. Determined by
+ directly inspecting the database file. Logged on initialization of the
+ Access Context Audit DB on 1% of starts.
+ </summary>
+</histogram>
+
+<histogram name="Privacy.AccessContextAudit.RecordCount" units="units"
+ expires_after="M89">
+ <owner>msramek@chromium.org</owner>
+ <owner>sauski@google.com</owner>
+ <summary>
+ The total number of access records stored in the Access Context Audit
+ database. Logged on initialization of the Acceess Context Audit DB on 1% of
+ starts.
+ </summary>
+</histogram>
+
+<histogram name="Privacy.AccessContextAudit.StorageOriginCount" units="units"
+ expires_after="M89">
+ <owner>msramek@chromium.org</owner>
+ <owner>sauski@google.com</owner>
+ <summary>
+ The number of unique origins associated with origin keyed storage APIs
+ recorded in the Access Context Audit database. Logged on initialization of
+ the Access Context Audit DB on 1% of starts.
+ </summary>
+</histogram>
+
+<histogram name="Privacy.AccessContextAudit.TopFrameOriginCount" units="units"
+ expires_after="M89">
+ <owner>msramek@chromium.org</owner>
+ <owner>sauski@google.com</owner>
+ <summary>
+ The number of unique top frame origins for which access to storage APIs has
+ been recorded in the Access Context Audit database. Logged on initialization
+ of the Acceess Context Audit DB on 1% of starts.
+ </summary>
+</histogram>
+
<histogram name="Privacy.ConsentAuditor.ConsentGiven.Feature"
enum="ConsentAuditorFeature" expires_after="M85">
<owner>markusheintz@google.com</owner>
@@ -136891,7 +141343,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Privacy.CookieControlsSetting" enum="CookieControlsMode"
- expires_after="M86">
+ expires_after="M89">
<owner>dullweber@chromium.org</owner>
<owner>huanzhong@chromium.org</owner>
<summary>
@@ -136901,7 +141353,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Privacy.DoNotTrackSetting" enum="BooleanEnabled"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>mkwst@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<summary>
@@ -136911,7 +141363,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Privacy.ThirdPartyCookieBlockingEnabledForSite" enum="Boolean"
- expires_after="M86">
+ expires_after="M89">
<owner>dullweber@chromium.org</owner>
<owner>huanzhong@chromium.org</owner>
<summary>
@@ -137002,7 +141454,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
Removed 2020-04.
</obsolete>
<owner>ajgo@chromium.org</owner>
- <owner>src/services/service_manager/sandbox/win/OWNERS</owner>
+ <owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
Size of policy global memory used when policy was committed on Windows for
all outcomes. 0 indicates that no rules were used.
@@ -137015,7 +141467,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
Policy size reduced, metric no longer required. Removed 2020-06.
</obsolete>
<owner>ajgo@chromium.org</owner>
- <owner>src/services/service_manager/sandbox/win/OWNERS</owner>
+ <owner>src/sandbox/policy/win/OWNERS</owner>
<summary>
Size of policy global memory used when policy was committed after successful
process start on Windows. 0 indicates that no rules were used.
@@ -137033,7 +141485,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.AddNewUser" enum="ProfileAddNewUser"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>rogerta@chromium.org</owner>
<summary>The frequency of ways that new user profiles are added.</summary>
</histogram>
@@ -137104,6 +141556,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Profile.AvatarLoadStatus" enum="ProfileAvatarLoadStatus"
expires_after="M77">
+ <obsolete>
+ No longer recorded as of M87.
+ </obsolete>
<owner>chengx@chromium.org</owner>
<summary>Load status of an avatar for decorating the Windows taskbar</summary>
</histogram>
@@ -137114,7 +141569,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.BrowserActive.PerProfile" enum="Profile"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>msarda@chromium.org</owner>
<owner>tangltom@chromium.org</owner>
<summary>
@@ -137170,7 +141625,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.CreateResult" enum="ProfileCreateResult"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>treib@chromium.org</owner>
<owner>rogerta@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -137218,7 +141673,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.CreateTimeNoTimeout" units="ms"
- expires_after="2020-11-30">
+ expires_after="2021-01-31">
<owner>treib@chromium.org</owner>
<owner>michaelpg@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -137231,7 +141686,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.Delete" enum="BooleanProfileSignedIn"
- expires_after="2020-07-31">
+ expires_after="2021-07-31">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -137243,7 +141698,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.DeleteProfileAction" enum="ProfileDeleteAction"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>anthonyvd@chromium.org</owner>
@@ -137392,7 +141847,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.Menu.OpenedAfterAvatarHighlight" units="ms"
- expires_after="2020-07-26">
+ expires_after="2021-07-01">
<owner>droger@chromium.org</owner>
<owner>siyua@chromium.org</owner>
<summary>
@@ -137402,7 +141857,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.NetUserCount" enum="ProfileNetUserCount"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>rogerta@chromium.org</owner>
<summary>
Counts of users added and deleted. Percentages are not meaningful. Please
@@ -137460,7 +141915,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.NumberOfAccountsPerProfile" units="units"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -137533,6 +141988,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="Profile.NumberOfProfilesAtProfileSwitch" units="profiles"
+ expires_after="2021-03-01">
+ <owner>jkrcal@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ Records the count of profiles for each profile switch (incl. switching
+ between concurrently open profiles by activating their browser windows). The
+ count excludes the Guest profile so records in bucket 1 denote switches
+ between the single profile and the Guest profile.
+ </summary>
+</histogram>
+
<histogram name="Profile.NumberOfProfilesOnStartup" units="units"
expires_after="2014-01-29">
<obsolete>
@@ -137664,7 +142131,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.PercentageOfManagedProfiles" units="units"
- expires_after="2020-11-20">
+ expires_after="2021-01-24">
<owner>agawronska@chromium.org</owner>
<owner>michaelpg@chromium.org</owner>
<owner>cros-families@google.com</owner>
@@ -137706,7 +142173,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Profile.SessionDuration.PerProfile" enum="Profile"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>msarda@chromium.org</owner>
<owner>tangltom@chromium.org</owner>
<summary>
@@ -137921,10 +142388,13 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Profile.Update" enum="ProfileType" expires_after="2020-07-31">
+<histogram name="Profile.Update" enum="ProfileType" expires_after="2021-07-31">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
- <summary>Times a profile name and/or avatar was updated.</summary>
+ <summary>
+ Recorded when a profile name and/or avatar was updated from the settings
+ page.
+ </summary>
</histogram>
<histogram name="Profile.UpdateTaskbarDecoration.Win.Result" enum="Hresult"
@@ -138014,7 +142484,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ProfileChooser.HasProfilesShown" enum="BooleanShown"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>vasilii@chromium.org</owner>
<owner>ewald@chromium.org</owner>
<summary>
@@ -138023,6 +142493,78 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="ProfilePicker.AskOnStartup" enum="BooleanEnabled"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records the state of the &quot;Ask on startup&quot; user preference that
+ controls whether the profile picker should be shown on startup. Recorded on
+ startup of Chrome.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.AskOnStartupChanged" enum="BooleanEnabled"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records the state of the &quot;Ask on startup&quot; checkbox upon user
+ action to check/uncheck &quot;Ask on startup&quot; in the profile picker
+ main screen.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.NewProfileCreateShortcut" enum="BooleanCreated"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Whether the user picked to create a desktop shortcut for the new profile
+ created through the local profile creation in the profile picker. Recorded
+ on platforms where desktop shortcut is enabled.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.NewProfileTheme" enum="ChromeColorsInfo"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records the theme color of a new profile just created through the profile
+ picker local profile creation.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.Shown" enum="ProfilePickerEntryPoint"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records the reason why the profile picker has been shown to the user.
+ Recorded every time the profile picker window is shown or reactivated.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.UiVisited" enum="ProfilePickerPages"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Represents user navigation in the profile picker. Recorded every time a
+ different UI is visible in the profile picker.
+ </summary>
+</histogram>
+
+<histogram name="ProfilePicker.UserAction" enum="ProfilePickerAction"
+ expires_after="M90">
+ <owner>msalama@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records the action performed by the user in the profile picker.
+ </summary>
+</histogram>
+
<histogram name="ProfileReset.ResetRequestOrigin"
enum="ProfileResetRequestOriginEnum" expires_after="M90">
<owner>proberge@chromium.org</owner>
@@ -138121,7 +142663,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ProtoDB.InitStatus" enum="LevelDBStatus"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>nyquist@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>The LevelDB Status from a ProtoDatabase Init call.</summary>
@@ -138151,7 +142693,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ProtoDB.SharedDbInitStatus" enum="ProtoDatabaseInitState"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>ssid@chromium.org</owner>
<owner>salg@chromium.org</owner>
<summary>
@@ -138181,7 +142723,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="ProximityAuth.BleWeaveConnectionResult"
- enum="ProximityAuth_BleWeaveConnectionResult" expires_after="2020-12-06">
+ enum="ProximityAuth_BleWeaveConnectionResult" expires_after="2021-02-07">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how often each BLE weave connection result occurs.
@@ -138190,7 +142732,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ProximityAuth.BluetoothGattConnectionResult"
enum="ProximityAuth_BluetoothGattConnectionResult"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -138204,7 +142746,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ProximityAuth.BluetoothGattNotifySessionResult"
enum="ProximityAuth_BluetoothGattServiceOperationResult"
- expires_after="2020-10-04">
+ expires_after="2021-01-17">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -138218,7 +142760,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ProximityAuth.BluetoothGattWriteCharacteristicResult"
enum="ProximityAuth_BluetoothGattServiceOperationResult"
- expires_after="2020-10-04">
+ expires_after="2021-01-17">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -138374,8 +142916,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="PushMessaging.DeliveryStatus" enum="PushDeliveryStatus"
- expires_after="2020-10-25">
+<histogram name="PushMessaging.DeliveryStatus" enum="PushEventStatus"
+ expires_after="2021-02-07">
<owner>peter@chromium.org</owner>
<summary>
When a Service Worker receives a push message, this records whether the
@@ -138413,6 +142955,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PushMessaging.PushSubscriptionChangeStatus"
+ enum="PushEventStatus" expires_after="M87">
+ <owner>peter@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <owner>viviy@google.com</owner>
+ <summary>
+ When a Service Worker receives a pushsubscriptionchange event, this records
+ whether the overall operation was successful, or otherwise the type of error
+ encountered.
+ </summary>
+</histogram>
+
<histogram name="PushMessaging.QueuedMessagesCount" units="units"
expires_after="2020-04-22">
<obsolete>
@@ -138507,7 +143062,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="PushMessaging.UnregistrationIIDResult" enum="InstanceIDResult"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -138545,8 +143100,18 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="PushMessaging.VisibleNotificationCount" units="notifications"
+ expires_after="M89">
+ <owner>knollr@chromium.org</owner>
+ <owner>peter@chromium.org</owner>
+ <summary>
+ Records the number of visible notifications for a Service Worker when it
+ receives a push message. Counted and recorded after handling the push event.
+ </summary>
+</histogram>
+
<histogram name="QuickAnswers.ActiveImpression" enum="QuickAnswersResultType"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138556,7 +143121,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.ActiveImpression.Duration" units="ms"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138585,7 +143150,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Consent" units="impressions"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138605,7 +143170,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="QuickAnswers.Consent.Impression"
- units="impressions" expires_after="2020-12-10">
+ units="impressions" expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138615,7 +143180,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Intent" enum="QuickAnswersIntentType"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138625,7 +143190,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Loading.Duration" units="ms"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138635,7 +143200,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Loading.Status" enum="QuickAnswersLoadStatus"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138644,7 +143209,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Result" enum="QuickAnswersResultType"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138654,7 +143219,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.Result.Duration" units="ms"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138664,7 +143229,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="QuickAnswers.SelectedContent.Length" units="characters"
- expires_after="2020-12-10">
+ expires_after="2021-02-14">
<owner>llin@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
<summary>
@@ -138891,7 +143456,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Quota.AgeOfOriginInDays" units="days"
- expires_after="2020-10-18">
+ expires_after="2021-02-14">
<owner>jarrydg@chromium.org</owner>
<summary>
How many days it's been since an origin's temporary storage has been
@@ -138900,7 +143465,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Quota.AvailableDiskSpace" units="MB"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jarrydg@chromium.org</owner>
<summary>
Amount of free disk space for the storage directory. Logged at irregular
@@ -138939,7 +143504,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Quota.DiskspaceShortage" units="MB" expires_after="2020-12-13">
+<histogram name="Quota.DiskspaceShortage" units="MB" expires_after="2021-02-14">
<owner>jarrydg@chromium.org</owner>
<summary>
Difference between acceptable lower limit of diskspace and actual free
@@ -139000,8 +143565,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Quota.EvictedOriginsPerHour" units="units" expires_after="M85">
+<histogram name="Quota.EvictedOriginsPerHour" units="units"
+ expires_after="2021-07-03">
<owner>jarrydg@chromium.org</owner>
+ <owner>chrome-owp-storage@google.com</owner>
<summary>Number of evicted origins in an hour.</summary>
</histogram>
@@ -139045,7 +143612,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Quota.GlobalUsageOfTemporaryStorage" units="MB"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jarrydg@chromium.org</owner>
<summary>Global usage of temporary storage.</summary>
</histogram>
@@ -139140,7 +143707,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Quota.PercentDiskAvailable" units="%"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>jarrydg@chromium.org</owner>
<summary>
Percentage of the storage device that is free. Logged at irregular
@@ -139207,7 +143774,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Quota.SkippedInvalidOriginUsage" enum="InvalidOriginReason"
- expires_after="2020-08-04">
+ expires_after="2021-08-04">
<owner>jarrydg@chromium.org</owner>
<owner>chrome-owp-storage@google.com</owner>
<summary>
@@ -139263,15 +143830,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2020-11-29">
+<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2021-01-31">
<owner>jarrydg@chromium.org</owner>
<summary>
Total disk space for the storage directory. Logged at irregular intervals.
</summary>
</histogram>
-<histogram name="Quota.UsageByOrigin" units="MB" expires_after="M85">
+<histogram name="Quota.UsageByOrigin" units="MB" expires_after="2021-07-03">
<owner>jarrydg@chromium.org</owner>
+ <owner>chrome-owp-storage@google.com</owner>
<summary>
Disk space (in MB) currently used by an origin. Logged hourly.
</summary>
@@ -139717,7 +144285,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer.PaintPreview.Capture.MainFrameBlinkCaptureDuration"
- units="ms" expires_after="2020-10-20">
+ units="ms" expires_after="2021-01-24">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -139728,7 +144296,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer.PaintPreview.Capture.MainFrameSuccess"
- enum="BooleanSuccess" expires_after="2020-10-20">
+ enum="BooleanSuccess" expires_after="2021-02-14">
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
@@ -140294,7 +144862,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.GpuImageDecodeState.CachePeakUsagePercent"
- units="units" expires_after="2020-08-01">
+ units="units" expires_after="2021-01-31">
<owner>sashamcintosh@chromium.org</owner>
<owner>ericrk@chromium.org</owner>
<summary>
@@ -140316,8 +144884,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.GpuImageUploadState" enum="GpuImageUsageState"
- expires_after="M85">
- <owner>ericrk@chromium.org</owner>
+ expires_after="2021-06-06">
+ <owner>cblume@chromium.org</owner>
+ <owner>khushalsagar@chromium.org</owner>
<summary>
Gpu image upload usage statistics. Images are uploaded and locked prior to
use; this indicates how that upload is used during tile management.
@@ -140484,6 +145053,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Renderer4.ImagePixelsPercentSRGB" units="%"
expires_after="M85">
+ <obsolete>
+ Removed July 2020, expired and no longer useful.
+ </obsolete>
<owner>ccameron@chromium.org</owner>
<summary>
For each cc::Layer that has more than zero discardable images, this metric
@@ -140493,6 +145065,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.ImagesPercentSRGB" units="%" expires_after="M85">
+ <obsolete>
+ Removed July 2020, expired and no longer useful.
+ </obsolete>
<owner>ccameron@chromium.org</owner>
<summary>
For each cc::Layer that has more than zero discardable images, this metric
@@ -140502,7 +145077,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="Renderer4.ImageUploadTaskDurationUs"
- units="microseconds" expires_after="2020-10-15">
+ units="microseconds" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="DecodedImageType" -->
<owner>sashamcintosh@chromium.org</owner>
@@ -140589,8 +145164,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.MainThreadGestureScrollReason"
- enum="MainThreadScrollingReason" expires_after="M85">
+ enum="MainThreadScrollingReason" expires_after="M88">
<owner>tdresser@chromium.org</owner>
+ <owner>pdr@chromium.org</owner>
<summary>
Ideally we'd always scroll on the impl thread, but there are a variety of
situations where we need to scroll on main. We should try to drive these
@@ -140601,8 +145177,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.MainThreadWheelScrollReason"
- enum="MainThreadScrollingReason" expires_after="M85">
+ enum="MainThreadScrollingReason" expires_after="M88">
<owner>tdresser@chromium.org</owner>
+ <owner>pdr@chromium.org</owner>
<summary>
Ideally we'd always scroll on the impl thread, but there are a variety of
situations where we need to scroll on main. We should try to drive these
@@ -140823,6 +145400,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Renderer4.ResourcePoolMemoryUsage" units="MB"
expires_after="M85">
+ <obsolete>
+ 07/2020: Replaced by the Compositing.ResourcePoolMemoryUsage.
+ </obsolete>
<owner>ericrk@chromium.org</owner>
<summary>
Size of the in-use portion of the ResourcePool. Recorded each time resources
@@ -140831,7 +145411,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="Renderer4.ScrollingThread" enum="ScrollingThreadStatus"
- expires_after="2020-11-21">
+ expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="ScrollSourceDevice" -->
<owner>bokan@chromium.org</owner>
@@ -141333,6 +145913,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="RendererScheduler.MaxQueueingTime" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed June 2020.
+ </obsolete>
<owner>maxlg@chromium.org</owner>
<summary>
The single maximum estimated queueing duration (or max queueing time)
@@ -141383,7 +145966,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram base="true" name="RendererScheduler.QueueingDurationPerQueueType"
- units="ms" expires_after="2020-12-01">
+ units="ms" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="RendererScheduler.QueueType" -->
<owner>kdillon@chromium.org</owner>
@@ -141994,6 +146577,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram base="true"
name="RendererScheduler.TimeRunningOtherAgentsWhileTaskReady"
units="microseconds" expires_after="M80">
+ <obsolete>
+ Removed 07/2020. Summary of collected data: https://crbug.com/1019856#c6.
+ </obsolete>
<owner>fdoray@chromium.org</owner>
<owner>etiennep@chromium.org</owner>
<summary>
@@ -142792,6 +147378,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.DatabaseInit"
enum="LocalSiteCharacteristicsDBInitStatus" expires_after="M77">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
The result of opening the Local Site Characteristics database.
@@ -142800,6 +147389,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.DatabaseInitAfterDelete"
enum="LocalSiteCharacteristicsDBInitStatus" expires_after="M77">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
The result of opening the Local Site Characteristics database after deleting
@@ -142809,6 +147401,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.DatabaseInitAfterRepair"
enum="LocalSiteCharacteristicsDBInitStatus" expires_after="M77">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
The result of opening the Local Site Characteristics database after a repair
@@ -142818,6 +147413,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.DatabaseRepair"
enum="BooleanSuccess" expires_after="M77">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
The result of trying to repair the Local Site Characteristics database after
@@ -142827,6 +147425,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.ObservationTimeBeforeFirstUse"
units="ms" expires_after="M85">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<!-- Name completed by histogram_suffixes name="LocalSiteCharacteristicsFeatures" -->
<owner>sebmarchand@chromium.org</owner>
@@ -142838,6 +147439,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.OnDiskSize" units="KB"
expires_after="M85">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
The size of the Local Site Characteristics database on disk. Recorded at
@@ -142847,6 +147451,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceCoordinator.LocalDB.ReadHasCompletedBeforeQuery"
enum="Boolean" expires_after="M77">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<owner>sebmarchand@chromium.org</owner>
<summary>
Boolean indicating if the read operation from the Local Site Characteristics
@@ -142925,6 +147532,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceLoadingHints.CountBlockedSubresourcePatterns"
units="pattern count" expires_after="M85">
+ <obsolete>
+ Obsoleted July 2020.
+ </obsolete>
<owner>tbansal@chromium.org</owner>
<summary>
The count of resource loading blocking patterns received by the renderer.
@@ -143012,6 +147622,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="ResourceLoadingHints.ResourcePatternsAvailableAtCommit"
enum="BooleanAvailable" expires_after="M85">
+ <obsolete>
+ Obsoleted July 2020.
+ </obsolete>
<owner>tbansal@chromium.org</owner>
<summary>
Records if the resource patterns were available at the time of page commit
@@ -144480,8 +149093,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.AndroidTelemetry.ApkDownload.IncompleteReason"
- enum="ApkDownloadTelemetryIncompleteReason" expires_after="M85">
- <owner>vakh@chromium.org</owner>
+ enum="ApkDownloadTelemetryIncompleteReason" expires_after="2021-07-01">
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Records if the telemetry ping sent for APK download contained a full
referrer chain, or if there was an error collecting the referrer chain.
@@ -144491,8 +149105,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.AndroidTelemetry.ApkDownload.Outcome"
- enum="ApkDownloadTelemetryOutcome" expires_after="M85">
- <owner>vakh@chromium.org</owner>
+ enum="ApkDownloadTelemetryOutcome" expires_after="2021-07-01">
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Records whether a telemetry ping for APK download was sent, or if not, then
why not. Logged each time a user downloads an APK file on Android.
@@ -145026,13 +149641,53 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.DelayedWarnings.Event"
- enum="SafeBrowsingDelayedWarningEvent" expires_after="M85">
+ enum="SafeBrowsingDelayedWarningEvent" expires_after="M89">
<owner>meacer@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Records when a user in the Delayed Warnings experiment group visits a page
with a delayed SafeBrowsing phishing warning, triggers the delayed warning
- (via keypress), or leaves the page without interacting.
+ (via keypress), or leaves the page without interacting. Only recorded when
+ user has not disabled URL elision via &quot;Always Show Full URLs&quot;
+ context menu item, or by installing the Suspicious Site Reporter extension.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DelayedWarnings.Event_UrlElisionDisabled"
+ enum="SafeBrowsingDelayedWarningEvent" expires_after="M89">
+ <owner>meacer@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Same as SafeBrowsing.DelayedWarnings.Event but only recorded when user has
+ disabled URL elision via &quot;Always Show Full URLs&quot; context menu
+ item, or by installing the Suspicious Site Reporter extension.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DelayedWarnings.TimeOnPage" units="seconds"
+ expires_after="M89">
+ <owner>meacer@chromium.org</owner>
+ <owner>estark@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Records how long a user in the Delayed Warnings experiment group spends on a
+ page with a delayed SafeBrowsing phishing warning. The time is recorded from
+ when the page loads to when the warning is shown or the user leaves the
+ page, whichever comes first. Only recorded when user has not disabled URL
+ elision via &quot;Always Show Full URLs&quot; context menu item, or by
+ installing the Suspicious Site Reporter extension.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DelayedWarnings.TimeOnPage_UrlElisionDisabled"
+ units="seconds" expires_after="M89">
+ <owner>meacer@chromium.org</owner>
+ <owner>estark@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Same as SafeBrowsing.DelayedWarnings.TimeOnPage but only recorded when user
+ has disabled URL elision via &quot;Always Show Full URLs&quot; context menu
+ item, or by installing the Suspicious Site Reporter extension.
</summary>
</histogram>
@@ -145215,8 +149870,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Interstitial.Type" enum="InterstitialTypeEnum"
- expires_after="M85">
+ expires_after="2021-07-07">
<owner>ntfschr@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Which interstitial type is being displayed to the user? This currently
applies only to WebView (where we show Loud vs. Quiet interstitials).
@@ -145250,8 +149906,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.NavigationObserver.NavigationEventCleanUpCount"
- units="units" expires_after="2020-07-24">
- <owner>vakh@chromium.org</owner>
+ units="NavigationEvents" expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Count of how many NavigationEvents get removed in each periodic clean up.
@@ -145261,6 +149917,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.NotificationImageReporter.NetError"
enum="NetErrorCodes" expires_after="M85">
+ <obsolete>
+ Removed in M85+.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145323,7 +149982,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.Pref.SawInterstitial" enum="Boolean"
expires_after="2021-01-30">
- <owner>lpz@chromium.org</owner>
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Whether the current user has ever seen a security interstitial. Recorded for
@@ -145333,7 +149992,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.Pref.Scout" enum="NullableBoolean"
expires_after="2021-01-30">
- <owner>lpz@chromium.org</owner>
+ <obsolete>
+ Removed in or before M86. See SafeBrowsing.Pref.Extended
+ </obsolete>
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the Extended Reporting preference transition. Suffixes track which
@@ -145358,7 +150020,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.Pref.Scout.SetPref" enum="BooleanEnabled"
expires_after="2021-01-30">
- <owner>lpz@chromium.org</owner>
+ <obsolete>
+ Removed in or before M86. See SafeBrowsing.Pref.Extended.*
+ </obsolete>
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the Extended Reporting preference being changed. Suffixes track which
@@ -145369,6 +150034,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.Pref.Scout.Transition"
enum="ScoutTransitionReason" expires_after="2021-01-30">
+ <obsolete>
+ Removed in or before M86.
+ </obsolete>
<owner>lpz@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145411,7 +150079,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.RT.Backoff.State" enum="BooleanEnabled"
- expires_after="2020-12-05">
+ expires_after="2021-02-07">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145421,6 +150089,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="SafeBrowsing.RT.CacheManager.CleanUpTime" units="ms"
+ expires_after="2021-09-17">
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs the time it takes to run a cleanup task in cache manager. Logged each
+ time a cleanup task is run.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.RT.CacheManager.RealTimeVerdictCount"
units="entries" expires_after="2021-06-19">
<owner>xinghuilu@chromium.org</owner>
@@ -145431,6 +150109,16 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram name="SafeBrowsing.RT.CanCheckDatabase" enum="BooleanEnabled"
+ expires_after="2021-03-05">
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs whether Safe Browsing database can be checked in Safe Browsing URL
+ checker. Logged each time a URL is checked by Safe Browsing URL checker.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.RT.GetCache.Time" units="ms"
expires_after="2020-12-18">
<owner>xinghuilu@chromium.org</owner>
@@ -145595,6 +150283,17 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
+<histogram base="true" name="SafeBrowsing.Settings.UserAction"
+ enum="SafeBrowsingSettingsUserAction" expires_after="2021-08-14">
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs the user action performed on the Safe Browsing settings page. Depending
+ on the enum value, logged when the page is showned to the user or when the
+ user performs an action on the page.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.ThreatReport.DomIsAmbiguous" enum="Boolean"
expires_after="M77">
<obsolete>
@@ -145633,7 +150332,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.AdPopup.Action"
- enum="AdPopupTriggerAction" expires_after="2020-07-01">
+ enum="AdPopupTriggerAction" expires_after="2021-07-01">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145642,7 +150341,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.AdRedirect.Action"
- enum="AdPopupTriggerAction" expires_after="2020-07-01">
+ enum="AdPopupTriggerAction" expires_after="2021-07-01">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145652,8 +150351,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.AdSampler.Action"
- enum="AdSamplerTriggerAction" expires_after="2020-07-01">
- <owner>lpz@chromium.org</owner>
+ enum="AdSamplerTriggerAction" expires_after="2021-07-01">
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the actions taken by the Ad Sampling trigger whenever it is executed.
@@ -145661,8 +150360,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.SuspiciousSite.DelayTimerState"
- enum="SuspiciousSiteTriggerState" expires_after="2020-07-01">
- <owner>lpz@chromium.org</owner>
+ enum="SuspiciousSiteTriggerState" expires_after="2021-07-01">
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the state of the Suspicious Site trigger when its report delay timer
@@ -145671,8 +150370,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.SuspiciousSite.Event"
- enum="SuspiciousSiteTriggerEvent" expires_after="2020-07-01">
- <owner>lpz@chromium.org</owner>
+ enum="SuspiciousSiteTriggerEvent" expires_after="2021-07-01">
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the events occurring in the Suspicious Site trigger whenever it is
@@ -145681,8 +150380,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.Triggers.SuspiciousSite.ReportRejectionReason"
- enum="TriggerManagerReason" expires_after="2020-07-01">
- <owner>lpz@chromium.org</owner>
+ enum="TriggerManagerReason" expires_after="2021-07-01">
+ <owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Tracks the reasons that a report requested by the Suspicious Site trigger is
@@ -145692,8 +150391,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.UnverifiedDownloads.Allowed"
enum="SBClientDownloadExtensions" expires_after="M85">
- <owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>dtrainor@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
File types that were allowed to be downloaded without verifying their
content nor their source URLs with Safe Browsing.
@@ -145702,8 +150401,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.UnverifiedDownloads.AllowedByWhitelist"
enum="SBClientDownloadExtensions" expires_after="M85">
- <owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>dtrainor@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
File types that were allowed to be downloaded without verifying their
content nor their source URLs with Safe Browsing due to the requestor URL
@@ -145714,8 +150413,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.UnverifiedDownloads.AllowedDueToDisabledService"
enum="SBClientDownloadExtensions" expires_after="M85">
- <owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>dtrainor@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
File types that were allowed to be downloaded without verifying their
content nor their source URLs with Safe Browsing due to the SafeBrowsing
@@ -145736,8 +150435,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="SafeBrowsing.UnverifiedDownloads.Blocked"
enum="SBClientDownloadExtensions" expires_after="M85">
- <owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>dtrainor@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
File types that were blocked from downloaded without verifying their content
nor their source URLs with Safe Browsing.
@@ -145794,7 +150493,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>
-<histogram name="SafeBrowsing.V4Database.Size" units="KB" expires_after="M85">
+<histogram name="SafeBrowsing.V4Database.Size" units="KB"
+ expires_after="2021-07-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -145874,9 +150574,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.V4GetHash.CacheHit.Result"
- enum="SafeBrowsingV4FullHashCacheResult" expires_after="M85">
+ enum="SafeBrowsingV4FullHashCacheResult" expires_after="2021-07-31">
<owner>vakh@chromium.org</owner>
- <owner>kcarattini@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>Track cache hits for V4 full hashes.</summary>
</histogram>
@@ -145913,9 +150612,8 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram>
<histogram name="SafeBrowsing.V4GetHash.Network.Time" units="ms"
- expires_after="M85">
+ expires_after="2021-07-31">
<owner>vakh@chromium.org</owner>
- <owner>kcarattini@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The time that it took to receive a response from the Google SafeBrowsing
@@ -145938,9 +150636,8 @@ Safe Browsing lookup mechanism is working as expected -->
</histogram>
<histogram name="SafeBrowsing.V4GetHash.Result"
- enum="SafeBrowsingV4OperationResult" expires_after="M85">
+ enum="SafeBrowsingV4OperationResult" expires_after="2021-07-31">
<owner>vakh@chromium.org</owner>
- <owner>kcarattini@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Track return status from V4 GetHash attempts. The buckets of this histogram
@@ -146003,7 +150700,7 @@ Safe Browsing lookup mechanism is working as expected -->
</histogram>
<histogram name="SafeBrowsing.V4LocalDatabaseManager.AreAllStoresAvailableNow"
- enum="SafeBrowsingStoreAvailabilityResult" expires_after="2020-09-04">
+ enum="SafeBrowsingStoreAvailabilityResult" expires_after="2021-09-04">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146070,7 +150767,7 @@ Safe Browsing lookup mechanism is working as expected -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Result"
- enum="SafeBrowsingV4ApplyUpdateResult" expires_after="M85">
+ enum="SafeBrowsingV4ApplyUpdateResult" expires_after="2021-07-01">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146171,7 +150868,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Result"
- enum="SafeBrowsingV4ApplyUpdateResult" expires_after="M85">
+ enum="SafeBrowsingV4ApplyUpdateResult" expires_after="2021-07-01">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146465,6 +151162,9 @@ and applied correctly. -->
<histogram name="SafeBrowsing.V4UnusedStoreFileExists" enum="BooleanExists"
expires_after="M85">
+ <obsolete>
+ Removed in M86. See https://crbug.com/1089439
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146486,7 +151186,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4Update.Network.Result"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="M85">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-07-28">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146510,7 +151210,7 @@ risk. -->
</histogram>
<histogram name="SafeBrowsing.V4Update.ResponseSizeKB" units="KB"
- expires_after="M85">
+ expires_after="2021-07-28">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -146604,8 +151304,9 @@ failing to fetch the updates which puts users' security at risk. -->
</histogram>
<histogram name="SafeBrowsing.WebView.AppOptIn" enum="SafeBrowsingAppOptIn"
- expires_after="M85">
+ expires_after="2021-07-07">
<owner>ntfschr@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Records whether the application has explicitly opted in or out of Safe
Browsing by manifest tag, or if they're relying on the default behavior.
@@ -146630,8 +151331,9 @@ failing to fetch the updates which puts users' security at risk. -->
</histogram>
<histogram name="SafeBrowsing.WebView.UserOptIn" enum="SafeBrowsingUserOptIn"
- expires_after="M85">
+ expires_after="2021-07-07">
<owner>ntfschr@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
Records whether the user has explicitly opted in or out of Safe Browsing
(determined by the Google Play Protect Verify Apps setting in GMS). This
@@ -146641,8 +151343,9 @@ failing to fetch the updates which puts users' security at risk. -->
</histogram>
<histogram name="SafeBrowsing.WebView.Viewable" enum="BooleanVisible"
- expires_after="M85">
+ expires_after="2021-07-07">
<owner>ntfschr@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>
When encountering an unsafe resource, this indicates whether the WebView is
considered to be viewable or not. Currently, we define &quot;viewable&quot;
@@ -147804,7 +152507,7 @@ failing to fetch the updates which puts users' security at risk. -->
</histogram>
<histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -147879,7 +152582,7 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
-<histogram name="SB2.RemoteCall.Elapsed" units="ms" expires_after="2020-10-25">
+<histogram name="SB2.RemoteCall.Elapsed" units="ms" expires_after="2020-12-27">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -147980,7 +152683,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SB2.RemoteCall.Result" enum="SB2RemoteCallResult"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -147992,7 +152695,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SB2.RemoteCall.ThreatSubType.PotentiallyHarmfulApp"
- enum="SB2RemoteCallThreatSubType" expires_after="M81">
+ enum="SB2RemoteCallThreatSubType" expires_after="2021-07-28">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -148003,7 +152706,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SB2.RemoteCall.ThreatSubType.SocialEngineering"
- enum="SB2RemoteCallThreatSubType" expires_after="M81">
+ enum="SB2RemoteCallThreatSubType" expires_after="2021-07-28">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -148040,7 +152743,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SB2.ResourceTypes2" enum="ContentResourceType2"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -148252,6 +152955,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientDownload.ArchiveDownloadExtensions"
enum="SBClientDownloadExtensions" expires_after="2020-08-30">
+ <obsolete>
+ This histogram was marked obsolete in 08/2020 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -148261,7 +152967,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.CheckDownloadStats"
- enum="SBClientDownloadCheckDownloadStats" expires_after="2020-12-06">
+ enum="SBClientDownloadCheckDownloadStats" expires_after="2021-02-07">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -148394,7 +153100,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.DownloadExtensions"
- enum="SBClientDownloadExtensions" expires_after="2020-12-06">
+ enum="SBClientDownloadExtensions" expires_after="2021-02-07">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -148448,7 +153154,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.DownloadRequestDuration" units="ms"
- expires_after="2020-08-23">
+ expires_after="2021-08-23">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -148463,7 +153169,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.DownloadRequestNetError" enum="NetErrorCodes"
- expires_after="2020-10-25">
+ expires_after="2021-01-10">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -148563,8 +153269,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.ExtractDmgFeaturesTimeMedium" units="ms"
- expires_after="M83">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-07-21">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>rsesek@chromium.org</owner>
<summary>
@@ -148739,6 +153445,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientDownload.RarHeadersEncrypted" enum="Boolean"
expires_after="M83">
+ <obsolete>
+ Marked obsolete 07-2020 due to lack of use.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -148986,6 +153695,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientMalware.ClassificationStart" enum="BooleanHit"
expires_after="2020-09-04">
+ <obsolete>
+ Removed in 07-2020 since the SBClientMalware feature was removed.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149027,6 +153739,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientMalware.PreClassificationCheckFail"
enum="SBClientDetectionPreClassificationCheckFail"
expires_after="2020-09-04">
+ <obsolete>
+ Removed in 07-2020 since the SBClientMalware feature was removed.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149037,6 +153752,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientMalware.ResourceUrlMatchedBadIp"
enum="BooleanMatchedBadIp" expires_after="2020-09-04">
+ <obsolete>
+ Removed in 07-2020 since the SBClientMalware feature was removed.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149077,8 +153795,8 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientPhishing.CancelClassificationReason"
enum="SBClientPhishingCancelClassificationReason"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The counts for various reasons why an in-progress phishing classification
@@ -149099,7 +153817,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.ClassificationStart" enum="BooleanHit"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149111,7 +153829,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.Classifier.Event"
- enum="SBPhishingClassifierEvent" expires_after="2020-09-27">
+ enum="SBPhishingClassifierEvent" expires_after="2021-01-24">
<owner>bdea@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149155,7 +153873,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.ClientModelStatus"
- enum="SBClientPhishingClientModelStatus" expires_after="2020-11-08">
+ enum="SBClientPhishingClientModelStatus" expires_after="2021-01-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149264,7 +153982,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.PageCapturedMatchesBrowserURL"
- enum="BooleanMatched" expires_after="2020-07-26">
+ enum="BooleanMatched" expires_after="2021-01-27">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149284,7 +154002,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.PhishingDetectorResult"
- enum="ClientSidePhishingResult" expires_after="2020-11-29">
+ enum="ClientSidePhishingResult" expires_after="2021-01-31">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>The result enum received from the renderer-side classifier</summary>
@@ -149292,7 +154010,11 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientPhishing.PreClassificationCheckFail"
enum="SBClientDetectionPreClassificationCheckFail"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
+ <obsolete>
+ This was replaced by SBClientPhishing.PreClassificationCheckResult in
+ 08-2020, since that histogram is easier to reason about.
+ </obsolete>
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149301,9 +154023,20 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
+<histogram name="SBClientPhishing.PreClassificationCheckResult"
+ enum="SBClientDetectionPreClassificationCheckResult"
+ expires_after="2021-01-10">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Records the result of phishing pre-classification checks. This is recorded
+ on every classification attempt (roughly every page load).
+ </summary>
+</histogram>
+
<histogram name="SBClientPhishing.ReportLimitSkipped" enum="BooleanHit"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The number of phishing classifications that were previously cached as being
@@ -149376,8 +154109,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.TermFeatureChunkTime" units="ms"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The time that an individual chunk of term feature extraction work took.
@@ -149385,8 +154118,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.TermFeatureIterations" units="units"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The number of iterations that the term feature extractor took to finish.
@@ -149394,8 +154127,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.TermFeatureTimeout" units="units"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The number of phishing classification that were aborted because term feature
@@ -149404,8 +154137,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.TermFeatureTotalTime" units="ms"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The time that the term feature extarctor took to finish, summed across all
@@ -149414,8 +154147,8 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.TooManyFeatures" units="units"
- expires_after="M87">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The number of times that the limit on the number of phishing classifier
@@ -149425,14 +154158,34 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.URLFeatureTime" units="ms"
- expires_after="2020-09-04">
- <owner>vakh@chromium.org</owner>
+ expires_after="2021-01-27">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
The time taken to extract URL features for the phishing classifier.
</summary>
</histogram>
+<histogram name="SBClientPhishing.VisualComparisonTime" units="ms"
+ expires_after="2020-11-22">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Records how long it took to compare visual features against the visual
+ phishing model. This is recorded on every phishing classification.
+ </summary>
+</histogram>
+
+<histogram name="SBClientPhishing.VisualFeatureTime" units="ms"
+ expires_after="2021-01-24">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Records how long it took to extract visual features. This is recorded on
+ every phishing classification.
+ </summary>
+</histogram>
+
<histogram name="SBDownloadFeedback.Activations" enum="DownloadItem.DangerType"
expires_after="M78">
<obsolete>
@@ -149449,6 +154202,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.ActiveFeedbacks" units="units"
expires_after="M83">
+ <obsolete>
+ Marked obsolete 07-2020 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -149486,6 +154242,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.FileErrors"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-09-27">
+ <obsolete>
+ Removed in M86, since the information was not being used.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149497,6 +154256,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.MetadataErrors"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="M82">
+ <obsolete>
+ Removed in M86, since the information was not being used.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -149534,6 +154296,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.SizeFailure" units="bytes"
expires_after="M83">
+ <obsolete>
+ Marked obsolete 07-2020 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -149544,6 +154309,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.SizeSuccess" units="bytes"
expires_after="M83">
+ <obsolete>
+ Marked obsolete 07-2020 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -149579,6 +154347,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBDownloadFeedback.UploadResult"
enum="SBDownloadFeedbackUploadResult" expires_after="M83">
+ <obsolete>
+ Marked obsolete 07-2020 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -149830,7 +154601,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SBIRS.UploadResult" enum="ReportProcessingResult"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>caitkp@google.com</owner>
<summary>
The result of an attempted report upload by the safe browsing incident
@@ -150129,7 +154900,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Scheduler.CancelableTaskTracker.TaskDuration2" units="ms"
- expires_after="2020-08-01">
+ expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="CancelableTaskTrackerDurationTypes" -->
<owner>wez@chromium.org</owner>
@@ -150141,7 +154912,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Scheduler.CancelableTaskTracker.TaskStatus"
- enum="CancelableTaskStatus" expires_after="2020-08-01">
+ enum="CancelableTaskStatus" expires_after="2021-01-31">
<owner>wez@chromium.org</owner>
<owner>scheduler-dev@chromium.org</owner>
<summary>
@@ -150690,6 +155461,10 @@ should be kept until we remove incident reporting. -->
<histogram name="Scheduling.Browser.ReadyToActivateToActivationDuration2.Main"
units="microseconds" expires_after="M85">
+ <obsolete>
+ Replaced by EndCommitToActivation of CompositorLatency metrics as of
+ 08/2020.
+ </obsolete>
<owner>vmiura@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
@@ -150899,6 +155674,9 @@ should be kept until we remove incident reporting. -->
<histogram name="Scheduling.Renderer.ActivateDuration2" units="microseconds"
expires_after="2020-02-16">
+ <obsolete>
+ Replaced by Activation stage of CompositorLatency metrics as of 08/2020.
+ </obsolete>
<owner>vmiura@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
@@ -150915,6 +155693,9 @@ should be kept until we remove incident reporting. -->
<histogram name="Scheduling.Renderer.BeginMainFrameIntervalCritical2"
units="microseconds" expires_after="2020-02-16">
+ <obsolete>
+ This is no longer usefull and would not be replaced, as of 08/2020.
+ </obsolete>
<owner>vmiura@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
@@ -151047,6 +155828,7 @@ should be kept until we remove incident reporting. -->
<histogram name="Scheduling.Renderer.DrawIntervalWithCustomPropertyAnimations2"
units="microseconds" expires_after="2020-10-01">
+ <owner>xidachen@chromium.org</owner>
<owner>animations-dev@chromium.org</owner>
<summary>
The time delta between the draw times of back-to-back BeginImplFrames,
@@ -151153,6 +155935,10 @@ should be kept until we remove incident reporting. -->
<histogram name="Scheduling.Renderer.ReadyToActivateToActivationDuration2"
units="microseconds" expires_after="M81">
+ <obsolete>
+ Replaced by EndCommitToActivation of CompositorLatency metrics as of
+ 08/2020.
+ </obsolete>
<owner>vmiura@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
@@ -152242,6 +157028,28 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Search.ContextualSearch.TranslationsOptInIPHShown"
+ enum="BooleanPreviouslyShown" expires_after="M89">
+ <owner>donnd@chromium.org</owner>
+ <owner>contextual-search-eng@google.com</owner>
+ <summary>
+ Records whether an IPH promoting the Opt-in for the Translations experiment
+ has ever been shown for the current user. Recorded when the Overlay Panel is
+ closed. Implemented for Android.
+ </summary>
+</histogram>
+
+<histogram name="Search.ContextualSearch.TranslationsOptInIPHWorked"
+ enum="BooleanOptedIn" expires_after="M89">
+ <owner>donnd@chromium.org</owner>
+ <owner>contextual-search-eng@google.com</owner>
+ <summary>
+ Records whether the user actually did Opt-in right after seeing the IPH for
+ the Translations experiment. Recorded when the Overlay Panel is closed.
+ Implemented for Android.
+ </summary>
+</histogram>
+
<histogram name="Search.ContextualSearch.UnifiedConsent.PreviouslyUndecided"
enum="Boolean" expires_after="2019-01-30">
<owner>donnd@chromium.org</owner>
@@ -153347,7 +158155,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Search.DefaultSearchProviderType"
- enum="OmniboxSearchEngineType" expires_after="2020-07-30">
+ enum="OmniboxSearchEngineType" expires_after="2021-06-30">
<owner>mpearson@chromium.org</owner>
<owner>csharp@chromium.org</owner>
<summary>
@@ -153895,8 +158703,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram base="true" name="Security.PageEndReason" enum="PageEndReason"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the reason the page visit ended (e.g., reload, tab closed, new
navigation, etc.) for page loads that committed.
@@ -153980,8 +158789,10 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Security.PageInfo.TimeOpen" units="units" expires_after="M86">
+<histogram name="Security.PageInfo.TimeOpen" units="units"
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the amount of time the Page Info bubble is open before the user
closes it or takes an action which closes it.
@@ -153989,8 +158800,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.PageInfo.TimeOpen.Action" units="units"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the amount of time the Page Info bubble is open before the user
closes it, for cases where the user has performed an action inside it.
@@ -153998,8 +158810,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.PageInfo.TimeOpen.NoAction" units="units"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the amount of time the Page Info bubble is open before the user
closes it, for cases where the user performed no action inside it.
@@ -154007,7 +158820,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.PasswordEntry.SiteEngagementLevel"
- enum="SiteEngagementLevel" expires_after="2020-12-01">
+ enum="SiteEngagementLevel" expires_after="2021-01-31">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
@@ -154018,7 +158831,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.PasswordFocus.SiteEngagementLevel"
- enum="SiteEngagementLevel" expires_after="2020-12-01">
+ enum="SiteEngagementLevel" expires_after="2021-01-31">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
@@ -154186,6 +158999,25 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Security.SafetyTips.StatusWithInitiator.{SafetyTipInitiator}"
+ enum="SafetyTipStatus" expires_after="M87">
+ <owner>jdeblasio@chromium.org</owner>
+ <owner>meacer@chromium.org</owner>
+ <summary>
+ Records the Safety Tip status of a page after navigation commit, alongside
+ how the corresponding navigation was initiated. Only recorded on navigations
+ that were visible at commit time.
+ </summary>
+ <token key="SafetyTipInitiator">
+ <variant name="CrossOrigin" label="Initiated by an unrelated origin"/>
+ <variant name="SameOrigin" label="Initiated by the same origin"/>
+ <variant name="SameRegDomain"
+ label="Initiated by the same registered domain"/>
+ <variant name="UnexpectedUrl" label="Metrics failure"/>
+ <variant name="Unknown" label="Initiator unknown"/>
+ </token>
+</histogram>
+
<histogram name="Security.SecurityLevel.CryptographicScheme"
enum="SecurityLevel" expires_after="M81">
<owner>estark@chromium.org</owner>
@@ -154206,8 +159038,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.DownloadStarted" enum="SecurityLevel"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the security level of the page that initiated a download (rather
than the security state of the connection to the download URL itself). The
@@ -154219,7 +159052,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.FormSubmission" enum="SecurityLevel"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>carlosil@chromium.org</owner>
<owner>cthomp@chromium.org</owner>
<summary>
@@ -154231,7 +159064,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.InsecureMainFrameFormSubmission"
- enum="SecurityLevel" expires_after="M86">
+ enum="SecurityLevel" expires_after="M89">
<owner>estark@chromium.org</owner>
<owner>livvielin@chromium.org</owner>
<summary>
@@ -154244,7 +159077,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.InsecureMainFrameNonFormNavigation"
- enum="SecurityLevel" expires_after="M86">
+ enum="SecurityLevel" expires_after="M89">
<owner>estark@chromium.org</owner>
<owner>livvielin@chromium.org</owner>
<summary>
@@ -154274,8 +159107,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.OnCommit" enum="SecurityLevel"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the security level of a page at the time the navigation commits.
Note that the security level of a page can change after commit time, so this
@@ -154285,8 +159119,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Security.SecurityLevel.OnComplete" enum="SecurityLevel"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the security level of a page at the end of the page visit (i.e.,
navigating away from the page, reloading the page, clicking a link, closing
@@ -154297,8 +159132,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram base="true" name="Security.SiteEngagement" units="units"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
The final Site Engagement score (0 to 100) of a URL during a visit to a
page. Recorded when the user closes the page or initiates a new navigation.
@@ -154306,8 +159142,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram base="true" name="Security.SiteEngagementDelta" units="units"
- expires_after="M86">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
The change in Site Engagement score for a site between the page navigation
committing and the user closing the page or navigating away. Recorded when
@@ -154336,8 +159173,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram base="true" name="Security.TimeOnPage2" units="units"
- expires_after="2020-08-16">
+ expires_after="2021-02-01">
<owner>cthomp@chromium.org</owner>
+ <owner>security-enamel@chromium.org</owner>
<summary>
Records the time spent on the page (the time that the page was in the
foreground from the start of the navigation to the page visit completing due
@@ -154594,6 +159432,7 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.AbortPaymentEvent.Time" units="ms"
expires_after="M85">
+ <owner>nhiroki@chromium.org</owner>
<owner>jinho.bang@samsung.com</owner>
<summary>
The time taken between dispatching an AbortPaymentEvent to a Service Worker
@@ -154811,6 +159650,7 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.CanMakePaymentEvent.Time" units="ms"
expires_after="2020-04-19">
+ <owner>nhiroki@chromium.org</owner>
<owner>jinho.bang@samsung.com</owner>
<summary>
The time taken between dispatching an CanMakePaymentEvent to a Service
@@ -155210,7 +160050,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.GetAllOriginsInfoTime" units="ms"
- expires_after="2020-09-12">
+ expires_after="2021-01-24">
<owner>bashi@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
<summary>
@@ -155248,6 +160088,18 @@ should be kept until we remove incident reporting. -->
<summary>The result of dispatching the install event to the worker.</summary>
</histogram>
+<histogram name="ServiceWorker.InternalsPageAccessed"
+ enum="ServiceWorkerInternalsLinkQuery" expires_after="M87">
+ <owner>nidhijaju@google.com</owner>
+ <owner>bashi@chromium.org</owner>
+ <summary>
+ The method that the user takes to arrive at
+ chrome://serviceworker-internals, based on the query string. Specifically,
+ it logs if a user accessed it through the DevTools link in the Application
+ Panel, or not.
+ </summary>
+</histogram>
+
<histogram
name="ServiceWorker.LoadTiming.MainFrame.MainResource.FetchHandlerEndToFallbackNetwork"
units="ms" expires_after="2021-10-31">
@@ -155814,7 +160666,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.NotificationClickEvent.Time" units="ms"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -155855,6 +160707,7 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.PaymentRequestEvent.Time" units="ms"
expires_after="M81">
+ <owner>nhiroki@chromium.org</owner>
<owner>jinho.bang@samsung.com</owner>
<summary>
The time taken between dispatching an PaymentRequestEvent to a Service
@@ -155892,6 +160745,20 @@ should be kept until we remove incident reporting. -->
<summary>Execution time of ServiceWorkerGlobalScope.onpush.</summary>
</histogram>
+<histogram name="ServiceWorker.PushSubscriptionChangeEvent.Time" units="ms"
+ expires_after="M88">
+ <owner>peter@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <owner>viviy@google.com</owner>
+ <summary>
+ The time taken between dispatching a PushSubscriptionChangeEvent to a
+ Service Worker and receiving a message that it finished handling the event.
+ Includes the time for the waitUntil() promise to settle. The event is
+ dispatched and finishes in PushMessagingRouter::FireSubscriptionChangeEvent.
+ </summary>
+</histogram>
+
<histogram name="ServiceWorker.RegisteredOriginCount" units="origins"
expires_after="2021-01-31">
<owner>falken@chromium.org</owner>
@@ -155904,6 +160771,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.RegistrationCount" units="registrations"
expires_after="2020-08-25">
+ <obsolete>
+ No longer needed as found the cause of stability issue to be number of
+ registrations rather than size of registrations. Removed in July 2020.
+ </obsolete>
<owner>nidhijaju@google.com</owner>
<owner>bashi@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
@@ -155915,6 +160786,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.RegistrationInfo.ScopeLength" units="characters"
expires_after="2020-08-25">
+ <obsolete>
+ No longer needed as found the cause of stability issue to be number of
+ registrations rather than size of registrations. Removed in July 2020.
+ </obsolete>
<owner>nidhijaju@google.com</owner>
<owner>bashi@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
@@ -156356,8 +161231,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.Storage.DeleteAndStartOverResult"
- enum="ServiceWorkerDeleteAndStartOverResult" expires_after="M81">
- <owner>nhiroki@chromium.org</owner>
+ enum="ServiceWorkerDeleteAndStartOverResult" expires_after="M90">
+ <owner>bashi@chromium.org</owner>
+ <owner>chrome-worker@google.com</owner>
<summary>
Records result of storage recovery operations in ServiceWorkerStorage.
</summary>
@@ -156452,6 +161328,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.UpdateCheck.Result"
enum="ServiceWorkerStatusCode" expires_after="2020-07-17">
+ <obsolete>
+ Removed 2020-07 because we could confirm byte-for-byte update checking for
+ imported scripts works.
+ </obsolete>
<owner>shimazu@chromium.org</owner>
<summary>
Records the result of byte-for-byte update checking. If it's not OK, it
@@ -156462,6 +161342,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.UpdateCheck.UpdateFound" enum="BooleanFound"
expires_after="2020-07-17">
+ <obsolete>
+ Removed 2020-07 because we could confirm byte-for-byte update checking for
+ imported scripts works.
+ </obsolete>
<owner>shimazu@chromium.org</owner>
<summary>
Records the result of byte-for-byte update checking. Recorded only when
@@ -156534,6 +161418,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.VersionInfo.ClientCount" units="clients"
expires_after="2020-08-25">
+ <obsolete>
+ No longer needed as found the cause of stability issue to be number of
+ registrations rather than size of registrations. Removed in July 2020.
+ </obsolete>
<owner>nidhijaju@google.com</owner>
<owner>bashi@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
@@ -156547,6 +161435,10 @@ should be kept until we remove incident reporting. -->
<histogram name="ServiceWorker.VersionInfo.ScriptURLLength" units="characters"
expires_after="2020-08-25">
+ <obsolete>
+ No longer needed as found the cause of stability issue to be number of
+ registrations rather than size of registrations. Removed in July 2020.
+ </obsolete>
<owner>nidhijaju@google.com</owner>
<owner>bashi@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
@@ -156620,7 +161512,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorkerCache.Cache.Browser.Match.RelatedFetchEvent"
- units="ms" expires_after="2020-10-31">
+ units="ms" expires_after="2021-01-24">
<owner>wanderview@chromium.org</owner>
<owner>chrome-owp-storage@google.com</owner>
<summary>
@@ -156942,8 +161834,8 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Session.TimeSpentInFocusMode" units="s" expires_after="M80">
- <owner>chrome-desktop-ui-sea@google.com</owner>
<owner>yiningwang@google.com</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
Time spent in focus mode browser. This is recorded when the focus mode
window closes. This metric is only recorded on Win/Mac/Linux/ChromeOS.
@@ -156957,18 +161849,72 @@ should be kept until we remove incident reporting. -->
<owner>chrisha@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
<summary>
- The length of a session (launch/foregrounding to backgrounding) in
- milliseconds. See Session.TotalDurationMax1Day for the same histogram with a
- higher maximum value. (The one's maximum is 1 hour.)
-
- Desktop: This also takes into account user interaction and audio events.
- Starting from M55 the session length is recorded by discounting for default
- inactivity timeout. Also, until M69, there was a bug that caused
- double-counting of some sessions.
-
- Android: There is a known issue where JavaScript dialogs and other things
- that take focus away from the Chrome activity can cause this metric to
- record a session end prematurely. See: crbug.com/678276.
+ The length of a session (launch/foregrounding to quitting/backgrounding) in
+ milliseconds, recorded at the end of the session. See
+ Session.TotalDurationMax1Day for the same histogram with a higher maximum
+ value. (The one's maximum is 1 hour.)
+
+ Windows/Mac/Linux: A session ends (i) when the user puts another app in the
+ foreground, unless audio is playing. (The Chrome windows can still be shown.
+ What matters is that a different app has focus.) (ii) when Chrome quits.
+ (iii) when the screensaver turns on (again, unless audio is playing). (iv)
+ when the user is inactive for five minutes (again, unless audio is playing).
+ In this case (starting in M-55), that five minutes is not included in the
+ sesson length. (v) when audio stops playing, if the user has been inactive
+ for five minutes or Chrome is not in the foreground. Also, until M69, there
+ was a bug that caused double-counting of some sessions.
+
+ ChromeOS: not implemented. The ChromeOS histogram Platform.DailyUseTime is
+ somewhat similar.
+
+ Android: Session boundaries are wonky. Thus, only look at total duration for
+ a client over a day; don't look at individual durations. A session ends (i)
+ when the Chrome app leaves the foreground. This sounds obvious yet there are
+ many subtle though common edge cases here. Going to the Android Home screen
+ via the Home button is an obvious case. Yet, merely pressing the Recents
+ button, even if the user reselects the Chrome app (i.e., doesn't leave the
+ app) also ends a session. Another set of cases is the screen time-out
+ (blanking the screen) or the lock screen. Either will cause Chrome to be
+ considered to leave the foreground, ending the session. (ii) some in-app
+ actions. Yes, some in-app events trigger the end of a session.
+
+ Android continued: These in-app actions that trigger the end of a session
+ can mostly be considered bugs. Cases: (a) switching to viewing Bookmarks,
+ History, Downloads, or Settings causes the session to end. Note that
+ switching out of those modes does not cause the end of a session, only
+ switching in. Oddly, though the interface looks similar, switching to Recent
+ Tabs does not trigger the end of a session. Nor does going into the tab
+ switcher view. (b) modal pop-ups. JavaScript dialogs and other things that
+ take focus away from the Chrome activity can cause this metric to record a
+ session end prematurely. See: crbug.com/678276. (c) switching Chrome from as
+ a single app in the foreground into multi-window mode. (d) switching Chrome
+ from being one of a set of multi-window apps that are displayed to be the
+ only app displayed.
+
+ iOS: A session starts when Chrome is launched to the foreground and ends
+ when Chrome leaves the screen. This is generally straightforward. Chrome
+ leaves the screen when the screen goes blank or shows the lock screen, when
+ Chrome clicks a link that opens in another app, or when the user switches to
+ the app switcher. Note that, unlike on desktop, even if Chrome is playing
+ media in the background, the session is still terminated when Chrome leaves
+ the screen.
+
+ iOS continued: These are some edge cases to be aware of: (i) OS overlays.
+ These can appear, for examples, when a link is clicked that could go to a
+ non-Google app that has not yet been set to default and the OS asks whether
+ to open the link in the app by default, or when a user has set the OS to
+ block certain sites or types of sites by default and require authentication
+ to access them. This authentication prompt is an OS overlay. At the time of
+ writing this description, we're not sure if displaying an overlay will end
+ the session. (ii) full-screen media playing. Because media is played through
+ iOS's technology stack, if the user takes media that's playing within Chrome
+ and displayed it full-screen, the session ends because no part of Chrome is
+ on the screen anymore. (iii) multi-window support. Not yet launched as of
+ M-85. Sessions end and immediately restart when a user switches from a
+ single-window to a multi-window view and vice versa, and also ends when
+ resizing the Chrome window. The end is because Chrome is considered no
+ longer active during the time the OS animates the windows to change their
+ sizes.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
@@ -156991,7 +161937,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin or
- sync status changes. These end-points are when the metric is emitted.
+ sync status changes. These end-points are when the metric is emitted. For
+ details on how &quot;stopped interacting with the browser&quot; is decided,
+ see the description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157026,7 +161974,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin or
- sync status changes. These end-points are when the metric is emitted.
+ sync status changes. These end-points are when the metric is emitted. For
+ details on how &quot;stopped interacting with the browser&quot; is decided,
+ see the description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157061,7 +162011,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin or
- sync status changes. These end-points are when the metric is emitted.
+ sync status changes. These end-points are when the metric is emitted. For
+ details on how &quot;stopped interacting with the browser&quot; is decided,
+ see the description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157099,7 +162051,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin or
- sync status changes. These end-points are when the metric is emitted.
+ sync status changes. These end-points are when the metric is emitted. For
+ details on how &quot;stopped interacting with the browser&quot; is decided,
+ see the description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157152,7 +162106,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin
- status changes. These end-points are when the metric is emitted.
+ status changes. These end-points are when the metric is emitted. For details
+ on how &quot;stopped interacting with the browser&quot; is decided, see the
+ description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157187,7 +162143,9 @@ should be kept until we remove incident reporting. -->
This time is measured from when the user starts interacting with the browser
until either they stopped interacting with the browser or their signin
- status changes. These end-points are when the metric is emitted.
+ status changes. These end-points are when the metric is emitted. For details
+ on how &quot;stopped interacting with the browser&quot; is decided, see the
+ description of Session.TotalDuration.
Because a duration can end either because the user became inactive or
because their status changed, the distribution of individual durations
@@ -157210,19 +162168,46 @@ should be kept until we remove incident reporting. -->
<owner>chrisha@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
<summary>
- The length of a session (launch/foregrounding to backgrounding) in
- milliseconds.
-
- Desktop: This also takes into account user interaction and audio events.
-
- Android: This histogram isn't logged on Android. See instead
- Session.TotalDuration.
+ The length of a session (launch/foregrounding to quitting/backgrounding) in
+ milliseconds, recorded at the end of the session. See Session.TotalDuration
+ for details on how the end of a session is decided. The histogram
+ Session.TotalDuration records exactly the same values as this histogram,
+ just with a smaller maximum value. (That one's maximum is 1 hour.)
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
</histogram>
+<histogram name="Session.WebStates.ForwardItemsCountAfterNavigation"
+ units="items" expires_after="2020-12-01">
+ <owner>ajuma@chromium.org</owner>
+ <owner>eugenebut@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ Number of forward navigation items when navigation was committed/finished.
+ Recorded when main frame navigation was finished and there is at least one
+ navigation item. In conjunction with
+ Session.WebStates.HasForwardItemsAfterNavigation this metric will help to
+ understand how many navigation items Chrome should restore after relaunch.
+ </summary>
+</histogram>
+
+<histogram name="Session.WebStates.HasForwardItemsAfterNavigation"
+ enum="BooleanPresent" expires_after="2020-12-01">
+ <owner>ajuma@chromium.org</owner>
+ <owner>eugenebut@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
+ <summary>
+ True if navigation manager has forward navigation items when navigation was
+ committed/finished. Recorded when main frame navigation was finished. Can be
+ used to understand how often the users load items in the middle of
+ back-forward list. In conjunction with
+ Session.WebStates.ForwardItemsCountAfterNavigation this metric will help to
+ understand how many navigation items Chrome should restore after relaunch.
+ </summary>
+</histogram>
+
<histogram base="true" name="Session.WebStates.NavigationItem" units="KB"
expires_after="2021-05-01">
<owner>eugenebut@chromium.org</owner>
@@ -157924,7 +162909,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.GivenShowHomeButton_HomePageIsNewTabPage"
- enum="Boolean" expires_after="2020-08-17">
+ enum="Boolean" expires_after="2021-03-01">
<owner>mpearson@chromium.org</owner>
<owner>twellington@chromium.org</owner>
<summary>
@@ -157967,7 +162952,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.HomePageEngineType" enum="OmniboxSearchEngineType"
- expires_after="2020-07-30">
+ expires_after="2021-06-30">
<owner>mpearson@chromium.org</owner>
<owner>csharp@chromium.org</owner>
<summary>
@@ -158157,7 +163142,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.PinnedTabEngineTypes" enum="OmniboxSearchEngineType"
- expires_after="2020-07-30">
+ expires_after="2021-06-30">
<owner>mpearson@chromium.org</owner>
<owner>csharp@chromium.org</owner>
<summary>
@@ -158185,7 +163170,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.PrivacyElementInteractions"
- enum="SettingsPrivacyElementInteractions" expires_after="M86">
+ enum="SettingsPrivacyElementInteractions" expires_after="M90">
<owner>harrisonsean@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<owner>sauski@chromium.org</owner>
@@ -158206,40 +163191,47 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Settings.SafetyCheck.ChromeCleanerResult"
+ enum="SafetyCheckChromeCleanerStatus" expires_after="M90">
+ <owner>rainhard@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <summary>Resulting state of the safety check Chrome cleaner check.</summary>
+</histogram>
+
<histogram name="Settings.SafetyCheck.ExtensionsResult"
- enum="SafetyCheckExtensionsStatus" expires_after="M86">
+ enum="SafetyCheckExtensionsStatus" expires_after="M90">
<owner>andzaytsev@google.com</owner>
<owner>msramek@chromium.org</owner>
<summary>Resulting state of the safety check extensions check.</summary>
</histogram>
<histogram name="Settings.SafetyCheck.Interactions"
- enum="SettingsSafetyCheckInteractions" expires_after="M86">
+ enum="SettingsSafetyCheckInteractions" expires_after="M90">
<owner>rainhard@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<owner>anaudrey@chromium.org</owner>
<summary>
Which user actions were taken in safety check. Recorded every time a user
- does an interaction in safety check.
+ does an interaction in safety check. Value 5 and 6 got added with M86.
</summary>
</histogram>
<histogram name="Settings.SafetyCheck.PasswordsResult"
- enum="SafetyCheckPasswordsStatus" expires_after="M86">
+ enum="SafetyCheckPasswordsStatus" expires_after="M90">
<owner>andzaytsev@google.com</owner>
<owner>msramek@chromium.org</owner>
<summary>Resulting state of the safety check password check.</summary>
</histogram>
<histogram name="Settings.SafetyCheck.SafeBrowsingResult"
- enum="SafetyCheckSafeBrowsingStatus" expires_after="M86">
+ enum="SafetyCheckSafeBrowsingStatus" expires_after="M90">
<owner>andzaytsev@google.com</owner>
<owner>msramek@chromium.org</owner>
<summary>Resulting state of the safety check Safe Browsing check.</summary>
</histogram>
<histogram name="Settings.SafetyCheck.UpdatesResult"
- enum="SafetyCheckUpdateStatus" expires_after="M86">
+ enum="SafetyCheckUpdateStatus" expires_after="M90">
<owner>andzaytsev@google.com</owner>
<owner>msramek@chromium.org</owner>
<summary>Resulting state of the safety check updates check.</summary>
@@ -158298,7 +163290,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.ShowHomeButton" enum="BooleanEnabled"
- expires_after="2020-08-17">
+ expires_after="2021-03-01">
<owner>mpearson@chromium.org</owner>
<owner>twellington@chromium.org</owner>
<summary>
@@ -158391,7 +163383,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Settings.StartupPageEngineTypes"
- enum="OmniboxSearchEngineType" expires_after="2020-07-30">
+ enum="OmniboxSearchEngineType" expires_after="2021-06-30">
<owner>mpearson@chromium.org</owner>
<owner>csharp@chromium.org</owner>
<summary>
@@ -160159,7 +165151,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SignedExchange.LoadResult2" enum="SignedExchangeLoadResult"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>ksakamoto@chromium.org</owner>
<owner>kinuko@chromium.org</owner>
<owner>horo@chromium.org</owner>
@@ -160264,7 +165256,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SignedExchange.SignatureVerificationResult"
- enum="SignedExchangeSignatureVerificationResult" expires_after="2020-10-01">
+ enum="SignedExchangeSignatureVerificationResult" expires_after="2021-01-24">
<owner>kinuko@chromium.org</owner>
<owner>ksakamoto@chromium.org</owner>
<owner>horo@chromium.org</owner>
@@ -160297,7 +165289,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SignedExchange.Time.SignatureVerify" units="ms"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>ksakamoto@chromium.org</owner>
<owner>kinuko@chromium.org</owner>
<owner>horo@chromium.org</owner>
@@ -160441,6 +165433,16 @@ prefs when the profile is loaded. -->
</summary>
</histogram>
+<histogram name="Signin.AndroidDeviceAccountsNumberWhenEnteringFRE"
+ units="count" expires_after="2021-06-01">
+ <owner>bsazonov@chromium.org</owner>
+ <owner>aliceywang@chromium.org</owner>
+ <summary>
+ Number of Android accounts on device when entering the First Run Experience
+ sign-in screen.
+ </summary>
+</histogram>
+
<histogram name="Signin.AndroidGetAccountIdsTime" units="ms"
expires_after="M85">
<owner>alexilin@chromium.org</owner>
@@ -160478,7 +165480,7 @@ prefs when the profile is loaded. -->
</histogram>
<histogram name="Signin.AndroidPopulateAccountCacheWaitingTime" units="ms"
- expires_after="2020-08-16">
+ expires_after="2021-08-16">
<owner>bsazonov@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
<summary>
@@ -160567,6 +165569,18 @@ prefs when the profile is loaded. -->
<summary>The number of signed in accounts in the cookie jar.</summary>
</histogram>
+<histogram base="true" name="Signin.CookieJar.SignedInCountWithPrimary"
+ units="accounts" expires_after="2021-03-01">
+ <owner>jkrcal@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ The number of signed in accounts in the cookie jar for users that have a
+ (possibly unconsented) primary account. Reported at most every 24 hours
+ (using a persistent timer). Reporting is split based on the type of the
+ primary account.
+ </summary>
+</histogram>
+
<histogram base="true" name="Signin.CookieJar.SignedOutCount" units="accounts"
expires_after="never">
<!-- expires-never: this histogram gives important user information about user
@@ -160678,7 +165692,7 @@ prefs when the profile is loaded. -->
</histogram>
<histogram name="Signin.Extensions.GaiaRemoteConsentFlowResult"
- enum="GaiaRemoteConsentFlowResult" expires_after="2020-10-04">
+ enum="GaiaRemoteConsentFlowResult" expires_after="2021-01-24">
<owner>alexilin@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -160688,7 +165702,7 @@ prefs when the profile is loaded. -->
</histogram>
<histogram name="Signin.Extensions.GetAuthTokenResult"
- enum="GetAuthTokenResult" expires_after="2020-10-04">
+ enum="GetAuthTokenResult" expires_after="2021-01-24">
<!-- Name completed by histogram_suffixes name="GetAuthTokenType" -->
<owner>alexilin@chromium.org</owner>
@@ -160762,6 +165776,47 @@ prefs when the profile is loaded. -->
</summary>
</histogram>
+<histogram name="Signin.Intercept.AccountInfoFetchDuration" units="ms"
+ expires_after="2021-08-12">
+ <owner>alexilin@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ Records the duration of the account info fetch after signin interception.
+ </summary>
+</histogram>
+
+<histogram name="Signin.Intercept.HeuristicOutcome"
+ enum="SigninInterceptHeuristicOutcome" expires_after="2021-08-12">
+ <owner>droger@chromium.org</owner>
+ <owner>alexilin@chromium.org</owner>
+ <summary>
+ Records the outcome of the signin interception heuristic, which runs for
+ each signin interception.
+ </summary>
+</histogram>
+
+<histogram name="Signin.Intercept.ProfileCreationDuration" units="ms"
+ expires_after="2021-08-12">
+ <owner>alexilin@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ Records the duration of the signed-in profile creation after signin
+ interception.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Signin.InterceptResult"
+ enum="SigninInterceptResult" expires_after="2021-08-12">
+<!-- Name completed by histogram_suffixes name="SigninInterceptType" -->
+
+ <owner>alexilin@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ Records the outcome of the enterprise signin interception bubble. Recorded
+ when the bubble is dismissed.
+ </summary>
+</histogram>
+
<histogram name="Signin.InvalidGaiaCredentialsReason"
enum="SigninInvalidGaiaCredentialsReason" expires_after="never">
<!-- expires-never: used to monitor the health of the signin feature and for troubleshooting. -->
@@ -160784,6 +165839,20 @@ prefs when the profile is loaded. -->
</summary>
</histogram>
+<histogram name="Signin.IOSGaiaCookiePresentOnNavigation" enum="BooleanPresent"
+ expires_after="2021-08-05">
+ <owner>fernandex@chromium.org</owner>
+ <owner>msarda@chromium.org</owner>
+ <owner>chrome-signin-team@google.com</owner>
+ <summary>
+ Records whether the Gaia cookie is present when a user navigates to a
+ Google-owned domain that is eligible for Mirror account consistency to track
+ authentication cookies that have been remove by an external force (e.g.
+ Apple's ITP). This logging is limited to once every hour due to performance
+ constraints.
+ </summary>
+</histogram>
+
<histogram name="Signin.IOSLoginMethodAndSyncState"
enum="SigninIOSLoginMethodAndSyncState" expires_after="2021-04-30">
<owner>jebel@chromium.org</owner>
@@ -161677,8 +166746,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.CheckCRCResult" enum="CheckCRCResult"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
Whether or not the CRC was checked at the moment when the last reference to
a read-only entry stream is closed.
@@ -161712,8 +166782,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.CreationToIndex" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time from the creation of the simple cache backend until the index has
been loaded from disk.
@@ -161721,8 +166792,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.CreationToIndexFail" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time from the creation of the simple cache backend until the index fails
to load.
@@ -161743,8 +166815,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.DiskCloseLatency" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time to close (write out footers and close the file) the cache entry on
disk. Includes only successful operations.
@@ -161752,8 +166825,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.DiskCreateLatency" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time to access (open for creation and write initial headers) the cache
entry on disk. Includes only successful operations.
@@ -161761,8 +166835,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.DiskDoomLatency" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time to remove the cache entry on disk. Includes only individually
doomed entries, not entries bulk-erased during eviction.
@@ -161770,8 +166845,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.DiskOpenLatency" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time to access (open and read headers from all files) the cache entry on
disk. Includes only successful operations.
@@ -161780,6 +166856,9 @@ Chrome adds accounts to the Gaia cookies. -->
<histogram base="true" name="SimpleCache.DiskOpenStream2NonTinyLatency"
units="ms" expires_after="M85">
+ <obsolete>
+ Removed 2020-08.
+ </obsolete>
<owner>morlovich@chromium.org</owner>
<summary>
The time to open the stream 2 file successfully on disk cache entry open
@@ -161789,6 +166868,9 @@ Chrome adds accounts to the Gaia cookies. -->
<histogram base="true" name="SimpleCache.DiskOpenStream2TinyLatency" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 2020-08.
+ </obsolete>
<owner>morlovich@chromium.org</owner>
<summary>
The time to open the stream 2 file successfully on disk cache entry open
@@ -161797,8 +166879,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.DiskWriteLatency" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The time to write a chunk to the cache entry on disk. Includes only
successful operations.
@@ -161822,6 +166905,9 @@ Chrome adds accounts to the Gaia cookies. -->
<histogram base="true" name="SimpleCache.EntryCreationResult"
enum="BooleanSuccess" expires_after="M85">
+ <obsolete>
+ Removed 2020-08. Look at SyncOpenResult and SyncCreateResult.
+ </obsolete>
<owner>morlovich@chromium.org</owner>
<summary>
For entry creation operations that were sent to the disk, the result of
@@ -161830,13 +166916,22 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.EntryCreationTime" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
- <summary>The time, in ms, spent creating a new entry on disk.</summary>
+ <owner>wanderview@chromium.org</owner>
+ <summary>
+ The time, in ms, spent creating a new entry on disk. This measures time from
+ when the method got removed from SimpleEntryImpl's operation queue till when
+ the callback is about to be invoked, and includes all Open and Create
+ operations, despite what the name may suggest.
+ </summary>
</histogram>
<histogram base="true" name="SimpleCache.EntryOpenedAndStream2Removed"
enum="SimpleCache.EntryOpenedAndStream2Removed" expires_after="M85">
+ <obsolete>
+ Removed 2020-08-17
+ </obsolete>
<owner>morlovich@chromium.org</owner>
<summary>
Whether, upon opening of an existing cache entry, stream 2 was empty and the
@@ -161933,8 +167028,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.Eviction.Result" enum="BooleanSuccess"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>The result of an eviction.</summary>
</histogram>
@@ -161948,8 +167044,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.Eviction.SizeOfEvicted2" units="KB"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>The amount of memory freed in an eviction.</summary>
</histogram>
@@ -161963,26 +167060,30 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.Eviction.SizeWhenDone2" units="KB"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>The size of the cache after running an eviction.</summary>
</histogram>
<histogram base="true" name="SimpleCache.Eviction.TimeToDone" units="ms"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>Time spent completing an eviction.</summary>
</histogram>
<histogram base="true" name="SimpleCache.Eviction.TimeToSelectEntries"
- units="ms" expires_after="M85">
+ units="ms" expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>Time spent selecting entries for eviction.</summary>
</histogram>
<histogram name="SimpleCache.FileDescriptorLimiterAction"
- enum="SimpleCache.FileDescriptorLimiterOp" expires_after="M85">
+ enum="SimpleCache.FileDescriptorLimiterOp" expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
This even is emitted when SimpleCache is forced to either close some files
due to being over FD limit, or reopen files it had to close due to such
@@ -162044,8 +167145,9 @@ Chrome adds accounts to the Gaia cookies. -->
</histogram>
<histogram base="true" name="SimpleCache.HeaderSize" units="bytes"
- expires_after="M85">
+ expires_after="2021-07-01">
<owner>morlovich@chromium.org</owner>
+ <owner>wanderview@chromium.org</owner>
<summary>
The size of the header stream of a Simple Cache entry, emitted every time
the headers are written or rewritten.
@@ -164074,7 +169176,7 @@ should be kept until we use this API. -->
<owner>lukasza@chromium.org</owner>
<summary>
Logs whether CORB blocking might have been caused by treating
- |request_initiator| as opaque when |request_initiator_site_lock| is
+ |request_initiator| as opaque when |request_initiator_origin_lock| is
incompatible (as may be the case for HTML Imports).
Logged when CORB allows or blocks a response, only when NetworkService is
@@ -164886,6 +169988,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.Cleaner.HasCompleted" enum="SRTCompleted"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 because of lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -164972,7 +170077,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.Cleaner.TimeToCompleteDownload" units="ms"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -164984,6 +170089,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.Cleaner.Version" units="units"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>The build version of the software reporter cleaner tool.</summary>
@@ -165043,7 +170151,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.FoundUwSReadError" enum="BooleanError"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165068,7 +170176,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.LastUploadResult" enum="BooleanSuccess"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>The result of the most recent SRT log upload.</summary>
@@ -165106,7 +170214,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.MajorVersion" units="units"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165117,7 +170225,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="SoftwareReporter.MemoryUsed" units="KB" expires_after="M83">
+<histogram name="SoftwareReporter.MemoryUsed" units="KB"
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165127,7 +170236,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.MinorVersion" units="units"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165188,6 +170297,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.PromptDialog.TimeUntilDone" units="ms"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165241,6 +170353,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.ReporterSequenceResult"
enum="SoftwareReporterSequenceResult" expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>Indicates the result of a reporter sequence once it ends.</summary>
@@ -165257,6 +170372,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.RunningTime" units="ms" expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165267,7 +170385,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.RunningTimeAccordingToChrome" units="ms"
- expires_after="M83">
+ expires_after="2021-07-21">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165278,6 +170396,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.RunningTimeRegistryError"
enum="SwReporterRunningTimeRegistryError" expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165299,6 +170420,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.Step" enum="SwReporterStep"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165318,6 +170442,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.UploadFailureCount" units="units"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165328,6 +170455,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.UploadLongestFailureRun" units="units"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165338,6 +170468,9 @@ should be kept until we use this API. -->
<histogram name="SoftwareReporter.UploadSuccessCount" units="units"
expires_after="M83">
+ <obsolete>
+ Removed 07-2020 due to lack of use
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -165390,7 +170523,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SpellCheck.SpellingService.Enabled" enum="BooleanEnabled"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>groby@chromium.org</owner>
<owner>chrome-language@google.com</owner>
<summary>
@@ -165401,7 +170534,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SpellCheck.SpellingService.RequestDuration" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
<owner>gujen@google.com</owner>
<owner>chrome-language@google.com</owner>
@@ -165413,7 +170546,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SpellCheck.SpellingService.RequestHttpResponseCode"
- enum="HttpResponseCode" expires_after="2020-12-01">
+ enum="HttpResponseCode" expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
<owner>gujen@google.com</owner>
<owner>chrome-language@google.com</owner>
@@ -165421,7 +170554,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SpellCheck.SpellingService.RequestResultType"
- enum="ServiceRequestResultType" expires_after="2020-12-01">
+ enum="ServiceRequestResultType" expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
<owner>gujen@google.com</owner>
<owner>chrome-language@google.com</owner>
@@ -165975,7 +171108,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SSL.MixedContentShown" enum="MixedContentType"
- expires_after="M85">
+ expires_after="M90">
<owner>carlosil@chromium.org</owner>
<summary>Tracks when mixed content is displayed or run.</summary>
</histogram>
@@ -166078,7 +171211,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Android.ProcessedCrashCounts"
- enum="AndroidProcessedCrashCounts" expires_after="2020-11-01">
+ enum="AndroidProcessedCrashCounts" expires_after="2021-01-03">
<owner>boliu@chromium.org</owner>
<summary>
Individual enum counts specific conditions of child process terminations.
@@ -166135,7 +171268,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Android.RendererCrash" enum="Boolean"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>wnwen@chromium.org</owner>
<summary>
Counts renderer crashes including OOMs. Android only. Mirrors old stability
@@ -166169,7 +171302,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.BadMessageTerminated.Chrome"
- enum="BadMessageReasonChrome" expires_after="2020-10-11">
+ enum="BadMessageReasonChrome" expires_after="2021-01-03">
<owner>creis@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
@@ -166180,7 +171313,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.BadMessageTerminated.Content"
- enum="BadMessageReasonContent" expires_after="2020-11-01">
+ enum="BadMessageReasonContent" expires_after="2021-01-03">
<owner>jam@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
@@ -166325,7 +171458,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Experimental.Counts" enum="StabilityEventType"
- expires_after="2020-06-30">
+ expires_after="2021-01-15">
<owner>rkaplow@chromium.org</owner>
<owner>chrome-metrics-team@google.com</owner>
<summary>
@@ -166374,7 +171507,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.iOS.UTE.AvailableStorage" units="KB"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>michaeldo@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
@@ -166399,8 +171532,19 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Stability.iOS.UTE.CreatedSyntheticCrashReportConfig"
+ enum="BooleanSuccess" expires_after="2020-09-30">
+ <owner>eugenebut@chromium.org</owner>
+ <owner>olivierrobin@chromium.org</owner>
+ <summary>
+ Recorded when Chrome for iOS attempts to create a config for synthetic crash
+ report. Used to debug the feature, which suppose to upload synthetic crash
+ report using Breakpad.
+ </summary>
+</histogram>
+
<histogram name="Stability.iOS.UTE.DeviceThermalState"
- enum="IOSDeviceThermalState" expires_after="2020-12-01">
+ enum="IOSDeviceThermalState" expires_after="2021-01-31">
<owner>michaeldo@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
@@ -166410,7 +171554,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.iOS.UTE.HasPossibleExplanation"
- enum="BooleanHasPossibleExplanation" expires_after="2020-12-01">
+ enum="BooleanHasPossibleExplanation" expires_after="2021-01-31">
<owner>michaeldo@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
@@ -166444,7 +171588,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.iOS.UTE.OSRestartedAfterPreviousSession"
- enum="BooleanRebooted" expires_after="2020-12-01">
+ enum="BooleanRebooted" expires_after="2021-01-31">
<owner>eugenebut@chromium.org</owner>
<owner>michaeldo@chromium.org</owner>
<summary>
@@ -166478,7 +171622,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.MobileSessionShutdownType"
- enum="MobileSessionShutdownType" expires_after="2020-12-01">
+ enum="MobileSessionShutdownType" expires_after="2021-01-31">
<owner>pkl@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
@@ -166518,7 +171662,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="StackSamplingProfiler.MetadataSlotsUsed" units="counts"
- expires_after="2020-07-12">
+ expires_after="2021-01-12">
<owner>charliea@chromium.org</owner>
<owner>wittman@chromium.org</owner>
<summary>
@@ -166835,7 +171979,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.AfterStartupTaskCount" units="units"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>michaeln@chromium.org</owner>
<summary>
The number of after-startup tasks that were queued prior to startup
@@ -166844,7 +171988,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.AfterStartupTaskDelayedUntilTime" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>michaeln@chromium.org</owner>
<summary>
Time from the process creation until deferred after-startup tasks began
@@ -166852,8 +171996,24 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Startup.Android.CachedFeedVisibilityConsistency"
+ enum="BooleanConsistent" expires_after="2021-06-10">
+ <owner>hanxi@chromium.org</owner>
+ <owner>spdonghao@chromium.org</owner>
+ <owner>wychen@chromium.org</owner>
+ <summary>
+ Records whether or not the cached Feed visibility in the SharedPreferences
+ is consistent with the Feed visibility user preference on the disk. It's
+ recorded when overview mode is shown because of Return to Tab Switcher, and
+ only on cold start. By recording this histogram, the number of mismatches
+ between the criteria of whether the Feed placeholder of Instant Start
+ pre-native is shown and the criteria of whether Feed articles after native
+ initialization are shown is recorded.
+ </summary>
+</histogram>
+
<histogram base="true" name="Startup.Android.Cold.TimeToFirstContentfulPaint"
- units="ms" expires_after="2020-11-01">
+ units="ms" expires_after="2021-01-03">
<owner>pasko@chromium.org</owner>
<owner>alexilin@chromium.org</owner>
<summary>
@@ -166866,7 +172026,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Startup.Android.Cold.TimeToFirstNavigationCommit"
- units="ms" expires_after="2020-11-01">
+ units="ms" expires_after="2021-01-03">
<owner>pasko@chromium.org</owner>
<owner>alexilin@chromium.org</owner>
<summary>
@@ -166922,8 +172082,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Startup.Android.FeedContentFirstLoadedTime" units="ms"
- expires_after="2021-06-10">
+<histogram base="true" name="Startup.Android.FeedContentFirstLoadedTime"
+ units="ms" expires_after="2021-06-10">
<!-- Name completed by histogram_suffixes name="JavaStartMode" -->
<owner>hanxi@chromium.org</owner>
@@ -166950,8 +172110,34 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram base="true" name="Startup.Android.FeedStreamCreatedTime" units="ms"
+ expires_after="2021-06-10">
+<!-- Name completed by histogram_suffixes name="JavaStartMode" -->
+
+ <owner>hanxi@chromium.org</owner>
+ <owner>spdonghao@chromium.org</owner>
+ <owner>wychen@chromium.org</owner>
+ <summary>
+ Records the time duration from a cold start till the Feeds stream is created
+ on the StartSurface. This histogram is only recorded when StartSurface is
+ shown at launch due to &quot;return to tab switcher&quot; feature.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Startup.Android.FirstDrawCompletedTime" units="ms"
+ expires_after="2021-06-10">
+<!-- Name completed by histogram_suffixes name="JavaStartMode" -->
+
+ <owner>hanxi@chromium.org</owner>
+ <owner>spdonghao@chromium.org</owner>
+ <owner>wychen@chromium.org</owner>
+ <summary>
+ Records the time duration from a cold start till the first draw completes.
+ </summary>
+</histogram>
+
<histogram name="Startup.Android.GURLEnsureMainDexInitialized" units="ms"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>mthiesse@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -166960,8 +172146,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Startup.Android.SingleTabTitleAvailableTime" units="ms"
- expires_after="2021-06-10">
+<histogram base="true" name="Startup.Android.SingleTabTitleAvailableTime"
+ units="ms" expires_after="2021-06-10">
<!-- Name completed by histogram_suffixes name="JavaStartMode" -->
<owner>hanxi@chromium.org</owner>
@@ -166976,7 +172162,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.Android.StartupTabPreloader.TabLoaded" units="Boolean"
- expires_after="2020-11-08">
+ expires_after="2021-02-14">
<owner>skyostil@chromium.org</owner>
<summary>
Android: Whether or not creation of a profile lead to the
@@ -167011,7 +172197,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>yusufo@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -167037,7 +172223,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Warm" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>yusufo@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -167078,6 +172264,7 @@ should be kept until we use this API. -->
<histogram name="Startup.BlockForCrashpadHandlerStartupTime" units="ms"
expires_after="M85">
+ <owner>mark@chromium.org</owner>
<owner>crashpad-dev@chromium.org</owner>
<summary>
The amount of time that elapsed during in
@@ -167086,7 +172273,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BringToForegroundReason"
- enum="BooleanBringToForegroundReason" expires_after="2020-10-18">
+ enum="BooleanBringToForegroundReason" expires_after="2020-12-27">
<owner>peter@chromium.org</owner>
<summary>
Records the cause, each time Chrome is brought to the foreground. Currently
@@ -167110,7 +172297,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserMainRunnerImplInitializeLongTime" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>robliao@chromium.org</owner>
<summary>
The amount of time that elapsed during BrowserMainRunnerImpl::Initialize.
@@ -167163,7 +172350,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserMessageLoopStart.To.NonEmptyPaint2" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>asvitkine@chromium.org</owner>
<summary>
Time between Startup.BrowserMessageLoopStartTime and
@@ -167340,7 +172527,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserWindow.FirstPaint" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
+ <owner>sebmarchand@chromium.org</owner>
<owner>mblsha@yandex-team.ru</owner>
<summary>
Time from application start to the time the first Browser window has
@@ -167354,6 +172542,7 @@ should be kept until we use this API. -->
<histogram name="Startup.BrowserWindow.FirstPaint.CompositingEnded" units="ms"
expires_after="2020-04-26">
+ <owner>sebmarchand@chromium.org</owner>
<owner>mblsha@yandex-team.ru</owner>
<summary>
Time from application start to the time the GPU has finished compositing
@@ -167395,7 +172584,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.ColdStartFromProcessCreationTime" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>djean@chromium.org</owner>
<owner>eugenebut@chromium.org</owner>
<summary>
@@ -167407,7 +172596,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.ColdStartWithExternalURLTime" units="ms"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>jif@chromium.org</owner>
<summary>
The duration of all initializations in a cold start triggered by an external
@@ -167897,7 +173086,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.MobileSessionStartAction"
- enum="MobileSessionStartAction" expires_after="M85">
+ enum="MobileSessionStartAction" expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The action requested on the application startup when called from another app
@@ -167906,7 +173096,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.MobileSessionStartFromApps"
- enum="MobileSessionCallerApp" expires_after="M85">
+ enum="MobileSessionCallerApp" expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>The calling application (if any).</summary>
</histogram>
@@ -168047,6 +173238,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.ShowAppListColdStart" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 2018-03.
+ </obsolete>
<owner>tapted@chromium.org</owner>
<summary>
Time for a newly created browser process to reach the code that starts
@@ -168056,6 +173250,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.ShowAppListWarmStart" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 2018-03.
+ </obsolete>
<owner>tapted@chromium.org</owner>
<summary>
Time for a running browser process to reach the code that starts showing the
@@ -168851,7 +174048,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.InvalidationTime" units="microseconds"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in StyleEngine::InvalidateStyle. Only samples from high
@@ -168875,7 +174072,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.RebuildLayoutTreeTime" units="microseconds"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in RebuildLayoutTree called from Document::UpdateStyle.
@@ -168883,7 +174080,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.RecalcTime" units="microseconds"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in RecalcStyle called from Document::UpdateStyle.
@@ -168946,7 +174143,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.Actions2" enum="SubresourceFilterActions2"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
@@ -169398,7 +174595,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.ActivationList"
- enum="ActivationList" expires_after="2020-11-01">
+ enum="ActivationList" expires_after="2021-01-03">
<owner>csharrison@chromium.org</owner>
<summary>
The ActivationList or NONE that the main frame navigation matched with.
@@ -169407,7 +174604,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.ActivationState"
- enum="SubresourceFilterActivationState" expires_after="2020-11-01">
+ enum="SubresourceFilterActivationState" expires_after="2021-01-03">
<owner>csharrison@chromium.org</owner>
<summary>
Whenever a document load is committed in a main frame, records whether
@@ -170434,7 +175631,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.BackendInitializeFirstTime" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -170720,7 +175917,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ConfigureDataTypeManagerOption"
- enum="SyncFeatureOrTransport" expires_after="2020-11-01">
+ enum="SyncFeatureOrTransport" expires_after="2021-01-03">
<owner>treib@chromium.org</owner>
<summary>
Whether the full Sync feature or only the Sync transport layer is being
@@ -170732,7 +175929,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ConfigureDataTypes" enum="SyncModelTypes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -170967,7 +176164,7 @@ should be kept until we use this API. -->
<histogram name="Sync.Crypto.CustomPassphraseKeyDerivationMethodStateOnStartup"
enum="SyncCustomPassphraseKeyDerivationMethodState"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>vitaliii@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -170977,7 +176174,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.Crypto.NigoriKeyDerivationDuration"
- units="ms" expires_after="2020-11-29">
+ units="ms" expires_after="2021-01-31">
<owner>vitaliii@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -170988,7 +176185,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.CryptographerPendingKeys"
- enum="SyncCryptographerPendingKeysState" expires_after="2020-12-13">
+ enum="SyncCryptographerPendingKeysState" expires_after="2021-02-14">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -170997,7 +176194,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.CryptographerReady" enum="SyncCryptographerReadyState"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -171007,7 +176204,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.CustomEncryption" enum="SyncCustomEncryptionEvent"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -171084,7 +176281,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.DataTypeRunFailures2" enum="SyncModelTypes"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -171110,7 +176307,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.DataTypeStartFailures2" enum="SyncModelTypes"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -171125,6 +176322,9 @@ should be kept until we use this API. -->
<histogram name="Sync.DeleteRoamingUserDataDirectory"
enum="RoamingUserDataDirectoryDeletionResult" expires_after="2020-08-04">
+ <obsolete>
+ Removed in 2020-08 (M86).
+ </obsolete>
<owner>grt@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
@@ -171147,7 +176347,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.DeviceCount2" units="units" expires_after="2020-10-25">
+<histogram name="Sync.DeviceCount2" units="units" expires_after="2020-12-27">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -171232,7 +176432,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.DirectoryVsPrefsConsistency"
- enum="SyncDirectoryVsPrefsConsistency" expires_after="2020-09-27">
+ enum="SyncDirectoryVsPrefsConsistency" expires_after="2020-06-25">
+ <obsolete>
+ Removed 06/2020.
+ </obsolete>
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -171384,7 +176587,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.EventCodes" enum="SyncEventCode"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>A UI event occured.</summary>
@@ -171800,7 +177003,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.InitialState" enum="SyncInitialState"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -171868,7 +177071,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.Local.Enabled" enum="BooleanEnabled" expires_after="M86">
+<histogram name="Sync.Local.Enabled" enum="BooleanEnabled"
+ expires_after="2021-05-31">
<owner>pastarmovj@chromium.org</owner>
<summary>
Tracks the number of times the local sync backend was enabled by the user.
@@ -171883,7 +177087,7 @@ should be kept until we use this API. -->
<summary>Tracks the size of the local sync backend database file.</summary>
</histogram>
-<histogram name="Sync.Local.FileSizeKB" units="KB" expires_after="M86">
+<histogram name="Sync.Local.FileSizeKB" units="KB" expires_after="2021-05-31">
<owner>pastarmovj@chromium.org</owner>
<summary>
Tracks the size of the local sync backend database file. Recorded every time
@@ -171892,7 +177096,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.Local.RequestTypeOnError" enum="SyncRequestType"
- expires_after="M86">
+ expires_after="2021-05-31">
<owner>pastarmovj@chromium.org</owner>
<summary>
Tracks the types of requests that caused errors inside of the local server.
@@ -171900,7 +177104,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.Local.RoamingProfileUnavailable" enum="BooleanError"
- expires_after="M86">
+ expires_after="2021-05-31">
<owner>pastarmovj@chromium.org</owner>
<summary>
Tracks the number of times the Roaming profile cannot be retrieved.
@@ -171930,7 +177134,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.LocalSyncTransportDataStartupState"
- enum="LocalSyncTransportDataStartupState" expires_after="2020-11-08">
+ enum="LocalSyncTransportDataStartupState" expires_after="2021-01-17">
<owner>rushans@google.com</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -172075,7 +177279,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeCount4" units="entries"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -172118,7 +177322,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeEntityChange3"
- enum="SyncEntityChange" expires_after="2020-12-06">
+ enum="SyncEntityChange" expires_after="2021-02-07">
<owner>jkrcal@chromium.org</owner>
<summary>
Recorded once for every sync entity change (whenever it is commited to the
@@ -172129,7 +177333,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeErrorSite"
- enum="SyncModelTypeErrorSite" expires_after="2020-12-01">
+ enum="SyncModelTypeErrorSite" expires_after="2021-01-31">
<!-- Name completed by histogram_suffixes name="SyncModelType" -->
<owner>jkrcal@chromium.org</owner>
@@ -172142,7 +177346,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeMemoryKB" units="KB"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -172184,6 +177388,20 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram base="true" name="Sync.ModelTypeStoreCommitWriteBatchOutcome"
+ enum="LevelDBStatus" expires_after="2021-01-31">
+<!-- Name completed by histogram_suffixes name="SyncModelType" -->
+
+ <owner>qjw@chromium.org</owner>
+ <owner>ortuno@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <owner>mastiz@chromium.org</owner>
+ <summary>
+ Record the LevelDB Status outcome for ModelTypeStore CommitWriteBatch
+ operations.
+ </summary>
+</histogram>
+
<histogram name="Sync.ModelTypeStoreInitResult"
enum="SyncModelTypeStoreInitResult" expires_after="M77">
<obsolete>
@@ -172328,7 +177546,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed2" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>mastiz@chromium.org</owner>
<owner>melandory@chromium.org</owner>
<summary>
@@ -172538,7 +177756,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PassphraseType" enum="SyncPassphraseType"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>The active sync passphrase type at sync startup.</summary>
@@ -172661,7 +177879,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessage"
- enum="SyncClientToServerMessageContents" expires_after="2020-11-29">
+ enum="SyncClientToServerMessageContents" expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<summary>
Number of network requests issued by sync to the sync server, grouped by
@@ -172670,7 +177888,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessageError" enum="SyncErrorType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<summary>
A sync error code received from the sync server as a result of a
@@ -172680,7 +177898,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessageLatency" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>mastiz@chromium.org</owner>
<summary>
Time taken for a client-initiated request to be sent over the network and
@@ -172689,7 +177907,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedDataTypeCommitRequest" enum="SyncModelTypes"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -172702,7 +177920,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedDataTypeGetUpdatesRequest" enum="SyncModelTypes"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -172715,7 +177933,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedGetUpdatesOrigin" enum="SyncGetUpdatesOrigin"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -172853,7 +178071,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.RedundantInvalidationPerModelType" enum="SyncModelTypes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>melandory@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -173114,7 +178332,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.SessionTabs" units="tabs" expires_after="2020-11-29">
+<histogram name="Sync.SessionTabs" units="tabs" expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -173223,7 +178441,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.Startup.DeferredInitTrigger"
- enum="SyncDeferredInitTrigger" expires_after="2020-11-29">
+ enum="SyncDeferredInitTrigger" expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>The type of event that triggered sync initialization.</summary>
@@ -173252,14 +178470,14 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.Startup.TypeTriggeringInit" enum="SyncModelTypes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>Data type that first requests sync initialization.</summary>
</histogram>
<histogram name="Sync.StopSource" enum="SyncStopSource"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -173368,7 +178586,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.SyncEverything2" enum="Boolean"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -173555,6 +178773,16 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram base="true" name="Sync.UndecryptedEntitiesOnDataTypeDisabled"
+ units="sync entities" expires_after="2021-01-30">
+ <owner>victorvianna@google.com</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ This records the number of sync entities that were still undecrypted by the
+ time the data type was disabled (typically during browser shutdown).
+ </summary>
+</histogram>
+
<histogram name="Sync.UnrecoverableErrors" enum="SyncUnrecoverableErrorReason"
expires_after="M85">
<obsolete>
@@ -173569,7 +178797,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.URLFetchResponse"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-10-25">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-27">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -173578,7 +178806,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.URLFetchTime" units="ms" expires_after="M85">
+<histogram name="Sync.URLFetchTime" units="ms" expires_after="M88">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -173587,7 +178815,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.URLFetchTimedOut" enum="BooleanTimedOut"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mastiz@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -173885,6 +179113,9 @@ should be kept until we use this API. -->
<histogram name="Tab.BackgroundTabShown" enum="BooleanShown"
expires_after="M85">
+ <obsolete>
+ Removed 06/2020
+ </obsolete>
<owner>pkotwicz@chromium.org</owner>
<summary>
Whether a tab which was opened in the background (e.g. via &quot;Open link
@@ -173894,6 +179125,9 @@ should be kept until we use this API. -->
<histogram name="Tab.BackgroundTabsOpenedViaContextMenuCount" units="units"
expires_after="M85">
+ <obsolete>
+ Removed 06/2020
+ </obsolete>
<owner>pkotwicz@chromium.org</owner>
<summary>
Counts the number of background tabs opened via the context menu per page
@@ -174060,6 +179294,9 @@ should be kept until we use this API. -->
<histogram name="Tab.LostTabAgeWhenSwitchedToForeground" units="ms"
expires_after="M85">
+ <obsolete>
+ Removed 06/2020
+ </obsolete>
<owner>pkotwicz@chromium.org</owner>
<summary>
[Android] When a tab that was opened in the background (e.g. via &quot;Open
@@ -174080,6 +179317,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.NewTabDOMContentLoaded" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 07/2020, no longer used.
+ </obsolete>
<owner>kmilka@chromium.org</owner>
<owner>ramyan@chromium.org</owner>
<summary>
@@ -174088,19 +179328,19 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Tab.NewTabOnload" units="ms" expires_after="M85">
- <owner>treib@chromium.org</owner>
- <owner>kmilka@chromium.org</owner>
- <owner>ramyan@chromium.org</owner>
+<histogram name="Tab.NewTabOnload" units="ms" expires_after="2021-01-01">
+ <owner>carlosk@chromium.org</owner>
+ <owner>harringtond@chromium.org</owner>
<summary>
- The time for the new tab page to fire the &quot;load&quot; event. Note: This
- is usually recorded with a suffix (.Local/Google/Other). The base version is
- recorded only on Android. Recorded only once per tab, i.e. excluding
- back/forward navigations.
+ The time for the new tab page to load. Only recorded on Android. Recorded
+ only once per tab, i.e. excluding back/forward navigations.
</summary>
</histogram>
<histogram name="Tab.NewTabScriptStart" units="ms" expires_after="M85">
+ <obsolete>
+ Removed 07/2020, no longer used.
+ </obsolete>
<owner>kmilka@chromium.org</owner>
<owner>ramyan@chromium.org</owner>
<summary>
@@ -174169,14 +179409,14 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.Preview.CaptureType" enum="TabPreviewCaptureType"
- expires_after="2020-09-15">
+ expires_after="2020-12-15">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>Records how a tab preview image was generated.</summary>
</histogram>
<histogram name="Tab.Preview.TimeToFirstUsableFrameAfterStartCapture"
- units="ms" expires_after="2020-09-15">
+ units="ms" expires_after="2020-12-15">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
@@ -174186,7 +179426,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.Preview.TimeToNotifyObserversAfterCaptureReceived"
- units="microseconds" expires_after="2020-09-15">
+ units="microseconds" expires_after="2020-12-15">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
@@ -174200,7 +179440,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.Preview.TimeToStoreAfterFrameReceived"
- units="microseconds" expires_after="2020-09-15">
+ units="microseconds" expires_after="2020-12-15">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
@@ -174212,7 +179452,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.Preview.TimeToStoreAfterTabSwitch" units="ms"
- expires_after="2020-09-15">
+ expires_after="2020-12-15">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
@@ -174278,6 +179518,7 @@ should be kept until we use this API. -->
<histogram name="Tab.RendererCrashStatus" enum="TabRendererCrashStatus"
expires_after="M85">
+ <owner>tedchoc@chromium.org</owner>
<owner>clank-team@google.com</owner>
<summary>
[Android] The status of a tab and an application when a renderer crashes.
@@ -174391,9 +179632,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tab.StateAtRendererTermination" enum="TabForegroundState"
- expires_after="2020-07-01">
+ expires_after="2020-12-25">
+ <owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
- <owner>pkl@chromium.org</owner>
<summary>
The state (foreground/background) of a tab when its renderer is terminated.
</summary>
@@ -174608,6 +179849,7 @@ should be kept until we use this API. -->
<histogram name="Tab.TotalTabCount.BeforeLeavingApp" units="tabs"
expires_after="M85">
+ <owner>tedchoc@chromium.org</owner>
<owner>clank-team@google.com</owner>
<summary>
[Android] The total count of tabs which were kept while Chrome process is in
@@ -174732,7 +179974,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection"
- units="units" expires_after="2020-08-01">
+ units="units" expires_after="2020-10-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -174742,7 +179984,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabHoverCards.TimeSinceLastVisible" units="ms"
- expires_after="2020-08-01">
+ expires_after="2020-10-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -174852,6 +180094,9 @@ should be kept until we use this API. -->
<histogram
name="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDuration"
units="ms" expires_after="M79">
+ <obsolete>
+ Removed June 2020.
+ </obsolete>
<owner>chrisha@chromium.org</owner>
<summary>
The expected queueing duration of tasks in a foreground tab during a
@@ -174950,7 +180195,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.Discarding.DiscardCount" units="Discards"
- expires_after="M85">
+ expires_after="M100">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -175003,7 +180248,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.Discarding.DiscardToReloadTime" units="ms"
- expires_after="M85">
+ expires_after="M100">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -175013,7 +180258,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.Discarding.InactiveToReloadTime" units="ms"
- expires_after="M85">
+ expires_after="M100">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -175085,7 +180330,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.Discarding.ReloadCount" units="Reloads"
- expires_after="M85">
+ expires_after="M100">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -175112,7 +180357,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.Discarding.ReloadToCloseTime" units="ms"
- expires_after="M85">
+ expires_after="M100">
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
@@ -175502,6 +180747,9 @@ should be kept until we use this API. -->
<histogram
name="TabManager.SessionRestore.ForegroundTab.ExpectedTaskQueueingDuration"
units="ms" expires_after="M79">
+ <obsolete>
+ Removed June 2020.
+ </obsolete>
<owner>chrisha@chromium.org</owner>
<summary>
The expected queueing duration of tasks in a foreground tab during session
@@ -175578,6 +180826,33 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="TabManager.TimeSinceTabClosedUntilRestored" units="ms"
+ expires_after="2021-07-13">
+ <owner>aebacanu@chromium.org</owner>
+ <owner>carlscab@chromium.org</owner>
+ <owner>sreejakshetty@chromium.org</owner>
+ <summary>
+ Duration between restoring a tab when &quot;Reopen Closed Tab&quot; button
+ was clicked or any of Ctrl+Shift+T (on Linux/Windows/Chrome OS) and
+ Command+Shift+T (on Mac) were pressed and the closing of the same tab.
+ Recorded when the user manually restores a tab.
+ </summary>
+</histogram>
+
+<histogram name="TabManager.TimeSinceWindowClosedUntilRestored" units="ms"
+ expires_after="2021-07-13">
+ <owner>aebacanu@chromium.org</owner>
+ <owner>carlscab@chromium.org</owner>
+ <owner>sreejakshetty@chromium.org</owner>
+ <summary>
+ Duration between restoring a whole window (multiple tabs) when &quot;Reopen
+ Closed Window&quot; button was clicked or any of Ctrl+Shift+T (on
+ Linux/Windows/Chrome OS) and Command+Shift+T (on Mac) were pressed and the
+ closing of the same window. Recorded when the user manually restores a
+ window.
+ </summary>
+</histogram>
+
<histogram name="TabRestore.error_move_session_at_path_to_backup"
enum="FoundationFileSystemError" expires_after="M77">
<owner>sky@chromium.org</owner>
@@ -175605,14 +180880,14 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Tabs.CountAtResume" units="tabs" expires_after="M85">
+<histogram name="Tabs.CountAtResume" units="tabs" expires_after="M92">
<owner>marq@chromium.org</owner>
<summary>
[iOS] The number of tabs open when the app comes out of the background.
</summary>
</histogram>
-<histogram name="Tabs.CountAtStartup" units="tabs" expires_after="M85">
+<histogram name="Tabs.CountAtStartup" units="tabs" expires_after="M92">
<owner>marq@chromium.org</owner>
<summary>[Android and iOS] The number of tabs open at cold launch.</summary>
</histogram>
@@ -175999,6 +181274,84 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Tabs.PersistedTabData.Deserialize.Critical"
+ enum="BooleanSuccess" expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ CriticalPersistedTabData stores data pertinent to the running of the app
+ such as tab id, parent id, web contents. This data is serialized and stored
+ across restarts. This records if the deserialization succeeds or fails.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.PersistedTabData.Serialize.Critical"
+ enum="BooleanSuccess" expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ CriticalPersistedTabData stores data pertinent to the running of the app
+ such as tab id, parent id, web contents. This data is serialized and stored
+ across restarts. This records if the serialization succeeds or fails.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.PersistedTabData.Storage.Delete.File"
+ enum="BooleanSuccess" expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ FilePersistedTabData storage stores serialized PersistedTabData (metadata
+ persisted across restarts) in a file. This metric records if a delete was
+ successful or unsuccessful.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.PersistedTabData.Storage.Exists.File"
+ enum="BooleanSuccess" expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ FilePersistedTabData storage stores serialized PersistedTabData (metadata
+ persisted across restarts) in a file. This metric records if a delete
+ operation was found to have the file not existing.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.PersistedTabData.Storage.Restore.File"
+ enum="BooleanSuccess" expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ FilePersistedTabData storage stores serialized PersistedTabData (metadata
+ persisted across restarts) in a file. This metric records if a restore was
+ successful or unsuccessful.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.PersistedTabData.Storage.Save.File" enum="BooleanSuccess"
+ expires_after="2021-03-25">
+ <owner>yusufo@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ FilePersistedTabData storage stores serialized PersistedTabData (metadata
+ persisted across restarts) in a file. This metric records if a save was
+ successful or unsuccessful.
+ </summary>
+</histogram>
+
<histogram name="Tabs.SadTab.CrashCreated" units="tabs"
expires_after="2021-06-01">
<owner>sonnyrao@chromium.org</owner>
@@ -176144,8 +181497,28 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Tabs.SavedTabLoadTime.{SavedTabMethod}.{SavedTabLoadResult}"
+ units="ms" expires_after="2021-08-26">
+ <owner>davidjm@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
+ <owner>dtrainor@chromium.org</owner>
+ <owner>yusufo@chromium.org</owner>
+ <summary>
+ Records load time of a Tab using {SavedTabMethod} storage and whether the
+ {SavedTabLoadResult}
+ </summary>
+ <token key="SavedTabMethod">
+ <variant name="CriticalPersistedTabData" label="CriticalPersistedTabData"/>
+ <variant name="TabState" label="TabState"/>
+ </token>
+ <token key="SavedTabLoadResult">
+ <variant name="Exists" label="Exists"/>
+ <variant name="Null" label="Null"/>
+ </token>
+</histogram>
+
<histogram name="Tabs.ScrubbedInInterval.KeyPress" units="tabs"
- expires_after="2020-08-01">
+ expires_after="2020-10-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -176157,7 +181530,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.ScrubbedInInterval.MousePress" units="tabs"
- expires_after="2020-08-01">
+ expires_after="2020-10-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -176311,6 +181684,10 @@ should be kept until we use this API. -->
<histogram name="Tabs.Suggestions.Close.NumSuggestionsChanged" units="count"
expires_after="2020-11-01">
+ <obsolete>
+ Removed as of 07/2020. Rename to
+ Tabs.Suggestions.NumSuggestionsChanged.Closing.
+ </obsolete>
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
@@ -176325,6 +181702,27 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram base="true" name="Tabs.Suggestions.NumSuggestionsChanged"
+ units="count" expires_after="2020-11-01">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <owner>meiliang@chromium.org</owner>
+ <summary>
+ The user is presented with recommendations on which Tabs they could take the
+ suggested action. The user has the option to: 1) Remove a Tab from the
+ recommendation 2) Add a Tab which wasn't in the recommendation to the
+ recommendation.
+
+ This metric records the sum of the number of times the user does 1) or 2)
+ and is a measure of how useful the recommendation is. This metric is
+ recorded after the user accepts a recommendation - potentially with edits by
+ performing 1) or 2).
+
+ Note: Adding and removing the same Tab, or vice versa, would be counted as
+ 0.
+ </summary>
+</histogram>
+
<histogram name="Tabs.SwitchFromCloseLatency" units="ms" expires_after="M88">
<owner>dtrainor@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -176419,7 +181817,9 @@ should be kept until we use this API. -->
</details>
</histogram>
-<histogram name="Tabs.TabCountPerLoad" units="tabs" expires_after="M85">
+<histogram name="Tabs.TabCountPerLoad" units="tabs" expires_after="2021-07-31">
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<owner>sbirch@google.com</owner>
<summary>
The number of tabs open in all browsers (counting app-mode windows) when a
@@ -176433,8 +181833,10 @@ should be kept until we use this API. -->
</details>
</histogram>
-<histogram name="Tabs.TabCountPerWindow" units="tabs" expires_after="M90">
- <owner>pkasting@chromium.org</owner>
+<histogram name="Tabs.TabCountPerWindow" units="tabs"
+ expires_after="2021-07-31">
+ <owner>mpearson@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs open per window (counting app-mode windows) when a load
completes.
@@ -176462,6 +181864,121 @@ should be kept until we use this API. -->
</details>
</histogram>
+<histogram name="Tabs.TabSearch.CloseAction" enum="TabSearchCloseActions"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search for and switch to
+ their desired tabs. The Tab Search UI is shown in a bubble anchored to an
+ element of the UI in the browser window.
+
+ The bubble is dismissed when it loses focus or the escape key is pressed.
+ This metric tracks if the UI bubble was dismissed as a result of an action
+ taken from within the UI (such as switching to an open tab) or dismissed
+ without direct interaction with the Tab Search UI.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.NumTabsClosedPerInstance" units="tabs"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search their browsers
+ for their desired tabs and close any currently open tabs. This records the
+ number of tabs closed from a single instance of the UI (the number of tabs
+ closed from within Tab Search in the time between when the UI is open and
+ when it is closed).
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.NumTabsOnOpen" units="tabs" expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search their browsers
+ for their desired tabs. It can be opened and closed. This records the number
+ of tabs there are in the payload Tab Search is sent when it is first opened.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.NumWindowsOnOpen" units="windows"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search their browsers
+ for their desired tabs. It can be opened and closed. This records the number
+ of windows there are in the payload Tab Search is sent when it is first
+ opened.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.WebUI.InitialTabsRenderTime" units="ms"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Records the time taken to load the Tab Search WebUI and render (at least)
+ the initial list of tabs. This is roughly equivalent to 'time to first
+ meaningful paint' for the Tab Search UI.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.WebUI.LoadCompletedTime" units="ms"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ The amount of time between the render frame host StartProvisionalLoad event
+ and the render frame DocumentOnLoadCompleted event for the Tab Search WebUI
+ page.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.WebUI.LoadDocumentTime" units="ms"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ The amount of time between the render frame host StartProvisionalLoad and
+ DidFinishDocumentLoad events for the Tab Search WebUI page.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.WebUI.TabSwitchAction"
+ enum="TabSearchTabSwitchAction" expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search their browsers
+ for and switch to their desired tabs. This records whether the user used Tab
+ Search to switch to a tab from a filtered search results list or the default
+ unfiltered list.
+ </summary>
+</histogram>
+
+<histogram name="Tabs.TabSearch.WindowDisplayedDuration" units="ms"
+ expires_after="M90">
+ <owner>tluk@chromium.org</owner>
+ <owner>robliao@chromium.org</owner>
+ <summary>
+ Tab Search is a feature that allows users to better search their browsers
+ for their desired tabs. It can be opened and closed. This records the amount
+ of time between when a Tab Search bubble is opened and when it is closed.
+
+ The Tab Search UI is a bubble anchored to an element within a browser window
+ and is closed if the user switches to a tab, presses the escape key or
+ performs an action to return focus to the hosting window. The Tab Search UI
+ bubble will also close if the hosting browser window is closed or crashes.
+
+ Users may leave the bubble open for long periods of time without directly
+ interacting with the UI which could result in a long tail of displayed
+ durations.
+ </summary>
+</histogram>
+
<histogram name="Tabs.TabsStatsDailyEventInterval"
enum="DailyEventIntervalType" expires_after="M77">
<owner>sebmarchand@chromium.org</owner>
@@ -176993,6 +182510,9 @@ should be kept until we use this API. -->
<histogram name="TerminalSystemAppFrame.WrenchMenu.MenuAction"
enum="WrenchMenuAction" expires_after="2020-09-01">
+ <obsolete>
+ Removed 07/2020.
+ </obsolete>
<owner>alancutter@chromium.org</owner>
<owner>calamity@chromium.org</owner>
<owner>joelhockey@chromium.org</owner>
@@ -177180,7 +182700,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Event" enum="TextToSpeechEvent"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<summary>
Events fired by the text-to-speech engine when speaking an utterance.
@@ -177216,7 +182736,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.FromExtensionAPI"
- enum="TextToSpeechFromExtensionAPI" expires_after="M85">
+ enum="TextToSpeechFromExtensionAPI" expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177235,7 +182755,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.HasLang" enum="TextToSpeechHasLang"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177245,7 +182765,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.HasPitch" enum="TextToSpeechHasPitch"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177255,7 +182775,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.HasRate" enum="TextToSpeechHasRate"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177265,7 +182785,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.HasVoiceName"
- enum="TextToSpeechHasVoiceName" expires_after="M85">
+ enum="TextToSpeechHasVoiceName" expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177275,7 +182795,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.HasVolume" enum="TextToSpeechHasVolume"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177285,7 +182805,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.Native" enum="TextToSpeechNative"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177296,7 +182816,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TextToSpeech.Utterance.TextLength" units="bytes"
- expires_after="M85">
+ expires_after="M89">
<owner>dmazzoni@chromium.org</owner>
<owner>katie@chromium.org</owner>
<summary>
@@ -177602,6 +183122,9 @@ should be kept until we use this API. -->
<histogram base="true" name="ThreadPool.NumActiveWorkers" units="workers"
expires_after="M86">
+ <obsolete>
+ Removed 7/2020. Not used in active investigations.
+ </obsolete>
<owner>etiennep@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
@@ -177666,6 +183189,9 @@ should be kept until we use this API. -->
<histogram base="true" name="ThreadPool.NumWorkers" units="workers"
expires_after="M86">
+ <obsolete>
+ Removed 7/2020. Not used in active investigations.
+ </obsolete>
<owner>etiennep@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
@@ -177748,7 +183274,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Thumbnails.CopyFromSurfaceTime" units="ms" expires_after="M86">
+<histogram name="Thumbnails.CopyFromSurfaceTime" units="ms" expires_after="M90">
<owner>dfried@chromium.org</owner>
<owner>pbos@chromium.org</owner>
<summary>
@@ -177779,7 +183305,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Thumbnails.ProcessBitmapTime" units="ms" expires_after="M86">
+<histogram name="Thumbnails.ProcessBitmapTime" units="ms" expires_after="M90">
<owner>dfried@chromium.org</owner>
<owner>pbos@chromium.org</owner>
<summary>
@@ -178011,21 +183537,23 @@ should be kept until we use this API. -->
<histogram name="TopSites.NumberOfApplyBlacklist" units="units"
expires_after="2018-08-30">
<obsolete>
- Long removed.
+ Removed in M86.
</obsolete>
<owner>alemate@chromium.org</owner>
- <summary>The number of times TopSitesImpl::ApplyBlacklist is called.</summary>
+ <summary>
+ The number of times TopSitesImpl::ApplyBlockedUrls is called.
+ </summary>
</histogram>
<histogram name="TopSites.NumberOfBlacklistedItems" units="units"
expires_after="2018-08-30">
<obsolete>
- Long removed.
+ Removed in M86.
</obsolete>
<owner>alemate@chromium.org</owner>
<summary>
- The number of items in the user Most Visited blacklist every time
- TopSitesImpl::ApplyBlacklist is called.
+ The number of urls blocked in TopSites. Logged every time
+ TopSitesImpl::ApplyBlockedUrls is called.
</summary>
</histogram>
@@ -178117,20 +183645,23 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Touchpad.NaturalScroll.Changed" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>Tracks touchpad natural scroll setting changes by the user.</summary>
</histogram>
<histogram name="Touchpad.NaturalScroll.Started" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>Tracks touchpad natural scroll setting on startup.</summary>
</histogram>
<histogram name="Touchpad.PointerSensitivity.Changed" enum="PointerSensitivity"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>
Tracks touchpad sensitivity setting changes by the user. This replaces the
old Touchpad.Sensitivity.Changed metric.
@@ -178138,8 +183669,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Touchpad.PointerSensitivity.Started" enum="PointerSensitivity"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>
Tracks touchpad sensitivity setting on startup. This replaces the old
Touchpad.Sensitivity.Started metric.
@@ -178183,27 +183715,31 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Touchpad.TapDragging.Changed" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>Tracks touchpad TapDragging setting changes by the user.</summary>
</histogram>
<histogram name="Touchpad.TapDragging.Started" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>Tracks touchpad TapDragging setting on startup.</summary>
</histogram>
<histogram name="Touchpad.TapToClick.Changed" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
<summary>Tracks touchpad TapToClick setting changes by the user.</summary>
</histogram>
<histogram name="Touchpad.TapToClick.Started" enum="BooleanEnabled"
- expires_after="M85">
- <owner>jhawkins@chromium.org</owner>
- <summary>Tracks touchpad TapToClick setting on startup.</summary>
+ expires_after="2021-07-15">
+ <owner>zentaro@chromium.org</owner>
+ <owner>cros-peripherals@google.com</owner>
+ <summary>Tracks touchpad TapToClick setting changes by the user.</summary>
</histogram>
<histogram name="Touchpad.ThreeFingerSwipe.Changed" enum="BooleanEnabled"
@@ -178224,6 +183760,7 @@ should be kept until we use this API. -->
<histogram name="TouchScreen.MissedTOUCHEVENTF_UP" enum="BooleanHit"
expires_after="M77">
+ <owner>nzolghadr@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
The touch device driver failed to send a TOUCHEVENTF_UP, and chromium
@@ -178272,7 +183809,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.FinalizationDisallowedReason"
- enum="TracingFinalizationDisallowedReason" expires_after="2020-11-15">
+ enum="TracingFinalizationDisallowedReason" expires_after="2021-01-17">
<owner>ssid@chromium.org</owner>
<summary>
Reason why background tracing finalization was not allowed. Also see
@@ -178282,7 +183819,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.FinalizingTraceSizeInKB" units="KB"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>oysteine@chromium.org</owner>
<summary>
The size, in kilobytes, of a finalized trace ready to be uploaded.
@@ -178308,7 +183845,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.ScenarioState"
- enum="BackgroundTracingState" expires_after="2020-12-06">
+ enum="BackgroundTracingState" expires_after="2021-02-07">
<owner>oysteine@chromium.org</owner>
<summary>
Records state of the Background Tracing system, from when scenarios are
@@ -178317,7 +183854,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.SharedBufferIsValid" enum="BooleanSuccess"
- expires_after="M86">
+ expires_after="2021-07-17">
<owner>eseckler@chromium.org</owner>
<owner>tracing@chromium.org</owner>
<summary>
@@ -178412,8 +183949,8 @@ should be kept until we use this API. -->
<histogram name="Translate.AcceptLanguages.CanBeAcceptDuration" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>googleo@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the TranslateAcceptLanguages to decide if a given language is
available as Accept-Languages.
@@ -178421,9 +183958,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.AlwaysTranslateLang" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the always translate option was selected in the
translate infobar.
@@ -178431,16 +183968,16 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.BubbleUiEvent" enum="TranslateBubbleUiEvent"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>groby@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>Tracks UI events related to the translate bubble.</summary>
</histogram>
-<histogram name="Translate.CaptureText" units="ms" expires_after="M86">
- <owner>chrome-language@google.com</owner>
- <owner>dougarnett@google.com</owner>
+<histogram name="Translate.CaptureText" units="ms" expires_after="M88">
+ <owner>sclittle@google.com</owner>
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The time spent capturing plain text from the DOM. Pre sub frame translation
support (this includes before M83), this is reported by
@@ -178471,9 +184008,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CLD3.LanguageDetected" enum="CLD3LanguageCode"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Language of the input page detected by CLD3. This information is logged on
every page load.
@@ -178481,9 +184018,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CLD3.LanguagePercentage" units="%"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Percentage of the bytes that are associated with the most popular language
on the input page. Only recorded if the detection returned a
@@ -178492,16 +184029,16 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CompactInfobar.Event" enum="TranslateCompactUIEvent"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>Various user actions performed in the translate infobar.</summary>
</histogram>
<histogram name="Translate.CompactInfobar.Language.AlwaysTranslate"
- enum="CLD3LanguageCode" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="CLD3LanguageCode" expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the hashcode of the source language when always translate this
language option is clicked in the menu.
@@ -178509,18 +184046,18 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CompactInfobar.Language.MoreLanguages"
- enum="CLD3LanguageCode" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="CLD3LanguageCode" expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the hashcode of the language clicked on the more languages menu.
</summary>
</histogram>
<histogram name="Translate.CompactInfobar.Language.NeverTranslate"
- enum="CLD3LanguageCode" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="CLD3LanguageCode" expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the hashcode of the source language when never translate this
language option is clicked in the menu.
@@ -178528,9 +184065,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CompactInfobar.Language.PageNotIn"
- enum="CLD3LanguageCode" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="CLD3LanguageCode" expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the hashcode of the language clicked on the menu to indicate the
page is not in the selected language.
@@ -178539,17 +184076,17 @@ should be kept until we use this API. -->
<histogram name="Translate.CompactInfobar.Language.Translate"
enum="CLD3LanguageCode" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the hashcode of the language clicked on the infobar.
</summary>
</histogram>
<histogram name="Translate.CompactInfobar.TranslationsPerPage"
- units="translations" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ units="translations" expires_after="2021-01-31">
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Records the number of times a page is translated, every time the page is
translated. For instance on a page a) translation from A to B, we record
@@ -178568,9 +184105,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ContentLanguage" enum="TranslateLanguage"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
A page may provide a Content-Language HTTP header or a META tag. For each
page load, measures whether the Content-Language header exists and is valid.
@@ -178578,9 +184115,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslate" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the &quot;Nope&quot; (don't translate) or the infobar's
X button was clicked in the translate infobar.
@@ -178588,9 +184125,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslateCloseInfobar" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the translate infobar was closed by clicking the X
button without the user translating the page.
@@ -178598,9 +184135,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslateDismissUI" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the translate UI was closed without translating in the
way that the user doesn't deny translating explicityly, like pressing 'Nope'
@@ -178613,9 +184150,9 @@ should be kept until we use this API. -->
<histogram name="Translate.ExplicitLanguageAsk.Event"
enum="TranslateExplicitAskPromptEventType" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>yyushkina@google.com</owner>
<owner>anthonyvd@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The events (shown, saved, cancelled) happening in the Explicit Language Ask
prompt.
@@ -178624,9 +184161,9 @@ should be kept until we use this API. -->
<histogram name="Translate.ExplicitLanguageAsk.LanguageAdded"
enum="CLD3LanguageCode" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>yyushkina@google.com</owner>
<owner>anthonyvd@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The languages that were added to the Accept Languages list from the Explicit
Language Ask prompt.
@@ -178635,9 +184172,9 @@ should be kept until we use this API. -->
<histogram name="Translate.ExplicitLanguageAsk.LanguageRemoved"
enum="CLD3LanguageCode" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>yyushkina@google.com</owner>
<owner>anthonyvd@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The languages that were removed from the Accept Languages list from the
Explicit Language Ask prompt.
@@ -178649,9 +184186,9 @@ should be kept until we use this API. -->
<obsolete>
Removed as of 04/2020. No longer used for analysis.
</obsolete>
- <owner>chrome-language@google.com</owner>
<owner>anthonyvd@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Whether or not the backoff threshold for triggering Translate on UI-language
content is reached when the translation process is initiated.
@@ -178659,9 +184196,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.HrefHint.Status" enum="HrefTranslateStatus"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-02-07">
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
For Google navigations, the hrefTranslate hint may trigger a translation
automatically. If the hint is present on a Google navigation, record whether
@@ -178673,9 +184210,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.HtmlLang" enum="TranslateLanguage"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
A page may provide a lang attribute in html tag. For each page load,
measures whether the lang attribute exists and is valid.
@@ -178683,8 +184220,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.InfobarShown" enum="BooleanHit" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>anthonyvd@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the translate infobar was shown in the old translate UI
on Android. Only true is recorded.
@@ -178706,9 +184243,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.InitiationStatus.v2"
- enum="TranslateInitiationStatus" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="TranslateInitiationStatus" expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The reason why Chrome decided to perform the next action (e.g., to show
infobar, to translate a page without any prompting, and so on) when Chrome
@@ -178717,10 +184254,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.LanguageDetection.ContentLength" units="characters"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
- <owner>dougarnett@chromium.org</owner>
+ expires_after="2021-01-31">
+ <owner>sclittle@chromium.org</owner>
<owner>megjablon@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of characters of page content used for language detection.
</summary>
@@ -178749,8 +184286,8 @@ should be kept until we use this API. -->
<histogram name="Translate.LanguageDetectionTiming"
enum="TranslateLanguageDetectionTiming" expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>andrewhayden@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
For each page load, records whether language detection occurs on time or
gets deferred. If deferred language detection later completes, this is also
@@ -178761,8 +184298,8 @@ should be kept until we use this API. -->
<histogram name="Translate.LanguageDeterminedDuration" units="ms"
expires_after="2021-06-01">
- <owner>dougarnett@chromium.org</owner>
<owner>sclittle@chromium.org</owner>
+ <owner>megjablon@chromium.org</owner>
<owner>chrome-language@google.com</owner>
<summary>
Records the time from when a navigation finishes to when its page language
@@ -178773,9 +184310,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.LanguageSettingsIsShown" enum="BooleanShown"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Log everytime the language settings page is shown. This can be either user
visits chrome://settings/languages or user visits the advanced languages
@@ -178788,8 +184325,8 @@ should be kept until we use this API. -->
<histogram name="Translate.LanguageVerification"
enum="TranslateLanguageVerification" expires_after="M78">
- <owner>chrome-language@google.com</owner>
<owner>yyushkina@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
For each page load, measures whether the provided HTML language (i.e. the
page lang attribute if it exists, otherwise the header Content-Language
@@ -178805,8 +184342,8 @@ should be kept until we use this API. -->
<histogram name="Translate.LocalesOnDisabledByPrefs" enum="LanguageCode"
expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Logs the user locale when the Translate feature is disabled by the user.
This is recorded each time a webpage is loaded and prefs for translation is
@@ -178816,10 +184353,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.MobileMenuTranslate.Shown" enum="Boolean"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
<owner>frechette@chromium.org</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Whether the 'Translate' app menu entry is shown to the user. Emitted when
the app menu (three dots) is shown and a translation could be performed.
@@ -178827,9 +184364,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ModifyOriginalLang" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the original language in the translate infobar has been
changed.
@@ -178837,9 +184374,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ModifyTargetLang" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the target language in the translate infobar has been
changed.
@@ -178847,9 +184384,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.NeverTranslateLang" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the never translate option was selected in the translate
infobar.
@@ -178857,9 +184394,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.NeverTranslateSite" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the never translate site was selected in the translate
infobar.
@@ -178880,15 +184417,15 @@ should be kept until we use this API. -->
<histogram name="Translate.PageScheme" enum="TranslateScheme"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>Counts translation target page schemes.</summary>
</histogram>
<histogram name="Translate.Ranker.Model.Status" enum="RankerModelStatus"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Tracks the outcome of attempts to download a Translate Ranker Model.
</summary>
@@ -178896,8 +184433,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Model.Version" units="date stamp"
expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The date tamp (e.g., 20160916 -&gt; 15 Sept 2016) which denotes the
TranslateRankerModel's version.
@@ -178906,8 +184443,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.QueryResult" enum="BooleanAccepted"
expires_after="M85">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Whether the TranslateRanker accepts or denies to show the translation
prompt.
@@ -178916,8 +184453,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.CalculateScore" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the TranslateRanker to use the translate ranker model to
calculate a score for the translation, in ms.
@@ -178926,8 +184463,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.DownloadModel" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the Translate Ranker Model Loader to download its model from
the configured URL, in ms.
@@ -178936,8 +184473,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.ParseModel" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the Translate Ranker Model Loader to parse its model, in ms.
</summary>
@@ -178945,8 +184482,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.ReadModel" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the Translate Ranker Model Loader to read its model from
local storage (cache), in ms.
@@ -178955,8 +184492,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.ShouldOfferTranslation" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the TranslateRanker to decide if a given translation should
be offered or not, in ms. This includes the time taken to extract the
@@ -178967,8 +184504,8 @@ should be kept until we use this API. -->
<histogram name="Translate.Ranker.Timer.WriteModel" units="ms"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>rogerm@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Time taken for the Translate Ranker Model Loader to write its model to local
storage, in ms.
@@ -178977,8 +184514,8 @@ should be kept until we use this API. -->
<histogram name="Translate.ReportLanguageDetectionError" units="units"
expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the &quot;report this error&quot; of options menu is
selected in the translate infobar.
@@ -178986,9 +184523,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.RevertTranslation" units="units"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the show original button was clicked in the translate
infobar.
@@ -179000,8 +184537,8 @@ should be kept until we use this API. -->
<obsolete>
Removed 5/2013 by Translate.UndisplayableLanguage
</obsolete>
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the detected language is not supported by Translate
Element.
@@ -179035,9 +184572,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ShowErrorUI" enum="TranslateError"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Chrome Translate shows an error UI (infobar or bubble) when an error happens
on translation and the UI message depends on what kind of error happens.
@@ -179047,8 +184584,8 @@ should be kept until we use this API. -->
<histogram name="Translate.SimilarLanguageMatch" enum="BooleanMatched"
expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
This metrics is logged whenever a page is loaded. The logged value is
&quot;Mathced&quot; when the CLD-detected language differs from the page
@@ -179060,9 +184597,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.SourceLanguage" enum="CLD3LanguageCode"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of requests sent to the Translate server, grouped by source
language.
@@ -179070,9 +184607,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TargetLanguage" enum="CLD3LanguageCode"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>yyushkina@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of requests sent to the Translate server, grouped by target
language.
@@ -179080,9 +184617,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TargetLanguage.Origin"
- enum="TranslateTargetLanguageOrigin" expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ enum="TranslateTargetLanguageOrigin" expires_after="2021-01-31">
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
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
@@ -179091,8 +184628,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TimeToBeReady" units="ms" expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The time from injecting scripts for Chrome Translate to being ready to
perform translation.
@@ -179100,8 +184637,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TimeToLoad" units="ms" expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The time from injecting scripts for Chrome Translate to the finishing loads
of all depending libraries.
@@ -179109,15 +184646,15 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TimeToTranslate" units="ms" expires_after="M77">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>The time from starting translation to the completion.</summary>
</histogram>
<histogram name="Translate.Translate" enum="BooleanTranslate"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the translate button was clicked in the translate
infobar.
@@ -179125,10 +184662,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.Translate.AMPCacheURL" enum="BooleanTranslate"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
- <owner>dougarnett@google.com</owner>
+ expires_after="2021-01-31">
+ <owner>sclittle@google.com</owner>
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of times the translate button was clicked in the translate
infobar for a page that is likely an AMP Cache URL.
@@ -179136,10 +184673,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TranslateFrameCount" units="frames"
- expires_after="M86">
- <owner>chrome-language@google.com</owner>
- <owner>dougarnett@google.com</owner>
+ expires_after="M88">
+ <owner>sclittle@google.com</owner>
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The number of frames translated for a translated page (including the main
frame). This is recorded when sub frame translation is enabled.
@@ -179147,9 +184684,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TranslateSubframe.ErrorType" enum="TranslateError"
- expires_after="2020-12-01">
- <owner>dougarnett@google.com</owner>
+ expires_after="2021-01-31">
+ <owner>sclittle@google.com</owner>
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The error type for a failed sub frame translation (where the main frame was
successfully translated). This is recorded when sub frame translation is
@@ -179158,10 +184696,10 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TranslateSubframe.SuccessPercentage" units="%"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
- <owner>dougarnett@google.com</owner>
+ expires_after="2021-01-31">
+ <owner>sclittle@google.com</owner>
<owner>megjablon@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The percentage of sub frames that translated successfully for a translated
page (where the main frame was successfully translated). This is recorded
@@ -179171,8 +184709,8 @@ should be kept until we use this API. -->
<histogram name="Translate.UndisplayableLanguage" enum="LanguageCode"
expires_after="M81">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Logs an undisplayable language included in the language list sent by the
Translate server. The Translate server sends the list each time the user
@@ -179183,8 +184721,8 @@ should be kept until we use this API. -->
<histogram name="Translate.UnsupportedLanguageAtInitiation" enum="LanguageCode"
expires_after="M81">
- <owner>chrome-language@google.com</owner>
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
Logs an unsupported source language detected during initiation of the
Translate feature. This is reported when the language detector successfully
@@ -179195,9 +184733,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.UserActionDuration" units="ms"
- expires_after="2020-12-01">
- <owner>chrome-language@google.com</owner>
+ expires_after="2021-01-31">
<owner>kenjibaheux@google.com</owner>
+ <owner>chrome-language@google.com</owner>
<summary>
The time from a page content language being determined to user requesting
Chrome Translate.
@@ -179278,6 +184816,17 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="TrustedWebActivity.QualityEnforcementViolation"
+ enum="TrustedWebActivityQualityEnforcementViolationType"
+ expires_after="2020-12-31">
+ <owner>eirage@chromium.org</owner>
+ <owner>peconn@chromium.org</owner>
+ <summary>
+ When Trusted Web Activity launches or navigates to a site that violate the
+ quality criteria, records the violation type.
+ </summary>
+</histogram>
+
<histogram name="TrustedWebActivity.ShareTargetRequest"
enum="WebShareTargetMethod" expires_after="M88">
<owner>peconn@chromium.org</owner>
@@ -179392,7 +184941,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UI.DeviceScale" units="%" expires_after="2020-10-11">
+<histogram name="UI.DeviceScale" units="%" expires_after="2021-01-03">
<owner>bsep@chromium.org</owner>
<summary>
The device scales available on the system at startup. A system may report
@@ -179417,7 +184966,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.ActualLogUploadInterval" units="minutes"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179428,7 +184977,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.BuildAndStoreLogIsEmpty" enum="Boolean"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179453,7 +185002,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.ConsentObserver.Purge" enum="Boolean"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>bcwhite@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
@@ -179465,7 +185014,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Entries.Dropped" enum="UkmDataDroppedReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179475,7 +185024,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Entries.Dropped.ByEntryHash" enum="UkmEventNameHash"
- expires_after="2020-10-04">
+ expires_after="2021-02-07">
<owner>jwd@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179486,6 +185035,18 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="UKM.Entries.Recorded.ByEntryHash" enum="UkmEventNameHash"
+ expires_after="2021-03-01">
+ <owner>yrsun@chromium.org</owner>
+ <owner>ukm-team@google.com</owner>
+ <summary>
+ The hashed name of the UKM entry being recorded. The hash is the same hash
+ sent in the UKM log but truncated to 31 bits with &quot;event_hash &amp;
+ 0x7fffffff&quot;. Recorded when an entry is added and accepted by the UKM
+ recorder.
+ </summary>
+</histogram>
+
<histogram name="UKM.Entries.SerializedCount" units="units"
expires_after="2018-02-16">
<obsolete>
@@ -179497,14 +185058,14 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Entries.SerializedCount2" units="entries"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>Number of serialized UKM entries when storing a UKM log.</summary>
</histogram>
<histogram name="UKM.Entries.SerializedCountFCP" units="entries"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179515,7 +185076,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.InitSequence" enum="UmaInitSequence"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179527,7 +185088,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UKM.LogSize.OnSuccess" units="KB" expires_after="2020-12-06">
+<histogram name="UKM.LogSize.OnSuccess" units="KB" expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179537,7 +185098,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.LogUpload.Canceled.CellularConstraint"
- enum="BooleanCanceled" expires_after="2020-07-01">
+ enum="BooleanCanceled" expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179547,7 +185108,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.LogUpload.ResponseOrErrorCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-13">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-02-14">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179569,7 +185130,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.MigratedClientIdInt64ToUInt64" enum="BooleanMigrated"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>jwd@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
@@ -179581,14 +185142,14 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.PersistentLogRecall.Status"
- enum="PersistedLogsLogReadStatus" expires_after="2020-07-01">
+ enum="PersistedLogsLogReadStatus" expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>The status when loading UKM PersistedLogs from Prefs.</summary>
</histogram>
<histogram name="UKM.ResetReason" enum="UkmResetReason"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179598,7 +185159,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Sources.Dropped" enum="UkmDataDroppedReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179608,7 +185169,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Sources.KeptSourcesCount" units="sources"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179628,14 +185189,14 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Sources.SerializedCount2" units="sources"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>Number of serialized UKM sources when storing a UKM log.</summary>
</histogram>
<histogram name="UKM.Sources.UnmatchedSourcesCount" units="sources"
- expires_after="2020-07-01">
+ expires_after="2021-07-01">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179645,7 +185206,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.Sources.UnsentSourcesCount" units="sources"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179693,7 +185254,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.UnsentLogs.NumDropped" units="units"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179715,7 +185276,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.UserDemographics.Status" enum="UserDemographicsStatus"
- expires_after="2020-09-13">
+ expires_after="2020-07-01">
<owner>vincb@google.com</owner>
<owner>ukm-team@google.com</owner>
<summary>
@@ -179724,1444 +185285,6 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UMA.ActualLogUploadInterval" units="minutes"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The actual interval between log upload start and previous log upload
- finished within the same process. A value of 0 indicates there was no
- previous upload. Prior to M71, logging for this metric was broken.
- </summary>
-</histogram>
-
-<histogram name="UMA.AntiVirusMetricsProvider.Result"
- enum="AntiVirusMetricsProviderResult" expires_after="2020-03-08">
- <owner>wfh@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Records the result of the attempt to enumerate the installed AntiVirus on
- the machine. This is recorded once during metrics initialization.
- </summary>
-</histogram>
-
-<histogram name="UMA.CleanExitBeaconConsistency" enum="UmaCleanExitConsistency"
- expires_after="M85">
- <owner>siggi@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Reports the combined state of distinct clean exit beacons stored in Local
- State and the Windows registry. They are normally expected to be identical.
- </summary>
-</histogram>
-
-<histogram name="UMA.ClientIdBackupRecoveredWithAge" units="hours"
- expires_after="2020-10-25">
- <owner>gab@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Recorded when we are somehow missing the client ID stored in Local State yet
- are able to recover it from a backup location along with the backed up
- installation date. This report carries the age in hours of the recovered
- client id.
- </summary>
-</histogram>
-
-<histogram name="UMA.ClientIdMigrated" enum="BooleanMigrated"
- expires_after="2015-06-01">
- <obsolete>
- Removed in M45.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Recorded when the one-time UMA client id reset was performed (and the client
- id of this user was migrated).
- </summary>
-</histogram>
-
-<histogram name="UMA.CollectExternalEventsTime" units="ms"
- expires_after="2015-08-07">
- <obsolete>
- Removed as of August 2015. The histogram showed no unexpected slowness, and
- a profiler is a better tool for identifying any future issues.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The time to run the external metrics collection task (Chrome OS).
- </summary>
-</histogram>
-
-<histogram name="UMA.ComputeCurrentSigninStatus"
- enum="ComputeCurrentSigninStatus" expires_after="2016-06-14">
- <obsolete>
- Removed as of Jun 2016. The histogram was added for debugging purpose and is
- not needed anymore.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>yiyaoliu@chromium.org</owner>
- <summary>
- Records attempts to compute the current the signin status and error
- encountered when computing.
- </summary>
-</histogram>
-
-<histogram name="UMA.CreatePersistentHistogram.Result"
- enum="CreatePersistentHistogramResult" expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as the information has never shown any problems.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records attempts to create histograms in presistent space and any errors
- encountered when doing so.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpAsyncTaskDuration"
- units="ms" expires_after="M77">
- <obsolete>
- No longer useful or monitored, removed 2020-01-06.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Measures how much time it took to complete all async deferred startup tasks
- on the background thread. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpCompleteTime"
- units="ms" expires_after="M77">
- <obsolete>
- No longer useful or monitored, removed 2020-01-06.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Measures how much time since application was first in foreground till all
- deferred tasks are done. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDuration"
- units="ms" expires_after="M77">
- <obsolete>
- No longer useful or monitored, removed 2020-01-06.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Measures how much time it took to complete deferred startup tasks on the UI
- thread. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDurationAsync"
- units="ms" expires_after="2017-01-24">
- <obsolete>
- Removed 01/2017 for
- UMA.Debug.EnableCrashUpload.DeferredStartupAsyncTaskDuration.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time it took to complete async deferred startup tasks on
- the background thread. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpMaxTaskDuration"
- units="ms" expires_after="2020-02-16">
- <obsolete>
- No longer useful or monitored, removed 2020-01-06.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Measures the maximum amount of time a single deferred startup task took.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime" units="ms"
- expires_after="2016-08-08">
- <obsolete>
- Replaced by UMA.Debug.EnableCrashUpload.DeferredStartUptime2
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since start up it took for onDeferredStartup() to be
- called, which schedules enablePotentialCrashUploading() to be executed on an
- async task. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime2" units="ms"
- expires_after="2017-06-28">
- <obsolete>
- Removed 2017. No longer tracked.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since application was first in foreground till
- deferred tasks are initialized and queued on the idle handler. Only logged
- on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime"
- units="ms" expires_after="2016-08-08">
- <obsolete>
- Replaced by UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since start up it took before ChromeActivity's
- postDeferredStartupIfNeeded() was called. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2"
- units="ms" expires_after="2017-06-28">
- <obsolete>
- Removed 2017. No longer tracked.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since application was first in foreground till
- ChromeActivity's postDeferredStartupIfNeeded() was called exactly once. Only
- logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.Uptime" units="ms"
- expires_after="2016-05-16">
- <obsolete>
- Replaced by UMA.Debug.EnableCrashUpload.Uptime2
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since start up it took before crash reporting was
- enabled via enablePotentialCrashUploading() as part of deferred start up.
- Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.Uptime2" units="ms"
- expires_after="2016-08-08">
- <obsolete>
- Replaced by UMA.Debug.EnableCrashUpload.Uptime3
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since start up it took before crash reporting was
- enabled via enablePotentialCrashUploading() as part of deferred start up.
- Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Debug.EnableCrashUpload.Uptime3" units="ms"
- expires_after="2017-06-28">
- <obsolete>
- Removed 2017. No longer tracked.
- </obsolete>
- <owner>wnwen@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Measures how much time since application was first in foreground till crash
- reporting was enabled as part of deferred start up. Only logged on Android.
- </summary>
-</histogram>
-
-<histogram name="UMA.Discarded Log Events" units="units"
- expires_after="2017-06-05">
- <obsolete>
- Replaced by UMA.Truncate* metrics.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <summary>
- The number of events that would be discarded at log transmission time
- because the event count was already too large. Note that this doesn't
- measure actual discards - in case the UMAThrottleEvents feature is disabled,
- the discards won't occur.
- </summary>
-</histogram>
-
-<histogram name="UMA.EnrollmentStatus" enum="EnrollmentStatus"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>kaznacheev@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logs the device enrollment status for Chrome OS device. Logged with every
- UMA upload.
- </summary>
-</histogram>
-
-<histogram name="UMA.EntropySourceType" enum="UmaEntropySourceType"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logs the entropy source type that was used for field trial randomization.
- Logged once at each start up.
- </summary>
-</histogram>
-
-<histogram name="UMA.ExternalExperiment.GroupCount" units="groups"
- expires_after="2018-08-30">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logged on Android whenever an external experiment is registered. The logged
- value is the number of groups in the experiment. This will not be logged at
- all if there are no external experiments, but will be logged on group
- transitions (e.g. when going from 1 to 0 groups).
- </summary>
-</histogram>
-
-<histogram name="UMA.FieldTrialAllocator.Size" units="bytes"
- expires_after="2016-11-09">
- <obsolete>
- Removed 11/2016 for UMA.FieldTrialAllocator.Used
- </obsolete>
- <owner>lawrencewu@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Size, before padding, of objects allocated from persistent memory in the
- browser process for field trials. Updated on each subprocess launch.
- </summary>
-</histogram>
-
-<histogram name="UMA.FieldTrialsEnabledBenchmarking" enum="BooleanUsage"
- expires_after="2014-10-15">
- <obsolete>
- Removed 2012. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Log whether the --enable-benchmarking flag was set, which causes field
- trials to only use the default group.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.AccessResult"
- enum="FileMetricsProviderAccessResult" expires_after="M87">
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Records attempts to access a file for the purpose of extracting metrics.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.DeletedFiles" units="units"
- expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as the information it provides is no longer useful.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- The number of old metrics files for which a delete was attempted. This is
- logged once with each upload operation. Values greater than 1 indicate that
- the files are not deletable by the browser and must be cleaned up by
- whatever process is creating them.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.DirectoryFiles" units="units"
- expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as no problems were ever indicated.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- The number of metrics files in a directory that need to be uploaded. This is
- logged once with each upload operation.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedFileAge"
- units="minutes" expires_after="2017-07-08">
- <obsolete>
- Removed 07/2017. Was only for short-term analysis. About 95% of dropped
- files were less than 1 day old.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records the last-modified age of a file that was dropped for lack of an
- embedded profile.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedHistogramCount"
- units="units" expires_after="M75">
- <obsolete>
- Removed 2019/04 with the resolution of https://crbug.com/695880
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records the number of histograms present in a file that was dropped for lack
- of an embedded profile.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.RecordTime" units="ms"
- expires_after="M71">
- <obsolete>
- Removed 2019/04 as times are small, consistent, and now on a background
- thread.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Tracks the time used to record all histograms from a file with an embedded
- profile.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.EmbeddedProfileResult"
- enum="FileMetricsProviderEmbeddedProfileResult" expires_after="M75">
- <obsolete>
- Removed 2019/04 with the resolution of https://crbug.com/695880
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records attempts to upload metrics from files with embedded system profiles.
- Counts are not necessarily mutually exclusive.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.Happening"
- enum="FileMetricsProviderHappening" expires_after="2018-02-09">
- <obsolete>
- This metrics was to provide information for crbug/760317 which has been
- resolved. Removed February, 2018.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records various happenings within the FileMetricsProvider for debugging
- purposes.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.InitialAccessResult"
- enum="FileMetricsProviderAccessResult" expires_after="M87">
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Records attempts to access a file for the purpose of extracting initial
- stability metrics.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.InitialCheckTime.File" units="ms"
- expires_after="M77">
- <obsolete>
- Access times are consistently on the order of a few ms. Removed 2019/06.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent checking and mapping an initial metrics
- file on disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.InitialCheckTime.Total" units="ms"
- expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as the information it provides is no longer useful.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent checking and mapping initial metrics
- from all files on disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.File" units="ms"
- expires_after="M80">
- <obsolete>
- Access times are consistently on the order of a few ms. Removed 2019/06.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent collecting initial stability metrics
- from a file on disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.Total" units="ms"
- expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as the information it provides is no longer useful.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent collecting initial stability metrics
- from all files on disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.SnapshotTime.File" units="ms"
- expires_after="M80">
- <obsolete>
- Access times are consistently on the order of a few ms. Removed 2019/06.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent collecting metrics from a file on disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.FileMetricsProvider.SnapshotTime.Total" units="ms"
- expires_after="2018-04-12">
- <obsolete>
- Removed April, 2018 as the information it provides is no longer useful.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent collecting metrics from all files on
- disk.
- </summary>
-</histogram>
-
-<histogram name="UMA.GeneratedLowEntropySource" enum="Boolean"
- expires_after="2015-08-07">
- <obsolete>
- Removed as of August 2015. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- For each attempt to generate the low entropy source, log whether or not the
- load required generating a new low entropy source.
- </summary>
-</histogram>
-
-<histogram name="UMA.Histograms.Activity" enum="HistogramActivityReport"
- expires_after="2017-10-16">
- <obsolete>
- Removed as of October 2017. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Type and flags of every histogram created plus other activities. Counts are
- not mutually-exclusive except for the different types.
- </summary>
-</histogram>
-
-<histogram name="UMA.InitSequence" enum="UmaInitSequence"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logged during MetricsService initialization whether the init task or the
- initial log timer completed first. The expectation is the vast majority of
- the time, the init task should complete first. If metrics show otherwise,
- then it may indicate there's a bug in the MetricsService init sequence and
- that it should be investigated.
- </summary>
-</histogram>
-
-<histogram name="UMA.IsClonedInstall" enum="BooleanCloned"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- This is logged with a value of true in every log when the UMA client code
- has detected that this is a potentially cloned install and has set the pref
- to reset its UMA client id on the next startup.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.DroppedHistogramSampleCount"
- units="samples" expires_after="2021-01-16">
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histogram samples that were not recorded when flushing due to
- cache size limits in the Java in-memory cache. There are separate limits on
- the number of cached histograms, and the number of samples in a histogram.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.DroppedSampleCount" units="samples"
- expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18. Renamed to
- UMA.JavaCachingRecorder.DroppedHistogramSampleCount and reports also
- histogram samples dropped due to a limit of the number of cached histograms.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histogram samples that were not recorded when flushing due to a
- per-histogram sample count limit in the Java in-memory cache.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.DroppedUserActionCount"
- units="samples" expires_after="2021-01-16">
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of user actions that were not recorded when flushing due to a cache
- size limit in Java the in-memory cache.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.FlushedHistogramCount"
- units="histograms" expires_after="2021-01-16">
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histograms recorded when flushing the Java in-memory cache.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.FullHistogramCount" units="histograms"
- expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18 to reduce the number of histograms emitted by the
- cache.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histograms for which not all samples may have been recorded when
- flushing the Java in-memory cache due to a per-histogram sample count limit.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.HistogramLimitDroppedSampleCount"
- units="samples" expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18 to reduce the number of histograms emitted by the
- cache. UMA.JavaCachingRecorder.DroppedHistogramSampleCount includes
- histogram samples that were reported in this histogram.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of samples that were not recorded when flushing the Java in-memory
- cache due to a histogram count limit.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.InputHistogramSampleCount"
- units="samples" expires_after="2021-01-16">
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histogram samples seen by the time the Java in-memory cache was
- flushed. This includes samples counted in DroppedHistogramSampleCount.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.InputSampleCount" units="samples"
- expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18. Renamed to
- UMA.JavaCachingRecorder.InputHistogramSampleCount.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of histogram samples seen by the time the Java in-memory cache was
- flushed. This is a sum of DroppedSampleCount and FlushedHistogramCount.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.InputUserActionCount" units="samples"
- expires_after="2021-01-16">
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of user actions seen by the time the in-memory cache was flushed.
- This includes actions counted in DroppedUserActionCount.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.RemainingHistogramLimit"
- units="histograms" expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18 to reduce the number of histograms emitted by the
- cache.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The remaining histogram count limit when flushing in the Java in-memory
- cache.
- </summary>
-</histogram>
-
-<histogram name="UMA.JavaCachingRecorder.RemainingSampleLimit"
- units="histograms" expires_after="2020-03-31">
- <obsolete>
- Removed on 2020-03-18 to reduce the number of histograms emitted by the
- cache.
- </obsolete>
- <owner>bttk@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The smallest remaining sample count limit in metrics flushed from the Java
- in-memory cache.
- </summary>
-</histogram>
-
-<histogram name="UMA.Large Accumulated Log Not Persisted" units="bytes"
- expires_after="2018-08-30">
- <obsolete>
- Removed 2020-04
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of bytes in an excessively large log that was discarded at shutdown
- instead of being saved to disk to retry during next chrome run.
- </summary>
-</histogram>
-
-<histogram name="UMA.Large Rejected Log was Discarded" units="bytes"
- expires_after="2018-08-30">
- <obsolete>
- Removed 2020-04
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Number of bytes in a log was was rejected by server, and then discarded.
- </summary>
-</histogram>
-
-<histogram name="UMA.LoadLogsTime" units="ms" expires_after="2015-08-05">
- <obsolete>
- Removed as of August 2015. The histograms showed no unexpected slowness, and
- a profiler is a better tool for identifying any future issues.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The time spent to load (de-serialize) unsent logs from local state, recorded
- during the MetricsService startup sequence.
- </summary>
-</histogram>
-
-<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Posix"
- enum="PopularOSErrno" expires_after="M85">
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Failures, as reported in errno, encountered while allocating local
- persistent memory under Posix.
- </summary>
-</histogram>
-
-<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Win"
- enum="WinGetLastError" expires_after="M85">
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Failures, as reported by GetLastError(), encountered while allocating local
- persistent memory under Windows.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogLoadComplete called" units="units"
- expires_after="2016-04-09">
- <obsolete>
- No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Simple counter of the number of times LogLoadComplete was called (bug
- demonstration, as we're called more often than once per page load :-/ )
- </summary>
-</histogram>
-
-<histogram name="UMA.LogSize.OnSuccess" units="KB" expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Size in kilobytes (after compression) of an uploaded UMA log. Recorded after
- a successful UMA upload.
-
- Note: A related metric (UMA.ProtoCompressionRatio) logs the compression
- ratio.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogUpload.Canceled.CellularConstraint"
- enum="BooleanCanceled" expires_after="2020-11-01">
- <owner>holte@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logs whether a log was not uploaded due to cellular log throttling logic.
- Android only.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogUpload.ConnetionType" enum="NetworkConnectionType"
- expires_after="2016-04-11">
- <obsolete>
- Used for analyzing UMA log uploads on cellular connection, but necessary
- after the analysis is finished.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>gayane@chromium.org</owner>
- <summary>
- The network connection type for each successful metrics log upload.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogUpload.ResponseOrErrorCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-04-15">
- <owner>holte@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- HTTP response codes and network errors encountered by UMA when attempting to
- upload logs to the server through an HTTPS connection.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogUpload.ResponseOrErrorCode.HTTP"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-04-15">
- <owner>holte@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- HTTP response codes and network errors encountered by UMA when attempting to
- upload logs to the server through an HTTP connection.
- </summary>
-</histogram>
-
-<histogram name="UMA.LogUploader.UploadSize" units="bytes"
- expires_after="2019-01-22">
- <obsolete>
- Removed in favor of UMA.LogSize.OnSuccess
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>holte@chromium.org</owner>
- <summary>
- Reports total upload length in bytes when the UMA service type is used.
- </summary>
-</histogram>
-
-<histogram name="UMA.LowEntropySource3Value" units="units"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>mpearson@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Distribution of the new low entropy source value. Corresponds to
- metrics::prefs::kMetricsLowEntropySource. Used for field trial
- randomization. Recorded on startup.
- </summary>
-</histogram>
-
-<histogram name="UMA.LowEntropySourceValue" units="units"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>mpearson@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Distribution of the old low entropy source value. Corresponds to
- metrics::prefs::kMetricsOldLowEntropySource. Used for field trial
- randomization on clients that already have it, but not created on new
- installs. Recorded on startup.
- </summary>
-</histogram>
-
-<histogram name="UMA.MachineIdState" enum="UmaMachineIdState"
- expires_after="M77">
- <owner>jwd@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Tracks if the machine ID is generated successfully and if it changes from
- one run to the next. The machine ID is a 24-bit hash of machine
- characteristics. It is expected to change if an install of Chrome is copied
- to multiple machines. This check happens once per browser startup.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsIDsReset" enum="BooleanHit"
- expires_after="2020-12-06">
- <owner>jwd@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- A count of the number of times the metrics ids (client id and low entropy
- source) have been reset due to a cloned install being detected.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsReporting.Toggle" enum="MetricsReportingChange"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Logged when user successfully enables/disables MetricsReporting or when an
- error occurs.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsService.DeletedDirectorySize.Failure" units="KB"
- expires_after="2018-02-09">
- <obsolete>
- This metrics was to provide information for crbug/760317 which has been
- resolved. Removed February, 2018.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records the size of the metrics directory size, after failing to be deleted.
- This is a temporary metric that will be removed in M63 or M64.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsService.DeletedDirectorySize.Success" units="KB"
- expires_after="2018-02-09">
- <obsolete>
- This metrics was to provide information for crbug/760317 which has been
- resolved. Removed February, 2018.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records the size of the metrics directory size, after being successfully
- deleted. This should always be zero unless there is a bug in the return
- code. This is a temporary metric that will be removed in M63 or M64.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsService.Initialize" enum="Boolean"
- expires_after="2020-12-01">
- <owner>rkaplow@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Records true during the initialization of the metrics state, right at the
- time of logging a count to launch_count in stability prefs.
- </summary>
-</histogram>
-
-<histogram name="UMA.MetricsService.RecordCurrentHistograms.Time" units="ms"
- expires_after="2018-02-07">
- <obsolete>
- Removed February, 2018 because persistent metrics are fully launched with no
- observable change in operation time.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- Records how much wall time was spent merging, taking snapshots, and
- recording histograms for reporting to UMA.
- </summary>
-</histogram>
-
-<histogram name="UMA.NegativeSamples.Histogram" enum="HistogramNameHash"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The lower 32 bits of the ID of the histogram that went negative.
- </summary>
-</histogram>
-
-<histogram name="UMA.NegativeSamples.Increment" units="increment"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The amount of increment that caused a sample count to become negative.
- </summary>
-</histogram>
-
-<histogram name="UMA.NegativeSamples.Reason" enum="NegativeSampleReason"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Reasons why a negative sample count would have been created. Currently, only
- negative samples from persistent sparse histograms are being checked.
- </summary>
-</histogram>
-
-<histogram name="UMA.Perf.GetData" enum="GetPerfDataOutcome"
- expires_after="2019-01-14">
- <obsolete>
- Removed 01/2019 in b/110205489 being split into ChromeOS.CWP.CollectPerf and
- ChromeOS.CWP.UploadPerf.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- A count of successes and various failure modes related to collecting and
- processing performance data obtained through &quot;perf&quot; on Chrome OS.
- </summary>
-</histogram>
-
-<histogram base="true" name="UMA.PersistentAllocator.Allocs" units="bytes"
- expires_after="2017-02-16">
- <obsolete>
- Removed 2/2017 for Issue 689315 which indicated they weren't being used.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Size, before padding, of objects allocated from persistent memory. This is
- updated with every allocation.
- </summary>
-</histogram>
-
-<histogram base="true" name="UMA.PersistentAllocator.Errors"
- enum="PersistentAllocatorErrors" expires_after="M85">
- <owner>bcwhite@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Errors detected by the persistent memory allocator. These are set when they
- occur.
- </summary>
-</histogram>
-
-<histogram base="true" name="UMA.PersistentAllocator.UsedPct" units="%"
- expires_after="M85">
- <owner>bcwhite@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Percentage of persistent memory segment that has been allocated. This is
- updated only once per reporting cycle.
- </summary>
-</histogram>
-
-<histogram name="UMA.PersistentHistograms.InitResult"
- enum="PersistentHistogramsInitResult" expires_after="2020-12-20">
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- A count of successes and failures for the creation of various forms of
- persistent memory used to store histograms.
- </summary>
-</histogram>
-
-<histogram name="UMA.PersistentHistograms.TmpRemovals" units="units"
- expires_after="M77">
- <obsolete>
- Data showed many files being deleted during rollout and then tapering off to
- near zero. Removed 2019/07.
- </obsolete>
- <owner>bcwhite@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Number of old .tmp files of the kind that Windows creates and leaves around
- when trying to rename a file to another one that already exists. See
- https://crbug.com/934164
- </summary>
-</histogram>
-
-<histogram name="UMA.PrimaryUserType" enum="UserType"
- expires_after="2020-12-06">
- <owner>michaelpg@chromium.org</owner>
- <owner>yilkal@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- This UMA logs the primary user type per metrics recording interval.
- </summary>
-</histogram>
-
-<histogram name="UMA.ProfilesCount.AfterErase" units="units"
- expires_after="2016-06-14">
- <obsolete>
- Removed as of Jun 2016. The histogram was added for debugging purpose and is
- not needed anymore.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>yiyaoliu@chromium.org</owner>
- <summary>
- Record the number of loaded profiles when a profile is erased from the
- profiles map kept by profile manager.
- </summary>
-</histogram>
-
-<histogram name="UMA.ProfileSignInStatus" enum="ProfileSigninStatus"
- expires_after="never">
-<!-- expires-never: For the signin_status filter in dynamic table. -->
-
- <owner>asvitkine@chromium.org</owner>
- <owner>isherman@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- An enum representing the signin status of all opened profiles during one UMA
- session.
-
- Reported incorrect data on ChromeOS before M80.
- </summary>
-</histogram>
-
-<histogram name="UMA.ProtoCompressionRatio" units="%"
- expires_after="2021-04-15">
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Compression ratio of the serialized protobuf that will be uploaded to the
- UMA server. This serialized protobuf is compressed using gzip. See also
- UMA.LogSize.OnSuccess.
- </summary>
-</histogram>
-
-<histogram name="UMA.ProtoGzipped" enum="Boolean" expires_after="2013-09-13">
- <obsolete>
- Removed as of Sep, 2013. Gzipping protobufs is now the default.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>Was the UMA protobuf uploaded earlier compressed or not.</summary>
-</histogram>
-
-<histogram name="UMA.ProtoGzippedKBSaved" units="KB" expires_after="2015-08-06">
- <obsolete>
- Removed as of August 2015. See UMA.ProtoCompressionRatio instead.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Kilobytes saved from gzipping the protobufs before uploading them.
- </summary>
-</histogram>
-
-<histogram name="UMA.SamplingRatePerMille" units="samples per mille"
- expires_after="2021-04-15">
- <owner>jwd@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Sample rate applied to this client, expressed as number of clients per 1000
- that are in the sample. Recorded on every log upload but only if the client
- is eligible for sampling. (As of September 2019, the only clients eligible
- for sampling are Windows and Android installs on which the UMA checkbox was
- enabled by default.)
-
- Clients not eligible for sampling will not have this histogram recorded.
-
- Clients that are eligible for sampling but are sampled out (i.e., not
- uploading logs) will not have this histogram recorded. Notably, it will not
- appear in chrome://histograms! (Obviously, it also won't appear in the UMA
- logs because the client is not uploading logs.)
-
- Additional nuance, hopefully not important: the rate refers to the session
- that the log was generated in, not the session the log was generated about.
- This means when UMA uploads information about the last session (such as
- stability statistics), it is possible--though extremely unlikely--that the
- sampling rate config has changed from the previous session to the current
- one. As such, the sampling rate emitted in a previous-session log record may
- not be the right one that should've applied to that record.
- </summary>
-</histogram>
-
-<histogram name="UMA.StoreLogsTime" units="ms" expires_after="2015-08-05">
- <obsolete>
- Removed as of August 2015. The histograms showed no unexpected slowness, and
- a profiler is a better tool for identifying any future issues.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The time spent to store unsent logs to local state, which is done
- periodically and also during start up if there was an initial stability log.
- </summary>
-</histogram>
-
-<histogram name="UMA.StructuredMetrics.EventRecordingState"
- enum="StructuredMetricsEventRecordingState" expires_after="2021-02-01">
- <owner>tby@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Emitted when a structured metrics event is sent for recording. This records
- whether that event was recorded successfully, or otherwise what error
- occurred.
- </summary>
-</histogram>
-
-<histogram name="UMA.StructuredMetrics.InternalError"
- enum="StructuredMetricsInternalError" expires_after="2021-02-01">
- <owner>tby@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Records unexpected internal errors of the structured metrics system. The
- bucket proportion of this metric is not meaningful.
- </summary>
-</histogram>
-
-<histogram name="UMA.StructuredMetrics.KeyValidationState"
- enum="StructuredMetricsKeyValidationState" expires_after="2021-02-01">
- <owner>tby@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- When a user event key is validated (and possibly updated), whether the key
- was valid and required no changes, missing and required creation, or old and
- required rotation.
- </summary>
-</histogram>
-
-<histogram name="UMA.StructuredMetrics.NumEventsInUpload" units="count"
- expires_after="2021-02-01">
- <owner>tby@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- How many events are provided when the structured metrics system is called on
- to provide its current session data.
- </summary>
-</histogram>
-
-<histogram name="UMA.StructuredMetrics.PrefReadError"
- enum="PrefServiceReadError" expires_after="2021-02-01">
- <owner>tby@chromium.org</owner>
- <owner>rkaplow@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- When the structured metrics provider initializes, it reads the pref store
- from disk that holds keys and unsent logs. If there was an error during that
- read, this records the error code. PREF_READ_ERROR_NO_FILE is recorded
- whenever a particular profile signs into a particular device for the first
- time, so a reasonable number of errors are expected.
- </summary>
-</histogram>
-
-<histogram name="UMA.SubprocessMetricsProvider.SubprocessCount"
- units="subprocesses" expires_after="2020-04-05">
- <obsolete>
- Removed 2020/04
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The number of subprocesses from which persistent metrics were collected,
- logged once with every reporting cycle.
- </summary>
-</histogram>
-
-<histogram name="UMA.SubprocessMetricsProvider.UntrackedProcesses"
- enum="SubprocessType" expires_after="M77">
- <obsolete>
- Removed 2019/06 after not reporting anything in years.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <owner>bcwhite@chromium.org</owner>
- <summary>
- The number of subprocesses, by type, from which persistent metrics are NOT
- collected because there is no information about this (likely new) process
- type. Process numbers 1000 or greater are &quot;custom&quot; processes used
- by embedders.
- </summary>
-</histogram>
-
-<histogram name="UMA.SyntheticTrials.Count" units="units"
- expires_after="2015-08-06">
- <obsolete>
- Removed as of August 2015.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The number of synthetic field trials added to the UMA log when the system
- profile is recorded. Since this is done prior to capturing the histograms
- from the current process, this will generally be logged once per UMA log.
- </summary>
-</histogram>
-
-<histogram name="UMA.TruncatedEvents.Omnibox" units="events"
- expires_after="M85">
- <owner>rkaplow@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The number of omnibox events that existed in the metrics log before we
- truncated them to save bandwidth.
- </summary>
-</histogram>
-
-<histogram name="UMA.TruncatedEvents.UserAction" units="events"
- expires_after="2020-12-20">
- <owner>rkaplow@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The number of user actions events that existed in the metrics log before we
- truncated them to save bandwidth.
- </summary>
-</histogram>
-
-<histogram name="UMA.Unacceptable_Log_Discarded" units="units"
- expires_after="2013-07-11">
- <obsolete>
- Removed as of May, 2012 (i.e. Chrome 21+). Replaced by the
- UMA.UploadResponseStatus.XML and UMA.UploadResponseStatus.Protobuf
- histograms.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>The server returned a 400 code, and we discarded a log.</summary>
- <details>
- This tends to indicate that a syntax error is present in a log, such as
- would appear when a bogus XML tag is included, or the XML is not balanced
- and well structured.
- </details>
-</histogram>
-
-<histogram name="UMA.UnsentLogs.Dropped" units="units"
- expires_after="2021-08-30">
- <owner>holte@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- Counter for number of UMA unsent logs removed from persistent storage.
- </summary>
-</histogram>
-
-<histogram name="UMA.UnsentLogs.PersistedSizeInKB" units="KB"
- expires_after="2021-05-30">
- <owner>michaelbai@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- 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.
- </summary>
-</histogram>
-
-<histogram name="UMA.UnsentLogs.SentCount" units="samples"
- expires_after="2021-05-30">
- <owner>michaelbai@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The number of UMA sent samples in the previous browser run; it is recorded
- on the browser start up.
- </summary>
-</histogram>
-
-<histogram name="UMA.UnsentLogs.UnsentCount" units="samples"
- expires_after="2021-05-30">
- <owner>michaelbai@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The number of UMA unsent samples in the previous browser run; it is recorded
- on the browser start up.
- </summary>
-</histogram>
-
-<histogram name="UMA.UnsentLogs.UnsentPercentage" units="%"
- expires_after="2021-05-30">
- <owner>michaelbai@chromium.org</owner>
- <owner>asvitkine@chromium.org</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The percentage of the unsent samples over the total in the previous browser
- run; it is recorded on the browser start up.
- </summary>
-</histogram>
-
-<histogram name="UMA.UploadCreation" enum="BooleanSuccess"
- expires_after="2015-08-06">
- <obsolete>
- Removed as of August 2015. This failure case no longer exists.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- For each attempted UMA upload, log whether the upload was successfully
- constructed. An upload might fail to be constructed, for example, if we try
- to upload before the system is fully initialized; or if serialization of the
- data fails.
- </summary>
-</histogram>
-
-<histogram name="UMA.UploadResponseStatus.Protobuf"
- enum="UmaUploadResponseStatus" expires_after="2017-04-04">
- <obsolete>
- Replaced by UMA.LogUpload.ResponseOrErrorCode
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- For each upload to the protocol buffer (v2) UMA server, log whether the
- upload was successful, or whether there was an error.
- </summary>
-</histogram>
-
-<histogram name="UMA.UploadResponseStatus.XML" enum="UmaUploadResponseStatus"
- expires_after="2014-10-15">
- <obsolete>
- Removed 2013. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- For each upload to the XML (v1) UMA server, log whether the upload was
- successful, or whether there was an error.
- </summary>
-</histogram>
-
-<histogram name="UMA.UsedResetVariationsFlag" enum="BooleanUsage"
- expires_after="2016-04-09">
- <obsolete>
- No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- Log whether the --reset-variation-state flag was set before the low entropy
- source was requested.
- </summary>
-</histogram>
-
-<histogram name="UMA.UserDemographics.Status" enum="UserDemographicsStatus"
- expires_after="2021-04-15">
- <owner>vincb@google.com</owner>
- <owner>src/base/metrics/OWNERS</owner>
- <summary>
- The status of the retrieval of user demographics from sync that are reported
- to UMA. Emitted each time UMA metrics are reported.
- </summary>
-</histogram>
-
-<histogram name="UMA.XMLNodeDumpTime" units="ms" expires_after="2014-10-15">
- <obsolete>
- Removed 2013. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The time spent in converting the XML tree into a character buffer when
- closing a metrics log (Chrome OS).
- </summary>
-</histogram>
-
-<histogram name="UMA.XMLWriterDestructionTime" units="ms"
- expires_after="2014-10-15">
- <obsolete>
- Removed 2013. No longer tracked.
- </obsolete>
- <owner>asvitkine@chromium.org</owner>
- <summary>
- The time spent in freeing the XML writer and tree when closing a metrics log
- (Chrome OS).
- </summary>
-</histogram>
-
<histogram name="UncompressAndParseSkiaVectorAsset" units="microseconds"
expires_after="M85">
<owner>malaykeshav@chromium.org</owner>
@@ -181290,8 +185413,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.ConnectionType"
- enum="UpdateEngineConnectionType" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineConnectionType" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The network connection type when the attempt begins. Possible values include
&quot;Unknown&quot;, &quot;Ethernet&quot;, &quot;Wifi&quot;,
@@ -181305,8 +185429,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.DownloadErrorCode"
- enum="UpdateEngineDownloadErrorCode" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineDownloadErrorCode" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
A more detailed description of the last Payload transfer error when
downloading the payload.
@@ -181319,8 +185444,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.DownloadSource"
- enum="UpdateEngineDownloadSource" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineDownloadSource" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The download source used, possible values include &quot;HTTPS Server&quot;,
&quot;HTTP Server&quot; and &quot;HTTP Peer&quot;.
@@ -181332,8 +185458,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.DurationMinutes" units="minutes"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes the update attempt took including the time the device
spent sleeping.
@@ -181345,8 +185472,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.DurationUptimeMinutes" units="minutes"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes the update attempt took excluding the time the device
spent sleeping.
@@ -181358,8 +185486,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.InternalErrorCode"
- enum="UpdateEngineErrorCode" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineErrorCode" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
A more detailed description of the last internal error. The possible values
correspond to the ErrorCode enumeration in the update_engine source code.
@@ -181370,8 +185499,10 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UpdateEngine.Attempt.Number" units="count" expires_after="M85">
- <owner>senj@chromium.org</owner>
+<histogram name="UpdateEngine.Attempt.Number" units="count"
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The attempt number which starts at 0 for the initial attempt and keeps
increasing for subsequent attempts.
@@ -181383,8 +185514,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.PayloadBytesDownloadedMiB" units="MiB"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of payload mebibytes (1048576 bytes) actually download.
@@ -181395,8 +185527,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.PayloadDownloadSpeedKBps" units="KBps"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The payload download speed, in kilobytes per second (1000 bytes/second).
This is calculated as the number of bytes downloaded divided by the duration
@@ -181409,8 +185542,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.PayloadSizeMiB" units="MiB"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The payload size, in mebibytes (1048576 bytes).
@@ -181421,8 +185555,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.PayloadType"
- enum="UpdateEnginePayloadFormat" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEnginePayloadFormat" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The payload type, possible values include &quot;Delta&quot; (if Omaha
specified to download a delta payload); and &quot;Full&quot; (if Omaha
@@ -181436,8 +185571,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.Result" enum="UpdateEngineAttemptResult"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The result of the update attempt.
@@ -181448,8 +185584,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptMinutes"
- units="minutes" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="minutes" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes since the last attempt including the time the device
spent sleeping.
@@ -181462,8 +185599,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Attempt.TimeSinceLastAttemptUptimeMinutes"
- units="minutes" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="minutes" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes since the last attempt excluding the time the device
spent sleeping.
@@ -181476,8 +185614,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.CertificateCheck.Download"
- enum="UpdateEngineCertificateCheckStatus" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineCertificateCheckStatus" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The status of the certificate check done when downloading a payload over
HTTPS. Note that most downloads are done over HTTP.
@@ -181490,8 +185629,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.CertificateCheck.UpdateCheck"
- enum="UpdateEngineCertificateCheckStatus" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineCertificateCheckStatus" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The status of the certificate check done when querying Omaha for a new
version.
@@ -181503,8 +185643,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Check.DownloadErrorCode"
- enum="UpdateEngineDownloadErrorCode" expires_after="M85">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineDownloadErrorCode" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
If unable to download a response from Omaha, a more detailed error code is
reported in this metric.
@@ -181517,8 +185658,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Check.Reaction" enum="UpdateEngineCheckReaction"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
If there is an update available, this metric will track what the device does
with the information. Possible values include &quot;Applying update&quot;,
@@ -181532,8 +185674,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Check.Result" enum="UpdateEngineCheckResult"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The response from Omaha. Possible values include &quot;No update
available&quot;, &quot;Update available&quot;, &quot;Download error&quot;,
@@ -181584,8 +185727,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Check.TimeSinceLastCheckMinutes" units="minutes"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes since the last check including the time the device
spent sleeping.
@@ -181597,8 +185741,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Check.TimeSinceLastCheckUptimeMinutes"
- units="minutes" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="minutes" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of minutes since the last check excluding the time the device
spent sleeping.
@@ -181609,8 +185754,10 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UpdateEngine.Daily.OSAgeDays" units="days" expires_after="M85">
- <owner>senj@chromium.org</owner>
+<histogram name="UpdateEngine.Daily.OSAgeDays" units="days"
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The age of the OS in days, defined as the age of the /etc/lsb-release file.
@@ -181657,8 +185804,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.FailedUpdateCount" units="count"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The number of consecutive times a device has failed to boot an update that
successfully applied.
@@ -181671,8 +185819,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.InstallDateProvisioningSource"
- enum="UpdateEngineInstallDateProvisioningSource" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineInstallDateProvisioningSource" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The source used to provision the install-date-days value sent to Omaha with
every request.
@@ -181685,7 +185834,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.KernelKey.MaxRollforwardSetSuccess"
- enum="BooleanSuccess" expires_after="M93">
+ enum="BooleanSuccess" expires_after="2021-12-29">
<owner>poromov@chromium.org</owner>
<summary>
Whether setting the MaxKernelKeyRollforward value in the TPM succeeded.
@@ -181697,7 +185846,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.KernelKey.MaxRollforwardVersion" units="units"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>poromov@chromium.org</owner>
<summary>
Maximum value the device can roll forward the minimum kernel key version
@@ -181716,7 +185865,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.KernelKey.MinVersion" units="units"
- expires_after="M93">
+ expires_after="2021-12-29">
<owner>poromov@chromium.org</owner>
<summary>
Minimum kernel key version already set in the TPM. This value specifies
@@ -181729,8 +185878,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.Rollback.Result" enum="BooleanSuccess"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
Whether rollback worked.
@@ -181741,8 +185891,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.AttemptCount" units="count"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of update attempts required to update the device.
@@ -181753,8 +185904,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiB" units="MiB"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of bytes downloaded in mebibytes (1048576 bytes) using all
available sources (e.g. HTTP, HTTPS, HTTP Peer).
@@ -181766,8 +185918,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpPeer"
- units="MiB" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="MiB" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of bytes downloaded in mebibytes (1048576 bytes) using HTTP
from a local peer.
@@ -181779,8 +185932,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpServer"
- units="MiB" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="MiB" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of bytes downloaded in mebibytes (1048576 bytes) using
HTTP.
@@ -181792,8 +185946,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.BytesDownloadedMiBHttpsServer"
- units="MiB" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="MiB" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of bytes downloaded in mebibytes (1048576 bytes) using
HTTPS.
@@ -181805,8 +185960,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.DownloadOverheadPercentage"
- units="%" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="%" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The ratio between bytes downloaded and payload size minus 100.
@@ -181817,8 +185973,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.DownloadSourcesUsed"
- enum="UpdateEngineDownloadSources" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEngineDownloadSources" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The various download sources used - this is a combination of the values
&quot;HTTPS Server&quot;, &quot;HTTP Server&quot; and &quot;HTTP Peer&quot;.
@@ -181859,8 +186016,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.PayloadSizeMiB" units="MiB"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The size of the payload, in mebibytes (1048576 bytes).
@@ -181871,8 +186029,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.PayloadType"
- enum="UpdateEnginePayloadFormat" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ enum="UpdateEnginePayloadFormat" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The payload type (&quot;Delta&quot;, &quot;Full&quot;,
&quot;ForcedFull&quot;) used.
@@ -181884,8 +186043,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.RebootCount" units="count"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of reboots during the update.
@@ -181896,8 +186056,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationMinutes"
- units="minutes" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="minutes" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of minutes from when an update was detected until an update
(possibly another update) was applied. This includes the time waiting for
@@ -181910,8 +186071,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.TotalDurationUptimeMinutes"
- units="minutes" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="minutes" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of minutes from when an update was detected until an update
(possibly another update) was applied. This does not include the time
@@ -181924,8 +186086,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.UpdatesAbandonedCount"
- units="count" expires_after="M93">
- <owner>senj@chromium.org</owner>
+ units="count" expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of updates that were abandoned since the last successful
update.
@@ -181937,8 +186100,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.SuccessfulUpdate.UrlSwitchCount" units="count"
- expires_after="M93">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The total number of times the URL was switched (from e.g. HTTPS to HTTP)
because of failures.
@@ -181950,8 +186114,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpdateEngine.TimeToRebootMinutes" units="minutes"
- expires_after="M85">
- <owner>senj@chromium.org</owner>
+ expires_after="2021-12-29">
+ <owner>ahassani@chromium.org</owner>
+ <owner>chromeos-core-services@google.com</owner>
<summary>
The duration between when an update has successfully completed and the user
is presented with the &quot;reboot arrow&quot; and when the system has
@@ -182145,7 +186310,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UsageStats.Events" enum="UsageStatsEvents"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>pnoland@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
@@ -182195,7 +186360,11 @@ should be kept until we use this API. -->
<histogram name="UserImage.ChangeChoice" enum="ChromeOSUserImageId"
expires_after="M77">
- <owner>achuith@chromium.org</owner>
+ <obsolete>
+ Removed on 2020-07 (crbug.com/975700).
+ </obsolete>
+ <owner>raleksandrov@google.com</owner>
+ <owner>cros-oac@google.com</owner>
<summary>
Distribution of the default images that users choose in Change Picture
dialog (Chrome OS). One sample is taken each time the user changes picture.
@@ -182226,7 +186395,11 @@ should be kept until we use this API. -->
<histogram name="UserImage.ProfileDownloadResult"
enum="ProfileImageDownloadResult" expires_after="M77">
- <owner>achuith@chromium.org</owner>
+ <obsolete>
+ Removed on 2020-07 (crbug.com/1037348).
+ </obsolete>
+ <owner>raleksandrov@google.com</owner>
+ <owner>cros-oac@google.com</owner>
<summary>
Profile image download result for UserManager (either on behalf of the
Change Picture prefs page, OOBE or scheduled refresh after user login).
@@ -182278,7 +186451,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UserManager.LoginUserType" enum="UserType"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>achuith@chromium.org</owner>
<summary>
The number of users of different types that log in to the system (Chrome
@@ -182336,7 +186509,11 @@ regressions. -->
<histogram name="UserSessionManager.UserPodsDisplay" enum="UserPodsDisplay"
expires_after="M77">
- <owner>achuith@chromium.org</owner>
+ <obsolete>
+ Removed on 2020-06 (crbug.com/975711).
+ </obsolete>
+ <owner>raleksandrov@google.com</owner>
+ <owner>cros-oac@google.com</owner>
<summary>
Whether the user pods were enabled during login, and what could disable
them.
@@ -182426,7 +186603,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.CodeCacheSizeRatio" units="%" expires_after="2020-11-01">
+<histogram name="V8.CodeCacheSizeRatio" units="%" expires_after="2021-02-14">
<owner>yangguo@chromium.org</owner>
<summary>Cache size to source size ratio when caching compiled code.</summary>
</histogram>
@@ -182506,7 +186683,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileDeserializeMicroSeconds" units="microseconds"
- expires_after="2020-10-25">
+ expires_after="2021-02-14">
<owner>vogelheim@chromium.org</owner>
<summary>
Time spent deseriailzing code, used by V8 code caching.
@@ -182573,7 +186750,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileLazyMicroSeconds" units="microseconds"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hablich@chromium.org</owner>
<summary>
Aggregated time spent compiling functions lazily during a single script
@@ -182588,7 +186765,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileMicroSeconds" units="microseconds"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>yangguo@chromium.org</owner>
<summary>
Time spent in V8 compiler (full codegen) excluding parser.
@@ -182630,8 +186807,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScript.CacheBehaviour" enum="V8CacheBehaviour"
- expires_after="M85">
+ expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
The cache behaviour of compiling a V8 script, including whether we produced
or consumed a code cache, whether we hit V8's isolate's cache, and if we
@@ -182640,8 +186818,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds" units="microseconds"
- expires_after="M85">
- <owner>yangguo@chromium.org</owner>
+ expires_after="2021-02-01">
+ <owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching).
@@ -182654,8 +186833,10 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.BackgroundThread"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
+ <owner>leszeks@chromium.org</owner>
<owner>rmcilroy@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) on a background
thread.
@@ -182669,8 +186850,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script when the 'compilation' is
deserializing it from the code cache.
@@ -182684,8 +186866,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache.Failed"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching) when the
compilation tried to deserialize it from the code cache, but failed.
@@ -182699,8 +186882,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.IsolateCacheHit"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching) in the case
where the V8 isolate's compilation cache is hit.
@@ -182714,8 +186898,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.CacheTooCold"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the cache is too
cold to use.
@@ -182729,8 +186914,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.InlineScript"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the script is an
inline script.
@@ -182744,8 +186930,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.Other"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when we do not want
to cache it.
@@ -182759,8 +186946,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.ScriptTooSmall"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the script is
too small to be cached.
@@ -182774,8 +186962,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ProduceCache"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) and serializing it
for the code cache.
@@ -182789,8 +186978,9 @@ regressions. -->
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.StreamingFinalization"
- units="microseconds" expires_after="M85">
+ units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
+ <owner>v8-runtime@google.com</owner>
<summary>
Total time spent in finalizing a script that was streaming compiled.
@@ -182825,7 +187015,7 @@ regressions. -->
</histogram>
<histogram name="V8.DebugFeatureUsage" enum="V8DebugFeature"
- expires_after="2020-11-01">
+ expires_after="2021-01-10">
<owner>yangguo@chromium.org</owner>
<summary>
Debugger feature used at least once per isolate, recorded on first use.
@@ -182874,7 +187064,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.Execute" units="ms" expires_after="2020-11-01">
+<histogram name="V8.Execute" units="ms" expires_after="2021-01-03">
<owner>rmcilroy@chromium.org</owner>
<summary>
Time spent in JavaScript Execution, including runtime calls, callbacks, and
@@ -183292,7 +187482,7 @@ regressions. -->
</histogram>
<histogram name="V8.LiftoffBailoutReasons" enum="LiftoffBailoutReason"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -183885,7 +188075,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmCompileModuleAsyncMicroSeconds" units="microseconds"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -184265,7 +188455,7 @@ regressions. -->
</histogram>
<histogram name="Variations.AppSeedFreshness" units="minutes"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>rmcelrath@chromium.org</owner>
<owner>ntfschr@chromium.org</owner>
<owner>src/android_webview/OWNERS</owner>
@@ -184465,6 +188655,20 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Variations.Headers.DomainOwner" enum="VariationsHeadersOwner"
+ expires_after="2020-12-15">
+ <owner>caitlinfischer@google.com</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The owner of the top-level domain from which certain subframe-initiated HTTP
+ requests are made. It's logged after determining that (i) the request should
+ include variations headers, (ii) the request is from a subframe, and (iii)
+ TrustedParams are not present. It's logged before adding headers. It allows
+ us to verify whether non-render-thread-initiated requests, if any, lack
+ TrustedParams.
+ </summary>
+</histogram>
+
<histogram name="Variations.Headers.ExperimentCount" units="units"
expires_after="2021-04-15">
<owner>asvitkine@chromium.org</owner>
@@ -184540,7 +188744,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="Variations.PolicyRestrictions"
+<histogram name="Variations.PolicyRestriction"
enum="VariationsRestrictionPolicyValues" expires_after="2020-12-31">
<owner>pastarmovj@chromium.org</owner>
<owner>ydago@chromium.org</owner>
@@ -185323,7 +189527,7 @@ regressions. -->
</histogram>
<histogram name="Viz.DisplayCompositor.OverlayStrategy"
- enum="OverlayStrategies" expires_after="M85">
+ enum="OverlayStrategies" expires_after="2021-07-01">
<owner>dcastagna@chromium.org</owner>
<owner>hoegsberg@chromium.org</owner>
<summary>
@@ -185404,7 +189608,7 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.DismissedEventSource"
- enum="VoiceInteractionEventSource" expires_after="2020-10-01">
+ enum="VoiceInteractionEventSource" expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185414,7 +189618,7 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.FailureEventSource"
- enum="VoiceInteractionEventSource" expires_after="2020-10-01">
+ enum="VoiceInteractionEventSource" expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185424,7 +189628,7 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.FinishEventSource"
- enum="VoiceInteractionEventSource" expires_after="2020-10-01">
+ enum="VoiceInteractionEventSource" expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185443,14 +189647,27 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.OpenDuration" units="ms" expires_after="M85">
+ <obsolete>
+ Previously recorded for CrOS, but is no longer used. Marked obsolete in M86.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<summary>
Records the time between a voice interaction session start and end.
</summary>
</histogram>
+<histogram name="VoiceInteraction.QueryDuration.Android" units="ms"
+ expires_after="2021-01-24">
+ <owner>wylieb@chromium.org</owner>
+ <owner>tedchoc@chromium.org</owner>
+ <summary>
+ Records the time it takes between the user clicking the mic and chrome
+ recieving the transcribed voice query.
+ </summary>
+</histogram>
+
<histogram name="VoiceInteraction.StartEventSource"
- enum="VoiceInteractionEventSource" expires_after="2020-10-01">
+ enum="VoiceInteractionEventSource" expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185468,7 +189685,7 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.VoiceResultConfidenceValue" units="%"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185479,7 +189696,7 @@ regressions. -->
</histogram>
<histogram name="VoiceInteraction.VoiceSearchResult" enum="BooleanSuccess"
- expires_after="2020-10-01">
+ expires_after="2021-01-24">
<owner>wylieb@chromium.org</owner>
<owner>tedchoc@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
@@ -185717,7 +189934,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="VRSessionTime" units="ms" expires_after="2020-11-08">
+<histogram name="VRSessionTime" units="ms" expires_after="2021-01-10">
<owner>alcooper@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
@@ -185757,7 +189974,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="VRViewerType" enum="VRViewerType" expires_after="2020-11-08">
+<histogram name="VRViewerType" enum="VRViewerType" expires_after="2021-01-10">
<owner>alcooper@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>The type of headset being used for VR.</summary>
@@ -185981,8 +190198,10 @@ regressions. -->
<histogram name="WebApk.Install.AvailableSpace.Fail" units="MB"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the available space that can be used when installing a WebAPK from
Google Play fails. The space recorded is the available space beyond the
@@ -186028,8 +190247,10 @@ regressions. -->
<histogram name="WebApk.Install.AvailableSpaceAfterFreeUpCache.Fail" units="MB"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the available space that can be used when installing a WebAPK from
Google Play fails after freeing up cache. The space recorded is the
@@ -186101,9 +190322,10 @@ regressions. -->
<histogram name="WebApk.Install.GooglePlayErrorCode"
enum="WebApkInstallGooglePlayErrorCode" expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the error code when installing a WebAPK from Google Play fails. See
go/webapk-install-googleplayerrorcode.
@@ -186111,10 +190333,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.GooglePlayInstallResult"
- enum="WebApkGooglePlayInstallResult" expires_after="2020-11-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ enum="WebApkGooglePlayInstallResult" expires_after="2021-01-03">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records whether installing a WebAPK from Google Play succeeded. If not,
records the reason that the install failed.
@@ -186156,9 +190379,10 @@ regressions. -->
<histogram name="WebApk.Install.InstallDuration" units="ms"
expires_after="2020-12-20">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
How long it takes to install a WebAPK. The time is measured from the time
that the user initiates the install to the time that the Open button is
@@ -186167,10 +190391,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.InstallEvent" enum="WebApkInstallEvent"
- expires_after="2020-12-06">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ expires_after="2021-02-07">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
the add to homescreen menu item. This stat tracks WebAPK installation
@@ -186196,10 +190421,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.RequestTokenDuration" units="ms"
- expires_after="2020-11-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ expires_after="2021-01-03">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the amount of time which has elapsed from the &quot;install infobar
showing&quot; to the &quot;install request being sent to Google Play&quot;.
@@ -186227,9 +190453,10 @@ regressions. -->
<obsolete>
Removed 2017-08. As of M62, this is no longer recorded.
</obsolete>
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
WebAPKs are PWAs wrapped in an Android apk, installed from an app banner or
the add to homescreen menu item. If the user clicks the add to homescreen
@@ -186241,10 +190468,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Launch.NetworkError" enum="NetErrorCodes"
- expires_after="M85">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ expires_after="2021-02-01">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the error codes when a WebAPK is launched with network failures.
</summary>
@@ -186294,8 +190522,9 @@ regressions. -->
<histogram name="WebApk.Navigation.InScope" enum="Boolean"
expires_after="2021-02-01">
<owner>hartmanng@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Recorded each time that a WebAPK is navigated. Records whether the
navigation is within the scope of the WebAPK's Web Manifest. Not recorded
@@ -186304,9 +190533,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Notification.Permission.Status"
- enum="BooleanWebApkNotificationPermission" expires_after="2020-08-23">
- <owner>hanxi@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ enum="BooleanWebApkNotificationPermission" expires_after="2021-02-23">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
When a WebAPK receives a notification, log whether it has permission to
display that notification.
@@ -186318,8 +190549,10 @@ regressions. -->
<obsolete>
Removed in Chrome M69.
</obsolete>
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
When a user visits a PWA for which they have a WebAPK installed, the menu
item changes from 'Add to homescreen' to 'Open WebAPK'. This stat tracks
@@ -186387,10 +190620,11 @@ regressions. -->
</histogram>
<histogram name="WebApk.Session.TotalDuration2" units="ms"
- expires_after="2020-11-08">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ expires_after="2021-01-10">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
The length of a WebAPK session (launch/foregrounding to backgrounding) in
milliseconds.
@@ -186412,10 +190646,11 @@ regressions. -->
</histogram>
<histogram base="true" name="WebApk.ShellApkVersion2" units="units"
- expires_after="2020-11-29">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ expires_after="2021-01-31">
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records WebAPK &quot;Shell APK version&quot; when the WebAPK is launched.
The &quot;Shell APK version&quot; is documented in shell_apk_version.gni
@@ -186424,8 +190659,10 @@ regressions. -->
<histogram name="WebApk.Startup.Cold.NewStyle.ShellLaunchToSplashscreenVisible"
units="ms" expires_after="2020-12-01">
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Tracks the time to splash screen visible starting from the launch of the
WebAPK shell (rather than from the launch of Chrome) for new-style WebAPKs.
@@ -186455,7 +190692,7 @@ regressions. -->
</histogram>
<histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenVisible"
- units="ms" expires_after="2020-10-18">
+ units="ms" expires_after="2021-02-07">
<owner>mheikal@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -186472,16 +190709,19 @@ regressions. -->
<histogram base="true" name="WebApk.Uninstall" enum="BooleanHit"
expires_after="2020-12-06">
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>Records that a WebAPK was uninstalled.</summary>
</histogram>
<histogram name="WebApk.Update.GooglePlayUpdateResult"
enum="WebApkGooglePlayInstallResult" expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records whether updating a WebAPK from Google Play succeeded. If not,
records the reason that the update failed.
@@ -186490,9 +190730,10 @@ regressions. -->
<histogram name="WebApk.Update.NumStaleUpdateRequestFiles" units="files"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the number of zombie &quot;WebAPK update request&quot; files that
the update process failed to cleanup. Recorded for all WebAPKs whenever a
@@ -186502,9 +190743,10 @@ regressions. -->
<histogram name="WebApk.Update.RequestQueued" enum="WebApkUpdateRequestQueued"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the number of times that a WebAPK update request was queued (i.e.
waiting for the WebAPK to be backgrounded) before being sent to the server.
@@ -186513,9 +190755,10 @@ regressions. -->
<histogram name="WebApk.Update.RequestSent" enum="WebApkUpdateRequestSent"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records the time point when a request to update a WebAPK is sent to the
WebAPK Server.
@@ -186524,9 +190767,10 @@ regressions. -->
<histogram name="WebApk.WebApkService.BindSuccess" enum="BooleanSuccess"
expires_after="2021-02-01">
- <owner>hanxi@chromium.org</owner>
- <owner>pkotwicz@chromium.org</owner>
- <owner>yfriedman@chromium.org</owner>
+ <owner>hartmanng@chromium.org</owner>
+ <owner>
+ src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
+ </owner>
<summary>
Records whether Chrome can bind to a WebAPK's &quot;WebAPK service&quot;.
Recorded each time that Chrome attempts to bind to a WebAPK service.
@@ -186651,7 +190895,7 @@ regressions. -->
</histogram>
<histogram name="Webapp.Install.DisplayMode2" enum="WebAppDisplayMode"
- expires_after="2020-11-25">
+ expires_after="2021-01-24">
<owner>ericwilligers@chromium.org</owner>
<owner>peter@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -186802,8 +191046,23 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebApp.Migration.UserDisplayModeCleanUp"
+ enum="BooleanMigrated" expires_after="2021-01-01">
+ <owner>alancutter@chromium.org</owner>
+ <owner>dxie@google.com</owner>
+ <owner>loyso@google.com</owner>
+ <owner>mgiuca@google.com</owner>
+ <summary>
+ The result of deploying a follow up migration after a migration bug
+ (https://crbug.com/1125020) that caused users' web apps to open in a browser
+ tab instead of a standalone window. This follow up migration only runs once
+ at startup for all Chrome profiles. If it fails it will retry until
+ successful on subsequent start ups, metrics are only recorded on success.
+ </summary>
+</histogram>
+
<histogram name="Webapp.NavigationStatus" enum="BooleanSuccess"
- expires_after="2020-08-25">
+ expires_after="M90">
<owner>peter@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<summary>
@@ -186883,6 +191142,9 @@ regressions. -->
<histogram name="Webapp.SyncInitiatedFallbackInstallResult"
enum="WebAppInstallResultCode" expires_after="2022-01-01">
+ <obsolete>
+ Removed 08/2020. Information no longer recorded.
+ </obsolete>
<owner>alancutter@chromium.org</owner>
<owner>loyso@chromium.org</owner>
<summary>
@@ -187003,7 +191265,7 @@ regressions. -->
</histogram>
<histogram name="WebAudio.AudioContext.HardwareSampleRate" units="Hz"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
@@ -187024,7 +191286,7 @@ regressions. -->
</histogram>
<histogram name="WebAudio.AudioContextOptions.sampleRate" units="Hz"
- expires_after="2020-08-16">
+ expires_after="2021-02-16">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
@@ -187058,7 +191320,7 @@ regressions. -->
</histogram>
<histogram name="WebAudio.AudioDestination.HardwareBufferSize" units="units"
- expires_after="2020-08-02">
+ expires_after="2021-02-02">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
@@ -187371,6 +191633,16 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebAuthentication.IsUVPlatformAuthenticatorAvailable"
+ enum="Boolean" expires_after="2021-06-30">
+ <owner>kenrb@chromium.org</owner>
+ <owner>martinkr@google.com</owner>
+ <summary>
+ Record at startup whether the current system has a platform authenticator
+ available; i.e. whether IsUVPAA JS call would return true or false.
+ </summary>
+</histogram>
+
<histogram name="WebAuthentication.MakeCredentialExcludeCredentialsCount"
units="credentials" expires_after="2020-12-31">
<owner>kenrb@chromium.org</owner>
@@ -187419,7 +191691,7 @@ regressions. -->
<histogram name="WebAuthentication.U2FAttestationPromptResult"
enum="WebAuthenticationU2FAttestationPromptResult"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>agl@chromium.org</owner>
<summary>
Tracks events related to prompting users for permission to pass U2F
@@ -187551,7 +191823,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.DistillabilityUs" units="microseconds"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>wychen@chromium.org</owner>
<owner>gilmanmh@google.com</owner>
<summary>
@@ -187615,7 +191887,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebCore.FindInPage.NumberOfTasksPerRequest"
- units="tasks" expires_after="2020-11-29">
+ units="tasks" expires_after="2021-01-31">
<owner>rakina@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
@@ -187626,7 +191898,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebCore.FindInPage.RequestDuration" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>rakina@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
@@ -187651,7 +191923,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.FindInPage.TaskDuration" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>rakina@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
@@ -187661,7 +191933,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebCore.FindInPage.TotalTaskDuration" units="ms"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>rakina@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
@@ -187974,7 +192246,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDB.OpenTime" units="ms"
- expires_after="2020-10-25">
+ expires_after="2021-02-07">
<owner>cmumford@chromium.org</owner>
<summary>
The time that it takes to open IndexedDB's LevelDB backing store.
@@ -189118,7 +193390,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.WebSocket.SendType" enum="WebSocketSendType"
- expires_after="2020-09-27">
+ expires_after="2021-02-07">
<owner>yhirano@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
@@ -189143,7 +193415,7 @@ regressions. -->
</histogram>
<histogram name="WebFont.BlankTextShownTime" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>kenjibaheux@chromium.org</owner>
<owner>ksakamoto@chromium.org</owner>
<summary>
@@ -189335,7 +193607,7 @@ regressions. -->
</histogram>
<histogram name="WebFont.HadBlankText" enum="BooleanHadBlankText"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>kenjibaheux@chromium.org</owner>
<owner>ksakamoto@chromium.org</owner>
<summary>
@@ -189861,7 +194133,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.AgcClippingAdjustmentAllowed" enum="Boolean"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>hlundin@chromium.org</owner>
<summary>
The automatic gain control (AGC) in WebRTC tries to adjust the microphone
@@ -189885,7 +194157,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureInputLevelAverageRms"
- units="dBFS (negated)" expires_after="2020-12-06">
+ units="dBFS (negated)" expires_after="2021-02-07">
<owner>hlundin@chromium.org</owner>
<summary>
This histogram reports the average RMS of the signal coming in to WebRTC's
@@ -189897,7 +194169,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureInputLevelPeakRms"
- units="dBFS (negated)" expires_after="2020-12-06">
+ units="dBFS (negated)" expires_after="2021-02-07">
<owner>hlundin@chromium.org</owner>
<summary>
This histogram reports the peak RMS of the signal coming in to WebRTC's
@@ -189909,7 +194181,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureOutputLevelAverageRms"
- units="dBFS (negated)" expires_after="2020-12-06">
+ units="dBFS (negated)" expires_after="2021-02-07">
<owner>peah@chromium.org</owner>
<summary>
This histogram reports the average RMS of the signal in the output of
@@ -189921,7 +194193,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureOutputLevelPeakRms"
- units="dBFS (negated)" expires_after="2020-12-13">
+ units="dBFS (negated)" expires_after="2021-02-14">
<owner>peah@chromium.org</owner>
<summary>
This histogram reports the peak RMS of the signal in the output of WebRTC's
@@ -189933,7 +194205,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.AudioInterruptionMs" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>hlundin@chromium.org</owner>
<owner>ivoc@chromium.org</owner>
<summary>
@@ -190024,7 +194296,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.AverageExcessBufferDelayMs" units="ms"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the average waiting time in the buffer for each packet. The waiting
@@ -190036,7 +194308,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.DelayedPacketOutageEventMs" units="ms"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the duration of each packet loss concealment (a.k.a. expand) event
@@ -190093,7 +194365,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.EchoCanceller.Clockdrift" enum="ClockdriftLevel"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>gustaf@chromium.org</owner>
<owner>peah@chromium.org</owner>
<summary>
@@ -190139,7 +194411,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.EchoCanceller.EchoPathDelay" units="Blocks"
- expires_after="2020-12-01">
+ expires_after="2021-01-31">
<owner>peah@chromium.org</owner>
<owner>saza@chromium.org</owner>
<summary>
@@ -190367,7 +194639,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.Encoder.CodecType" enum="WebRtcAudioCodecs"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>aleloi@chromium.org</owner>
<summary>
Histogram of audio codec usage. Every sample corresponds to 5 seconds of
@@ -190376,7 +194648,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ExpandRatePercent" units="%"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the expand rate for an incoming WebRTC audio stream. The expand
@@ -190491,7 +194763,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.SpeechExpandRatePercent" units="%"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the audible expand rate for an incoming WebRTC audio stream. The
@@ -190503,7 +194775,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.TargetBitrateInKbps" units="kbps"
- expires_after="2020-10-18">
+ expires_after="2020-12-27">
<owner>hlundin@chromium.org</owner>
<summary>
The target bitrate in kbps that the audio codec should try to produce on
@@ -190636,20 +194908,20 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.InitialBandwidthEstimate" units="kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>holmer@chromium.org</owner>
<summary>The bandwidth estimate 2 seconds into a WebRTC call.</summary>
</histogram>
<histogram name="WebRTC.BWE.InitiallyLostPackets" units="packets"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>holmer@chromium.org</owner>
<summary>
The number of video packets lost durig the first 2 seconds in a WebRTC call.
</summary>
</histogram>
-<histogram name="WebRTC.BWE.InitialRtt" units="ms" expires_after="2020-12-06">
+<histogram name="WebRTC.BWE.InitialRtt" units="ms" expires_after="2021-02-07">
<owner>holmer@chromium.org</owner>
<summary>
The round-trip time as measured 2 seconds into a WebRTC call.
@@ -190657,7 +194929,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.InitialVsConvergedDiff" units="kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>holmer@chromium.org</owner>
<summary>
The difference between the bandwidth estimate at 2 seconds and 20 seconds
@@ -190695,7 +194967,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.Probing.ProbeClusterSizeInBytes" units="bytes"
- expires_after="2020-10-01">
+ expires_after="2021-01-03">
<owner>jonasolsson@chromium.org</owner>
<owner>crodbro@chromium.org</owner>
<summary>
@@ -190705,7 +194977,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.Probing.ProbesPerCluster" units="units"
- expires_after="2020-10-01">
+ expires_after="2021-01-03">
<owner>jonasolsson@chromium.org</owner>
<owner>crodbro@chromium.org</owner>
<summary>
@@ -190715,7 +194987,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.Probing.TimePerProbeCluster" units="ms"
- expires_after="2020-10-01">
+ expires_after="2021-01-03">
<owner>jonasolsson@chromium.org</owner>
<owner>crodbro@chromium.org</owner>
<summary>
@@ -190735,7 +195007,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.Probing.TotalProbeClustersRequested" units="units"
- expires_after="2020-10-01">
+ expires_after="2021-01-03">
<owner>jonasolsson@chromium.org</owner>
<owner>crodbro@chromium.org</owner>
<summary>
@@ -190754,7 +195026,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.RampUpTimeTo2000kbpsInMs" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>holmer@chromium.org</owner>
<summary>
The time it takes the estimated bandwidth to reach 2000 kbps from the first
@@ -190763,7 +195035,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.RampUpTimeTo500kbpsInMs" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>holmer@chromium.org</owner>
<summary>
The time it takes the estimated bandwidth to reach 500 kbps from the first
@@ -190802,7 +195074,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.EstimatedSendBitrateInKbps" units="kbps"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>holmer@chromium.org</owner>
<summary>
Average estimated send bitrate during a call, counted from first packet sent
@@ -190840,7 +195112,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.TimeReceivingAudioRtpPacketsInSeconds" units="s"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>saza@chromium.org</owner>
<summary>
The amount of time between the arrival of the first and last audio RTP
@@ -190852,7 +195124,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.TimeReceivingVideoRtpPacketsInSeconds" units="s"
- expires_after="2020-08-31">
+ expires_after="2020-12-27">
<owner>saza@chromium.org</owner>
<summary>
The amount of time between the arrival of the first and last video RTP
@@ -190944,6 +195216,17 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebRTC.MediaStreamDevices.HasPanTiltZoomCamera"
+ enum="BooleanAvailable" expires_after="M88">
+ <owner>reillyg@chromium.org</owner>
+ <owner>device-dev@chromium.org</owner>
+ <summary>
+ Records whether a user would potentially see a permission prompt for moving
+ the camera. It is recorded when showing a camera permission prompt
+ regardless of whether or not the site requested camera movement.
+ </summary>
+</histogram>
+
<histogram name="WebRTC.NAT.Metrics" enum="NatTypeCounters" expires_after="M85">
<owner>guoweis@chromium.org</owner>
<summary>
@@ -190964,7 +195247,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.AddIceCandidate"
- enum="AddIceCandidateResult" expires_after="2020-11-01">
+ enum="AddIceCandidateResult" expires_after="2021-01-03">
<owner>hta@chromium.org</owner>
<owner>webrtc-dev@chromium.org</owner>
<summary>
@@ -191089,7 +195372,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.ConnectionState"
- enum="IceConnectionStates" expires_after="2020-11-29">
+ enum="IceConnectionStates" expires_after="2021-01-31">
<owner>qingsi@google.com</owner>
<owner>jeroendb@google.com</owner>
<summary>
@@ -191420,9 +195703,9 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.ThermalState" enum="ThermalState"
- expires_after="2020-10-01">
+ expires_after="2021-01-17">
<owner>eshr@google.com</owner>
- <owner>hbos@chromium.com</owner>
+ <owner>hbos@chromium.org</owner>
<summary>
Measures computer thermal state, sampled every 60s when a PeerConnection is
open with a video sender. Most quick toggles between thermal states are thus
@@ -191460,7 +195743,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.ReceivedAudioTrackDuration" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>perkj@chromium.org</owner>
<summary>
Durations of audio tracks received over a PeerConnection. The stopwatch
@@ -191470,7 +195753,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.ReceivedVideoTrackDuration" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>perkj@chromium.org</owner>
<summary>
Durations of video tracks received over a PeerConnection. The stopwatch
@@ -191480,7 +195763,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.ReliableDataChannelMessageSize" units="bytes"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>perkj@chromium.org</owner>
<summary>
Sizes of messages sent over reliable data channels. The size of an
@@ -191496,7 +195779,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.SentAudioTrackDuration" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>perkj@chromium.org</owner>
<summary>
Durations of audio tracks sent over a PeerConnection. The stopwatch starts
@@ -191506,7 +195789,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.SentVideoTrackDuration" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>perkj@chromium.org</owner>
<summary>
Durations of video tracks sent over a PeerConnection. The stopwatch starts
@@ -191620,7 +195903,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.UserMediaRequest.Result2"
- enum="MediaStreamRequestResult2" expires_after="2020-12-06">
+ enum="MediaStreamRequestResult2" expires_after="2021-02-07">
<owner>grunell@chromium.org</owner>
<summary>
Counters for UserMediaRequests results such as failure reasons. The standard
@@ -191629,7 +195912,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.AdaptChangesPerMinute" units="changes/minute"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -191689,7 +195972,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BandwidthLimitedResolutionInPercent" units="%"
- expires_after="2020-11-22">
+ expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent frames that are limited in resolution due to bandwidth
@@ -191709,7 +195992,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BitrateReceivedInKbps" units="kbps"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received bits per second for a received video stream. Recorded
@@ -191719,7 +196002,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BitrateSentInKbps" units="kbps"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent bits per second for a sent video stream. Recorded when a
@@ -191742,7 +196025,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.CpuLimitedResolutionInPercent" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of frames that are limited in resolution due to CPU for a sent
@@ -191761,7 +196044,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Decoded.Vp8.Qp" units="qp value"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The average QP (quantizer value) per frame for a received VP8 video stream.
@@ -191770,7 +196053,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DecodedFramesPerSecond" units="fps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The number of decoded frames per second for a received video stream.
@@ -191780,7 +196063,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DecodeTimeInMs" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The average decode time per frame for a received video stream. Recorded when
@@ -191789,7 +196072,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebRTC.Video.DecodeTimePerFrameInMs" units="ms"
- expires_after="2020-10-23">
+ expires_after="2020-12-27">
<owner>kron@chromium.org</owner>
<summary>
The decode time per frame for a received video stream. Continously updated
@@ -191798,7 +196081,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DelayedFramesToRenderer" units="%"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of delayed frames to renderer for a received video stream.
@@ -191807,7 +196090,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DelayedFramesToRenderer_AvgDelayInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay of delayed frames to renderer for a received video stream.
@@ -191838,7 +196121,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DroppedFrames.Encoder" units="frames"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -191858,7 +196141,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DroppedFrames.Ratelimiter" units="frames"
- expires_after="2020-08-24">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -191890,7 +196173,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Encoded.Qp" units="qp value"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The average QP (quantizer value) per frame for a sent video stream. Recorded
@@ -191899,7 +196182,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Encoder.CodecType" enum="WebRtcVideoCodecs"
- expires_after="2020-11-01">
+ expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -191910,7 +196193,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.EncodeTimeInMs" units="ms"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The average encode time per frame for a sent video stream. Recorded when a
@@ -191919,7 +196202,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.EndToEndDelayInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The average end-to-end delay per frame for a received video stream. Recorded
@@ -191928,7 +196211,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.EndToEndDelayMaxInMs" units="ms"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -191948,7 +196231,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.FecBitrateSentInKbps" units="kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent FEC bits per second for a sent video stream. Recorded
@@ -191978,7 +196261,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.H264DecoderImpl.Event"
- enum="WebRtcH264DecoderImplEvent" expires_after="2020-10-25">
+ enum="WebRtcH264DecoderImplEvent" expires_after="2020-12-27">
<owner>hbos@chromium.org</owner>
<summary>
The number of |H264DecoderImpl| events, such as an initialization or
@@ -191991,7 +196274,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.H264EncoderImpl.Event"
- enum="WebRtcH264EncoderImplEvent" expires_after="2020-10-25">
+ enum="WebRtcH264EncoderImplEvent" expires_after="2020-12-27">
<owner>hbos@chromium.org</owner>
<summary>
The number of |H264EncoderImpl| events, such as an initialization or
@@ -192015,7 +196298,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InputFramesPerSecond" units="fps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of incoming frames per second for a sent video stream. Recorded
@@ -192043,7 +196326,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InterframeDelay95PercentileInMs" units="ms"
- expires_after="2020-09-13">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192063,7 +196346,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InterframeDelayMaxInMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192091,7 +196374,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.KeyFramesSentInPermille" units="permille"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
Permille of frames that are key frames for a sent video stream. Recorded
@@ -192100,7 +196383,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.MeanFreezeDurationMs" units="ms"
- expires_after="M87">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192110,7 +196393,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.MeanTimeBetweenFreezesMs" units="ms"
- expires_after="M87">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192120,7 +196403,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.MediaBitrateReceivedInKbps" units="kbps"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received media payload bits per second for a received video
@@ -192130,7 +196413,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.MediaBitrateSentInKbps" units="kbps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent media payload bits per second for a sent video stream.
@@ -192140,7 +196423,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NackPacketsReceivedPerMinute"
- units="packets/minute" expires_after="2020-11-01">
+ units="packets/minute" expires_after="2021-01-03">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received RTCP NACK packets per minute for a sent video stream.
@@ -192150,7 +196433,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NackPacketsSentPerMinute" units="packets/minute"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent RTCP NACK packets per minute for a received video stream.
@@ -192188,7 +196471,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.OnewayDelayInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
Average delay (network delay (rtt/2) + jitter delay + decode time + render
@@ -192197,7 +196480,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PaddingBitrateReceivedInKbps" units="kbps"
- expires_after="2020-11-01">
+ expires_after="2021-01-03">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received padding bits per second for a received video stream.
@@ -192236,7 +196519,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PliPacketsSentPerMinute" units="packets/minute"
- expires_after="2020-10-11">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent RTCP PLI packets per minute for a received video stream.
@@ -192246,7 +196529,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.QualityLimitedResolutionDownscales"
- units="downscales" expires_after="2020-11-01">
+ units="downscales" expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<summary>
For frames that are downscaled in resolution due to quality, the average
@@ -192256,7 +196539,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.QualityLimitedResolutionInPercent" units="%"
- expires_after="2020-11-01">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent frames that are downscaled in resolution due to quality
@@ -192265,7 +196548,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedFecPacketsInPercent" units="%"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of received FEC packets for a received video stream. Recorded
@@ -192274,7 +196557,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedHeightInPixels" units="pixels"
- expires_after="2020-10-25">
+ expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<summary>
The average received height per frame for a received video stream. Recorded
@@ -192283,7 +196566,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedPacketsLostInPercent" units="%"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of received packets lost for a received video stream. Recorded
@@ -192292,7 +196575,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedWidthInPixels" units="pixels"
- expires_after="2020-10-25">
+ expires_after="2021-01-24">
<owner>asapersson@chromium.org</owner>
<summary>
The average received width per frame for a received video stream. Recorded
@@ -192301,7 +196584,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceiveStreamLifetimeInSeconds" units="seconds"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The lifetime of a video receive stream. Recorded when a VideoReceiveStream
@@ -192310,7 +196593,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RecoveredMediaPacketsInPercentOfFec" units="%"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of recovered media packets from FEC packets for a received video
@@ -192319,7 +196602,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RenderFramesPerSecond" units="fps"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent frames to the renderer per second for a received video
@@ -192329,7 +196612,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RenderSqrtPixelsPerSecond" units="pps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of pixels (sqrt(width*height)) of sent frames to the renderer per
@@ -192339,7 +196622,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RetransmittedBitrateReceivedInKbps" units="kbps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of retransmitted bits per second for a received video stream.
@@ -192349,7 +196632,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RetransmittedBitrateSentInKbps" units="kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The number of retransmitted bits per second for a sent video stream.
@@ -192371,7 +196654,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RtxBitrateReceivedInKbps" units="kbps"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received bits over RTX per second for a received video stream.
@@ -192410,7 +196693,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.BitrateSentInKbps" units="kbps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>sprang@chromium.org</owner>
<summary>
The number of sent bits per second for a sent screenshare stream. Recorded
@@ -192420,7 +196703,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.Decoded.Vp8.Qp" units="qp value"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192430,7 +196713,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Capturer"
- units="frames" expires_after="M86">
+ units="frames" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192440,7 +196723,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Encoder" units="frames"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192450,7 +196733,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.EncoderQueue"
- units="frames" expires_after="M87">
+ units="frames" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192460,7 +196743,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Ratelimiter"
- units="frames" expires_after="M86">
+ units="frames" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192479,7 +196762,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.EndToEndDelayInMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192489,7 +196772,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.EndToEndDelayMaxInMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192567,7 +196850,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelay95PercentileInMs"
- units="ms" expires_after="M83">
+ units="ms" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192577,7 +196860,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelayInMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192587,7 +196870,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelayMaxInMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192597,7 +196880,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.KeyFramesReceivedInPermille"
- units="permille" expires_after="M86">
+ units="permille" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192632,7 +196915,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MeanFreezeDurationMs" units="ms"
- expires_after="M83">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192642,7 +196925,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MeanTimeBetweenFreezesMs" units="ms"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192652,7 +196935,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MediaBitrateReceivedInKbps"
- units="kbps" expires_after="M86">
+ units="kbps" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192684,7 +196967,7 @@ regressions. -->
<histogram
name="WebRTC.Video.Screenshare.NumberResolutionDownswitchesPerMinute"
- units="switches/minute" expires_after="M86">
+ units="switches/minute" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192734,7 +197017,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceivedHeightInPixels"
- units="pixels" expires_after="M86">
+ units="pixels" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192744,7 +197027,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceivedPacketsLostInPercent"
- units="%" expires_after="M87">
+ units="%" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192754,7 +197037,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceivedWidthInPixels" units="pixels"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192764,7 +197047,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceiveStreamLifetimeInSeconds"
- units="seconds" expires_after="M87">
+ units="seconds" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192820,7 +197103,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.SentFramesPerSecond" units="fps"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192849,7 +197132,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.SentToInputFpsRatioPercent" units="%"
- expires_after="M86">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192870,7 +197153,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.TimeInBlockyVideoPercentage"
- units="%" expires_after="M86">
+ units="%" expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192880,7 +197163,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.TimeInHdPercentage" units="%"
- expires_after="M87">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -192899,7 +197182,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendDelayInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The average send delay of sent packets for a sent video stream. Recorded
@@ -192909,7 +197192,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendSideDelayInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay (of average delays) of sent packets for a sent video
@@ -192921,7 +197204,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendSideDelayMaxInMs" units="ms"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay (of max delays) of sent packets for a sent video stream.
@@ -192933,7 +197216,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendStreamLifetimeInSeconds" units="seconds"
- expires_after="2020-10-25">
+ expires_after="2020-12-27">
<owner>asapersson@chromium.org</owner>
<summary>
The lifetime of a video send stream. Recorded when a VideoSendStream
@@ -192942,7 +197225,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentFramesPerSecond" units="fps"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent frames per second for a sent video stream. Recorded when
@@ -192961,7 +197244,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentPacketsLostInPercent" units="%"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent packets lost for a sent video stream. Recorded when a
@@ -192970,7 +197253,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentToInputFpsRatioPercent" units="%"
- expires_after="M87">
+ expires_after="M88">
<owner>ilnik@chromium.org</owner>
<owner>webrtc-video@google.com</owner>
<summary>
@@ -193085,7 +197368,7 @@ regressions. -->
</histogram>
<histogram name="WebRtcEventLogging.Api" enum="WebRtcEventLoggingApiEnum"
- expires_after="2020-07-26">
+ expires_after="2021-07-07">
<owner>eladalon@chromium.org</owner>
<owner>saeedj@google.com</owner>
<owner>manj@google.com</owner>
@@ -193097,7 +197380,7 @@ regressions. -->
</histogram>
<histogram name="WebRtcEventLogging.NetError" units="units"
- expires_after="2020-07-19">
+ expires_after="2021-07-07">
<owner>eladalon@chromium.org</owner>
<owner>saeedj@google.com</owner>
<owner>manj@google.com</owner>
@@ -193109,7 +197392,7 @@ regressions. -->
</histogram>
<histogram name="WebRtcEventLogging.Upload" enum="WebRtcEventLoggingUploadEnum"
- expires_after="2020-09-13">
+ expires_after="2021-07-07">
<owner>eladalon@chromium.org</owner>
<owner>saeedj@google.com</owner>
<owner>manj@google.com</owner>
@@ -193152,7 +197435,7 @@ regressions. -->
</histogram>
<histogram name="WebShare.ApiCount" enum="WebShareMethod"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>mgiuca@chromium.org</owner>
<summary>
Counts the number of calls to navigator.share. Includes both successful and
@@ -193457,13 +197740,13 @@ regressions. -->
</histogram>
<histogram name="WebUI.CreatedForUrl" enum="WebUIUrlHashes"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>dbeam@chromium.org</owner>
<summary>URLs for which Chrome creates WebUIControllers.</summary>
</histogram>
<histogram name="WebUI.Settings.PathVisited" enum="WebUISettingsPathHashes"
- expires_after="2020-11-29">
+ expires_after="2021-01-31">
<owner>dschuyler@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<owner>bettes@chromium.org</owner>
@@ -193476,7 +197759,7 @@ regressions. -->
</histogram>
<histogram name="WebUITabStrip.CloseAction" enum="WebUITabStripCloseActions"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>collinbaker@chromium.org</owner>
<owner>dfried@chromium.org</owner>
<summary>
@@ -193487,7 +197770,7 @@ regressions. -->
</histogram>
<histogram name="WebUITabStrip.CloseTabAction"
- enum="WebUITabStripCloseTabActions" expires_after="2020-11-15">
+ enum="WebUITabStripCloseTabActions" expires_after="2021-01-17">
<owner>johntlee@chromium.org</owner>
<owner>dpapad@chromium.org</owner>
<summary>
@@ -193498,7 +197781,7 @@ regressions. -->
</histogram>
<histogram name="WebUITabStrip.OpenAction" enum="WebUITabStripOpenActions"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>collinbaker@chromium.org</owner>
<owner>dfried@chromium.org</owner>
<summary>
@@ -193509,7 +197792,7 @@ regressions. -->
</histogram>
<histogram name="WebUITabStrip.OpenDuration" units="ms"
- expires_after="2020-11-15">
+ expires_after="2021-01-17">
<owner>collinbaker@chromium.org</owner>
<owner>dfried@chromium.org</owner>
<summary>
@@ -193519,7 +197802,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebUITabStrip.TabActivation" units="ms" expires_after="M86">
+<histogram name="WebUITabStrip.TabActivation" units="ms" expires_after="M90">
<owner>robliao@chromium.org</owner>
<owner>johntlee@chromium.org</owner>
<summary>
@@ -193528,7 +197811,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebUITabStrip.TabCreation" units="ms" expires_after="M86">
+<histogram name="WebUITabStrip.TabCreation" units="ms" expires_after="M90">
<owner>robliao@chromium.org</owner>
<owner>johntlee@chromium.org</owner>
<summary>
@@ -193536,7 +197819,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebUITabStrip.TabDataReceived" units="ms" expires_after="M86">
+<histogram name="WebUITabStrip.TabDataReceived" units="ms" expires_after="M90">
<owner>robliao@chromium.org</owner>
<owner>johntlee@chromium.org</owner>
<summary>
@@ -193605,9 +197888,11 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebView.ApiCall" enum="WebViewApiCall" expires_after="M85">
+<histogram name="WebView.ApiCall" enum="WebViewApiCall"
+ expires_after="2021-07-24">
<owner>changwan@chromium.org</owner>
<owner>ntfschr@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
<summary>Records calls to WebView APIs in WebViewChromium.</summary>
</histogram>
@@ -193627,7 +197912,7 @@ regressions. -->
<histogram name="Welcome.SignInPromptResult" enum="WelcomeSignInPromptOutcome"
expires_after="2021-06-30">
<owner>tmartino@chromium.org</owner>
- <owner>msarda@chromium.com</owner>
+ <owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
<summary>
@@ -193767,6 +198052,16 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Windows.ChromeDllPrefetchResult" enum="FilePrefetchResult"
+ expires_after="2021-07-01">
+ <owner>brucedawson@chromium.org</owner>
+ <owner>jessemckenna@google.com</owner>
+ <summary>
+ The result of prefetching chrome.dll on Windows, including whether a
+ fallback to slow prefetch took place, and why if so.
+ </summary>
+</histogram>
+
<histogram name="Windows.ComputeNativeWindowOcclusionTime" units="microseconds"
expires_after="M83">
<owner>fdoray@chromium.org</owner>
@@ -193898,8 +198193,23 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Windows.IsPinnedToTaskbar2" enum="BooleanError"
+ expires_after="M87">
+ <owner>pmonette@chromium.org</owner>
+ <owner>chrdavis@microsoft.com</owner>
+ <summary>
+ Indicates whether Chrome is pinned to the Windows taskbar for the current
+ user. Recorded shortly after startup. This is different from
+ Windows.IsPinnedToTaskbar in that we do not check if the pin to taskbar verb
+ is available on the shortcut and only relies on the shortcut existing in the
+ User Pinned folder.
+ </summary>
+</histogram>
+
<histogram name="Windows.Kernel32Version" enum="WindowsVersion"
- expires_after="M85">
+ expires_after="never">
+<!-- expires-never: Needed to measure Windows ecosystem. -->
+
<owner>wfh@chromium.org</owner>
<owner>brucedawson@chromium.org</owner>
<summary>
@@ -193951,8 +198261,11 @@ regressions. -->
</histogram>
<histogram name="Windows.ParentProcessNameHash" enum="ProcessNameHash"
- expires_after="M85">
+ expires_after="never">
+<!-- expires-never: Needed to measure third party incompatibilities on Windows which could happen at any time. -->
+
<owner>wfh@chromium.org</owner>
+ <owner>brucedawson@chromium.org</owner>
<summary>
The 32-bit hash of the lower-case parent process basename (e.g.
explorer.exe) of the main Chrome executable. Reported once during startup as
@@ -194494,7 +198807,7 @@ regressions. -->
</histogram>
<histogram name="WrenchMenu.MenuAction" enum="WrenchMenuAction"
- expires_after="2020-12-06">
+ expires_after="2021-02-07">
<owner>ainslie@chromium.org</owner>
<owner>edwardjung@chromium.org</owner>
<summary>Number of times that each menu item is clicked.</summary>
@@ -194525,7 +198838,7 @@ regressions. -->
</histogram>
<histogram name="WrenchMenu.TimeToAction" units="units"
- expires_after="2020-12-13">
+ expires_after="2021-02-14">
<owner>ainslie@chromium.org</owner>
<owner>edwardjung@chromium.org</owner>
<summary>
@@ -194710,7 +199023,7 @@ regressions. -->
</histogram>
<histogram name="XR.WebXR.ReferenceSpace.Succeeded" enum="XRReferenceSpaceType"
- expires_after="2020-11-08">
+ expires_after="2021-01-10">
<owner>alcooper@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
@@ -194992,13 +199305,31 @@ regressions. -->
<suffix name="AdFrames.PerFrame.PeakWindowedPercent"
label="The peak load over all 30 second windows while the page is
unactivated of an ad creative. This is measured as percentage of
- a cpu core used and capped at 100% for multicore systems."/>
+ a cpu core used and capped at 100% for multicore systems.">
+ <obsolete>
+ Deprecated 08/20 in favor of AdFrames.PerFrame.PeakWindowedPercent2.
+ </obsolete>
+ </suffix>
+ <suffix name="AdFrames.PerFrame.PeakWindowedPercent2"
+ label="The peak load over all 30 second windows while the page is
+ unactivated of an ad creative. This is measured as percentage of
+ a cpu core used and capped at 100% for multicore systems. This
+ is measured whether the frame is in the foreground or not."/>
<suffix name="AdFrames.PerFrame.PeakWindowStartTime"
label="The start time of the 30 second window associated with the
+ PeakWindowedPercent of the frame, relative to navigation start of
+ the page. Measured in milliseconds. Frames with no CPU usage do
+ not record a start time. This is recorded only when the page
+ keeps forgrounded.">
+ <obsolete>
+ Deprecated 08/20 in favor of AdFrames.PerFrame.PeakWindowStartTime2.
+ </obsolete>
+ </suffix>
+ <suffix name="AdFrames.PerFrame.PeakWindowStartTime2"
+ label="The start time of the 30 second window associated with the
PeakWindowedPercent of the frame, relative to navigation start
of the page. Measured in milliseconds. Frames with no CPU usage
- do not record a start time. This is recorded only when the page
- keeps foregrounded."/>
+ do not record a start time."/>
<suffix name="AdFrames.PerFrame.PercentUsage"
label="The average load of an ad creative across the life of the page.
This is measured as percentage of a cpu core used and capped at
@@ -195018,7 +199349,15 @@ regressions. -->
</suffix>
<suffix name="AdFrames.PerFrame.TotalUsage"
label="The total load of an ad creative across the life of the page.
- This is measured in milliseconds and capped at 10 seconds."/>
+ This is measured in milliseconds and capped at 10 seconds.">
+ <obsolete>
+ Deprecated 08/20 in favor of AdFrames.PerFrame.TotalUsage2.
+ </obsolete>
+ </suffix>
+ <suffix name="AdFrames.PerFrame.TotalUsage2"
+ label="The total load of an ad creative across the life of the page.
+ This is measured in milliseconds and capped at 10 seconds. This
+ is measured whether the frame is in the foreground or not."/>
<affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
<affected-histogram name="PageLoad.Clients.Ads.NonVisible.Cpu"/>
<affected-histogram name="PageLoad.Clients.Ads.Visible.Cpu"/>
@@ -195046,17 +199385,43 @@ regressions. -->
<histogram_suffixes name="AdsPageLoadMetricsCpuFullPage" separator=".">
<suffix name="AdFrames.Aggregate.TotalUsage"
label="The total CPU usage across all ad frames on a page in its
- lifetime. This is measured in milliseconds."/>
+ lifetime. This is measured in milliseconds.">
+ <obsolete>
+ Deprecated 08/20 in favor of Adframes.Aggregate.TotalUsage2.
+ </obsolete>
+ </suffix>
+ <suffix name="AdFrames.Aggregate.TotalUsage2"
+ label="The total CPU usage across all ad frames on a page in its
+ lifetime. This is measured in milliseconds. This is measured
+ whether a frame is in the foreground or not."/>
<suffix name="FullPage.PeakWindowedPercent"
label="The peak load over all 30 second windows during the lifetime of
the page. This is measured as percentage of a cpu core used and
- capped at 100% for multicore systems."/>
+ capped at 100% for multicore systems.">
+ <obsolete>
+ Deprecated 08/20 in favor of FullPage.PeakWindowedPercent2.
+ </obsolete>
+ </suffix>
+ <suffix name="FullPage.PeakWindowedPercent2"
+ label="The peak load over all 30 second windows during the lifetime of
+ the page. This is measured as percentage of a cpu core used and
+ capped at 100% for multicore systems. This is measured whether a
+ frame is in the foreground or not."/>
<suffix name="FullPage.PeakWindowStartTime"
label="The start time of the 30 second window associated with the
PeakWindowedPercent of the page, relative to navigation start of
the page. Measured in milliseconds. Pages with no CPU usage do
not record a start time. This is recorded only when the page
- keeps foregrounded."/>
+ keeps foregrounded.">
+ <obsolete>
+ Deprecated 08/20 in favor of FullPage.PeakWindowStartTime2.
+ </obsolete>
+ </suffix>
+ <suffix name="FullPage.PeakWindowStartTime2"
+ label="The start time of the 30 second window associated with the
+ PeakWindowedPercent of the page, relative to navigation start of
+ the page. Measured in milliseconds. Pages with no CPU usage do
+ not record a start time."/>
<suffix name="FullPage.PercentUsage"
label="The average load of the page across its lifetime. This is
measured as percentage of a cpu core used and capped at 100% for
@@ -195067,7 +199432,26 @@ regressions. -->
</suffix>
<suffix name="FullPage.TotalUsage"
label="The total load of the page across its lifetime. This is measured
- in milliseconds and capped at 10 minutes."/>
+ in milliseconds and capped at 10 minutes.">
+ <obsolete>
+ Deprecated 08/20 in favor of FullPage.TotalUsage2.
+ </obsolete>
+ </suffix>
+ <suffix name="FullPage.TotalUsage2"
+ label="The total load of the page across its lifetime. This is measured
+ in milliseconds and capped at 10 minutes. This is measured
+ whether a frame is in the foreground or not."/>
+ <suffix name="NonAdFrames.Aggregate.PeakWindowedPercent2"
+ label="The peak load over all 30 second windows during the lifetime of
+ the page of all non-ad frame activity including that of the main
+ frame. This is measured as percentage of a cpu core used and
+ capped at 100% for multicore systems. This is measured whether a
+ frame was in the foreground or not."/>
+ <suffix name="NonAdFrames.Aggregate.TotalUsage2"
+ label="The total load of non-ad frames on page including the main frame
+ across its lifetime. This is measured in milliseconds and capped
+ at 10 minutes. This is measured whether a frame is in the
+ foreground or not."/>
<affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
</histogram_suffixes>
@@ -195254,6 +199638,8 @@ regressions. -->
have an area greater than 16 pixels."/>
<affected-histogram
name="PageLoad.AdPaintTiming.NavigationToFirstContentfulPaint"/>
+ <affected-histogram
+ name="PageLoad.AdPaintTiming.NavigationToFirstContentfulPaint2"/>
<affected-histogram name="PageLoad.Bytes"/>
<affected-histogram name="PageLoad.Cpu"/>
<affected-histogram
@@ -195671,6 +200057,7 @@ regressions. -->
<affected-histogram name="Arc.PlayAutoInstallRequest.State"/>
<affected-histogram name="Arc.PlayAutoInstallRequest.TimeDelta"/>
<affected-histogram name="Arc.PlayStoreShown.TimeDelta"/>
+ <affected-histogram name="Arc.Provisioning.CloudFlowError"/>
<affected-histogram name="Arc.Provisioning.Result"/>
<affected-histogram name="Arc.Provisioning.TimeDelta.Failure"/>
<affected-histogram name="Arc.Provisioning.TimeDelta.Success"/>
@@ -195684,6 +200071,18 @@ regressions. -->
<affected-histogram name="ArcAuth.MainAccountResolutionStatus"/>
</histogram_suffixes>
+<histogram_suffixes name="AshAssistantAnimationSmoothness" separator=".">
+ <suffix name="CardElement"
+ label="Animation for showing and hiding card responses"/>
+ <suffix name="ResizeAssistantPageView"
+ label="Expand assistant from launcher"/>
+ <suffix name="SuggestionChip"
+ label="Animation for showing and hiding suggestion chips"/>
+ <suffix name="TextElement"
+ label="Animation for showing and hiding text response"/>
+ <affected-histogram name="Ash.Assistant.AnimationSmoothness"/>
+</histogram_suffixes>
+
<histogram_suffixes name="AssistantProactiveSuggestionsShowAttemptByCategory"
separator="." ordering="prefix,3">
<suffix name="AbortedByDuplicateSuppression"
@@ -195793,6 +200192,7 @@ regressions. -->
<suffix name="Other"
label="Another form type was encountered, such as a form with all
unknown fields"/>
+ <suffix name="PhoneOnly" label="Form has phone field only"/>
<affected-histogram name="Autofill.FormEvents.Address"/>
<affected-histogram name="Autofill.UserHappiness.Address"/>
</histogram_suffixes>
@@ -196273,9 +200673,13 @@ regressions. -->
<histogram_suffixes name="Availability.Prober.Clients" separator=".">
<suffix name="IsolatedPrerenderCanaryCheck"
- label="Canary check for Isolated Prerenders probing"/>
+ label="(M85 only) Canary check for Isolated Prerenders probing"/>
+ <suffix name="IsolatedPrerenderDNSCanaryCheck"
+ label="DNS canary check for Isolated Prerenders probing"/>
<suffix name="IsolatedPrerenderOriginCheck"
label="Origin check for Isolated Prerenders"/>
+ <suffix name="IsolatedPrerenderTLSCanaryCheck"
+ label="TLS canary check for Isolated Prerenders probing"/>
<suffix name="Litepages" label="Lite page HTTPS Server Previews">
<obsolete>
Removed in M84.
@@ -196584,7 +200988,9 @@ regressions. -->
<suffix name="LessThan1ms" label="Ratio when main frame shorter than 1ms."/>
<suffix name="MoreThan5ms" label="Ratio when main frame longer than 5ms."/>
<affected-histogram name="Blink.MainFrame.AnimateRatio"/>
+ <affected-histogram name="Blink.MainFrame.CompositingAssignmentsRatio"/>
<affected-histogram name="Blink.MainFrame.CompositingCommitRatio"/>
+ <affected-histogram name="Blink.MainFrame.CompositingInputsRatio"/>
<affected-histogram name="Blink.MainFrame.CompositingRatio"/>
<affected-histogram name="Blink.MainFrame.ForcedStyleAndLayoutRatio"/>
<affected-histogram name="Blink.MainFrame.HandleInputEventsRatio"/>
@@ -196607,7 +201013,9 @@ regressions. -->
label="All the time spent Pre First Contentful Paint in this component"/>
<affected-histogram name="Blink.Animate.UpdateTime"/>
<affected-histogram name="Blink.Compositing.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingAssignments.UpdateTime"/>
<affected-histogram name="Blink.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingInputs.UpdateTime"/>
<affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
<affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
<affected-histogram name="Blink.HitTestDocumentUpdate.UpdateTime"/>
@@ -196628,7 +201036,9 @@ regressions. -->
<suffix name="PostFCP" label="Update occurred after First Contentful Paint."/>
<affected-histogram name="Blink.Animate.UpdateTime"/>
<affected-histogram name="Blink.Compositing.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingAssignments.UpdateTime"/>
<affected-histogram name="Blink.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingInputs.UpdateTime"/>
<affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
<affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
<affected-histogram name="Blink.HitTestDocumentUpdate.UpdateTime"/>
@@ -196649,7 +201059,9 @@ regressions. -->
<suffix name="PreFCP" label="Update occurred before First Contentful Paint."/>
<affected-histogram name="Blink.Animate.UpdateTime"/>
<affected-histogram name="Blink.Compositing.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingAssignments.UpdateTime"/>
<affected-histogram name="Blink.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.CompositingInputs.UpdateTime"/>
<affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
<affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
<affected-histogram name="Blink.HitTestDocumentUpdate.UpdateTime"/>
@@ -197444,6 +201856,18 @@ regressions. -->
label="The time from when the compositor frame is submitted to the
display compositor to when it is presented."/>
<suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady"
+ label="The time from when the target framebuffer is available to when
+ the GPU has finished drawing to it."/>
+ <suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch"
+ label="The time from when the target framebuffer is ready to be
+ displayed to when the buffer is latched on for presentation."/>
+ <suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd"
+ label="The time from when the target framebuffer is latched on to when
+ the swap ends."/>
+ <suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"
label="The time from when the compositor frame is received to when it
starts to draw."/>
@@ -197470,6 +201894,10 @@ regressions. -->
label="The time from when the compositor frame ends swap to when it is
presented."/>
<suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable"
+ label="The time from when the compositor frame starts to swap to when
+ the target framebuffer becomes available."/>
+ <suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd"
label="The time from when the compositor frame starts to swap to when
it ends swap."/>
@@ -197489,6 +201917,7 @@ regressions. -->
name="CompositorLatency.DroppedFrame.MainThreadAnimation"/>
<affected-histogram name="CompositorLatency.DroppedFrame.PinchZoom"/>
<affected-histogram name="CompositorLatency.DroppedFrame.RAF"/>
+ <affected-histogram name="CompositorLatency.DroppedFrame.ScrollbarScroll"/>
<affected-histogram name="CompositorLatency.DroppedFrame.TouchScroll"/>
<affected-histogram name="CompositorLatency.DroppedFrame.WheelScroll"/>
<affected-histogram name="CompositorLatency.MainThreadAnimation"/>
@@ -197499,6 +201928,8 @@ regressions. -->
name="CompositorLatency.MissedDeadlineFrame.MainThreadAnimation"/>
<affected-histogram name="CompositorLatency.MissedDeadlineFrame.PinchZoom"/>
<affected-histogram name="CompositorLatency.MissedDeadlineFrame.RAF"/>
+ <affected-histogram
+ name="CompositorLatency.MissedDeadlineFrame.ScrollbarScroll"/>
<affected-histogram name="CompositorLatency.MissedDeadlineFrame.TouchScroll"/>
<affected-histogram name="CompositorLatency.MissedDeadlineFrame.WheelScroll"/>
<affected-histogram name="CompositorLatency.MissedFrame">
@@ -197578,6 +202009,7 @@ regressions. -->
</affected-histogram>
<affected-histogram name="CompositorLatency.PinchZoom"/>
<affected-histogram name="CompositorLatency.RAF"/>
+ <affected-histogram name="CompositorLatency.ScrollbarScroll"/>
<affected-histogram name="CompositorLatency.TouchScroll"/>
<affected-histogram name="CompositorLatency.WheelScroll"/>
<affected-histogram name="SingleThreadedCompositorLatency">
@@ -197715,6 +202147,18 @@ regressions. -->
label="The time from when the a compositor frame is submitted to the
display compositor to when it is presented."/>
<suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady"
+ label="The time from when the target framebuffer is available to when
+ the GPU has finished drawing to it."/>
+ <suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch"
+ label="The time from when the target framebuffer is ready to be
+ displayed to when the buffer is latched on for presentation."/>
+ <suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd"
+ label="The time from when the target framebuffer is latched on to when
+ the swap ends."/>
+ <suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"
label="The time from when a compositor frame is received to when it
starts to draw."/>
@@ -197731,6 +202175,10 @@ regressions. -->
label="The time from when the a compositor frame ends swap to when it
is presented."/>
<suffix
+ name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable"
+ label="The time from when the compositor frame starts to swap to when
+ the target framebuffer becomes available."/>
+ <suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd"
label="The time from when a compositor frame starts to swap to when it
ends swap."/>
@@ -197744,6 +202192,8 @@ regressions. -->
name="CompositorLatency.CompositorOnlyFrame.MainThreadAnimation"/>
<affected-histogram name="CompositorLatency.CompositorOnlyFrame.PinchZoom"/>
<affected-histogram name="CompositorLatency.CompositorOnlyFrame.RAF"/>
+ <affected-histogram
+ name="CompositorLatency.CompositorOnlyFrame.ScrollbarScroll"/>
<affected-histogram name="CompositorLatency.CompositorOnlyFrame.TouchScroll"/>
<affected-histogram name="CompositorLatency.CompositorOnlyFrame.WheelScroll"/>
</histogram_suffixes>
@@ -198257,30 +202707,6 @@ regressions. -->
<affected-histogram name="ContextualSuggestions.PageViewTime"/>
</histogram_suffixes>
-<histogram_suffixes name="CookieConnectionType" separator="">
- <obsolete>
- Removed 2019-10-31 as part of cookie histogram cleanup
- (https://crbug.com/993120).
- </obsolete>
- <suffix name="NonSecure" label="For non-secure,"/>
- <suffix name="Secure" label="For secure,"/>
- <affected-histogram name="Cookie.AgeFor"/>
- <affected-histogram name="Cookie.AllAgesFor"/>
-</histogram_suffixes>
-
-<histogram_suffixes name="CookieSiteAffinity" separator="">
- <obsolete>
- Removed 2019-10-31 as part of cookie histogram cleanup
- (https://crbug.com/993120).
- </obsolete>
- <suffix name="CrossSiteRequest" label="cross-site requests."/>
- <suffix name="SameSiteRequest" label="same-site requests."/>
- <affected-histogram name="Cookie.AgeForNonSecure"/>
- <affected-histogram name="Cookie.AgeForSecure"/>
- <affected-histogram name="Cookie.AllAgesForNonSecure"/>
- <affected-histogram name="Cookie.AllAgesForSecure"/>
-</histogram_suffixes>
-
<histogram_suffixes name="CORBProtectionDecision" separator=".">
<suffix name="BlockedAfterSniffingWithRangeSupport"
label="Here the CORB protection decision was kBlockedAfterSniffing."/>
@@ -198316,6 +202742,38 @@ regressions. -->
<affected-histogram name="Cras.StreamSamplingRate.Output"/>
</histogram_suffixes>
+<histogram_suffixes name="Cras.DeviceType" separator=".">
+ <suffix name="A2DP" label="Bluetooth A2DP."/>
+ <suffix name="AbnormalFallback"
+ label="Abnormal use case on the fallback device."/>
+ <suffix name="AlsaLoopback" label="ALSA loopback Device."/>
+ <suffix name="Bluetooth" label="Bluetooth device."/>
+ <suffix name="BluetoothNarrowBandMic" label="Bluetooth with NarrowBand Mic."/>
+ <suffix name="BluetoothWideBandMic" label="Bluetooth with WideBand Mic."/>
+ <suffix name="FrontMic" label="Front mic."/>
+ <suffix name="Haptic" label="Haptic device."/>
+ <suffix name="HDMI" label="HDMI device."/>
+ <suffix name="Headphone" label="Headphone."/>
+ <suffix name="HFP" label="Bluetooth HFP."/>
+ <suffix name="Hotword" label="Hotword device."/>
+ <suffix name="HSP" label="Bluetooth HSP."/>
+ <suffix name="InternalMic" label="Internal mic."/>
+ <suffix name="InternalSpeaker" label="Internal speaker."/>
+ <suffix name="InvalidType" label="Invalid type. It should not be used."/>
+ <suffix name="KeyboardMic" label="Keyboard mic."/>
+ <suffix name="Lineout" label="Line out."/>
+ <suffix name="Mic" label="External mic."/>
+ <suffix name="NoDevice" label="No device. It should not be used."/>
+ <suffix name="NormalFallback" label="Fallback device."/>
+ <suffix name="PostDspLoopback" label="Post DSP loopback."/>
+ <suffix name="PostMixLoopback" label="Post Mix loopback."/>
+ <suffix name="RearMic" label="Rear mic."/>
+ <suffix name="SilentHotword" label="Silent hotword device."/>
+ <suffix name="Unknown" label="Unknown device. It should not be used."/>
+ <suffix name="USB" label="USB device."/>
+ <affected-histogram name="Cras.DeviceVolume"/>
+</histogram_suffixes>
+
<histogram_suffixes name="Cras.Direction" separator=".">
<suffix name="Input" label="Capture"/>
<suffix name="Output" label="Playback"/>
@@ -198985,11 +203443,11 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="DataSaverProxyTypes" separator=".">
+ <owner>tbansal@chromium.org</owner>
<suffix name="InsecureProxy.Core"
label="Over an insecure, core data saver proxy."/>
<suffix name="InsecureProxy.NonCore"
label="Over an insecure, non-core data saver proxy."/>
- <owner>tbansal@chromium.org</owner>
<suffix name="SecureProxy.Core"
label="Over a secure, core data saver proxy."/>
<suffix name="SecureProxy.NonCore"
@@ -199238,6 +203696,7 @@ regressions. -->
<suffix name="FromMenu" label="From menu."/>
<suffix name="FromOmnibox" label="From Omnibox."/>
<suffix name="FromOtherApp" label="From another app."/>
+ <suffix name="FromSharesheet" label="From sharesheet."/>
<suffix name="FromShelf" label="From shelf."/>
<affected-histogram name="Apps.DefaultAppLaunch"/>
</histogram_suffixes>
@@ -200274,6 +204733,7 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="Enterprise.RemoteCommandType" separator=".">
+ <suffix name="BrowserClearBrowsingData" label="Clear Browsing Data"/>
<suffix name="CommandEchoTest" label="Command echo test"/>
<suffix name="DeviceFetchStatus" label="Fetch status"/>
<suffix name="DeviceGetAvailableDiagnosticRoutines"
@@ -200515,9 +204975,17 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="EventLatencyScrollBreakdowns" separator=".">
- <suffix name="TotalLatencyToSwapEnd"
+ <suffix name="TotalLatencyToSwapBegin"
label="Total latency from when the event is generated until the
- gpu-swap is completed."/>
+ gpu-swap is started."/>
+ <suffix name="TotalLatencyToSwapEnd"
+ label="Total latency from when the event is generated until the gpu-swap
+ is completed.">
+ <obsolete>
+ Deprecated as of 07/2020. Replaced with TotalLatencyToSwapBegin suffix
+ which measures what we actually intended to measure.
+ </obsolete>
+ </suffix>
<affected-histogram name="EventLatency.GestureScrollBegin.Autoscroll"/>
<affected-histogram name="EventLatency.GestureScrollBegin.Scrollbar"/>
<affected-histogram name="EventLatency.GestureScrollBegin.Touchscreen"/>
@@ -200546,6 +205014,13 @@ regressions. -->
<affected-histogram name="EventLatency.GestureScrollUpdate"/>
</histogram_suffixes>
+<histogram_suffixes name="EventLatencyTotal" separator=".">
+ <suffix name="TotalLatency"
+ label="Total latency from when the event is generated until the frame
+ is presented on screen for all event types."/>
+ <affected-histogram name="EventLatency"/>
+</histogram_suffixes>
+
<histogram_suffixes name="EventLatencyTypes" separator=".">
<suffix base="true" name="GestureDoubleTap"
label="Event latency for gesture-double-tap event."/>
@@ -200663,6 +205138,27 @@ regressions. -->
<affected-histogram name="Extensions.Functions.SucceededTime"/>
</histogram_suffixes>
+<histogram_suffixes name="ExtensionInstallStages" separator=".">
+ <suffix name="CheckingExpectationsStartTo.FinalizingStart"
+ label="Time taken to perform the expectations checks to confirm that
+ the extension can be installed."/>
+ <suffix name="CopyingStartTo.UnpackingStart"
+ label="Time taken to complete copying of extension archive into the
+ working directory"/>
+ <suffix name="DownloadingStartTo.ManifestDownloadComplete"
+ label="Time taken to complete download of update manifest"/>
+ <suffix name="FinalizingStartTo.CRXInstallComplete"
+ label="Time taken to complete the installation of the unpacked
+ extension."/>
+ <suffix name="ManifestDownloadCompleteTo.CRXDownloadComplete"
+ label="Time taken to complete download of CRX"/>
+ <suffix name="UnpackingStartTo.CheckingExpectationsStart"
+ label="Time taken to complete the unpacking of the extension archive."/>
+ <suffix name="VerificationStartTo.CopyingStart"
+ label="Time taken to complete signature verification of CRX"/>
+ <affected-histogram name="Extensions.ForceInstalledTime"/>
+</histogram_suffixes>
+
<histogram_suffixes name="ExtensionMessagingPortCreationTime" separator=".">
<suffix name="InBeforeUnload"
label="Created during an event handler for the 'beforeunload' event.">
@@ -200808,6 +205304,22 @@ regressions. -->
<affected-histogram name="ContentSuggestions.Feed.TokenFailedToCompleted"/>
</histogram_suffixes>
+<histogram_suffixes name="FeedLoadLatencyStep" separator=".">
+ <suffix name="ActionUpload"
+ label="Time taken read stored actions and upload them if necessary."/>
+ <suffix name="LoadFromStore"
+ label="Time taken to load the feed content from local storage."/>
+ <suffix name="QueryRequest"
+ label="Time taken to request fresh feed content from the network."/>
+ <suffix name="StreamView"
+ label="Time taken to receive feedback that a Feed item was shown. Time
+ begins after feed data is loaded from the network or local
+ storage"/>
+ <suffix name="TaskStart"
+ label="Time taken to begin executing the load stream task."/>
+ <affected-histogram name="ContentSuggestions.Feed.LoadStepLatency"/>
+</histogram_suffixes>
+
<histogram_suffixes name="FeedNetworkRequestType" separator=".">
<suffix name="FeedQuery" label="Requests to fetch new feed content"/>
<suffix name="UploadActions" label="Requests to upload user action data"/>
@@ -201367,6 +205879,28 @@ regressions. -->
<affected-histogram name="GPU.BlacklistFeatureTestResultsWindows2"/>
</histogram_suffixes>
+<histogram_suffixes name="GpuChannelManagerPressureHandlerDurationDetails"
+ separator=".">
+ <suffix name="DiscardableManagerHandleMemoryPressureDuration"
+ label="The time taken by the call to
+ |ServiceDiscardableManager::HandleMemoryPressure|."/>
+ <suffix name="GrShaderCachePurgeMemoryDuration"
+ label="The time taken by the call to |GrShaderCache::PurgeMemory|."/>
+ <suffix name="PasshtroughDiscardableManagerHandleMemoryPressureDuration"
+ label="The time taken by the call to
+ |PassthroughDiscardableManager::HandleMemoryPressure|."/>
+ <suffix name="ProgramCacheHandleMemoryPressureDuration"
+ label="The time taken by the call to
+ |ProgramCache::HandleMemoryPressure|."/>
+ <suffix name="SharedContextStatePurgeMemoryDuration"
+ label="The time taken by the call to |SharedContextState::PurgeMemory|."/>
+ <suffix name="TotalDuration" label="The total duration of this handler."/>
+ <suffix name="TrimD3DResourcesDuration"
+ label="The time taken by the call to |TrimD3DResources|."/>
+ <affected-histogram
+ name="Memory.Experimental.GpuChannelManagerPressureHandlerDuration"/>
+</histogram_suffixes>
+
<histogram_suffixes name="GpuChannelResponse" separator=".">
<obsolete>
Expired in M75.
@@ -201639,8 +206173,14 @@ regressions. -->
<histogram_suffixes name="HardwareVerifierSupportCategory" separator=".">
<suffix name="audio_codec" label=""/>
<suffix name="battery" label=""/>
+ <suffix name="camera" label=""/>
+ <suffix name="display_panel" label=""/>
+ <suffix name="dram" label=""/>
<suffix name="network" label=""/>
<suffix name="storage" label=""/>
+ <suffix name="stylus" label=""/>
+ <suffix name="touchpad" label=""/>
+ <suffix name="touchscreen" label=""/>
<suffix name="vpd_cached" label=""/>
<affected-histogram name="ChromeOS.HardwareVerifier.Report"/>
</histogram_suffixes>
@@ -201654,6 +206194,13 @@ regressions. -->
name="SiteIsolation.CORBProtection.ProtectedMimeType.BlockedWithoutSniffing.HasNoSniff"/>
</histogram_suffixes>
+<histogram_suffixes name="HiddenWhileFlushing" separator=".">
+ <suffix name="HiddenWhileFlushing"
+ label="Tab hidden while flushing FCP value."/>
+ <affected-histogram
+ name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
+</histogram_suffixes>
+
<histogram_suffixes name="HighDownloadBandwidth" separator=".">
<suffix name="HighDownloadBandwidth" label="download with high bandwidth."/>
<affected-histogram name="Download.Parallelizable.DownloadTime"/>
@@ -201873,6 +206420,7 @@ regressions. -->
label="Showing cache patterns only for AssistantDetails."/>
<suffix name="ContextualSuggestions"
label="Showing cache patterns only for ContextualSuggestions."/>
+ <suffix name="Cryptids" label="Asset fetcher for cryptid rendering."/>
<suffix name="EduAccountLoginProfileImageFetcher"
label="Profile image fetcher for EDU account login flow"/>
<suffix name="EntitySuggestions"
@@ -201991,10 +206539,13 @@ regressions. -->
<histogram_suffixes name="IndexId" separator="." ordering="prefix,1">
<suffix name="CrosSettings" label="Cros Settings"/>
+ <suffix name="HelpApp" label="Help App"/>
<affected-histogram name="LocalSearchService.Backend"/>
<affected-histogram name="LocalSearchService.DailySearch"/>
+ <affected-histogram name="LocalSearchService.NumberDocuments"/>
<affected-histogram name="LocalSearchService.NumberResults"/>
<affected-histogram name="LocalSearchService.ResponseStatus"/>
+ <affected-histogram name="LocalSearchService.SearchLatency"/>
</histogram_suffixes>
<histogram_suffixes name="InputEventPredictionAccuracy" separator=".">
@@ -202349,6 +206900,8 @@ regressions. -->
<suffix name="Instant" label=""/>
<suffix name="NoInstant" label=""/>
<affected-histogram name="Startup.Android.FeedContentFirstLoadedTime"/>
+ <affected-histogram name="Startup.Android.FeedStreamCreatedTime"/>
+ <affected-histogram name="Startup.Android.FirstDrawCompletedTime"/>
<affected-histogram name="Startup.Android.SingleTabTitleAvailableTime"/>
</histogram_suffixes>
@@ -202461,6 +207014,13 @@ regressions. -->
<affected-histogram name="Apps.AppList.UserEvent.TypeLaunch"/>
</histogram_suffixes>
+<histogram_suffixes name="LayerTreeClient" separator=".">
+ <suffix name="Browser" label="Browser"/>
+ <suffix name="OOPIF" label="OOPIF (out-of-process iframe) renderer"/>
+ <suffix name="Renderer" label="Non-OOPIF renderer"/>
+ <affected-histogram name="Compositing.ResourcePoolMemoryUsage"/>
+</histogram_suffixes>
+
<histogram_suffixes name="LCDTextDisallowedReasonSuffixes" separator=".">
<suffix name="HighDPI"
label="In web pages where device scale factor is greater than or equal
@@ -202599,6 +207159,8 @@ regressions. -->
<suffix name="GCMKeyStore" label="Databases for GCMKeyStore"/>
<suffix name="ImageManager" label="Databases for ImageManager"/>
<suffix name="Metadata" label="Metadata of shared databases"/>
+ <suffix name="NearbySharePublicCertificateDatabase"
+ label="Database for Nearby Share public certificates."/>
<suffix name="NotificationSchedulerIcons"
label="Notification scheduler icons database."/>
<suffix name="NotificationSchedulerImpressions"
@@ -202861,6 +207423,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="LocalSiteCharacteristicsFeatures" separator=".">
+ <obsolete>
+ Removed July 2020.
+ </obsolete>
<suffix name="AudioUsageInBackground"
label="A tab played some audio while it was in background."/>
<suffix name="FaviconUpdateInBackground"
@@ -202883,15 +207448,6 @@ regressions. -->
<affected-histogram name="LocalStorageContext.OpenResultAfter"/>
</histogram_suffixes>
-<histogram_suffixes name="LocalStorageSizes" separator="">
- <suffix name="1MBTo5MB" label="DB size between 1MB and 5MB"/>
- <suffix name="100KBTo1MB" label="DB size between 100KB and 1MB"/>
- <suffix name="Under100KB" label="DB size under 100KB"/>
- <affected-histogram name="LocalStorage.BrowserTimeToPrimeLocalStorage"/>
- <affected-histogram name="LocalStorage.MojoTimeToPrimeFor"/>
- <affected-histogram name="LocalStorage.RendererTimeToPrimeLocalStorage"/>
-</histogram_suffixes>
-
<histogram_suffixes name="LocationAttachedStatus" separator=".">
<suffix name="LocationAttached"
label="This histogram is for when the location was successfully
@@ -202976,6 +207532,17 @@ regressions. -->
<affected-histogram name="Media.Audio.InputStartupSuccessMac"/>
</histogram_suffixes>
+<histogram_suffixes name="MachineLearningServiceLoadModelResult" separator="."
+ ordering="prefix">
+ <suffix name="HandwritingModel" label="On-device handwriting model."/>
+ <suffix name="TextClassifier" label="On-device text classification model."/>
+ <affected-histogram
+ name="MachineLearningService.LoadModelResult.CpuTimeMicrosec"/>
+ <affected-histogram name="MachineLearningService.LoadModelResult.Event"/>
+ <affected-histogram
+ name="MachineLearningService.LoadModelResult.TotalMemoryDeltaKb"/>
+</histogram_suffixes>
+
<histogram_suffixes name="MachineLearningServiceModels" separator="."
ordering="prefix">
<suffix name="smart_dim_model_20190521_v3"
@@ -202983,11 +207550,11 @@ regressions. -->
downloadable smart dim models, will remove after M84."/>
<suffix name="SmartDimModel" label="Predict whether to cancel screen dims."/>
<suffix name="TestModel" label="A simple model for testing purpose."/>
- <suffix name="TextClassifier" label="On-device text classification model."/>
- <suffix name="TopCatModel" label="Predict the next app to be launched."/>
- <affected-histogram name="MachineLearningService.Annotate.CpuTimeMicrosec"/>
- <affected-histogram
- name="MachineLearningService.Annotate.TotalMemoryDeltaKb"/>
+ <suffix name="TopCatModel" label="Predict the next app to be launched.">
+ <obsolete>
+ TopCat model deprecated 2020-06.
+ </obsolete>
+ </suffix>
<affected-histogram
name="MachineLearningService.CreateGraphExecutorResult.CpuTimeMicrosec"/>
<affected-histogram
@@ -203025,21 +207592,24 @@ regressions. -->
<affected-histogram name="MachineLearningService.LoadModelResult.Event"/>
<affected-histogram
name="MachineLearningService.LoadModelResult.TotalMemoryDeltaKb"/>
- <affected-histogram
- name="MachineLearningService.SuggestSelection.CpuTimeMicrosec"/>
- <affected-histogram
- name="MachineLearningService.SuggestSelection.TotalMemoryDeltaKb"/>
</histogram_suffixes>
<histogram_suffixes name="MachineLearningServiceRequests" separator="."
ordering="prefix">
- <suffix base="true" name="Annotate" label=""/>
<suffix base="true" name="CreateGraphExecutorResult" label=""/>
<suffix base="true" name="ExecuteResult" label=""/>
+ <suffix name="HandwritingModel.Recognize" label=""/>
<suffix base="true" name="LoadModelResult" label=""/>
- <suffix base="true" name="SuggestSelection" label=""/>
+ <suffix name="TextClassifier.Annotate" label=""/>
+ <suffix name="TextClassifier.FindLanguages" label=""/>
+ <suffix name="TextClassifier.SuggestSelection" label=""/>
<affected-histogram name="MachineLearningService.CpuTimeMicrosec"/>
- <affected-histogram name="MachineLearningService.ElapsedTimeMicrosec"/>
+ <affected-histogram name="MachineLearningService.ElapsedTimeMicrosec">
+ <obsolete>
+ Removed 2020-02-01 because elapsed time should be measured by clients, if
+ they need it.
+ </obsolete>
+ </affected-histogram>
<affected-histogram name="MachineLearningService.PrivateMemoryDeltaKb">
<obsolete>
Deprecated 07/2019, because we change to record total (shared+unshared)
@@ -203321,6 +207891,8 @@ regressions. -->
<suffix name="Audio.SW" label="Software audio decoder"/>
<suffix name="Video.HW" label="Platform video decoder"/>
<suffix name="Video.SW" label="Software video decoder"/>
+ <affected-histogram name="Media.ConfigChangeDecoderSelectionTime"/>
+ <affected-histogram name="Media.InitialDecoderSelectionTime"/>
<affected-histogram name="Media.MSE.CodecChangeTime"/>
</histogram_suffixes>
@@ -203696,6 +208268,26 @@ regressions. -->
<affected-histogram name="MobileFre.Progress"/>
</histogram_suffixes>
+<histogram_suffixes name="MobileFreFragmentInflationVsAppRestriction"
+ separator=".">
+ <suffix name="FasterThanAppRestriction" label=""/>
+ <suffix name="SlowerThanAppRestriction" label=""/>
+ <affected-histogram name="MobileFre.FragmentInflationSpeed"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="MobileFreFromLaunchTarget" separator=".">
+ <suffix name="ActivityInflated"
+ label="The activity is ready to be drawn, although likely empty."/>
+ <suffix name="FirstFragmentInflated"
+ label="The first fragment is ready to be drawn, the first meaningful
+ paint."/>
+ <suffix name="FreCompleted" label="Entire FRE is completed."/>
+ <suffix name="TosAccepted" label="ToS is accepted."/>
+ <suffix name="TriggerLayoutInflation"
+ label="Recorded when layout inflation is triggered."/>
+ <affected-histogram name="MobileFre.FromLaunch"/>
+</histogram_suffixes>
+
<histogram_suffixes name="MobileFreSignInChoiceEntryType" separator=".">
<obsolete>
Removed from code as of 08/2016.
@@ -203818,7 +208410,11 @@ regressions. -->
history."/>
<suffix name="SerializedPostDataSize"
label="Estimated size of PostData in serialized session item used to
- persist single NavigationItem PostData in session history."/>
+ persist single NavigationItem PostData in session history.">
+ <obsolete>
+ Removed as of July 2020.
+ </obsolete>
+ </suffix>
<suffix name="SerializedReferrerURLSize"
label="Estimated size of referrer's URL in serialized session item used
to persist single NavigationItem referrer's URL in session
@@ -203971,9 +208567,12 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="Net.BidirectionalStreamExperiment" separator=".">
- <suffix name="HTTP2" label="Bidirectional stream that use HTTP2 protocol"/>
+ <obsolete>
+ Removed 07/2020. Not used in active investigations.
+ </obsolete>
<owner>mef@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
+ <suffix name="HTTP2" label="Bidirectional stream that use HTTP2 protocol"/>
<suffix name="QUIC" label="Bidirectional streams that use QUIC protocol"/>
<affected-histogram name="Net.BidirectionalStream.ReceivedBytes"/>
<affected-histogram name="Net.BidirectionalStream.SentBytes"/>
@@ -204086,6 +208685,8 @@ regressions. -->
<histogram_suffixes name="Net.QuicSession.PacketReceived_CONNECTION_TYPE"
separator="_">
+ <owner>dschinazi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
<suffix name="CONNECTION_2G" label="mobile 2G are tallied."/>
<suffix name="CONNECTION_3G" label="mobile 3G are tallied."/>
<suffix name="CONNECTION_4G" label="mobile 4G are tallied."/>
@@ -204097,8 +208698,6 @@ regressions. -->
bridge."/>
<suffix name="CONNECTION_NONE"
label="NO(?) network are tallied (should be empty)."/>
- <owner>dschinazi@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
<suffix name="CONNECTION_UNKNOWN" label="WiFi are tallied."/>
<suffix name="CONNECTION_WIFI"
label="WiFi are tallied, but this may include connections to a mobile
@@ -205399,10 +209998,10 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="NetQuicDiskCacheBackend" separator=".">
- <suffix name="DiskCache" label="DiskCache backend is using disk cache."/>
- <suffix name="MemoryCache" label="DiskCache backend is using memory cache."/>
<owner>dschinazi@chromium.org</owner>
<owner>src/net/quic/OWNERS</owner>
+ <suffix name="DiskCache" label="DiskCache backend is using disk cache."/>
+ <suffix name="MemoryCache" label="DiskCache backend is using memory cache."/>
<suffix name="NoBackend" label="DiskCache didn't have a backend"/>
<suffix name="PropertiesBasedCache" label="Preferences based cache is used."/>
<suffix name="WaitForDataReady"
@@ -206298,7 +210897,10 @@ regressions. -->
<suffix name="Auto-enrollment-check.Next" label=""/>
<suffix name="Autolaunch.Canceled" label=""/>
<suffix name="Autolaunch.Completed" label=""/>
+ <suffix name="Connect.EnableDebugging" label=""/>
<suffix name="Connect.Next" label=""/>
+ <suffix name="Connect.SetupDemo" label=""/>
+ <suffix name="Connect.StartDemo" label=""/>
<suffix name="Debugging.Next" label=""/>
<suffix name="Demo-preferences.Canceled" label=""/>
<suffix name="Demo-preferences.Completed" label=""/>
@@ -206311,6 +210913,7 @@ regressions. -->
<suffix name="Fingerprint-setup.Next" label=""/>
<suffix name="Gesture-navigation.Next" label=""/>
<suffix name="Hid-detection.Next" label=""/>
+ <suffix name="Hid-detection.StartDemo" label=""/>
<suffix name="Kiosk-enable.Next" label=""/>
<suffix name="Marketing-opt-in.Next" label=""/>
<suffix name="Multidevice-setup.Next" label=""/>
@@ -206357,6 +210960,8 @@ regressions. -->
<histogram_suffixes name="OptimizationGuide.OptimizationTypes" separator=".">
<suffix name="CompressPublicImages" label="Compresses public images"/>
<suffix name="DeferAllScript" label="Defers execution of script"/>
+ <suffix name="DelayAsyncScriptExecution"
+ label="Delays execution of async scripts"/>
<suffix name="FastHostHints"
label="Provides information about hosts that historically provide a
fast and responsive user experience."/>
@@ -206368,6 +210973,9 @@ regressions. -->
Removed in M84.
</obsolete>
</suffix>
+ <suffix name="LiteVideo"
+ label="Provides information on how to throttle media requests to reduce
+ the adaptive bit rates of media streams."/>
<suffix name="LoadingPredictor"
label="Provides information about subresources predicted to be on the
page"/>
@@ -206416,15 +211024,6 @@ regressions. -->
<affected-histogram name="ChromeOS.Settings.TimeUntilChange"/>
</histogram_suffixes>
-<histogram_suffixes name="OtherActivityProcesses" separator=".">
- <suffix name="gpu-process" label=""/>
- <suffix name="ppapi" label=""/>
- <suffix name="renderer" label=""/>
- <suffix name="setup" label=""/>
- <suffix name="utility" label=""/>
- <affected-histogram name="UMA.Histograms.Activity"/>
-</histogram_suffixes>
-
<histogram_suffixes name="OutOfRaster" separator=".">
<suffix name="OutOfRaster"
label="Task was not performed as part of a raster task."/>
@@ -206815,7 +211414,11 @@ regressions. -->
ordering="prefix">
<suffix name="Clients.FontPreload"
label="PageLoadMetrics when the first rendering cycle has been delayed
- in favor of font preloading"/>
+ in favor of font preloading">
+ <obsolete>
+ Removed in August 2020 as the behavior is launched
+ </obsolete>
+ </suffix>
<affected-histogram
name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
<affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
@@ -207044,7 +211647,11 @@ regressions. -->
<suffix name="Clients.Previews.OfflinePages"
label="PageLoadMetrics that are a result of a navigation that shows
users an offline page preview. Offline page previews are shown
- when a user's effective connection type is prohibitively slow."/>
+ when a user's effective connection type is prohibitively slow.">
+ <obsolete>
+ Functionality removed in M86.
+ </obsolete>
+ </suffix>
<affected-histogram
name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/>
<affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/>
@@ -207922,6 +212529,9 @@ regressions. -->
label="Request is completed using Google payment instrument."/>
<suffix name="Other"
label="Request is completed using other payment instruments."/>
+ <suffix name="SecurePaymentConfirmation"
+ label="Request is completed using secure payment confirmation
+ instrument."/>
<affected-histogram name="PaymentRequest.TimeToCheckout.Completed.Shown"/>
<affected-histogram
name="PaymentRequest.TimeToCheckout.Completed.SkippedShow"/>
@@ -208083,8 +212693,20 @@ regressions. -->
<affected-histogram name="ContentSettings.PermissionActionsInsecureOrigin"/>
<affected-histogram name="ContentSettings.PermissionActionsSecureOrigin"/>
<affected-histogram name="Permissions.Action"/>
- <affected-histogram name="Permissions.Action.InsecureOrigin"/>
- <affected-histogram name="Permissions.Action.SecureOrigin"/>
+ <affected-histogram name="Permissions.Action.InsecureOrigin">
+ <obsolete>
+ 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.
+ </obsolete>
+ </affected-histogram>
+ <affected-histogram name="Permissions.Action.SecureOrigin">
+ <obsolete>
+ 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.
+ </obsolete>
+ </affected-histogram>
<affected-histogram name="Permissions.MissingOSLevelPermission.Action"/>
<affected-histogram name="Permissions.MissingOSLevelPermission.ShouldShow"/>
<affected-histogram name="Permissions.Prompt.Accepted.Persisted"/>
@@ -208108,71 +212730,12 @@ regressions. -->
<affected-histogram name="Permissions.Requested.CrossOrigin"/>
</histogram_suffixes>
-<histogram_suffixes name="PersistentMemoryAllocs" separator="."
- ordering="prefix,2">
- <obsolete>
- Removed 2/2017 for Issue 689315 which indicated they weren't being used.
- </obsolete>
- <suffix name="BrowserMetrics" label="For browser process metrics."/>
- <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
- <suffix name="GpuMetrics" label="For GPU process metrics."/>
- <suffix name="NotificationHelperMetrics"
- label="For notification_helper process metrics."/>
- <suffix name="PpapiBrokerMetrics"
- label="For &quot;PPAPI broker&quot; process metrics."/>
- <suffix name="PpapiPluginMetrics"
- label="For &quot;PPAPI plugin&quot; process metrics."/>
- <suffix name="RendererMetrics" label="For renderer process metrics."/>
- <suffix name="SandboxHelperMetrics"
- label="For &quot;sandbox helper&quot; process metrics."/>
- <suffix name="SetupMetrics" label="For setup metrics."/>
- <suffix name="UtilityMetrics"
- label="For &quot;utility&quot; process metrics."/>
- <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
- <affected-histogram name="UMA.PersistentAllocator.Allocs"/>
-</histogram_suffixes>
-
-<histogram_suffixes name="PersistentMemoryErrors" separator="."
- ordering="prefix,2">
- <suffix name="BrowserMetrics" label="For browser process metrics."/>
- <suffix name="CrashpadMetrics" label="For metrics from Crashpad."/>
- <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
- <suffix name="GpuMetrics" label="For GPU process metrics."/>
- <suffix name="NotificationHelperMetrics"
- label="For notification_helper process metrics."/>
- <suffix name="PpapiBrokerMetrics"
- label="For &quot;PPAPI broker&quot; process metrics."/>
- <suffix name="PpapiPluginMetrics"
- label="For &quot;PPAPI plugin&quot; process metrics."/>
- <suffix name="RendererMetrics" label="For renderer process metrics."/>
- <suffix name="SandboxHelperMetrics"
- label="For &quot;sandbox helper&quot; process metrics."/>
- <suffix name="SetupMetrics" label="For setup metrics."/>
- <suffix name="UtilityMetrics"
- label="For &quot;utility&quot; process metrics."/>
- <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
- <affected-histogram name="UMA.PersistentAllocator.Errors"/>
-</histogram_suffixes>
-
-<histogram_suffixes name="PersistentMemoryUsedPct" separator="."
- ordering="prefix,2">
- <suffix name="BrowserMetrics" label="For browser process metrics."/>
- <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
- <suffix name="GpuMetrics" label="For GPU process metrics."/>
- <suffix name="NotificationHelperMetrics"
- label="For notification_helper process metrics."/>
- <suffix name="PpapiBrokerMetrics"
- label="For &quot;PPAPI broker&quot; process metrics."/>
- <suffix name="PpapiPluginMetrics"
- label="For &quot;PPAPI plugin&quot; process metrics."/>
- <suffix name="RendererMetrics" label="For renderer process metrics."/>
- <suffix name="SandboxHelperMetrics"
- label="For &quot;sandbox helper&quot; process metrics."/>
- <suffix name="SetupMetrics" label="For setup metrics."/>
- <suffix name="UtilityMetrics"
- label="For &quot;utility&quot; process metrics."/>
- <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
- <affected-histogram name="UMA.PersistentAllocator.UsedPct"/>
+<histogram_suffixes name="PhoneHubFeature" separator=".">
+ <suffix name="NotificationBadge" label="Notification badge sub-feature."/>
+ <suffix name="Notifications" label="Notifications sub-feature."/>
+ <suffix name="TaskContinuation" label="Task continuation sub-feature."/>
+ <suffix name="TopLevelFeature" label="Top level Phone Hub feature."/>
+ <affected-histogram name="PhoneHub.MultiDeviceFeatureState"/>
</histogram_suffixes>
<histogram_suffixes name="PhoneNumberRegexVariant" separator=".">
@@ -208268,6 +212831,14 @@ regressions. -->
label="When a network is made as new default"/>
<suffix name="OnNetworkSoonToDisconnect"
label="When an existing network is soon to be disconnected"/>
+ <affected-histogram
+ name="Net.QuicConnectivityMonitor.NumActiveDegradingSessions"/>
+ <affected-histogram
+ name="Net.QuicConnectivityMonitor.NumAllDegradedSessions"/>
+ <affected-histogram
+ name="Net.QuicConnectivityMonitor.PercentageActiveDegradingSessions"/>
+ <affected-histogram
+ name="Net.QuicConnectivityMonitor.PercentageAllDegradedSessions"/>
<affected-histogram name="Net.QuicStreamFactory.NumDegradingSessions"/>
<affected-histogram name="Net.QuicStreamFactory.PercentageDegradingSessions"/>
</histogram_suffixes>
@@ -208320,6 +212891,74 @@ regressions. -->
<affected-histogram name="NewTabPage.Snippets.CardShownScoreNew"/>
</histogram_suffixes>
+<histogram_suffixes name="Power.CpuTimeProcessAndCoreTypes" separator=".">
+ <suffix name="BigLittle.Big.Browser"
+ label="Browser processes on big cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Big.GPU"
+ label="GPU processes on big cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Big.Other"
+ label="Other processes on big cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Big.Renderer"
+ label="Renderer processes on big cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Little.Browser"
+ label="Browser processes on little cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Little.GPU"
+ label="GPU processes on little cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Little.Other"
+ label="Other processes on little cores of a BIG.little CPU"/>
+ <suffix name="BigLittle.Little.Renderer"
+ label="Renderer processes on little cores of a BIG.little CPU"/>
+ <suffix name="BigLittleBigger.Big.Browser"
+ label="Browser processes on big cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Big.GPU"
+ label="GPU processes on big cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Big.Other"
+ label="Other processes on big cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Big.Renderer"
+ label="Renderer processes on big cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Bigger.Browser"
+ label="Browser processes on bigger cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Bigger.GPU"
+ label="GPU processes on bigger cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Bigger.Other"
+ label="Other processes on bigger cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Bigger.Renderer"
+ label="Renderer processes on bigger cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Little.Browser"
+ label="Browser processes on little cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Little.GPU"
+ label="GPU processes on little cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Little.Other"
+ label="Other processes on little cores of a big-little-bigger CPU"/>
+ <suffix name="BigLittleBigger.Little.Renderer"
+ label="Renderer processes on little cores of a big-little-bigger CPU"/>
+ <suffix name="Other.Browser"
+ label="Browser processes on other CPU architectures"/>
+ <suffix name="Other.GPU" label="GPU processes on other CPU architectures"/>
+ <suffix name="Other.Other"
+ label="Other processes on other CPU architectures"/>
+ <suffix name="Other.Renderer"
+ label="Renderer processes on other CPU architectures"/>
+ <suffix name="Symmetric.Browser"
+ label="Browser processes on CPUs with symmetric cores"/>
+ <suffix name="Symmetric.GPU"
+ label="GPU processes on CPUs with symmetric cores"/>
+ <suffix name="Symmetric.Other"
+ label="Other processes on CPUs with symmetric cores"/>
+ <suffix name="Symmetric.Renderer"
+ label="Renderer processes on CPUs with symmetric cores"/>
+ <suffix name="Unknown.Browser"
+ label="Browser processes on unexpected cores (of any architecture)"/>
+ <suffix name="Unknown.GPU"
+ label="GPU processes on unexpected cores (of any architecture)"/>
+ <suffix name="Unknown.Other"
+ label="Other processes on unexpected cores (of any architecture)"/>
+ <suffix name="Unknown.Renderer"
+ label="Renderer processes on unexpected cores (of any architecture)"/>
+ <affected-histogram name="Power.ApproxCpuTimeSecondsPerCoreTypeAndFrequency"/>
+ <affected-histogram name="Power.CpuTimeSecondsPerCoreTypeAndFrequency"/>
+</histogram_suffixes>
+
<histogram_suffixes name="Power.CpuTimeProcessTypes" separator=".">
<suffix name="Browser" label=""/>
<suffix name="GPU" label=""/>
@@ -208649,9 +213288,17 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="Previews.Types" separator=".">
- <suffix name="AMPRedirection" label="AMP Redirection previews"/>
+ <suffix name="AMPRedirection" label="AMP Redirection previews">
+ <obsolete>
+ Functionality removed in 2018.
+ </obsolete>
+ </suffix>
<suffix name="DeferAllScript" label="Defers execution of script"/>
- <suffix name="LitePage" label="Lite page previews"/>
+ <suffix name="LitePage" label="Lite page previews">
+ <obsolete>
+ Functionality removed in M86.
+ </obsolete>
+ </suffix>
<suffix name="LitePageRedirect" label="Lite page redirection previews">
<obsolete>
Removed in M84.
@@ -208664,7 +213311,11 @@ regressions. -->
</suffix>
<suffix name="None" label="No preview was served"/>
<suffix name="NoScript" label="NoScript previews"/>
- <suffix name="Offline" label="Offline previews"/>
+ <suffix name="Offline" label="Offline previews">
+ <obsolete>
+ Functionality removed in M86.
+ </obsolete>
+ </suffix>
<suffix name="ResourceLoadingHints"
label="Resource loading hints based previews"/>
<affected-histogram name="Previews.EligibilityReason"/>
@@ -208812,6 +213463,10 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="ProcessMemoryAllocatorSmall2" separator=".">
+ <suffix name="Discardable.FreelistSize"
+ label="Freelist size used by ClientDiscardableMemoryManager."/>
+ <suffix name="Discardable.VirtualSize"
+ label="Virtual memory used by ClientDiscardableMemoryManager."/>
<suffix name="DownloadService"
label="Only counting memory used by Download service."/>
<suffix name="FontCaches" label="Only counting memory used by font caches."/>
@@ -209204,11 +213859,11 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="QuicPortSelection" separator="">
+ <owner>dschinazi@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
<suffix name="RandomPort"
label="The operating system randomly selected a source port for the
connection."/>
- <owner>dschinazi@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
<suffix name="SelectPort"
label="An effort was mode to (try to) consistently connect using the
same source port for the given server IP/port."/>
@@ -210095,6 +214750,36 @@ regressions. -->
<affected-histogram name="Network.Shill.WiFi.SessionLength"/>
</histogram_suffixes>
+<histogram_suffixes name="SafeBrowsing.RT.LookupMode" separator=".">
+ <suffix name="Consumer"
+ label="Records metrics for consumer real time URL lookup service."/>
+ <suffix name="Enterprise"
+ label="Records metrics for enterprise real time URL lookup service."/>
+ <affected-histogram name="SafeBrowsing.RT.Backoff.State"/>
+ <affected-histogram name="SafeBrowsing.RT.GetCache.Time"/>
+ <affected-histogram name="SafeBrowsing.RT.GetCacheResult"/>
+ <affected-histogram name="SafeBrowsing.RT.HasTokenInRequest"/>
+ <affected-histogram name="SafeBrowsing.RT.HasValidCacheManager"/>
+ <affected-histogram name="SafeBrowsing.RT.IsLookupSuccessful"/>
+ <affected-histogram name="SafeBrowsing.RT.Network.Result"/>
+ <affected-histogram name="SafeBrowsing.RT.Network.Time"/>
+ <affected-histogram name="SafeBrowsing.RT.Request.UserPopulation"/>
+ <affected-histogram name="SafeBrowsing.RT.ThreatInfoSize"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="SafeBrowsing.Settings.AccessPoint" separator=".">
+ <suffix name="Default"
+ label="The user enters the Safe Browsing settings page from a default
+ access point."/>
+ <suffix name="ParentSettings"
+ label="The user enters the Safe Browsing settings page from the parent
+ setting page."/>
+ <suffix name="SafetyCheck"
+ label="The user enters the Safe Browsing settings page from the
+ SafetyCheck page."/>
+ <affected-histogram name="SafeBrowsing.Settings.UserAction"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SafeBrowsing.V4Store.Metrics" separator=".">
<suffix name="CertCsdDownloadWhitelist" label=""/>
<suffix name="ChromeExtMalware" label=""/>
@@ -210197,6 +214882,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="SafeBrowsingScoutGroupValues" separator=".">
+ <obsolete>
+ Removed in or before M86.
+ </obsolete>
<suffix name="NoScoutGroup"
label="User sees the legacy Extended Reporting opt-in"/>
<suffix name="ScoutGroup"
@@ -210205,6 +214893,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="SafeBrowsingScoutInterstitialDecisions" separator=".">
+ <obsolete>
+ Removed in or before M86.
+ </obsolete>
<suffix name="First_Disabled"
label="User saw opt-in for first time and disabled it"/>
<suffix name="First_Enabled"
@@ -210228,11 +214919,16 @@ regressions. -->
<suffix name="DownloadPopup" label="The Download Feedback popup"/>
<suffix name="SecurityInterstitial"
label="One of the Security Interstitials (malware, SSL, etc)"/>
+ <affected-histogram name="SafeBrowsing.Pref.Extended"/>
<affected-histogram name="SafeBrowsing.Pref.Scout.SetPref.SBER1Pref"/>
<affected-histogram name="SafeBrowsing.Pref.Scout.SetPref.SBER2Pref"/>
</histogram_suffixes>
<histogram_suffixes name="SafeBrowsingScoutPrefValues" separator=".">
+ <obsolete>
+ Removed in or before M86. See SafeBrowsing.Pref.SawInterstitial or
+ SafeBrowsing.Pref.Extended.*
+ </obsolete>
<suffix name="SBER1Pref" label="Value of the legacy Extended Reporting pref"/>
<suffix name="SBER2Pref" label="Value of the new Extended Reporting pref"/>
<affected-histogram name="SafeBrowsing.Pref.SawInterstitial"/>
@@ -211286,6 +215982,16 @@ regressions. -->
<affected-histogram name="SessionStorageContext.OpenResultAfter"/>
</histogram_suffixes>
+<histogram_suffixes name="SettingsLanguagesPageToggle" separator=".">
+ <suffix name="ShowInputOptionsOnShelf"
+ label="Show input options in the shelf"/>
+ <suffix name="SpellCheck" label="Spell check"/>
+ <suffix name="Translate"
+ label="Offer to translate pages in a language you don't read"/>
+ <affected-histogram name="ChromeOS.Settings.Languages.Browser.Toggle"/>
+ <affected-histogram name="ChromeOS.Settings.Languages.Toggle"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SettingsResetPromptSettingType" separator="_">
<suffix name="DefaultSearch" label="Reset state for default search engine."/>
<suffix name="Homepage" label="Reset state for homepage."/>
@@ -211506,6 +216212,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="ShowAppListWarmStartFast" separator="">
+ <obsolete>
+ Removed 2018-03.
+ </obsolete>
<suffix name="" label="Normal start."/>
<suffix name="Fast"
label="Fast start by skipping normal chrome.dll startup."/>
@@ -211605,6 +216314,28 @@ regressions. -->
<affected-histogram name="Signin.SigninStartedAccessPoint"/>
</histogram_suffixes>
+<histogram_suffixes name="SigninInterceptEnterpriseStatus" separator=".">
+ <suffix name="NewIsEnterprise" label="The new account is enterprise."/>
+ <suffix name="PrimaryIsEnterprise"
+ label="The primary account is enterprise."/>
+ <affected-histogram name="Signin.InterceptResult.Enterprise"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="SigninInterceptSyncState" separator=".">
+ <suffix name="NoSync" label="User has not opted in to Sync."/>
+ <suffix name="Sync" label="User has opted in to Sync."/>
+ <affected-histogram name="Signin.InterceptResult.Enterprise"/>
+ <affected-histogram name="Signin.InterceptResult.MultiUser"/>
+ <affected-histogram name="Signin.InterceptResult.Switch"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="SigninInterceptType" separator=".">
+ <suffix name="Enterprise" label="Enterprise bubble."/>
+ <suffix name="MultiUser" label="MultiUser bubble."/>
+ <suffix name="Switch" label="Profile-switch bubble."/>
+ <affected-histogram name="Signin.InterceptResult"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SigninSSOIdentityListRequestCacheRequestState"
separator=".">
<suffix name="BackgroundRequest" label="Request fetched in background."/>
@@ -211620,6 +216351,8 @@ regressions. -->
<histogram_suffixes name="SigninSSOIdentityListRequestDurationCacheState"
separator=".">
+ <suffix name="NotPopulated"
+ label="The SSOAuth identity list is not populated."/>
<suffix name="Stale" label="The SSOAuth identity list is stale."/>
<suffix name="Valid" label="The SSOAuth identity list is valid."/>
<affected-histogram name="Signin.SSOIdentityListRequest.Duration"/>
@@ -211714,6 +216447,8 @@ regressions. -->
<affected-histogram name="CompositorLatency.Type"/>
<affected-histogram name="Graphics.Smoothness.Checkerboarding"/>
<affected-histogram name="Graphics.Smoothness.FrameSequenceLength"/>
+ <affected-histogram name="Graphics.Smoothness.Jank.Compositor"/>
+ <affected-histogram name="Graphics.Smoothness.Jank.Main"/>
<affected-histogram
name="Graphics.Smoothness.PercentDroppedFrames.CompositorThread"/>
<affected-histogram
@@ -211757,6 +216492,12 @@ regressions. -->
<affected-histogram name="Graphics.Smoothness.PercentDroppedFrames"/>
</histogram_suffixes>
+<histogram_suffixes name="SmoothnessThreadTypes.Jank" separator=".">
+ <suffix name="Compositor" label="Janks from the compositor thread"/>
+ <suffix name="Main" label="Janks from the main thread"/>
+ <affected-histogram name="Graphics.Smoothness.Jank"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SocketOperation" separator=".">
<suffix name="Connect" label=""/>
<suffix name="Read" label=""/>
@@ -211829,9 +216570,9 @@ regressions. -->
<obsolete>
Removed as of 07/2014.
</obsolete>
+ <owner>willchan@chromium.org</owner>
<suffix name="cwnd10" label="using cwnd policy static 10"/>
<suffix name="cwnd16" label="using cwnd policy static 16"/>
- <owner>willchan@chromium.org</owner>
<suffix name="cwnd32" label="using cwnd policy static 32"/>
<suffix name="cwndDynamic" label="using dynamic cwnd policy"/>
<suffix name="cwndMin10" label="using dynamic cwnd policy no lower than 10"/>
@@ -212300,6 +217041,7 @@ regressions. -->
</obsolete>
</suffix>
<suffix name="AUTOFILL" label="AUTOFILL"/>
+ <suffix name="AUTOFILL_OFFER" label="AUTOFILL_OFFER"/>
<suffix name="AUTOFILL_PROFILE" label="AUTOFILL_PROFILE"/>
<suffix name="AUTOFILL_WALLET" label="AUTOFILL_WALLET"/>
<suffix name="BOOKMARK" label="BOOKMARK"/>
@@ -212410,6 +217152,7 @@ regressions. -->
<affected-histogram name="Sync.ModelTypeEntityChange3"/>
<affected-histogram name="Sync.ModelTypeErrorSite"/>
<affected-histogram name="Sync.ModelTypeMemoryKB"/>
+ <affected-histogram name="Sync.ModelTypeStoreCommitWriteBatchOutcome"/>
<affected-histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed">
<obsolete>
Deprecated 06/2019. Replaced by
@@ -212422,6 +217165,7 @@ regressions. -->
Deprecated 05/2019.
</obsolete>
</affected-histogram>
+ <affected-histogram name="Sync.UndecryptedEntitiesOnDataTypeDisabled"/>
<affected-histogram name="Sync.USSMigrationEntityCount">
<obsolete>
Deprecated 05/2020.
@@ -212608,6 +217352,18 @@ regressions. -->
<affected-histogram name="Startup.BrowserOpenTabs"/>
</histogram_suffixes>
+<histogram_suffixes name="TabbedPaintPreviewPlayerUptime" separator=".">
+ <suffix name="RemovedByCompositorFailure"
+ label="Removed by compositor failure"/>
+ <suffix name="RemovedByLinkClick" label="Removed by link click"/>
+ <suffix name="RemovedByNavigation" label="Removed by navigation"/>
+ <suffix name="RemovedByPullToRefresh" label="Removed by pull to refresh"/>
+ <suffix name="RemovedBySnackBar" label="Removed by SnackBar"/>
+ <suffix name="RemovedOnLoad" label="Removed on load"/>
+ <suffix name="RemovedOnTabDestroy" label="Removed on tab destroy"/>
+ <affected-histogram name="Browser.PaintPreview.TabbedPlayer.UpTime"/>
+</histogram_suffixes>
+
<histogram_suffixes name="TabCountMetrics" separator=".">
<suffix name="ByTabCount.0Tabs"
label="Recorded with 0 tabs open in the browser."/>
@@ -212688,8 +217444,16 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="TabNewTabOnload" separator=".">
- <suffix name="Google" label="New Tab page for Google."/>
- <suffix name="Local" label="Local New Tab page."/>
+ <suffix name="Google" label="New Tab page for Google.">
+ <obsolete>
+ Removed 07/2020, base histogram no longer recorded on dektop.
+ </obsolete>
+ </suffix>
+ <suffix name="Local" label="Local New Tab page.">
+ <obsolete>
+ Removed 07/2020, base histogram no longer recorded on dektop.
+ </obsolete>
+ </suffix>
<suffix name="LocalGoogle" label="Local New Tab page for Google.">
<obsolete>
Removed 06/2017, never worked correctly.
@@ -212701,7 +217465,11 @@ regressions. -->
Removed 06/2017, never worked correctly.
</obsolete>
</suffix>
- <suffix name="Other" label="New Tab page for a non-Google provider."/>
+ <suffix name="Other" label="New Tab page for a non-Google provider.">
+ <obsolete>
+ Removed 07/2020, base histogram no longer recorded on dektop.
+ </obsolete>
+ </suffix>
<affected-histogram name="Tab.NewTabOnload"/>
</histogram_suffixes>
@@ -212747,6 +217515,16 @@ regressions. -->
<affected-histogram name="Tabs.UsedInInterval.Count"/>
</histogram_suffixes>
+<histogram_suffixes name="TabSuggestionType" separator=".">
+ <suffix name="ClosingSuggestion"
+ label="This bukect is for the closing suggestion. It suggests users to
+ close the recommended tabs."/>
+ <suffix name="GroupingSuggestion"
+ label="This bukect is for the grouping suggestion. It suggests users to
+ group the recommended tabs."/>
+ <affected-histogram name="Tabs.Suggestions.NumSuggestionsChanged"/>
+</histogram_suffixes>
+
<histogram_suffixes name="TabSwitchingType" separator=".">
<suffix name="NoSavedFrames"
label="The time from the input timestamp on a tab switch, until the
@@ -213303,16 +218081,12 @@ regressions. -->
<affected-histogram name="UKM.Sources.SerializedCount2"/>
</histogram_suffixes>
-<histogram_suffixes name="UnackedPackets" separator=".">
- <obsolete>
- Removed as of 08/2016.
- </obsolete>
- <suffix name="NoUnackedPackets"
- label="The session had no outstanding unacked packets."/>
- <suffix name="UnackedPackets"
- label="The session had outstanding unacked packets."/>
- <affected-histogram
- name="Net.QuicSession.LocallyTimedOutWithOpenStreams.TimeSinceLastReceived"/>
+<histogram_suffixes name="UnconsentedPrimaryAccountType" separator=".">
+ <suffix name="NoSyncConsumer" label="A consumer account, no sync."/>
+ <suffix name="NoSyncEnterprise" label="An enterprise account, no sync."/>
+ <suffix name="SyncConsumer" label="A consumer account, syncing."/>
+ <suffix name="SyncEnterprise" label="An enterprise account, syncing."/>
+ <affected-histogram name="Signin.CookieJar.SignedInCountWithPrimary"/>
</histogram_suffixes>
<histogram_suffixes name="UnPackConsumer" separator="_">
@@ -213461,6 +218235,15 @@ regressions. -->
<affected-histogram name="WebRTC.Video.Encoded.Qp"/>
</histogram_suffixes>
+<histogram_suffixes name="VideoFrameRateRange" separator=".">
+ <suffix name="24fps" label="24 fps"/>
+ <suffix name="25fps" label="25 fps"/>
+ <suffix name="30fps" label="30 fps"/>
+ <suffix name="50fps" label="50 fps"/>
+ <suffix name="60fps" label="60 fps"/>
+ <affected-histogram name="Media.Video.Roughness"/>
+</histogram_suffixes>
+
<histogram_suffixes name="Visibility" separator=".">
<suffix name="Hidden"
label="The tab is not visible because it is in a minimized window
diff --git a/chromium/tools/metrics/histograms/histograms_print_style.py b/chromium/tools/metrics/histograms/histograms_print_style.py
deleted file mode 100644
index 9dca5c112d7..00000000000
--- a/chromium/tools/metrics/histograms/histograms_print_style.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# 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.
-
-"""Holds the constants for pretty printing histograms.xml."""
-
-import os
-import re
-import sys
-
-# Import the metrics/common module for pretty print xml.
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
-import pretty_print_xml
-
-# Desired order for tag and tag attributes. The *_ATTRIBUTE_ORDER maps are also
-# used to determine the validity of tag names.
-# { tag_name: [attribute_name, ...] }
-ATTRIBUTE_ORDER = {
- 'affected-histogram': ['name'],
- 'component': [],
- 'details': [],
- 'enum': ['name'],
- 'enums': [],
- 'histogram': ['base', 'name', 'enum', 'units', 'expires_after'],
- 'histogram-configuration': ['logsource'],
- 'histogram_suffixes': ['name', 'separator', 'ordering'],
- 'histogram_suffixes_list': [],
- 'histograms': [],
- 'int': ['value', 'label'],
- 'obsolete': [],
- 'owner': [],
- 'suffix': ['base', 'name', 'label'],
- 'summary': [],
- 'with-suffix': ['name'],
-}
-
-# Attribute names that must be explicitly specified on nodes that support them.
-REQUIRED_ATTRIBUTES = [
- # TODO(isherman): Make the 'label' attribute required as well. This requires
- # fixing up existing suffixes that omit a label.
- 'name',
- 'separator',
- 'value',
-]
-
-# Tag names for top-level nodes whose children we don't want to indent.
-TAGS_THAT_DONT_INDENT = [
- 'histogram-configuration',
- 'histograms',
- 'histogram_suffixes_list',
- 'enums',
-]
-
-# Extra vertical spacing rules for special tag names.
-# {tag_name: (newlines_after_open, newlines_before_close, newlines_after_close)}
-TAGS_THAT_HAVE_EXTRA_NEWLINE = {
- 'histogram-configuration': (2, 1, 1),
- 'histograms': (2, 1, 1),
- 'histogram_suffixes_list': (2, 1, 1),
- 'histogram_suffixes': (1, 1, 1),
- 'enums': (2, 1, 1),
- 'histogram': (1, 1, 1),
- 'enum': (1, 1, 1),
-}
-
-# Tags that we allow to be squished into a single line for brevity.
-TAGS_THAT_ALLOW_SINGLE_LINE = ['summary', 'int', 'owner', 'component']
-
-LOWERCASE_NAME_FN = lambda n: n.get('name').lower()
-
-
-def _NaturalSortByName(node):
- """Sort by name, ordering numbers in the way humans expect."""
- # See: https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/
- name = node.get('name').lower()
- convert = lambda text: int(text) if text.isdigit() else text
- return [convert(c) for c in re.split('([0-9]+)', name)]
-
-
-# Tags whose children we want to alphabetize. The key is the parent tag name,
-# and the value is a list of pairs of tag name and key functions that maps each
-# child node to the desired sort key.
-TAGS_ALPHABETIZATION_RULES = {
- 'histograms': [('histogram', LOWERCASE_NAME_FN)],
- 'enums': [('enum', LOWERCASE_NAME_FN)],
- 'enum': [('int', lambda n: int(n.get('value')))],
- 'histogram_suffixes_list': [('histogram_suffixes', LOWERCASE_NAME_FN)],
- 'histogram_suffixes': [
- ('obsolete', lambda n: None),
- ('suffix', _NaturalSortByName),
- ('affected-histogram', LOWERCASE_NAME_FN),
- ],
-}
-
-
-def GetPrintStyle():
- """Returns an XmlStyle object for pretty printing histograms."""
- return pretty_print_xml.XmlStyle(ATTRIBUTE_ORDER,
- REQUIRED_ATTRIBUTES,
- TAGS_THAT_HAVE_EXTRA_NEWLINE,
- TAGS_THAT_DONT_INDENT,
- TAGS_THAT_ALLOW_SINGLE_LINE,
- TAGS_ALPHABETIZATION_RULES)
diff --git a/chromium/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml b/chromium/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml
new file mode 100644
index 00000000000..449d6ee4877
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml
@@ -0,0 +1,244 @@
+<!--
+Copyright 2013 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 used to generate a comprehensive list of Chrome histograms along
+with a detailed description for each histogram.
+
+For best practices on writing histogram descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
+
+For brief details on how to modify this file to add your description, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md
+
+Please pretty-print and validate your edits by running the pretty_print.py
+and validate_format.py scripts in the same directory as this file before
+uploading your change for review.
+
+Please send CLs to chromium-metrics-reviews@google.com rather than to specific
+individuals. These CLs will be automatically reassigned to a reviewer within
+about 5 minutes. This approach helps the metrics team to load-balance incoming
+reviews. Googlers can read more about this at go/gwsq-gerrit.
+-->
+
+<histogram-configuration>
+
+<histograms>
+
+<histogram name="Fingerprint.Reset.ResetContextMode"
+ enum="FingerprintSensorMode" expires_after="2021-01-03">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>The mode FPMCU was in when we reset context.</summary>
+</histogram>
+
+<histogram name="Fingerprint.SetContext.SetContextMode"
+ enum="FingerprintSensorMode" expires_after="2021-01-03">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>The mode FPMCU was in when we set its context.</summary>
+</histogram>
+
+<histogram name="Fingerprint.SetContext.Success" enum="BooleanSuccess"
+ expires_after="2021-01-03">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>Whether setting FPMCU mode succeeded.</summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.AttemptsCountBeforeSuccess" units="count"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Counts the number of fingerprint attempts until successful screen unlock.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.AuthSuccessful" enum="BooleanSuccess"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Counts the number of times that the fingerprint match successfully vs.
+ rejected.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.EnrolledFingerCount" units="count"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>Counts the number of fingers enrolled by the user.</summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.Match.Duration.Capture" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took to capture the fingerprint image in the 'match'
+ case.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.Match.Duration.Matcher" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took to run matcher in the 'match' case.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.Match.Duration.Overall" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took between the detection of a finger and the 'match'
+ event being sent to the AP.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.Match.PositiveMatchSecretCorrect"
+ enum="BooleanCorrect" expires_after="2021-01-03">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Whether the hash of the positive match secret read from FPMCU matches the
+ record.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.MatchIgnoredDueToPowerButtonPress"
+ enum="BooleanIgnored" expires_after="2020-11-02">
+ <owner>ravisadineni@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Whether fingerprint touch was ignored due to parallel power button press.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.MigrationForPositiveMatchSecretResult"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Whether migrating a record to positive match secret succeeded.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.NoMatch.Duration.Capture" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took to capture the fingerprint image in the 'no-match'
+ case.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.NoMatch.Duration.Matcher" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took to run the matcher in the 'no-match' case.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.NoMatch.Duration.Overall" units="ms"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Measures the time it took between the detection of a finger and the
+ 'no-match' event being sent to the AP.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.ReadPositiveMatchSecret.Success"
+ enum="BooleanSuccess" expires_after="2021-01-03">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Whether successfully read positive match secret from FPMCU when needed.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Unlock.RecordFormatVersion"
+ enum="FingerprintRecordFormatVersion" expires_after="2021-01-03">
+ <owner>yichengli@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Format version of a fingerprint template record read from storage.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.UnlockEnabled" enum="BooleanEnabled"
+ expires_after="2021-01-03">
+ <owner>rsorokin@chromium.org</owner>
+ <owner>jessejames@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
+ <summary>
+ Track whether fingerprint is enabled to unlock the screen, when the user
+ logs in.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Updater.NoUpdate.Duration.Overall" units="ms"
+ expires_after="2021-01-03">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>hesling@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Measures the total time it takes to run the fingerprint firmware updater
+ when an update was not necessary.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Updater.Reason" enum="FingerprintUpdaterReason"
+ expires_after="2021-01-03">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>hesling@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Tracks the fingerprint firmware updater's reason(s) for re-flashing.
+ </summary>
+</histogram>
+
+<histogram name="Fingerprint.Updater.Status" enum="FingerprintUpdaterStatus"
+ expires_after="2021-01-03">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>hesling@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>Tracks the fingerprint firmware updater's overall status.</summary>
+</histogram>
+
+<histogram name="Fingerprint.Updater.Update.Duration.Overall" units="ms"
+ expires_after="2021-01-03">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>hesling@chromium.org</owner>
+ <owner>chromeos-fingerprint@google.com</owner>
+ <summary>
+ Measures the total time it takes to run the fingerprint firmware updater
+ when an update was necessary.
+ </summary>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
diff --git a/chromium/tools/metrics/histograms/histograms_xml/UMA/histograms.xml b/chromium/tools/metrics/histograms/histograms_xml/UMA/histograms.xml
new file mode 100644
index 00000000000..04dec668fee
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histograms_xml/UMA/histograms.xml
@@ -0,0 +1,608 @@
+<!--
+Copyright 2013 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 used to generate a comprehensive list of Chrome histograms along
+with a detailed description for each histogram.
+
+For best practices on writing histogram descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
+
+For brief details on how to modify this file to add your description, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md
+
+Please pretty-print and validate your edits by running the pretty_print.py
+and validate_format.py scripts in the same directory as this file before
+uploading your change for review.
+
+Please send CLs to chromium-metrics-reviews@google.com rather than to specific
+individuals. These CLs will be automatically reassigned to a reviewer within
+about 5 minutes. This approach helps the metrics team to load-balance incoming
+reviews. Googlers can read more about this at go/gwsq-gerrit.
+-->
+
+<histogram-configuration>
+
+<histograms>
+
+<histogram name="UMA.ActualLogUploadInterval" units="minutes"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The actual interval between log upload start and previous log upload
+ finished within the same process. A value of 0 indicates there was no
+ previous upload. Prior to M71, logging for this metric was broken.
+ </summary>
+</histogram>
+
+<histogram name="UMA.AntiVirusMetricsProvider.Result"
+ enum="AntiVirusMetricsProviderResult" expires_after="2020-03-08">
+ <owner>wfh@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Records the result of the attempt to enumerate the installed AntiVirus on
+ the machine. This is recorded once during metrics initialization.
+ </summary>
+</histogram>
+
+<histogram name="UMA.CleanExitBeaconConsistency" enum="UmaCleanExitConsistency"
+ expires_after="M85">
+ <owner>siggi@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Reports the combined state of distinct clean exit beacons stored in Local
+ State and the Windows registry. They are normally expected to be identical.
+ </summary>
+</histogram>
+
+<histogram name="UMA.ClientIdBackupRecoveredWithAge" units="hours"
+ expires_after="2020-10-25">
+ <owner>gab@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Recorded when we are somehow missing the client ID stored in Local State yet
+ are able to recover it from a backup location along with the backed up
+ installation date. This report carries the age in hours of the recovered
+ client id.
+ </summary>
+</histogram>
+
+<histogram name="UMA.EnrollmentStatus" enum="EnrollmentStatus"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>kaznacheev@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logs the device enrollment status for Chrome OS device. Logged with every
+ UMA upload.
+ </summary>
+</histogram>
+
+<histogram name="UMA.EntropySourceType" enum="UmaEntropySourceType"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logs the entropy source type that was used for field trial randomization.
+ Logged once at each start up.
+ </summary>
+</histogram>
+
+<histogram name="UMA.ExternalExperiment.GroupCount" units="groups"
+ expires_after="2018-08-30">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logged on Android whenever an external experiment is registered. The logged
+ value is the number of groups in the experiment. This will not be logged at
+ all if there are no external experiments, but will be logged on group
+ transitions (e.g. when going from 1 to 0 groups).
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.AccessResult"
+ enum="FileMetricsProviderAccessResult" expires_after="M87">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Records attempts to access a file for the purpose of extracting metrics.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.InitialAccessResult"
+ enum="FileMetricsProviderAccessResult" expires_after="M87">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Records attempts to access a file for the purpose of extracting initial
+ stability metrics.
+ </summary>
+</histogram>
+
+<histogram name="UMA.InitSequence" enum="UmaInitSequence"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logged during MetricsService initialization whether the init task or the
+ initial log timer completed first. The expectation is the vast majority of
+ the time, the init task should complete first. If metrics show otherwise,
+ then it may indicate there's a bug in the MetricsService init sequence and
+ that it should be investigated.
+ </summary>
+</histogram>
+
+<histogram name="UMA.IsClonedInstall" enum="BooleanCloned"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ This is logged with a value of true in every log when the UMA client code
+ has detected that this is a potentially cloned install and has set the pref
+ to reset its UMA client id on the next startup.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.DroppedHistogramSampleCount"
+ units="samples" expires_after="2021-01-16">
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histogram samples that were not recorded when flushing due to
+ cache size limits in the Java in-memory cache. There are separate limits on
+ the number of cached histograms, and the number of samples in a histogram.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.DroppedUserActionCount"
+ units="samples" expires_after="2021-01-16">
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of user actions that were not recorded when flushing due to a cache
+ size limit in Java the in-memory cache.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.FlushedHistogramCount"
+ units="histograms" expires_after="2021-01-16">
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histograms recorded when flushing the Java in-memory cache.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.InputHistogramSampleCount"
+ units="samples" expires_after="2021-01-16">
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histogram samples seen by the time the Java in-memory cache was
+ flushed. This includes samples counted in DroppedHistogramSampleCount.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.InputUserActionCount" units="samples"
+ expires_after="2021-01-16">
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of user actions seen by the time the in-memory cache was flushed.
+ This includes actions counted in DroppedUserActionCount.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Posix"
+ enum="PopularOSErrno" expires_after="M85">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Failures, as reported in errno, encountered while allocating local
+ persistent memory under Posix.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LocalPersistentMemoryAllocator.Failures.Win"
+ enum="WinGetLastError" expires_after="M85">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Failures, as reported by GetLastError(), encountered while allocating local
+ persistent memory under Windows.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogSize.OnSuccess" units="KB" expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Size in kilobytes (after compression) of an uploaded UMA log. Recorded after
+ a successful UMA upload.
+
+ Note: A related metric (UMA.ProtoCompressionRatio) logs the compression
+ ratio.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogUpload.Canceled.CellularConstraint"
+ enum="BooleanCanceled" expires_after="2021-01-03">
+ <owner>holte@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logs whether a log was not uploaded due to cellular log throttling logic.
+ Android only.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogUpload.ResponseOrErrorCode"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-04-15">
+ <owner>holte@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ HTTP response codes and network errors encountered by UMA when attempting to
+ upload logs to the server through an HTTPS connection.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogUpload.ResponseOrErrorCode.HTTP"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-04-15">
+ <owner>holte@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ HTTP response codes and network errors encountered by UMA when attempting to
+ upload logs to the server through an HTTP connection.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LowEntropySource3Value" units="units"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Distribution of the new low entropy source value. Corresponds to
+ metrics::prefs::kMetricsLowEntropySource. Used for field trial
+ randomization. Recorded on startup.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LowEntropySourceValue" units="units"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>mpearson@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Distribution of the old low entropy source value. Corresponds to
+ metrics::prefs::kMetricsOldLowEntropySource. Used for field trial
+ randomization on clients that already have it, but not created on new
+ installs. Recorded on startup.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MachineIdState" enum="UmaMachineIdState"
+ expires_after="M77">
+ <owner>jwd@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Tracks if the machine ID is generated successfully and if it changes from
+ one run to the next. The machine ID is a 24-bit hash of machine
+ characteristics. It is expected to change if an install of Chrome is copied
+ to multiple machines. This check happens once per browser startup.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsIDsReset" enum="BooleanHit"
+ expires_after="2020-12-06">
+ <owner>jwd@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ A count of the number of times the metrics ids (client id and low entropy
+ source) have been reset due to a cloned install being detected.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsReporting.Toggle" enum="MetricsReportingChange"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Logged when user successfully enables/disables MetricsReporting or when an
+ error occurs.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsService.Initialize" enum="Boolean"
+ expires_after="2020-12-01">
+ <owner>rkaplow@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Records true during the initialization of the metrics state, right at the
+ time of logging a count to launch_count in stability prefs.
+ </summary>
+</histogram>
+
+<histogram name="UMA.NegativeSamples.Histogram" enum="HistogramNameHash"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The lower 32 bits of the ID of the histogram that went negative.
+ </summary>
+</histogram>
+
+<histogram name="UMA.NegativeSamples.Increment" units="increment"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The amount of increment that caused a sample count to become negative.
+ </summary>
+</histogram>
+
+<histogram name="UMA.NegativeSamples.Reason" enum="NegativeSampleReason"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Reasons why a negative sample count would have been created. Currently, only
+ negative samples from persistent sparse histograms are being checked.
+ </summary>
+</histogram>
+
+<histogram base="true" name="UMA.PersistentAllocator.Errors"
+ enum="PersistentAllocatorErrors" expires_after="M85">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Errors detected by the persistent memory allocator. These are set when they
+ occur.
+ </summary>
+</histogram>
+
+<histogram base="true" name="UMA.PersistentAllocator.UsedPct" units="%"
+ expires_after="M87">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Percentage of persistent memory segment that has been allocated. This is
+ updated only once per reporting cycle.
+ </summary>
+</histogram>
+
+<histogram name="UMA.PersistentHistograms.InitResult"
+ enum="PersistentHistogramsInitResult" expires_after="2020-12-20">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ A count of successes and failures for the creation of various forms of
+ persistent memory used to store histograms.
+ </summary>
+</histogram>
+
+<histogram name="UMA.PrimaryUserType" enum="UserType"
+ expires_after="2020-12-06">
+ <owner>michaelpg@chromium.org</owner>
+ <owner>yilkal@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ This UMA logs the primary user type per metrics recording interval.
+ </summary>
+</histogram>
+
+<histogram name="UMA.ProfileSignInStatus" enum="ProfileSigninStatus"
+ expires_after="never">
+<!-- expires-never: For the signin_status filter in dynamic table. -->
+
+ <owner>asvitkine@chromium.org</owner>
+ <owner>isherman@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ An enum representing the signin status of all opened profiles during one UMA
+ session.
+
+ Reported incorrect data on ChromeOS before M80.
+ </summary>
+</histogram>
+
+<histogram name="UMA.ProtoCompressionRatio" units="%"
+ expires_after="2021-04-15">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Compression ratio of the serialized protobuf that will be uploaded to the
+ UMA server. This serialized protobuf is compressed using gzip. See also
+ UMA.LogSize.OnSuccess.
+ </summary>
+</histogram>
+
+<histogram name="UMA.SamplingRatePerMille" units="samples per mille"
+ expires_after="2021-04-15">
+ <owner>jwd@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Sample rate applied to this client, expressed as number of clients per 1000
+ that are in the sample. Recorded on every log upload but only if the client
+ is eligible for sampling. (As of September 2019, the only clients eligible
+ for sampling are Windows and Android installs on which the UMA checkbox was
+ enabled by default.)
+
+ Clients not eligible for sampling will not have this histogram recorded.
+
+ Clients that are eligible for sampling but are sampled out (i.e., not
+ uploading logs) will not have this histogram recorded. Notably, it will not
+ appear in chrome://histograms! (Obviously, it also won't appear in the UMA
+ logs because the client is not uploading logs.)
+
+ Additional nuance, hopefully not important: the rate refers to the session
+ that the log was generated in, not the session the log was generated about.
+ This means when UMA uploads information about the last session (such as
+ stability statistics), it is possible--though extremely unlikely--that the
+ sampling rate config has changed from the previous session to the current
+ one. As such, the sampling rate emitted in a previous-session log record may
+ not be the right one that should've applied to that record.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StructuredMetrics.EventRecordingState"
+ enum="StructuredMetricsEventRecordingState" expires_after="2021-02-01">
+ <owner>tby@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Emitted when a structured metrics event is sent for recording. This records
+ whether that event was recorded successfully, or otherwise what error
+ occurred.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StructuredMetrics.InternalError"
+ enum="StructuredMetricsInternalError" expires_after="2021-02-01">
+ <owner>tby@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Records unexpected internal errors of the structured metrics system. The
+ bucket proportion of this metric is not meaningful.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StructuredMetrics.KeyValidationState"
+ enum="StructuredMetricsKeyValidationState" expires_after="2021-02-01">
+ <owner>tby@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ When a user event key is validated (and possibly updated), whether the key
+ was valid and required no changes, missing and required creation, or old and
+ required rotation.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StructuredMetrics.NumEventsInUpload" units="count"
+ expires_after="2021-02-01">
+ <owner>tby@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ How many events are provided when the structured metrics system is called on
+ to provide its current session data.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StructuredMetrics.PrefReadError"
+ enum="PrefServiceReadError" expires_after="2021-02-01">
+ <owner>tby@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ When the structured metrics provider initializes, it reads the pref store
+ from disk that holds keys and unsent logs. If there was an error during that
+ read, this records the error code. PREF_READ_ERROR_NO_FILE is recorded
+ whenever a particular profile signs into a particular device for the first
+ time, so a reasonable number of errors are expected.
+ </summary>
+</histogram>
+
+<histogram name="UMA.TruncatedEvents.Omnibox" units="events"
+ expires_after="M85">
+ <owner>rkaplow@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The number of omnibox events that existed in the metrics log before we
+ truncated them to save bandwidth.
+ </summary>
+</histogram>
+
+<histogram name="UMA.TruncatedEvents.UserAction" units="events"
+ expires_after="2021-01-31">
+ <owner>rkaplow@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The number of user actions events that existed in the metrics log before we
+ truncated them to save bandwidth.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UnsentLogs.Dropped" units="units"
+ expires_after="2021-08-30">
+ <owner>holte@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Counter for number of UMA unsent logs removed from persistent storage.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UnsentLogs.PersistedSizeInKB" units="KB"
+ expires_after="2021-05-30">
+ <owner>michaelbai@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ 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.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UnsentLogs.SentCount" units="samples"
+ expires_after="2021-05-30">
+ <owner>michaelbai@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The number of UMA sent samples in the previous browser run; it is recorded
+ on the browser start up.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UnsentLogs.UnsentCount" units="samples"
+ expires_after="2021-05-30">
+ <owner>michaelbai@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The number of UMA unsent samples in the previous browser run; it is recorded
+ on the browser start up.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UnsentLogs.UnsentPercentage" units="%"
+ expires_after="2021-05-30">
+ <owner>michaelbai@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The percentage of the unsent samples over the total in the previous browser
+ run; it is recorded on the browser start up.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UserDemographics.Status" enum="UserDemographicsStatus"
+ expires_after="2021-04-15">
+ <owner>vincb@google.com</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The status of the retrieval of user demographics from sync that are reported
+ to UMA. Emitted each time UMA metrics are reported.
+ </summary>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
diff --git a/chromium/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml b/chromium/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml
new file mode 100644
index 00000000000..60129f56ea6
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml
@@ -0,0 +1,100 @@
+<!--
+Copyright 2013 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 used to generate a comprehensive list of Chrome histograms along
+with a detailed description for each histogram.
+
+For best practices on writing histogram descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
+
+For brief details on how to modify this file to add your description, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md
+
+Please pretty-print and validate your edits by running the pretty_print.py
+and validate_format.py scripts in the same directory as this file before
+uploading your change for review.
+
+Please send CLs to chromium-metrics-reviews@google.com rather than to specific
+individuals. These CLs will be automatically reassigned to a reviewer within
+about 5 minutes. This approach helps the metrics team to load-balance incoming
+reviews. Googlers can read more about this at go/gwsq-gerrit.
+-->
+
+<histogram-configuration>
+
+<histogram_suffixes_list>
+
+<histogram_suffixes name="PersistentMemoryAllocs" separator="."
+ ordering="prefix,2">
+ <obsolete>
+ Removed 2/2017 for Issue 689315 which indicated they weren't being used.
+ </obsolete>
+ <suffix name="BrowserMetrics" label="For browser process metrics."/>
+ <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
+ <suffix name="GpuMetrics" label="For GPU process metrics."/>
+ <suffix name="NotificationHelperMetrics"
+ label="For notification_helper process metrics."/>
+ <suffix name="PpapiBrokerMetrics"
+ label="For &quot;PPAPI broker&quot; process metrics."/>
+ <suffix name="PpapiPluginMetrics"
+ label="For &quot;PPAPI plugin&quot; process metrics."/>
+ <suffix name="RendererMetrics" label="For renderer process metrics."/>
+ <suffix name="SandboxHelperMetrics"
+ label="For &quot;sandbox helper&quot; process metrics."/>
+ <suffix name="SetupMetrics" label="For setup metrics."/>
+ <suffix name="UtilityMetrics"
+ label="For &quot;utility&quot; process metrics."/>
+ <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
+ <affected-histogram name="UMA.PersistentAllocator.Allocs"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="PersistentMemoryErrors" separator="."
+ ordering="prefix,2">
+ <suffix name="BrowserMetrics" label="For browser process metrics."/>
+ <suffix name="CrashpadMetrics" label="For metrics from Crashpad."/>
+ <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
+ <suffix name="GpuMetrics" label="For GPU process metrics."/>
+ <suffix name="NotificationHelperMetrics"
+ label="For notification_helper process metrics."/>
+ <suffix name="PpapiBrokerMetrics"
+ label="For &quot;PPAPI broker&quot; process metrics."/>
+ <suffix name="PpapiPluginMetrics"
+ label="For &quot;PPAPI plugin&quot; process metrics."/>
+ <suffix name="RendererMetrics" label="For renderer process metrics."/>
+ <suffix name="SandboxHelperMetrics"
+ label="For &quot;sandbox helper&quot; process metrics."/>
+ <suffix name="SetupMetrics" label="For setup metrics."/>
+ <suffix name="UtilityMetrics"
+ label="For &quot;utility&quot; process metrics."/>
+ <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
+ <affected-histogram name="UMA.PersistentAllocator.Errors"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="PersistentMemoryUsedPct" separator="."
+ ordering="prefix,2">
+ <suffix name="BrowserMetrics" label="For browser process metrics."/>
+ <suffix name="FieldTrialAllocator" label="For field-trial allocator."/>
+ <suffix name="GpuMetrics" label="For GPU process metrics."/>
+ <suffix name="NotificationHelperMetrics"
+ label="For notification_helper process metrics."/>
+ <suffix name="PpapiBrokerMetrics"
+ label="For &quot;PPAPI broker&quot; process metrics."/>
+ <suffix name="PpapiPluginMetrics"
+ label="For &quot;PPAPI plugin&quot; process metrics."/>
+ <suffix name="RendererMetrics" label="For renderer process metrics."/>
+ <suffix name="SandboxHelperMetrics"
+ label="For &quot;sandbox helper&quot; process metrics."/>
+ <suffix name="SetupMetrics" label="For setup metrics."/>
+ <suffix name="UtilityMetrics"
+ label="For &quot;utility&quot; process metrics."/>
+ <suffix name="ZygoteMetrics" label="For &quot;zygote&quot; process metrics."/>
+ <affected-histogram name="UMA.PersistentAllocator.UsedPct"/>
+</histogram_suffixes>
+
+</histogram_suffixes_list>
+
+</histogram-configuration> \ No newline at end of file
diff --git a/chromium/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml b/chromium/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
new file mode 100644
index 00000000000..c00fbd3f5da
--- /dev/null
+++ b/chromium/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
@@ -0,0 +1,896 @@
+<!--
+Copyright 2013 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 used to generate a comprehensive list of Chrome histograms along
+with a detailed description for each histogram.
+
+For best practices on writing histogram descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
+
+For brief details on how to modify this file to add your description, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/one-pager.md
+
+Please pretty-print and validate your edits by running the pretty_print.py
+and validate_format.py scripts in the same directory as this file before
+uploading your change for review.
+
+Please send CLs to chromium-metrics-reviews@google.com rather than to specific
+individuals. These CLs will be automatically reassigned to a reviewer within
+about 5 minutes. This approach helps the metrics team to load-balance incoming
+reviews. Googlers can read more about this at go/gwsq-gerrit.
+-->
+
+<histogram-configuration>
+
+<histograms>
+
+<histogram name="UMA.ClientIdMigrated" enum="BooleanMigrated"
+ expires_after="2015-06-01">
+ <obsolete>
+ Removed in M45.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Recorded when the one-time UMA client id reset was performed (and the client
+ id of this user was migrated).
+ </summary>
+</histogram>
+
+<histogram name="UMA.CollectExternalEventsTime" units="ms"
+ expires_after="2015-08-07">
+ <obsolete>
+ Removed as of August 2015. The histogram showed no unexpected slowness, and
+ a profiler is a better tool for identifying any future issues.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The time to run the external metrics collection task (Chrome OS).
+ </summary>
+</histogram>
+
+<histogram name="UMA.ComputeCurrentSigninStatus"
+ enum="ComputeCurrentSigninStatus" expires_after="2016-06-14">
+ <obsolete>
+ Removed as of Jun 2016. The histogram was added for debugging purpose and is
+ not needed anymore.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>yiyaoliu@chromium.org</owner>
+ <summary>
+ Records attempts to compute the current the signin status and error
+ encountered when computing.
+ </summary>
+</histogram>
+
+<histogram name="UMA.CreatePersistentHistogram.Result"
+ enum="CreatePersistentHistogramResult" expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as the information has never shown any problems.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records attempts to create histograms in presistent space and any errors
+ encountered when doing so.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpAsyncTaskDuration"
+ units="ms" expires_after="M77">
+ <obsolete>
+ No longer useful or monitored, removed 2020-01-06.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Measures how much time it took to complete all async deferred startup tasks
+ on the background thread. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpCompleteTime"
+ units="ms" expires_after="M77">
+ <obsolete>
+ No longer useful or monitored, removed 2020-01-06.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Measures how much time since application was first in foreground till all
+ deferred tasks are done. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDuration"
+ units="ms" expires_after="M77">
+ <obsolete>
+ No longer useful or monitored, removed 2020-01-06.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Measures how much time it took to complete deferred startup tasks on the UI
+ thread. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpDurationAsync"
+ units="ms" expires_after="2017-01-24">
+ <obsolete>
+ Removed 01/2017 for
+ UMA.Debug.EnableCrashUpload.DeferredStartupAsyncTaskDuration.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time it took to complete async deferred startup tasks on
+ the background thread. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUpMaxTaskDuration"
+ units="ms" expires_after="2020-02-16">
+ <obsolete>
+ No longer useful or monitored, removed 2020-01-06.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Measures the maximum amount of time a single deferred startup task took.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime" units="ms"
+ expires_after="2016-08-08">
+ <obsolete>
+ Replaced by UMA.Debug.EnableCrashUpload.DeferredStartUptime2
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since start up it took for onDeferredStartup() to be
+ called, which schedules enablePotentialCrashUploading() to be executed on an
+ async task. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.DeferredStartUptime2" units="ms"
+ expires_after="2017-06-28">
+ <obsolete>
+ Removed 2017. No longer tracked.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since application was first in foreground till
+ deferred tasks are initialized and queued on the idle handler. Only logged
+ on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime"
+ units="ms" expires_after="2016-08-08">
+ <obsolete>
+ Replaced by UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since start up it took before ChromeActivity's
+ postDeferredStartupIfNeeded() was called. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2"
+ units="ms" expires_after="2017-06-28">
+ <obsolete>
+ Removed 2017. No longer tracked.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since application was first in foreground till
+ ChromeActivity's postDeferredStartupIfNeeded() was called exactly once. Only
+ logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.Uptime" units="ms"
+ expires_after="2016-05-16">
+ <obsolete>
+ Replaced by UMA.Debug.EnableCrashUpload.Uptime2
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since start up it took before crash reporting was
+ enabled via enablePotentialCrashUploading() as part of deferred start up.
+ Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.Uptime2" units="ms"
+ expires_after="2016-08-08">
+ <obsolete>
+ Replaced by UMA.Debug.EnableCrashUpload.Uptime3
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since start up it took before crash reporting was
+ enabled via enablePotentialCrashUploading() as part of deferred start up.
+ Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Debug.EnableCrashUpload.Uptime3" units="ms"
+ expires_after="2017-06-28">
+ <obsolete>
+ Removed 2017. No longer tracked.
+ </obsolete>
+ <owner>wnwen@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Measures how much time since application was first in foreground till crash
+ reporting was enabled as part of deferred start up. Only logged on Android.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Discarded Log Events" units="units"
+ expires_after="2017-06-05">
+ <obsolete>
+ Replaced by UMA.Truncate* metrics.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <summary>
+ The number of events that would be discarded at log transmission time
+ because the event count was already too large. Note that this doesn't
+ measure actual discards - in case the UMAThrottleEvents feature is disabled,
+ the discards won't occur.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FieldTrialAllocator.Size" units="bytes"
+ expires_after="2016-11-09">
+ <obsolete>
+ Removed 11/2016 for UMA.FieldTrialAllocator.Used
+ </obsolete>
+ <owner>lawrencewu@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Size, before padding, of objects allocated from persistent memory in the
+ browser process for field trials. Updated on each subprocess launch.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FieldTrialsEnabledBenchmarking" enum="BooleanUsage"
+ expires_after="2014-10-15">
+ <obsolete>
+ Removed 2012. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Log whether the --enable-benchmarking flag was set, which causes field
+ trials to only use the default group.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.DeletedFiles" units="units"
+ expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as the information it provides is no longer useful.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ The number of old metrics files for which a delete was attempted. This is
+ logged once with each upload operation. Values greater than 1 indicate that
+ the files are not deletable by the browser and must be cleaned up by
+ whatever process is creating them.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.DirectoryFiles" units="units"
+ expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as no problems were ever indicated.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ The number of metrics files in a directory that need to be uploaded. This is
+ logged once with each upload operation.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedFileAge"
+ units="minutes" expires_after="2017-07-08">
+ <obsolete>
+ Removed 07/2017. Was only for short-term analysis. About 95% of dropped
+ files were less than 1 day old.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records the last-modified age of a file that was dropped for lack of an
+ embedded profile.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.DroppedHistogramCount"
+ units="units" expires_after="M75">
+ <obsolete>
+ Removed 2019/04 with the resolution of https://crbug.com/695880
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records the number of histograms present in a file that was dropped for lack
+ of an embedded profile.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.EmbeddedProfile.RecordTime" units="ms"
+ expires_after="M71">
+ <obsolete>
+ Removed 2019/04 as times are small, consistent, and now on a background
+ thread.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Tracks the time used to record all histograms from a file with an embedded
+ profile.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.EmbeddedProfileResult"
+ enum="FileMetricsProviderEmbeddedProfileResult" expires_after="M75">
+ <obsolete>
+ Removed 2019/04 with the resolution of https://crbug.com/695880
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records attempts to upload metrics from files with embedded system profiles.
+ Counts are not necessarily mutually exclusive.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.Happening"
+ enum="FileMetricsProviderHappening" expires_after="2018-02-09">
+ <obsolete>
+ This metrics was to provide information for crbug/760317 which has been
+ resolved. Removed February, 2018.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records various happenings within the FileMetricsProvider for debugging
+ purposes.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.InitialCheckTime.File" units="ms"
+ expires_after="M77">
+ <obsolete>
+ Access times are consistently on the order of a few ms. Removed 2019/06.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent checking and mapping an initial metrics
+ file on disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.InitialCheckTime.Total" units="ms"
+ expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as the information it provides is no longer useful.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent checking and mapping initial metrics
+ from all files on disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.File" units="ms"
+ expires_after="M80">
+ <obsolete>
+ Access times are consistently on the order of a few ms. Removed 2019/06.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent collecting initial stability metrics
+ from a file on disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.Total" units="ms"
+ expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as the information it provides is no longer useful.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent collecting initial stability metrics
+ from all files on disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.SnapshotTime.File" units="ms"
+ expires_after="M80">
+ <obsolete>
+ Access times are consistently on the order of a few ms. Removed 2019/06.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent collecting metrics from a file on disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.FileMetricsProvider.SnapshotTime.Total" units="ms"
+ expires_after="2018-04-12">
+ <obsolete>
+ Removed April, 2018 as the information it provides is no longer useful.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent collecting metrics from all files on
+ disk.
+ </summary>
+</histogram>
+
+<histogram name="UMA.GeneratedLowEntropySource" enum="Boolean"
+ expires_after="2015-08-07">
+ <obsolete>
+ Removed as of August 2015. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ For each attempt to generate the low entropy source, log whether or not the
+ load required generating a new low entropy source.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Histograms.Activity" enum="HistogramActivityReport"
+ expires_after="2017-10-16">
+ <obsolete>
+ Removed as of October 2017. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Type and flags of every histogram created plus other activities. Counts are
+ not mutually-exclusive except for the different types.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.DroppedSampleCount" units="samples"
+ expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18. Renamed to
+ UMA.JavaCachingRecorder.DroppedHistogramSampleCount and reports also
+ histogram samples dropped due to a limit of the number of cached histograms.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histogram samples that were not recorded when flushing due to a
+ per-histogram sample count limit in the Java in-memory cache.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.FullHistogramCount" units="histograms"
+ expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18 to reduce the number of histograms emitted by the
+ cache.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histograms for which not all samples may have been recorded when
+ flushing the Java in-memory cache due to a per-histogram sample count limit.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.HistogramLimitDroppedSampleCount"
+ units="samples" expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18 to reduce the number of histograms emitted by the
+ cache. UMA.JavaCachingRecorder.DroppedHistogramSampleCount includes
+ histogram samples that were reported in this histogram.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of samples that were not recorded when flushing the Java in-memory
+ cache due to a histogram count limit.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.InputSampleCount" units="samples"
+ expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18. Renamed to
+ UMA.JavaCachingRecorder.InputHistogramSampleCount.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of histogram samples seen by the time the Java in-memory cache was
+ flushed. This is a sum of DroppedSampleCount and FlushedHistogramCount.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.RemainingHistogramLimit"
+ units="histograms" expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18 to reduce the number of histograms emitted by the
+ cache.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The remaining histogram count limit when flushing in the Java in-memory
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="UMA.JavaCachingRecorder.RemainingSampleLimit"
+ units="histograms" expires_after="2020-03-31">
+ <obsolete>
+ Removed on 2020-03-18 to reduce the number of histograms emitted by the
+ cache.
+ </obsolete>
+ <owner>bttk@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The smallest remaining sample count limit in metrics flushed from the Java
+ in-memory cache.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Large Accumulated Log Not Persisted" units="bytes"
+ expires_after="2018-08-30">
+ <obsolete>
+ Removed 2020-04
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of bytes in an excessively large log that was discarded at shutdown
+ instead of being saved to disk to retry during next chrome run.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Large Rejected Log was Discarded" units="bytes"
+ expires_after="2018-08-30">
+ <obsolete>
+ Removed 2020-04
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Number of bytes in a log was was rejected by server, and then discarded.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LoadLogsTime" units="ms" expires_after="2015-08-05">
+ <obsolete>
+ Removed as of August 2015. The histograms showed no unexpected slowness, and
+ a profiler is a better tool for identifying any future issues.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The time spent to load (de-serialize) unsent logs from local state, recorded
+ during the MetricsService startup sequence.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogLoadComplete called" units="units"
+ expires_after="2016-04-09">
+ <obsolete>
+ No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Simple counter of the number of times LogLoadComplete was called (bug
+ demonstration, as we're called more often than once per page load :-/ )
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogUpload.ConnetionType" enum="NetworkConnectionType"
+ expires_after="2016-04-11">
+ <obsolete>
+ Used for analyzing UMA log uploads on cellular connection, but necessary
+ after the analysis is finished.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>gayane@chromium.org</owner>
+ <summary>
+ The network connection type for each successful metrics log upload.
+ </summary>
+</histogram>
+
+<histogram name="UMA.LogUploader.UploadSize" units="bytes"
+ expires_after="2019-01-22">
+ <obsolete>
+ Removed in favor of UMA.LogSize.OnSuccess
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>holte@chromium.org</owner>
+ <summary>
+ Reports total upload length in bytes when the UMA service type is used.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsService.DeletedDirectorySize.Failure" units="KB"
+ expires_after="2018-02-09">
+ <obsolete>
+ This metrics was to provide information for crbug/760317 which has been
+ resolved. Removed February, 2018.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records the size of the metrics directory size, after failing to be deleted.
+ This is a temporary metric that will be removed in M63 or M64.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsService.DeletedDirectorySize.Success" units="KB"
+ expires_after="2018-02-09">
+ <obsolete>
+ This metrics was to provide information for crbug/760317 which has been
+ resolved. Removed February, 2018.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records the size of the metrics directory size, after being successfully
+ deleted. This should always be zero unless there is a bug in the return
+ code. This is a temporary metric that will be removed in M63 or M64.
+ </summary>
+</histogram>
+
+<histogram name="UMA.MetricsService.RecordCurrentHistograms.Time" units="ms"
+ expires_after="2018-02-07">
+ <obsolete>
+ Removed February, 2018 because persistent metrics are fully launched with no
+ observable change in operation time.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ Records how much wall time was spent merging, taking snapshots, and
+ recording histograms for reporting to UMA.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Perf.GetData" enum="GetPerfDataOutcome"
+ expires_after="2019-01-14">
+ <obsolete>
+ Removed 01/2019 in b/110205489 being split into ChromeOS.CWP.CollectPerf and
+ ChromeOS.CWP.UploadPerf.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ A count of successes and various failure modes related to collecting and
+ processing performance data obtained through &quot;perf&quot; on Chrome OS.
+ </summary>
+</histogram>
+
+<histogram base="true" name="UMA.PersistentAllocator.Allocs" units="bytes"
+ expires_after="2017-02-16">
+ <obsolete>
+ Removed 2/2017 for Issue 689315 which indicated they weren't being used.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Size, before padding, of objects allocated from persistent memory. This is
+ updated with every allocation.
+ </summary>
+</histogram>
+
+<histogram name="UMA.PersistentHistograms.TmpRemovals" units="units"
+ expires_after="M77">
+ <obsolete>
+ Data showed many files being deleted during rollout and then tapering off to
+ near zero. Removed 2019/07.
+ </obsolete>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Number of old .tmp files of the kind that Windows creates and leaves around
+ when trying to rename a file to another one that already exists. See
+ https://crbug.com/934164
+ </summary>
+</histogram>
+
+<histogram name="UMA.ProfilesCount.AfterErase" units="units"
+ expires_after="2016-06-14">
+ <obsolete>
+ Removed as of Jun 2016. The histogram was added for debugging purpose and is
+ not needed anymore.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>yiyaoliu@chromium.org</owner>
+ <summary>
+ Record the number of loaded profiles when a profile is erased from the
+ profiles map kept by profile manager.
+ </summary>
+</histogram>
+
+<histogram name="UMA.ProtoGzipped" enum="Boolean" expires_after="2013-09-13">
+ <obsolete>
+ Removed as of Sep, 2013. Gzipping protobufs is now the default.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>Was the UMA protobuf uploaded earlier compressed or not.</summary>
+</histogram>
+
+<histogram name="UMA.ProtoGzippedKBSaved" units="KB" expires_after="2015-08-06">
+ <obsolete>
+ Removed as of August 2015. See UMA.ProtoCompressionRatio instead.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Kilobytes saved from gzipping the protobufs before uploading them.
+ </summary>
+</histogram>
+
+<histogram name="UMA.StoreLogsTime" units="ms" expires_after="2015-08-05">
+ <obsolete>
+ Removed as of August 2015. The histograms showed no unexpected slowness, and
+ a profiler is a better tool for identifying any future issues.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The time spent to store unsent logs to local state, which is done
+ periodically and also during start up if there was an initial stability log.
+ </summary>
+</histogram>
+
+<histogram name="UMA.SubprocessMetricsProvider.SubprocessCount"
+ units="subprocesses" expires_after="2020-04-05">
+ <obsolete>
+ Removed 2020/04
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ The number of subprocesses from which persistent metrics were collected,
+ logged once with every reporting cycle.
+ </summary>
+</histogram>
+
+<histogram name="UMA.SubprocessMetricsProvider.UntrackedProcesses"
+ enum="SubprocessType" expires_after="M77">
+ <obsolete>
+ Removed 2019/06 after not reporting anything in years.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <owner>bcwhite@chromium.org</owner>
+ <summary>
+ The number of subprocesses, by type, from which persistent metrics are NOT
+ collected because there is no information about this (likely new) process
+ type. Process numbers 1000 or greater are &quot;custom&quot; processes used
+ by embedders.
+ </summary>
+</histogram>
+
+<histogram name="UMA.SyntheticTrials.Count" units="units"
+ expires_after="2015-08-06">
+ <obsolete>
+ Removed as of August 2015.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The number of synthetic field trials added to the UMA log when the system
+ profile is recorded. Since this is done prior to capturing the histograms
+ from the current process, this will generally be logged once per UMA log.
+ </summary>
+</histogram>
+
+<histogram name="UMA.Unacceptable_Log_Discarded" units="units"
+ expires_after="2013-07-11">
+ <obsolete>
+ Removed as of May, 2012 (i.e. Chrome 21+). Replaced by the
+ UMA.UploadResponseStatus.XML and UMA.UploadResponseStatus.Protobuf
+ histograms.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>The server returned a 400 code, and we discarded a log.</summary>
+ <details>
+ This tends to indicate that a syntax error is present in a log, such as
+ would appear when a bogus XML tag is included, or the XML is not balanced
+ and well structured.
+ </details>
+</histogram>
+
+<histogram name="UMA.UploadCreation" enum="BooleanSuccess"
+ expires_after="2015-08-06">
+ <obsolete>
+ Removed as of August 2015. This failure case no longer exists.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ For each attempted UMA upload, log whether the upload was successfully
+ constructed. An upload might fail to be constructed, for example, if we try
+ to upload before the system is fully initialized; or if serialization of the
+ data fails.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UploadResponseStatus.Protobuf"
+ enum="UmaUploadResponseStatus" expires_after="2017-04-04">
+ <obsolete>
+ Replaced by UMA.LogUpload.ResponseOrErrorCode
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ For each upload to the protocol buffer (v2) UMA server, log whether the
+ upload was successful, or whether there was an error.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UploadResponseStatus.XML" enum="UmaUploadResponseStatus"
+ expires_after="2014-10-15">
+ <obsolete>
+ Removed 2013. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ For each upload to the XML (v1) UMA server, log whether the upload was
+ successful, or whether there was an error.
+ </summary>
+</histogram>
+
+<histogram name="UMA.UsedResetVariationsFlag" enum="BooleanUsage"
+ expires_after="2016-04-09">
+ <obsolete>
+ No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ Log whether the --reset-variation-state flag was set before the low entropy
+ source was requested.
+ </summary>
+</histogram>
+
+<histogram name="UMA.XMLNodeDumpTime" units="ms" expires_after="2014-10-15">
+ <obsolete>
+ Removed 2013. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The time spent in converting the XML tree into a character buffer when
+ closing a metrics log (Chrome OS).
+ </summary>
+</histogram>
+
+<histogram name="UMA.XMLWriterDestructionTime" units="ms"
+ expires_after="2014-10-15">
+ <obsolete>
+ Removed 2013. No longer tracked.
+ </obsolete>
+ <owner>asvitkine@chromium.org</owner>
+ <summary>
+ The time spent in freeing the XML writer and tree when closing a metrics log
+ (Chrome OS).
+ </summary>
+</histogram>
+
+</histograms>
+
+</histogram-configuration>
diff --git a/chromium/tools/metrics/histograms/merge_xml.py b/chromium/tools/metrics/histograms/merge_xml.py
index de5441c8935..6bdccf77c15 100755
--- a/chromium/tools/metrics/histograms/merge_xml.py
+++ b/chromium/tools/metrics/histograms/merge_xml.py
@@ -12,21 +12,24 @@ import xml.dom.minidom
import expand_owners
import extract_histograms
-import histograms_print_style
+import histogram_configuration_model
+import histogram_paths
import populate_enums
-def GetElementsByTagName(trees, tag):
+def GetElementsByTagName(trees, tag, depth=2):
"""Gets all elements with the specified tag from a set of DOM trees.
Args:
trees: A list of DOM trees.
tag: The tag of the elements to find.
+ depth: The depth in the trees by which a match should be found.
+
Returns:
A list of DOM nodes with the specified tag.
"""
iterator = extract_histograms.IterElementsWithTag
- return list(e for t in trees for e in iterator(t, tag, 2))
+ return list(e for t in trees for e in iterator(t, tag, depth))
def GetEnumsNodes(doc, trees):
@@ -45,9 +48,9 @@ def GetEnumsNodes(doc, trees):
enums_list = GetElementsByTagName(trees, 'enums')
ukm_events = GetElementsByTagName(
GetElementsByTagName(trees, 'ukm-configuration'), 'event')
- # Early return if there are not ukm events provided. MergeFiles have callers
+ # Early return if there are no ukm events provided. MergeFiles have callers
# that do not pass ukm events so, in that case, we don't need to iterate
- # the enum list.
+ # through the enum list.
if not ukm_events:
return enums_list
for enums in enums_list:
@@ -55,6 +58,43 @@ def GetEnumsNodes(doc, trees):
return enums_list
+def CombineHistogramsSorted(doc, trees):
+ """Sorts <histogram> nodes by name and returns a single <histograms> node.
+
+ Args:
+ doc: The document to create the node in.
+ trees: A list of DOM trees.
+
+ Returns:
+ A list containing a single <histograms> node.
+ """
+ combined_histograms = doc.createElement('histograms')
+
+ variants_nodes = GetElementsByTagName(trees, 'variants', depth=3)
+ sorted_variants = sorted(variants_nodes,
+ key=lambda node: node.getAttribute('name').lower())
+
+ histogram_nodes = GetElementsByTagName(trees, 'histogram', depth=3)
+ sorted_histograms = sorted(histogram_nodes,
+ key=lambda node: node.getAttribute('name').lower())
+
+ for variants in sorted_variants:
+ # Use unsafe version of `appendChild` function here because the safe one
+ # takes a lot longer (10000x) to append all children. The unsafe version
+ # is ok here because:
+ # 1. the node to be appended is a clean node.
+ # 2. The unsafe version only does fewer checks but not changing any
+ # behavior and it's documented to be usable if performance matters.
+ # See https://github.com/python/cpython/blob/2.7/Lib/xml/dom/minidom.py#L276.
+ xml.dom.minidom._append_child(combined_histograms, variants)
+
+ for histogram in sorted_histograms:
+ # See above comment.
+ xml.dom.minidom._append_child(combined_histograms, histogram)
+
+ return [combined_histograms]
+
+
def MakeNodeWithChildren(doc, tag, children):
"""Creates a DOM node with specified tag and child nodes.
@@ -82,13 +122,22 @@ def MergeTrees(trees):
A merged DOM tree.
"""
doc = xml.dom.minidom.Document()
- doc.appendChild(MakeNodeWithChildren(doc, 'histogram-configuration',
- # This can result in the merged document having multiple <enums> and
- # similar sections, but scripts ignore these anyway.
- GetEnumsNodes(doc, trees) +
- GetElementsByTagName(trees, 'histograms') +
- GetElementsByTagName(trees, 'histogram_suffixes_list')))
- return doc
+ doc.appendChild(
+ MakeNodeWithChildren(
+ doc,
+ 'histogram-configuration',
+ # This can result in the merged document having multiple <enums> and
+ # similar sections, but scripts ignore these anyway.
+ GetEnumsNodes(doc, trees) +
+ # Sort the histograms by name and return a single <histograms> node.
+ CombineHistogramsSorted(doc, trees) +
+ GetElementsByTagName(trees, 'histogram_suffixes_list')))
+ # After using the unsafe version of appendChild, we see a regression when
+ # pretty-printing the merged |doc|. This might because the unsafe appendChild
+ # doesn't build indexes for later lookup. And thus, we need to convert the
+ # merged |doc| to a xml string and convert it back to force it to build
+ # indexes for the merged |doc|.
+ return xml.dom.minidom.parseString(doc.toxml())
def MergeFiles(filenames=[], files=[]):
@@ -106,17 +155,22 @@ def MergeFiles(filenames=[], files=[]):
def PrettyPrintMergedFiles(filenames=[], files=[]):
- return histograms_print_style.GetPrintStyle().PrettyPrintXml(
+ return histogram_configuration_model.PrettifyTree(
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()
with open(args.output, 'w') as f:
- f.write(PrettyPrintMergedFiles(args.inputs))
+ # This is run by
+ # https://source.chromium.org/chromium/chromium/src/+/master:tools/metrics/BUILD.gn;drc=573e48309695102dec2da1e8f806c18c3200d414;l=5
+ # to send the merged histograms.xml to the server side. Providing |UKM_XML|
+ # here is not to merge ukm.xml but to populate `UkmEventNameHash` enum
+ # values.
+ f.write(PrettyPrintMergedFiles(
+ histogram_paths.ALL_XMLS + [histogram_paths.UKM_XML]))
if __name__ == '__main__':
diff --git a/chromium/tools/metrics/histograms/merge_xml_test.py b/chromium/tools/metrics/histograms/merge_xml_test.py
index 1884d2c8273..fc56bcb2e2c 100644
--- a/chromium/tools/metrics/histograms/merge_xml_test.py
+++ b/chromium/tools/metrics/histograms/merge_xml_test.py
@@ -32,36 +32,52 @@ class MergeXmlTest(unittest.TestCase):
</enum>
<enum name="UkmEventNameHash">
-<!-- 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. -->
-
+ <summary>
+ 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.
+ </summary>
</enum>
</enums>
<histograms>
-<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz">
- <summary>Foo</summary>
+<variants name="TestToken">
+ <variant name="Variant1" label="Label1"/>
+ <variant name="Variant2" label="Label2"/>
+</variants>
+
+<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz"
+ expires_after="M85">
<owner>person@chromium.org</owner>
- <component>Component</component>
+ <summary>Foo</summary>
</histogram>
<histogram name="Test.EnumHistogram" enum="TestEnum" expires_after="M81">
- <owner>uma@chromium.org</owner>
<obsolete>
Obsolete message
</obsolete>
+ <owner>uma@chromium.org</owner>
<summary>A enum histogram.</summary>
</histogram>
-<histogram name="Test.Histogram" units="microseconds">
+<histogram name="Test.Histogram" units="microseconds" expires_after="M85">
+ <obsolete>
+ Removed 6/2020.
+ </obsolete>
+ <owner>person@chromium.org</owner>
+ <summary>Summary 2</summary>
+</histogram>
+
+<histogram name="Test.TokenHistogram{TestToken}" units="microseconds"
+ expires_after="M85">
<obsolete>
Removed 6/2020.
</obsolete>
<owner>person@chromium.org</owner>
<summary>Summary 2</summary>
+ <token key="TestToken" variants="TestToken"/>
</histogram>
</histograms>
@@ -78,14 +94,14 @@ class MergeXmlTest(unittest.TestCase):
</histogram-configuration>
"""
self.maxDiff = None
- self.assertEqual(expected_merged_xml.strip(), merged.strip())
+ self.assertMultiLineEqual(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.
+ where each value is a truncated hash of the event name and each label is the
+ corresponding event name, with obsolete label when applicable.
"""
merged = merge_xml.PrettyPrintMergedFiles(histogram_paths.ALL_TEST_XMLS)
expected_merged_xml = """
@@ -104,39 +120,57 @@ class MergeXmlTest(unittest.TestCase):
</enum>
<enum name="UkmEventNameHash">
-<!-- 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. -->
-
- <int value="324605288" label="AbusiveExperienceHeuristic.WindowOpen"/>
- <int value="1621538456" label="AbusiveExperienceHeuristic.TabUnder"/>
- <int value="1913876024" label="Autofill.SelectedMaskedServerCard (Obsolete)"/>
+ <summary>
+ 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.
+ </summary>
+ <int value="151676257" label="AbusiveExperienceHeuristic.TestEvent1"/>
+ <int value="898353372"
+ label="AbusiveExperienceHeuristic.TestEvent2 (Obsolete)"/>
+ <int value="1052089961" label="Autofill.TestEvent3"/>
+ <int value="1758741469" label="FullyObsolete.TestEvent4 (Obsolete)"/>
</enum>
</enums>
<histograms>
-<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz">
- <summary>Foo</summary>
+<variants name="TestToken">
+ <variant name="Variant1" label="Label1"/>
+ <variant name="Variant2" label="Label2"/>
+</variants>
+
+<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz"
+ expires_after="M85">
<owner>person@chromium.org</owner>
- <component>Component</component>
+ <summary>Foo</summary>
</histogram>
<histogram name="Test.EnumHistogram" enum="TestEnum" expires_after="M81">
- <owner>uma@chromium.org</owner>
<obsolete>
Obsolete message
</obsolete>
+ <owner>uma@chromium.org</owner>
<summary>A enum histogram.</summary>
</histogram>
-<histogram name="Test.Histogram" units="microseconds">
+<histogram name="Test.Histogram" units="microseconds" expires_after="M85">
+ <obsolete>
+ Removed 6/2020.
+ </obsolete>
+ <owner>person@chromium.org</owner>
+ <summary>Summary 2</summary>
+</histogram>
+
+<histogram name="Test.TokenHistogram{TestToken}" units="microseconds"
+ expires_after="M85">
<obsolete>
Removed 6/2020.
</obsolete>
<owner>person@chromium.org</owner>
<summary>Summary 2</summary>
+ <token key="TestToken" variants="TestToken"/>
</histogram>
</histograms>
@@ -153,7 +187,7 @@ class MergeXmlTest(unittest.TestCase):
</histogram-configuration>
"""
self.maxDiff = None
- self.assertEqual(expected_merged_xml.strip(), merged.strip())
+ self.assertMultiLineEqual(expected_merged_xml.strip(), merged.strip())
if __name__ == '__main__':
diff --git a/chromium/tools/metrics/histograms/populate_enums.py b/chromium/tools/metrics/histograms/populate_enums.py
index 8be71a2e3f9..1fbc60ce5a8 100644
--- a/chromium/tools/metrics/histograms/populate_enums.py
+++ b/chromium/tools/metrics/histograms/populate_enums.py
@@ -22,18 +22,32 @@ def _GetEventDetails(event):
"""Returns a simple struct containing the event details.
Args:
- event: An event.
+ event: An event description as defined in ukm.xml.
Returns:
- A struct containing the event name, name hash, and whether the event is
- obsolete.
+ A struct containing the event name, truncated hash, and whether the event is
+ considered 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
+ # https://cs.chromium.org/chromium/src/components/ukm/ukm_recorder_impl.cc?q=LogEventHashasUmaHistogram
hash = codegen.HashName(name) & 0x7fffffff
- is_obsolete = event.getElementsByTagName('obsolete')
- return EventDetails(name=name, hash=hash, is_obsolete=is_obsolete)
+
+ def _HasDirectObsoleteTag(node):
+ return any(
+ isinstance(child, xml.dom.minidom.Element)
+ and child.tagName == 'obsolete' for child in node.childNodes)
+
+ # The UKM event is considered obsolete if the event itself is marked as
+ # obsolete with a tag or all of its metrics are marked as obsolete.
+ is_event_obsolete = _HasDirectObsoleteTag(event)
+ are_all_metrics_obsolete = all(
+ _HasDirectObsoleteTag(metric)
+ for metric in event.getElementsByTagName('metric'))
+
+ return EventDetails(name=name,
+ hash=hash,
+ is_obsolete=is_event_obsolete or are_all_metrics_obsolete)
def PopulateEnumWithUkmEvents(doc, enum, ukm_events):
diff --git a/chromium/tools/metrics/histograms/pretty_print.py b/chromium/tools/metrics/histograms/pretty_print.py
index 416e389bfe8..26f1c9b9367 100755
--- a/chromium/tools/metrics/histograms/pretty_print.py
+++ b/chromium/tools/metrics/histograms/pretty_print.py
@@ -21,10 +21,11 @@ import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
import diff_util
+import etree_util
import presubmit_util
-import etree_util
-import histograms_print_style
+import histogram_configuration_model
+
class Error(Exception):
pass
@@ -153,7 +154,8 @@ def PrettyPrintHistogramsTree(tree):
FixMisplacedHistogramsAndHistogramSuffixes(tree)
canonicalizeUnits(tree)
fixObsoleteOrder(tree)
- return histograms_print_style.GetPrintStyle().PrettyPrintXml(tree)
+ return histogram_configuration_model.PrettifyTree(tree)
+
def PrettyPrintEnums(raw_xml):
"""Pretty print the given enums XML."""
@@ -163,11 +165,8 @@ def PrettyPrintEnums(raw_xml):
# Prevent accidentally adding histograms to enums.xml
DropNodesByTagName(root, 'histograms')
DropNodesByTagName(root, 'histogram_suffixes_list')
-
top_level_content = etree_util.GetTopLevelContent(raw_xml)
-
- formatted_xml = (histograms_print_style.GetPrintStyle()
- .PrettyPrintXml(root))
+ formatted_xml = histogram_configuration_model.PrettifyTree(root)
return top_level_content + formatted_xml
def main():
diff --git a/chromium/tools/metrics/histograms/pretty_print_test.py b/chromium/tools/metrics/histograms/pretty_print_test.py
index 3ec98db9dd9..25f65378ff6 100755
--- a/chromium/tools/metrics/histograms/pretty_print_test.py
+++ b/chromium/tools/metrics/histograms/pretty_print_test.py
@@ -21,7 +21,6 @@ ORIGINAL_XML = """
It has multiple paragraphs.
</summary>
- Mixed content.
<obsolete>
Removed 1/2019.
</obsolete>
@@ -32,8 +31,6 @@ ORIGINAL_XML = """
<obsolete>Obsolete 1</obsolete>
<obsolete>Obsolete 2</obsolete>
<enums>This shouldn't be here</enums>
- <component>Component</component>
- <component>Other&gt;Component</component>
</histogram>
<histogram_suffixes name="Test.HistogramSuffixes" separator=".">
@@ -47,9 +44,9 @@ ORIGINAL_XML = """
<histogram name="Test.MisplacedHistogram" units="us">
<owner>person@chromium.org</owner>
+ Misplaced content.
<summary>A misplaced histogram
</summary>
- Misplaced content.
</histogram>
</histogram_suffixes_list>
@@ -73,8 +70,6 @@ PRETTY_XML = """
Obsolete 1
</obsolete>
<summary>Foo</summary>
- <component>Component</component>
- <component>Other&gt;Component</component>
</histogram>
<histogram name="Test.Histogram" units="microseconds">
@@ -88,13 +83,11 @@ PRETTY_XML = """
It has multiple paragraphs.
</summary>
- Mixed content.
</histogram>
<histogram name="Test.MisplacedHistogram" units="microseconds">
<owner>person@chromium.org</owner>
<summary>A misplaced histogram</summary>
- Misplaced content.
</histogram>
</histograms>
diff --git a/chromium/tools/metrics/histograms/split_xml.py b/chromium/tools/metrics/histograms/split_xml.py
new file mode 100644
index 00000000000..0473d2c25e4
--- /dev/null
+++ b/chromium/tools/metrics/histograms/split_xml.py
@@ -0,0 +1,300 @@
+# 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.
+"""Splits a XML file into smaller XMLs in subfolders.
+
+Splits nodes according to the first camelcase part of their name attribute.
+Intended to be used to split up the large histograms.xml or enums.xml file.
+"""
+
+import logging
+import os
+import sys
+from xml.dom import minidom
+
+import histogram_configuration_model
+
+# The default name of the histograms XML file.
+HISTOGRAMS_XML = 'histograms.xml'
+# Number of times that splitting of histograms will be carried out.
+TARGET_DEPTH = 1
+# The number of histograms below which they will be aggregated into
+# the histograms.xml in 'others'.
+AGGREGATE_THRESHOLD = 20
+
+
+def _ParseHistogramsXMLFile(base_dir):
+ """Parses the |HISTOGRAMS_XML| in |base_dir|.
+
+ Args:
+ base_dir: The directory that contains the histograms.xml to be split.
+
+ Returns:
+ comments: A list of top-level comment nodes.
+ histogram_nodes: A DOM NodeList object containing <histogram> nodes
+ histogram_suffixes_nodes: A DOM NodeList object containing
+ <histogram_suffixes> nodes.
+
+ Raises:
+ FileNotFoundError if histograms.xml not found in |base_dir|.
+ """
+ if HISTOGRAMS_XML not in os.listdir(base_dir):
+ raise ValueError(HISTOGRAMS_XML + 'is not in %s' % base_dir)
+
+ dom = minidom.parse(os.path.join(base_dir, HISTOGRAMS_XML))
+ comments = []
+
+ # Get top-level comments. It is assumed that all comments are placed before
+ # tags. Therefore the loop will stop if it encounters a non-comment node.
+ for node in dom.childNodes:
+ if node.nodeType == minidom.Node.COMMENT_NODE:
+ comments.append(node)
+ else:
+ break
+
+ histogram_nodes = dom.getElementsByTagName('histogram')
+ histogram_suffixes_nodes = dom.getElementsByTagName('histogram_suffixes')
+ return comments, histogram_nodes, histogram_suffixes_nodes
+
+
+def _CreateXMLFile(comments, parent_node_string, nodes, output_dir, filename):
+ """Creates XML file for given type of XML nodes.
+
+ This function also creates a |parent_node_string| tag as the parent node, e.g.
+ <histograms> or <histogram_suffixes_list>, that wraps all the |nodes| in the
+ output XML.
+
+ Args:
+ comments: Top level comment nodes from the original histograms.xml file.
+ parent_node_string: The name of the the second-level parent node, e.g.
+ <histograms> or <histogram_suffixes_list>.
+ nodes: A DOM NodeList object or a list containing <histogram> or
+ <histogram_suffixes> that will be inserted under the parent node.
+ output_dir: The output directory.
+ filename: The output filename.
+ """
+ doc = minidom.Document()
+
+ # Attach top-level comments.
+ for comment_node in comments:
+ doc.appendChild(comment_node)
+
+ # Create the <histogram-configuration> node for the new histograms.xml file.
+ histogram_config_element = doc.createElement('histogram-configuration')
+ doc.appendChild(histogram_config_element)
+ parent_element = doc.createElement(parent_node_string)
+ histogram_config_element.appendChild(parent_element)
+
+ # Under the parent node, append the children nodes.
+ for node in nodes:
+ parent_element.appendChild(node)
+
+ # Use the model to get pretty-printed XML string and write into file.
+ with open(os.path.join(output_dir, filename), 'w') as output_file:
+ pretty_xml_string = histogram_configuration_model.PrettifyTree(doc)
+ output_file.write(pretty_xml_string)
+
+
+def GetCamelName(histogram_node, depth=0):
+ """Returns the first camelcase name part of the histogram node.
+
+ Args:
+ histogram_node: The histogram node.
+ depth: The depth that specifies which name part will be returned.
+ e.g. For a histogram of name
+ 'CustomTabs.DynamicModule.CreatePackageContextTime'
+ The returned camelname for depth 0 is 'Custom';
+ The returned camelname for depth 1 is 'Dynamic';
+ The returned camelname for depth 2 is 'Create'.
+
+ Default depth is set to 0 as this function is imported and
+ used in other files, where depth used is 0.
+
+ Returns:
+ The camelcase namepart at specified depth.
+ If the number of name parts is less than the depth, return 'others'.
+ """
+ histogram_name = histogram_node.getAttribute('name')
+ split_string_list = histogram_name.split('.')
+ if len(split_string_list) <= depth:
+ return 'others'
+ else:
+ name_part = split_string_list[depth]
+ start_index = 0
+ # |all_upper| is used to identify the case where the name is ABCDelta, in
+ # which case the camelname of depth 0 should be ABC, instead of A.
+ all_upper = True
+ for index, letter in enumerate(name_part):
+ if letter.islower() or letter.isnumeric():
+ all_upper = False
+ if letter.isupper() and all_upper == False:
+ start_index = index
+ break
+
+ if start_index == 0:
+ return name_part
+ else:
+ return name_part[0:start_index]
+
+
+def _AddHistogramsToDict(histogram_nodes, depth):
+ """Adds histogram nodes to the corresponding keys of a dictionary.
+
+ Args:
+ histogram_nodes: A NodeList object containing <histogram> nodes.
+ depth: The depth at which to get the histogram key by.
+
+ Returns:
+ document_dict: A dictionary where the key is the prefix and the value is a
+ list of histogram nodes.
+ """
+ document_dict = {}
+ for histogram in histogram_nodes:
+ name_part = GetCamelName(histogram, depth)
+ if name_part not in document_dict:
+ document_dict[name_part] = []
+ document_dict[name_part].append(histogram)
+
+ return document_dict
+
+
+def _OutputToFolderAndXML(histogram_node_list, output_dir, key, comments):
+ """Creates new folder and XML file for separated histograms.
+
+ Args:
+ histogram_node_list: A of histograms of a prefix.
+ output_dir: The output directory.
+ key: The prefix of the histograms, also the name of the new folder.
+ comments: The omments from the initial histograms.xml that should be added
+ to the resulting histograms.xml files.
+ """
+ new_folder = os.path.join(output_dir, key)
+ if not os.path.exists(new_folder):
+ os.mkdir(new_folder)
+ _CreateXMLFile(comments, 'histograms', histogram_node_list, new_folder,
+ HISTOGRAMS_XML)
+
+
+def _AggregateAndOutput(document_dict, output_dir, comments):
+ """Aggregates groups of histograms below threshold number into 'others'.
+
+ Args:
+ document_dict: A dictionary where the key is the prefix of the histogram and
+ value is a list of histogram nodes.
+ output_dir: The output directory of the resulting folders.
+ comments: The comments from the initial histograms.xml that should be added
+ to the resulting histograms.xml files.
+ """
+ if 'others' not in document_dict:
+ document_dict['others'] = []
+
+ for key in document_dict.keys():
+ # As histograms might still be added to 'others', only create XML for
+ # 'others' key at the end.
+ if key == 'others':
+ continue
+
+ # For a prefix, if the number of histograms is fewer than threshold,
+ # aggregate into others.
+ if len(document_dict[key]) < AGGREGATE_THRESHOLD:
+ document_dict['others'] += document_dict[key]
+ else:
+ _OutputToFolderAndXML(document_dict[key], output_dir, key, comments)
+
+ _OutputToFolderAndXML(document_dict['others'], output_dir, 'others', comments)
+
+
+def _SplitHistograms(output_dir, depth):
+ """Splits the histograms node at given depth, aggregates and outputs."""
+ comments, histogram_nodes, _ = _ParseHistogramsXMLFile(output_dir)
+ document_dict = _AddHistogramsToDict(histogram_nodes, depth)
+ _AggregateAndOutput(document_dict, output_dir, comments)
+
+
+def _SplitHistogramsRecursive(output_base_dir, current_depth):
+ """Calls itself recursively on newly output directories until target depth."""
+ _SplitHistograms(output_base_dir, current_depth)
+ histogram_file = os.path.join(output_base_dir, HISTOGRAMS_XML)
+
+ # Remove original histograms.xml file after splitting.
+ if os.path.exists(histogram_file):
+ os.remove(histogram_file)
+
+ current_depth += 1
+ if current_depth < TARGET_DEPTH:
+ # For each subfolder, split the histograms.xml file inside.
+ for subfolder in [
+ os.path.join(output_base_dir, subdir)
+ for subdir in os.listdir(output_base_dir)
+ if os.path.isdir(os.path.join(output_base_dir, subdir))
+ ]:
+ _SplitHistogramsRecursive(subfolder, current_depth)
+
+
+def _SeparateObsoleteHistogram(histogram_nodes):
+ """Separates a NodeList of histograms into obsolete and non-obsolete.
+
+ Args:
+ histogram_nodes: A NodeList object containing histogram nodes.
+
+ Returns:
+ obsolete_nodes: A list of obsolete nodes.
+ non_obsolete_nodes: A list of non-obsolete nodes.
+ """
+ obsolete_nodes = []
+ non_obsolete_nodes = []
+ for histogram in histogram_nodes:
+ obsolete_tag_nodelist = histogram.getElementsByTagName('obsolete')
+ if len(obsolete_tag_nodelist) > 0:
+ obsolete_nodes.append(histogram)
+ else:
+ non_obsolete_nodes.append(histogram)
+ return obsolete_nodes, non_obsolete_nodes
+
+
+def SplitIntoMultipleHistogramXMLs(base_dir, output_base_dir):
+ """Splits a large histograms.xml and writes out the split xmls.
+
+ Args:
+ base_dir: The directory that contains the histograms.xml to be split.
+ output_base_dir: The output base directory.
+ """
+ if not os.path.exists(output_base_dir):
+ os.mkdir(output_base_dir)
+
+
+ comments, histogram_nodes, histogram_suffixes_nodes = _ParseHistogramsXMLFile(
+ base_dir)
+ # Create separate XML file for histogram suffixes.
+ _CreateXMLFile(comments,
+ 'histogram_suffixes_list',
+ histogram_suffixes_nodes,
+ output_base_dir,
+ filename='histogram_suffixes.xml')
+
+ obsolete_nodes, non_obsolete_nodes = _SeparateObsoleteHistogram(
+ histogram_nodes)
+ # Create separate XML file for obsolete histograms.
+ _CreateXMLFile(comments,
+ 'histograms',
+ obsolete_nodes,
+ output_base_dir,
+ filename='obsolete_histograms.xml')
+
+ # Create separate XML file for non-obsolete histograms, which will be then be
+ # recursively split up.
+ # TODO: crbug/1112879 Improve design by not writing and reading XML files
+ # every level, but rather pass nodes on in a nested dictionary.
+ _CreateXMLFile(comments,
+ 'histograms',
+ non_obsolete_nodes,
+ output_base_dir,
+ filename=HISTOGRAMS_XML)
+
+ # Recursively splits the histograms.xml file found in the |output_base_dir|.
+ _SplitHistogramsRecursive(output_base_dir, 0)
+
+
+if __name__ == '__main__':
+ SplitIntoMultipleHistogramXMLs(base_dir='.',
+ output_base_dir='./histograms_xml/')
diff --git a/chromium/tools/metrics/histograms/test_data/enums.xml b/chromium/tools/metrics/histograms/test_data/enums.xml
index cf4d1b7628b..67e2c2ad6e1 100644
--- a/chromium/tools/metrics/histograms/test_data/enums.xml
+++ b/chromium/tools/metrics/histograms/test_data/enums.xml
@@ -15,10 +15,11 @@
</enum>
<enum name="UkmEventNameHash">
-<!-- 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. -->
-
+ <summary>
+ 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.
+ </summary>
</enum>
</enums>
diff --git a/chromium/tools/metrics/histograms/test_data/histograms.xml b/chromium/tools/metrics/histograms/test_data/histograms.xml
index 1830b906b7e..5588c366986 100644
--- a/chromium/tools/metrics/histograms/test_data/histograms.xml
+++ b/chromium/tools/metrics/histograms/test_data/histograms.xml
@@ -4,13 +4,31 @@
<histograms>
-<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz">
+<variants name="TestToken">
+ <variant name="Variant1" label="Label1"/>
+ <variant name="Variant2" label="Label2"/>
+</variants>
+
+<histogram name="Foo.Bar" units="xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyzzzz"
+ expires_after="M85">
<summary>Foo</summary>
<owner>person@chromium.org</owner>
<component>Component</component>
</histogram>
-<histogram name="Test.Histogram" units="microseconds">
+<histogram name="Test.TokenHistogram{TestToken}" units="microseconds"
+ expires_after="M85">
+ <obsolete>
+ Removed 6/2020.
+ </obsolete>
+ <owner>person@chromium.org</owner>
+ <summary>
+ Summary 2
+ </summary>
+ <token key="TestToken" variants="TestToken"/>
+</histogram>
+
+<histogram name="Test.Histogram" units="microseconds" expires_after="M85">
<obsolete>
Removed 6/2020.
</obsolete>
diff --git a/chromium/tools/metrics/histograms/test_data/ukm.xml b/chromium/tools/metrics/histograms/test_data/ukm.xml
index e5b9dc6e439..fd17a10254f 100644
--- a/chromium/tools/metrics/histograms/test_data/ukm.xml
+++ b/chromium/tools/metrics/histograms/test_data/ukm.xml
@@ -1,42 +1,64 @@
<ukm-configuration>
-<event name="AbusiveExperienceHeuristic.TabUnder">
- <owner>csharrison@chromium.org</owner>
- <metric name="DidTabUnder">
+<event name="AbusiveExperienceHeuristic.TestEvent1">
+ <owner>owner1@chromium.org</owner>
+ <metric name="Metric">
<summary>
- True if the page attempted a tab-under navigation.
+ A summary of AbusiveExperienceHeuristic.TestEvent1
</summary>
</metric>
</event>
-<event name="AbusiveExperienceHeuristic.WindowOpen">
- <owner>yaoxia@chromium.org</owner>
+<event name="AbusiveExperienceHeuristic.TestEvent2">
+ <owner>owner3@chromium.org</owner>
+ <obsolete>
+ Deprecated 2/2019
+ </obsolete>
+ <metric name="Metric">
+ <summary>
+ A summary of the metric.
+ </summary>
+ </metric>
+</event>
+
+<event name="Autofill.TestEvent3">
+ <owner>owner3@chromium.org</owner>
<summary>
- Recorded whenever window.open() is called when AdTagging is enabled.
+ A summary of Autofill.TestEvent3.
</summary>
- <metric name="FromAdScript">
+ <metric name="MetricVersion1">
<summary>
- True if the page called window.open() with an ad script in the stack.
+ MetricVersion1 summary.
</summary>
+ <obsolete>
+ Deprecated and replaced by MetricVersion2.
+ </obsolete>
</metric>
- <metric name="FromAdSubframe">
+ <metric name="MetricVersion2">
<summary>
- True if the page called window.open() from an ad subframe.
+ MetricVersion2 summary.
</summary>
</metric>
</event>
-<event name="Autofill.SelectedMaskedServerCard">
- <obsolete>
- Deprecated 2/2019
- </obsolete>
- <owner>jiahuiguo@google.com</owner>
- <metric name="MillisecondsSinceFormParsed">
+<event name="FullyObsolete.TestEvent4">
+ <owner>owner4@chromium.org</owner>
+ <summary>
+ All metrics of this event are marked as obsolete.
+ </summary>
+ <metric name="MetricVersion1">
<summary>
- Obsolete.
-
- Time since form parse.
+ MetricVersion1 summary.
+ </summary>
+ <obsolete>
+ Deprecated and replaced by MetricVersion2.
+ </obsolete>
+ </metric>
+ <metric name="MetricVersion2">
+ <summary>
+ MetricVersion2 summary.
</summary>
+ <obsolete/>
</metric>
</event>
diff --git a/chromium/tools/metrics/histograms/update_bad_message_reasons.py b/chromium/tools/metrics/histograms/update_bad_message_reasons.py
index 825d014ee2f..b3fb716c0fe 100644
--- a/chromium/tools/metrics/histograms/update_bad_message_reasons.py
+++ b/chromium/tools/metrics/histograms/update_bad_message_reasons.py
@@ -10,6 +10,7 @@ If the file was pretty-printed, the updated version is pretty-printed too.
from __future__ import print_function
+import os
import sys
from update_histogram_enum import UpdateHistogramEnum
diff --git a/chromium/tools/metrics/histograms/update_editor_commands.py b/chromium/tools/metrics/histograms/update_editor_commands.py
index 664e9c5e116..3d7ce357850 100644
--- a/chromium/tools/metrics/histograms/update_editor_commands.py
+++ b/chromium/tools/metrics/histograms/update_editor_commands.py
@@ -22,7 +22,7 @@ from diff_util import PromptUserToAcceptDiff
import path_util
import histogram_paths
-import histograms_print_style
+import histogram_configuration_model
ENUMS_PATH = histogram_paths.ENUMS_XML
@@ -133,8 +133,7 @@ def main():
UpdateHistogramDefinitions(histogram_values, histograms_doc)
Log('Writing out new histograms file.')
- new_xml = histograms_print_style.GetPrintStyle().PrettyPrintXml(
- histograms_doc)
+ new_xml = histogram_configuration_model.PrettifyTree(histograms_doc)
if PromptUserToAcceptDiff(xml, new_xml, 'Is the updated version acceptable?'):
with open(ENUMS_PATH, 'wb') as f:
f.write(new_xml)
diff --git a/chromium/tools/metrics/histograms/update_histogram_enum.py b/chromium/tools/metrics/histograms/update_histogram_enum.py
index 72f7fc9576e..90f6bbae97e 100644
--- a/chromium/tools/metrics/histograms/update_histogram_enum.py
+++ b/chromium/tools/metrics/histograms/update_histogram_enum.py
@@ -19,7 +19,7 @@ import diff_util
import path_util
import histogram_paths
-import histograms_print_style
+import histogram_configuration_model
ENUMS_PATH = histogram_paths.ENUMS_XML
@@ -228,8 +228,7 @@ def _GetOldAndUpdatedXml(histogram_enum_name, source_enum_values,
source_enum_path, caller_script_name,
histograms_doc)
- new_xml = histograms_print_style.GetPrintStyle().PrettyPrintXml(
- histograms_doc)
+ new_xml = histogram_configuration_model.PrettifyTree(histograms_doc)
return (xml, new_xml)
diff --git a/chromium/tools/metrics/histograms/update_policies.py b/chromium/tools/metrics/histograms/update_policies.py
index c19730a34cb..fcf1d6c40d1 100644
--- a/chromium/tools/metrics/histograms/update_policies.py
+++ b/chromium/tools/metrics/histograms/update_policies.py
@@ -23,7 +23,7 @@ from diff_util import PromptUserToAcceptDiff
import path_util
import histogram_paths
-import histograms_print_style
+import histogram_configuration_model
ENUMS_PATH = histogram_paths.ENUMS_XML
POLICY_TEMPLATES_PATH = 'components/policy/resources/policy_templates.json'
@@ -131,8 +131,7 @@ def main():
UpdatePoliciesHistogramDefinitions(policy_templates, histograms_doc)
UpdateAtomicGroupsHistogramDefinitions(policy_templates, histograms_doc)
- new_xml = histograms_print_style.GetPrintStyle().PrettyPrintXml(
- histograms_doc)
+ new_xml = histogram_configuration_model.PrettifyTree(histograms_doc)
if PromptUserToAcceptDiff(xml, new_xml, 'Is the updated version acceptable?'):
with open(ENUMS_PATH, 'wb') as f:
f.write(new_xml)
diff --git a/chromium/tools/metrics/md2xml.py b/chromium/tools/metrics/md2xml.py
index 78fd4b7eca8..6033a57d24b 100755
--- a/chromium/tools/metrics/md2xml.py
+++ b/chromium/tools/metrics/md2xml.py
@@ -59,7 +59,6 @@ import path_util
sys.path.append(os.path.join(os.path.dirname(__file__), 'histograms'))
import pretty_print
-
SupportedTags = [
"added",
"expires",
@@ -142,12 +141,19 @@ def CreateNode(tree, tag, text):
def main():
- if len(sys.argv) != 2:
- sys.stderr.write('Usage: %s <path-to-md-file>\n' % (sys.argv[0]))
+ """
+ argv[1]: The path to the md file.
+ argv[2]: The relative path of the xml file to be added.
+ """
+ if len(sys.argv) != 3:
+ sys.stderr.write('Usage: %s <path-to-md-file> <path-to-histograms-file>\n' %
+ (sys.argv[0]))
sys.exit(1)
+ rel_path = sys.argv[2]
with Trace('Reading histograms.xml') as t:
- xml_path = path_util.GetHistogramsFile()
+ xml_path = path_util.GetInputFile(
+ os.path.join('tools', 'metrics', 'histograms', rel_path))
with open(xml_path, 'rb') as f:
raw_xml = f.read()
diff --git a/chromium/tools/metrics/metrics_python_tests.py b/chromium/tools/metrics/metrics_python_tests.py
index 38fd9ab45c0..a51946ecc84 100755
--- a/chromium/tools/metrics/metrics_python_tests.py
+++ b/chromium/tools/metrics/metrics_python_tests.py
@@ -11,29 +11,32 @@ SRC_DIR = os.path.dirname(os.path.dirname(THIS_DIR))
TYP_DIR = os.path.join(SRC_DIR, 'third_party', 'catapult', 'third_party', 'typ')
if not TYP_DIR in sys.path:
- sys.path.insert(0, TYP_DIR)
+ sys.path.insert(0, TYP_DIR)
import typ
def resolve(*paths):
- return [os.path.join(THIS_DIR, *(p.split('/'))) for p in paths]
-
-sys.exit(typ.main(tests=resolve(
- 'actions/extract_actions_test.py',
- 'histograms/generate_expired_histograms_array_unittest.py',
- 'histograms/pretty_print_test.py',
- 'rappor/rappor_model_test.py',
- 'ukm/codegen_test.py',
- 'ukm/gen_builders_test.py',
- 'ukm/ukm_model_test.py',
- 'ukm/xml_validations_test.py',
- '../json_comment_eater/json_comment_eater_test.py',
- '../json_to_struct/element_generator_test.py',
- '../json_to_struct/struct_generator_test.py',
- '../variations/fieldtrial_to_struct_unittest.py',
- '../variations/fieldtrial_util_unittest.py',
- '../variations/split_variations_cmd_unittest.py',
- '../../components/variations/service/'
- 'generate_ui_string_overrider_unittest.py',
- )))
+ return [os.path.join(THIS_DIR, *(p.split('/'))) for p in paths]
+
+
+sys.exit(
+ typ.main(tests=resolve(
+ 'actions/extract_actions_test.py',
+ 'histograms/extract_histograms_test.py',
+ 'histograms/generate_expired_histograms_array_unittest.py',
+ 'histograms/pretty_print_test.py',
+ 'rappor/rappor_model_test.py',
+ 'ukm/codegen_test.py',
+ 'ukm/gen_builders_test.py',
+ 'ukm/ukm_model_test.py',
+ 'ukm/xml_validations_test.py',
+ '../json_comment_eater/json_comment_eater_test.py',
+ '../json_to_struct/element_generator_test.py',
+ '../json_to_struct/struct_generator_test.py',
+ '../variations/fieldtrial_to_struct_unittest.py',
+ '../variations/fieldtrial_util_unittest.py',
+ '../variations/split_variations_cmd_unittest.py',
+ '../../components/variations/service/'
+ 'generate_ui_string_overrider_unittest.py',
+ )))
diff --git a/chromium/tools/metrics/rappor/rappor_model.py b/chromium/tools/metrics/rappor/rappor_model.py
index 140713c53b8..757cc076424 100644
--- a/chromium/tools/metrics/rappor/rappor_model.py
+++ b/chromium/tools/metrics/rappor/rappor_model.py
@@ -29,7 +29,7 @@ _NOISE_VALUES_TYPE = models.ObjectNodeType(
_NOISE_LEVEL_TYPE = models.ObjectNodeType(
'noise-level',
extra_newlines=(1, 1, 1),
- attributes=[('name', unicode, None)],
+ attributes=[('name', str, None)],
children=[
models.ChildType('summary', _SUMMARY_TYPE, False),
models.ChildType('values', _NOISE_VALUES_TYPE, False),
@@ -49,14 +49,14 @@ _PARAMETERS_TYPE = models.ObjectNodeType(
('num-cohorts', int, None),
('bytes', int, None),
('hash-functions', int, None),
- ('reporting-level', unicode, None),
- ('noise-level', unicode, None),
+ ('reporting-level', str, None),
+ ('noise-level', str, None),
])
_RAPPOR_PARAMETERS_TYPE = models.ObjectNodeType(
'rappor-parameters',
extra_newlines=(1, 1, 1),
- attributes=[('name', unicode, None)],
+ attributes=[('name', str, None)],
children=[
models.ChildType('summary', _SUMMARY_TYPE, False),
models.ChildType('parameters', _PARAMETERS_TYPE, False),
@@ -73,21 +73,21 @@ _RAPPOR_PARAMETERS_TYPES_TYPE = models.ObjectNodeType(
_STRING_FIELD_TYPE = models.ObjectNodeType(
'string-field',
extra_newlines=(1, 1, 0),
- attributes=[('name', unicode, None)],
+ attributes=[('name', str, None)],
children=[
models.ChildType('summary', _SUMMARY_TYPE, False),
])
_FLAG_TYPE = models.ObjectNodeType(
'flag',
- attributes=[('bit', int, None), ('label', unicode, None)],
+ attributes=[('bit', int, None), ('label', str, None)],
text_attribute='summary',
single_line=True)
_FLAGS_FIELD_TYPE = models.ObjectNodeType(
'flags-field',
extra_newlines=(1, 1, 0),
- attributes=[('name', unicode, None), ('noise-level', unicode, None)],
+ attributes=[('name', str, None), ('noise-level', str, None)],
children=[
models.ChildType('flags', _FLAG_TYPE, True),
models.ChildType('summary', _SUMMARY_TYPE, False),
@@ -96,7 +96,7 @@ _FLAGS_FIELD_TYPE = models.ObjectNodeType(
_UINT64_FIELD_TYPE = models.ObjectNodeType(
'uint64-field',
extra_newlines=(1, 1, 0),
- attributes=[('name', unicode, None), ('noise-level', unicode, None)],
+ attributes=[('name', str, None), ('noise-level', str, None)],
children=[
models.ChildType('summary', _SUMMARY_TYPE, False),
])
@@ -104,7 +104,7 @@ _UINT64_FIELD_TYPE = models.ObjectNodeType(
_RAPPOR_METRIC_TYPE = models.ObjectNodeType(
'rappor-metric',
extra_newlines=(1, 1, 1),
- attributes=[('name', unicode, None), ('type', unicode, None)],
+ attributes=[('name', str, None), ('type', str, None)],
children=[
models.ChildType('obsolete', _OBSOLETE_TYPE, False),
models.ChildType('owners', _OWNER_TYPE, True),
diff --git a/chromium/tools/metrics/rappor/rappor_model_test.py b/chromium/tools/metrics/rappor/rappor_model_test.py
index 832e6491b51..e764e705a39 100755
--- a/chromium/tools/metrics/rappor/rappor_model_test.py
+++ b/chromium/tools/metrics/rappor/rappor_model_test.py
@@ -96,7 +96,10 @@ PARSED_XML = {
{
rappor_model.models.COMMENT_KEY: [],
'name': 'NO_NOISE',
- 'summary': 'NO_NOISE description.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'NO_NOISE description.',
+ },
'values': {
rappor_model.models.COMMENT_KEY: [],
'fake-prob': 0.0,
@@ -108,7 +111,10 @@ PARSED_XML = {
{
rappor_model.models.COMMENT_KEY: [],
'name': 'NORMAL_NOISE',
- 'summary': 'NORMAL_NOISE description.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'NORMAL_NOISE description.',
+ },
'values': {
rappor_model.models.COMMENT_KEY: [],
'fake-prob': 0.5,
@@ -125,7 +131,10 @@ PARSED_XML = {
{
rappor_model.models.COMMENT_KEY: [],
'name': 'ETLD_PLUS_ONE',
- 'summary': 'ETLD+1 parameters.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'ETLD+1 parameters.',
+ },
'parameters': {
rappor_model.models.COMMENT_KEY: [],
'num-cohorts': 128,
@@ -138,7 +147,10 @@ PARSED_XML = {
{
rappor_model.models.COMMENT_KEY: [],
'name': 'SAFEBROWSING_RAPPOR_TYPE',
- 'summary': 'SAFEBROWSING parameters.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'SAFEBROWSING parameters.',
+ },
'parameters': {
rappor_model.models.COMMENT_KEY: [],
'num-cohorts': 128,
@@ -160,8 +172,10 @@ PARSED_XML = {
rappor_model.models.COMMENT_KEY: [],
'name':
'flags',
- 'summary':
- 'Flags Summary.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'Flags Summary.',
+ },
'flags': [
{
rappor_model.models.COMMENT_KEY: [],
@@ -175,14 +189,22 @@ PARSED_XML = {
},
],
}],
- 'owners': ['holte@chromium.org'],
+ 'owners': [{
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'holte@chromium.org',
+ }],
'strings': [{
rappor_model.models.COMMENT_KEY: [],
'name': 'domain',
- 'summary': 'Domain Summary.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'Domain Summary.',
+ },
}],
- 'summary':
- 'Metric Summary.',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'Metric Summary.',
+ },
'type':
'SAFEBROWSING_RAPPOR_TYPE',
'uint64': [],
@@ -190,9 +212,15 @@ PARSED_XML = {
rappor_model.models.COMMENT_KEY: [],
'name': 'Search.DefaultSearchProvider',
'flags': [],
- 'owners': ['holte@chromium.org'],
+ 'owners': [{
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'holte@chromium.org',
+ }],
'strings': [],
- 'summary': 'BLAH BLAH BLAH',
+ 'summary': {
+ rappor_model.models.COMMENT_KEY: [],
+ 'text': 'BLAH BLAH BLAH',
+ },
'type': 'ETLD_PLUS_ONE',
'uint64': [],
}]
@@ -274,15 +302,16 @@ PRETTY_PRINTED_XML = """<rappor-configuration>
class RapporModelTest(unittest.TestCase):
def testParse(self):
+ self.maxDiff = None
parsed = rappor_model.RAPPOR_XML_TYPE.Parse(PUBLIC_XML_SNIPPET)
- self.assertEqual(PARSED_XML, parsed)
+ self.assertDictEqual(PARSED_XML, parsed)
def testUpdate(self):
updated = rappor_model.UpdateXML(PUBLIC_XML_SNIPPET)
# Compare list of lines for nicer diff on errors.
- self.assertEqual(PRETTY_PRINTED_XML.split('\n'), updated.split('\n'))
+ self.assertMultiLineEqual(PRETTY_PRINTED_XML, updated)
reprinted = rappor_model.UpdateXML(updated)
- self.assertEqual(PRETTY_PRINTED_XML.split('\n'), reprinted.split('\n'))
+ self.assertMultiLineEqual(PRETTY_PRINTED_XML, reprinted)
def testIsValidNoise(self):
valid_noise_level = {
diff --git a/chromium/tools/metrics/ukm/ukm.xml b/chromium/tools/metrics/ukm/ukm.xml
index 0bb2e8816d1..e21e45b3b21 100644
--- a/chromium/tools/metrics/ukm/ukm.xml
+++ b/chromium/tools/metrics/ukm/ukm.xml
@@ -80,6 +80,50 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="Accessibility.ImageDescriptions">
+ <owner>dmazzoni@chromium.org</owner>
+ <summary>
+ Tracks automatic image descriptions provided to blind users.
+ </summary>
+ <metric name="Description" enum="Boolean">
+ <summary>
+ Whether the image description included a description.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="ImageAlreadyHasLabel" enum="Boolean">
+ <summary>
+ Whether the image already had label text before it was augmented with an
+ additional description.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="OCR" enum="Boolean">
+ <summary>
+ Whether the image description included OCR text.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
<event name="Accessibility.Renderer">
<owner>dmazzoni@chromium.org</owner>
<summary>
@@ -217,6 +261,9 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Timing.PreActivationForegroundDuration">
+ <obsolete>
+ Deprecated 07/2020.
+ </obsolete>
<summary>
Number of millseconds that the current web contents spent in the
foreground prior to the frame receiving user activation.
@@ -248,7 +295,7 @@ be describing additional metrics about the same event.
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
- Recorded when a page has loadded non-zero ad bytes, and the page is being
+ Recorded when a page has loaded non-zero ad bytes, and the page is being
destroyed/navigated.
</summary>
<metric name="AdBytes">
@@ -301,6 +348,22 @@ be describing additional metrics about the same event.
bucket (with a bucket ratio of 1.3).
</summary>
</metric>
+ <metric name="MaxAdDensityByArea">
+ <summary>
+ The estimated maximum density of ads on a page by area. Calculated as the
+ area of ads on the page * 100 / page area. This counts each overlapping
+ area once, it may be inaccurate due to updates and calculations being
+ throttled.
+ </summary>
+ </metric>
+ <metric name="MaxAdDensityByHeight">
+ <summary>
+ The estimated maximum density of ads on a page by height. Calculated as
+ the combined height of ads on the page * 100 / page height. This counts
+ each overlapping area once, it may be inaccurate due to updates and
+ calculations being throttled.
+ </summary>
+ </metric>
<metric name="TotalBytes">
<summary>
Amount of network bytes used to load resources on the page. Includes
@@ -1094,13 +1157,6 @@ be describing additional metrics about the same event.
<summary>
The observed type of the field. See: autofill::ServerFieldType
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="FieldSignature">
<summary>
@@ -1116,56 +1172,22 @@ be describing additional metrics about the same event.
<summary>
Time since form parse.
</summary>
- <aggregation>
- <history>
- <index fields="metrics.ValidationEvent"/>
- <statistics>
- <quantiles type="std-percentiles"/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="PredictedType" enum="AutofillServerFieldType">
<summary>
The predicted type of the field. See: autofill::ServerFieldType
</summary>
- <aggregation>
- <history>
- <index fields="metrics.ActualType"/>
- <index fields="metrics.ActualType,metrics.PredictionSource"/>
- <index fields="metrics.PredictionSource"/>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="PredictionSource" enum="AutofillPredictionSource">
<summary>
The system which generated the prediction: heuristics, server, overall.
</summary>
- <aggregation>
- <history>
- <index fields="metrics.ActualType,metrics.PredictedType"/>
- <index fields="metrics.PredictedType"/>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="ValidationEvent" enum="AutofillQualitiyMetricType">
<summary>
The event which triggered the validation: Submission, Left Form, Form has
Autocomplete attributes.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
</event>
@@ -1537,6 +1559,102 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="AutofillAssistant.LiteScriptFinished">
+ <owner>arbesser@google.com</owner>
+ <owner>mcarlen@google.com</owner>
+ <owner>marianfe@google.com</owner>
+ <summary>
+ Recorded when a lite script has finished, either because the user made a
+ choice, or because some error occurred.
+ </summary>
+ <metric name="LiteScriptFinished" enum="AutofillAssistantLiteScriptFinished">
+ <summary>
+ An enum that describes the different ways a lite script can finish. Users
+ may click continue, cancel, or indirectly abort the experience in various
+ ways. See components/autofill_assistant/browser/metrics.h.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="AutofillAssistant.LiteScriptOnboarding">
+ <owner>arbesser@google.com</owner>
+ <owner>mcarlen@google.com</owner>
+ <owner>marianfe@google.com</owner>
+ <summary>
+ Recorded after a user has finished a lite script flow and accepted the final
+ prompt in it.
+ </summary>
+ <metric name="LiteScriptOnboarding"
+ enum="AutofillAssistantLiteScriptOnboarding">
+ <summary>
+ An enum that describes whether users who have successfully finished a lite
+ script also accepted the onboarding or not. See
+ components/autofill_assistant/browser/metrics.h.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="AutofillAssistant.LiteScriptStarted">
+ <owner>arbesser@google.com</owner>
+ <owner>mcarlen@google.com</owner>
+ <owner>marianfe@google.com</owner>
+ <summary>
+ Recorded at the time when the decision is made to start (or not to start) a
+ lite script.
+ </summary>
+ <metric name="LiteScriptStarted" enum="AutofillAssistantLiteScriptStarted">
+ <summary>
+ An enum that captures the different ways a lite script may be started or
+ suppressed. See components/autofill_assistant/browser/metrics.h.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="BackForwardCacheDisabledForRenderFrameHostReason">
+ <owner>altimin@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <summary>
+ Recorded at a history commit for each reason passed to
+ BackForwardCache::DisableForRenderFrameHost. The source IDs match with the
+ source IDs of HistoryNavigation events.
+ </summary>
+ <metric name="Reason"
+ enum="BackForwardCacheDisabledForRenderFrameHostReasonShort">
+ <summary>
+ For history navigations, records the reason passed to
+ BackForwardCache::DisableForRenderFrameHost calls. The reason is specified
+ as a string, and this metric contains one of their hashes computed as
+ base::HashMetricName's lower 16bits.
+
+ The metric is recorded when a history navigation commits and emits a
+ sample for each reason. One history navigation can emit multiple reasons,
+ and these reasons are recorded as multiple events with the same source ID
+ based on the navigation ID.
+ </summary>
+ </metric>
+</event>
+
<event name="BackgroundFetch">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -1675,6 +1793,12 @@ be describing additional metrics about the same event.
Logged once per page; indicates the type of find-in-page behaviors users
utilizied.
</summary>
+ <metric name="BeforematchExpandedHiddenMatchable">
+ <summary>
+ Boolean indicating that a find-in-page match was hidden but became visible
+ after the beforematch event was fired.
+ </summary>
+ </metric>
<metric name="DidHaveRenderSubtreeMatch">
<summary>
Boolean indicating whether there was an active match in content-visibility
@@ -1776,17 +1900,32 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Compositing">
+ <obsolete>
+ Obsolete as of http://crrev.com/794384 and M86.
+ </obsolete>
<summary>
The time spent in main thread compositing, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
+ <metric name="CompositingAssignments">
+ <summary>
+ The time spent in main thread compositing assignments, between navigation
+ and First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
<metric name="CompositingCommit">
<summary>
The time spent committing main thread compositing results, between
navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
+ <metric name="CompositingInputs">
+ <summary>
+ The time spent in main thread compositing inputs, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
<metric name="ForcedStyleAndLayout">
<summary>
The time spent in forced style recalc and layouts, between navigation and
@@ -1979,6 +2118,9 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Compositing">
+ <obsolete>
+ Obsolete as of http://crrev.com/794384.
+ </obsolete>
<summary>
The time taken by the compositing phase in microseconds during the sampled
frame.
@@ -2037,6 +2179,26 @@ be describing additional metrics about the same event.
within the sample window. An int in the range [0,100].
</summary>
</metric>
+ <metric name="CompositingAssignments">
+ <summary>
+ The time taken by compositing assignments in microseconds during the
+ sampled frame.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.country"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="CompositingAssignmentsPercentage">
+ <summary>
+ The percentage of the main frame time used by the compositing assignments
+ phase. An int in the range [0,100].
+ </summary>
+ </metric>
<metric name="CompositingCommit">
<summary>
The time taken by the compositing commit in microseconds during the
@@ -2103,10 +2265,31 @@ be describing additional metrics about the same event.
int in the range [0,100].
</summary>
</metric>
+ <metric name="CompositingInputs">
+ <summary>
+ The time taken by the compositing inputs phase in microseconds during the
+ sampled frame.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.country"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="CompositingInputsPercentage">
+ <summary>
+ The percentage of the main frame time used by the compositing inputs
+ phase. An int in the range [0,100].
+ </summary>
+ </metric>
<metric name="CompositingPercentage">
<summary>
The percentage of the main frame time used by the compositing phase. An
- int in the range [0,100].
+ int in the range [0,100]. This is being replaced soon by
+ CompositingInputsPercentage and CompositingAssignmentsPercentage.
</summary>
</metric>
<metric name="ForcedStyleAndLayout">
@@ -3823,6 +4006,13 @@ be describing additional metrics about the same event.
<summary>
The final state of the request.
</summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
</metric>
</event>
@@ -4140,10 +4330,10 @@ be describing additional metrics about the same event.
</history>
</aggregation>
</metric>
- <metric name="TotalLatencyToSwapEnd">
+ <metric name="TotalLatencyToSwapBegin">
<summary>
The time from when the event is created in the browser to when the
- gpu-swap is completed, for scroll and pinch events.
+ gpu-swap is started, for scroll events.
</summary>
<aggregation>
<history>
@@ -4154,6 +4344,16 @@ be describing additional metrics about the same event.
</history>
</aggregation>
</metric>
+ <metric name="TotalLatencyToSwapEnd">
+ <obsolete>
+ Deprecated as of 07/2020. Replaced with TotalLatencyToSwapBegin which
+ measures what we actually intended to measure.
+ </obsolete>
+ <summary>
+ The time from when the event is created in the browser to when the
+ gpu-swap is completed, for scroll events.
+ </summary>
+ </metric>
</event>
<event name="Graphics.Smoothness.Latency">
@@ -4264,6 +4464,11 @@ be describing additional metrics about the same event.
True when a rAF-driven animation was active this frame.
</summary>
</metric>
+ <metric name="ScrollbarScroll" enum="Boolean">
+ <summary>
+ True when a scrollbar driven interaction was active this frame.
+ </summary>
+ </metric>
<metric name="SendBeginMainFrameToCommit">
<summary>
The time from when the BeginMainFrame is sent to the beginning of the
@@ -4508,6 +4713,12 @@ be describing additional metrics about the same event.
animation.
</summary>
</metric>
+ <metric name="CompositorThread.ScrollbarScroll">
+ <summary>
+ The throughput of the compositor thread during scrollbar scroll driven
+ interactions.
+ </summary>
+ </metric>
<metric name="CompositorThread.TouchScroll">
<summary>
The throughput of the compositor thread during touchscroll driven
@@ -4550,6 +4761,12 @@ be describing additional metrics about the same event.
The throughput of the main thread during rAF callback driven animation.
</summary>
</metric>
+ <metric name="MainThread.ScrollbarScroll">
+ <summary>
+ The throughput of the main thread during scrollbar scroll driven
+ interactions.
+ </summary>
+ </metric>
<metric name="MainThread.TouchScroll">
<summary>
The throughput of the main thread during touchscroll driven interactions.
@@ -4627,6 +4844,20 @@ be describing additional metrics about the same event.
</history>
</aggregation>
</metric>
+ <metric name="SlowerThread.ScrollbarScroll">
+ <summary>
+ The worse throughput of the main and the compositor thread during
+ scrollbar driven interactions.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.country"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
<metric name="SlowerThread.TouchScroll">
<summary>
The worse throughput of the main and the compositor thread during
@@ -4841,12 +5072,36 @@ be describing additional metrics about the same event.
<event name="HistoryNavigation" singular="True">
<owner>altimin@chromium.org</owner>
<owner>arthursonzogni@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
<summary>
Metrics recorded each time we commit a history navigation, which are needed
to estimate benefits of back-forward cache. Except as otherwise noted, the
metrics are recorded for history navigations, but not for same-document
navigations.
</summary>
+ <metric name="BackForwardCache.BlocklistedFeatures"
+ enum="WebSchedulerTrackedFeature">
+ <summary>
+ When navigating back to a page in the session history, this records what
+ blocklisted features were used when the page was loaded and prevented this
+ page from being stored in the back-forward cache. Multiple blocklisted
+ features can be recorded for the same page as a binary mask.
+ </summary>
+ </metric>
+ <metric name="BackForwardCache.BrowsingInstanceNotSwappedReason"
+ enum="BackForwardCacheBrowsingInstanceNotSwappedReason">
+ <summary>
+ When navigating back to a page in the session history and the
+ BackForwardCache wasn't used because of the related browsing instances,
+ this records the reason why the browsing instance wasn't swapped.
+ </summary>
+ </metric>
+ <metric name="BackForwardCache.DisabledForRenderFrameHostReasonCount">
+ <summary>
+ The number of the reasons passed to
+ BackForwardCache::DisableForRenderFrameHost calls.
+ </summary>
+ </metric>
<metric name="BackForwardCache.IsServedFromBackForwardCache">
<summary>
Boolean whether the page was restored from the back-forward cache or not.
@@ -4866,6 +5121,22 @@ be describing additional metrics about the same event.
individual features.
</summary>
</metric>
+ <metric name="CumulativeShiftScoreAfterBackForwardCacheRestore">
+ <summary>
+ Measures the cumulative layout shift (bit.ly/3fQz29y) that has occurred
+ during the session, after the page is restored from the back-forward
+ cache. This metric's integral value is 100x the fractional cumulative
+ layout shift score described in the explainer.
+ </summary>
+ </metric>
+ <metric name="FirstInputDelayAfterBackForwardCacheRestore">
+ <summary>
+ Measures First Input Delay, the duration between the hardware timestamp
+ and the start of event processing on the main thread for the first
+ meaningful input per navigation, after the page is restored from the
+ back-forward cache.
+ </summary>
+ </metric>
<metric name="LastCommittedCrossDocumentNavigationSourceIdForTheSameDocument">
<summary>
For history navigations and reloads, the source id of the previous
@@ -4898,6 +5169,13 @@ be describing additional metrics about the same event.
It's expected to be rare, but might be problematic for back-forward cache.
</summary>
</metric>
+ <metric name="NavigationToFirstPaintAfterBackForwardCacheRestore">
+ <summary>
+ Measures the time in milliseconds from navigation timing's navigation
+ start to the time the first paint is performed, after the page is restored
+ from the back-forward cache.
+ </summary>
+ </metric>
<metric name="SameOriginSubframesFeatures">
<summary>
Bitmask of features used by the same origin subframes of the previous page
@@ -4967,11 +5245,8 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -4985,11 +5260,8 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -5138,6 +5410,16 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="JavascriptFrameworkPageLoad" singular="True">
+ <owner>houssein@chromium.org</owner>
+ <metric name="NextJSPageLoad">
+ <summary>
+ True if the page loaded in the main frame uses the Next.js JavaScript
+ framework.
+ </summary>
+ </metric>
+</event>
+
<event name="Layout.DisplayCutout.StateChanged">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
@@ -5221,6 +5503,23 @@ be describing additional metrics about the same event.
Predictor. This event will be recorded once per page load on
DocumentOnLoadCompletedInMainFrame().
</summary>
+ <metric name="CorrectSubresourceOriginPreconnectsInitiated">
+ <summary>
+ The number of subresource origin preconnects that were initiated by the
+ Loading Predictor for the navigation and were actually used by the page
+ load, excluding the main frame URL's origin. If more than 100 subresource
+ origins were preconnected to and were actually used by the page load, this
+ will be capped at 100.
+ </summary>
+ </metric>
+ <metric name="CorrectSubresourcePrefetchesInitiated">
+ <summary>
+ The number of subresource prefetches that were initiated by the Loading
+ Predictor for the navigation and were actually used by the page load. If
+ more than 100 subresources were prefetched and were actually used by the
+ page load, this will be capped at 100.
+ </summary>
+ </metric>
<metric name="LocalPredictionCorrectlyPredictedOrigins">
<summary>
The number of subresource origins that were correctly predicted by the
@@ -5239,6 +5538,24 @@ be describing additional metrics about the same event.
100.
</summary>
</metric>
+ <metric name="NavigationStartToFirstSubresourcePrefetchInitiated">
+ <summary>
+ The time (in milliseconds) that elapsed between navigation start and the
+ first subresource prefetch that was initiated based on these predictions.
+ </summary>
+ </metric>
+ <metric name="NavigationStartToNavigationCommit">
+ <summary>
+ The time (in milliseconds) that elapsed between navigation start and the
+ commit finished.
+ </summary>
+ </metric>
+ <metric name="NavigationStartToOptimizationGuidePredictionArrived">
+ <summary>
+ The time (in milliseconds) that elapsed between navigation start and the
+ optimization guide prediction arriving for the navigation.
+ </summary>
+ </metric>
<metric name="OptimizationGuidePredictionCorrectlyPredictedOrigins">
<summary>
The number of subresource origins that were correctly predicted by the
@@ -5281,6 +5598,21 @@ be describing additional metrics about the same event.
subresources were predicted, this will be capped at 100.
</summary>
</metric>
+ <metric name="SubresourceOriginPreconnectsInitiated">
+ <summary>
+ The number of subresource origins that were initiated by the Loading
+ Predictor and were preconnected to, excluding the main frame URL's origin.
+ If more than 100 subresource origins were preconnected to, this will be
+ capped at 100.
+ </summary>
+ </metric>
+ <metric name="SubresourcePrefetchesInitiated">
+ <summary>
+ The number of subresource prefetches that were initiated by the Loading
+ Predictor for the navigation. If more than 100 subresources were
+ prefetched, this will be capped at 100.
+ </summary>
+ </metric>
</event>
<event name="LocalNetworkRequests">
@@ -7702,6 +8034,25 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="OptimizationGuideAutotuning">
+ <owner>sophiechang@chromium.org</owner>
+ <owner>mcrouse@chromium.org</owner>
+ <summary>
+ Metrics associated with an autotuning event initiated by the Optimization
+ Guide.
+ </summary>
+ <metric name="OptimizationType">
+ <summary>
+ The |optimization_guide::proto::OptimizationType| that is being tuned.
+ </summary>
+ </metric>
+ <metric name="TuningVersion">
+ <summary>
+ The version of the tuning group for the optimization type that was served.
+ </summary>
+ </metric>
+</event>
+
<event name="PageDomainInfo">
<owner>uthakore@chromium.org</owner>
<owner>invernizzi@chromium.org</owner>
@@ -7735,8 +8086,6 @@ be describing additional metrics about the same event.
<aggregation>
<history>
<index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -7885,6 +8234,16 @@ be describing additional metrics about the same event.
for quiescent windows. The unit of time is ms.
</summary>
</metric>
+ <metric name="Experimental.PageLoadType" enum="PageLoadType">
+ <summary>
+ Determines the PageLoadType for this page load. That is, records whether
+ the page was never foregrounded, was foregrounded but did not reach FCP,
+ or did reach FCP. The metric is recorded at the end of each page load. As
+ usual with PageLoad metrics, we consider app backgrounding on Android to
+ be the end of page load as well as the app could be evicted by Android
+ anytime after that happens.
+ </summary>
+ </metric>
<metric name="Experimental.PaintTiming.NavigationToFirstMeaningfulPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
@@ -7995,6 +8354,20 @@ be describing additional metrics about the same event.
http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
+ <metric name="Experimental.TotalForegroundDuration">
+ <summary>
+ The total amount of time the page spent in the foreground, in
+ milliseconds. Note that this metric adds all foreground durations
+ occurring for the page. For example: if the page starts foregrounded
+ during 1 second, then goes to the background for a while, then is
+ foregrounded again for 2 seconds, and then is unloaded, this metric
+ reports 3 seconds. To see metrics about consecutive foreground sessions,
+ see the PageForegroundSession event instead. This metric is recorded at
+ the end of each page load. As usual with PageLoad metrics, we consider app
+ backgrounding on Android to be the end of page load as well as the app
+ could be evicted by Android anytime after that happens.
+ </summary>
+ </metric>
<metric name="InteractiveTiming.FirstInputDelay">
<obsolete>
Deprecated on January 2019 in favor of InteractiveTiming.FirstInputDelay2,
@@ -8152,6 +8525,18 @@ be describing additional metrics about the same event.
until the result shows up on screen if the scroll was the first scroll
since navigation.
</summary>
+ <aggregation>
+ <history>
+ <index fields="profile.country"/>
+ <index fields="profile.country,profile.system_ram"/>
+ <index fields="profile.is_dominant_version"/>
+ <index fields="profile.is_latest_version"/>
+ <index fields="profile.system_ram"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
</metric>
<metric name="InteractiveTiming.LongestInputDelay">
<obsolete>
@@ -8203,7 +8588,6 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -8256,11 +8640,6 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
- <index fields="profile.is_dominant_version"/>
- <index fields="profile.is_latest_version"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -8275,11 +8654,6 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
- <index fields="profile.is_dominant_version"/>
- <index fields="profile.is_latest_version"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -8294,11 +8668,6 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
- <index fields="profile.country,profile.system_ram"/>
- <index fields="profile.is_dominant_version"/>
- <index fields="profile.is_latest_version"/>
- <index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -8484,7 +8853,7 @@ be describing additional metrics about the same event.
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.
+ metric is recorded after the page became hidden.
</summary>
</metric>
<metric name="Navigation.PageTransition">
@@ -8702,7 +9071,6 @@ be describing additional metrics about the same event.
</summary>
<aggregation>
<history>
- <index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
@@ -8963,13 +9331,6 @@ be describing additional metrics about the same event.
fields renderer ids, bit 2 - changes in autocomplete attributes, bit 3 -
changes in form control types.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Fill.FirstFillingResultInRenderer"
enum="PasswordManagerFirstRendererFillingResult">
@@ -8980,13 +9341,6 @@ be describing additional metrics about the same event.
This is replicated as PasswordManager.FirstFillingResultInRenderer in UMA.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Fill.FirstWaitForUsernameReason"
enum="PasswordManagerFirstWaitForUsernameReason">
@@ -8998,13 +9352,6 @@ be describing additional metrics about the same event.
This is replicated as PasswordManager.FirstWaitForUsernameReason in UMA.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="FillOnLoad">
<summary>
@@ -9019,37 +9366,16 @@ be describing additional metrics about the same event.
<summary>
Records '1' if the user has generated a password on this form.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Generation.GeneratedPasswordModified" enum="Boolean">
<summary>
Records '1' if the user has modified a generated a password on this form.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Generation.PopupShown" enum="PasswordGenerationPopupShown">
<summary>
Records an entry if (and only if) a popup was shown.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Generation.SpecPriority">
<obsolete>
@@ -9077,13 +9403,6 @@ be describing additional metrics about the same event.
This is replicated as PasswordManager.FillingAssistance in UMA.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="ParsingComparison">
<obsolete>
@@ -9127,13 +9446,6 @@ be describing additional metrics about the same event.
<summary>
Records how the user interacted with a saving prompt.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Saving.Prompt.Shown" enum="Boolean">
<summary>
@@ -9142,26 +9454,12 @@ be describing additional metrics about the same event.
In case a store() via the Credential Management API, a virtual password
form is created, for which this metric is recorded.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Saving.Prompt.Trigger" enum="PasswordBubbleTrigger">
<summary>
Records the trigger of each password save bubble that was shown to the
user to ask for permission to save new credentials.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Saving.ShowedManualFallbackForSaving">
<summary>
@@ -9177,39 +9475,18 @@ be describing additional metrics about the same event.
Records the event that led the password manager to believe the submission
was successful. Metrics is recorded only when the password is saved.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Submission.Observed" enum="Boolean">
<summary>
Records whether a submission of a password form has been observered. The
values 0 and 1 correspond to false and true respectively.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Submission.SubmissionResult"
enum="PasswordFormSubmissionResult">
<summary>
Records the outcome of a password form submission.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Submission.SubmittedFormType" enum="PasswordFormType">
<summary>
@@ -9217,13 +9494,6 @@ be describing additional metrics about the same event.
This is replicated as PasswordManager.SubmittedFormType in UMA.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="SuppressedAccount.Generated.HTTPSNotHTTP">
<obsolete>
@@ -9328,13 +9598,6 @@ be describing additional metrics about the same event.
<summary>
Records how the user interacted with an updating prompt.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Updating.Prompt.Shown" enum="Boolean">
<summary>
@@ -9342,26 +9605,12 @@ be describing additional metrics about the same event.
user was shown a prompt that asked for permission to update existing
credentials.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="Updating.Prompt.Trigger" enum="PasswordBubbleTrigger">
<summary>
Records the trigger of each password update bubble that was shown to the
user to ask for permission to update existing credentials.
</summary>
- <aggregation>
- <history>
- <statistics>
- <enumeration/>
- </statistics>
- </history>
- </aggregation>
</metric>
<metric name="User.Action">
<obsolete>
@@ -9419,6 +9668,31 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="PasswordManager.WellKnownChangePasswordResult">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Metrics related to the usage and support of .well-known/change-password. The
+ .well-known/change-password standard is defined to redirect to the sites
+ change password form. We collect whether a site supports the standart or
+ not. https://wicg.github.io/change-password-url/
+ </summary>
+ <metric name="WellKnownChangePasswordResult"
+ enum="WellKnownChangePasswordResult">
+ <summary>
+ Records if a site supports .well-known/change-password and if a url
+ override was used or not.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
<event name="PaymentApp.CheckoutEvents">
<owner>sahel@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
@@ -9485,6 +9759,21 @@ be describing additional metrics about the same event.
</summary>
</event>
+<event name="PerfectHeuristics" singular="True">
+ <owner>dom@chromium.org</owner>
+ <owner>chrome-loading@google.com</owner>
+ <summary>
+ Metrics recorded for the various Perfect Heuristics experiments being run.
+ </summary>
+ <metric name="delay_async_script_execution_before_finished_parsing"
+ enum="Boolean">
+ <summary>
+ Set to 1 when blink::ScriptRunner sees an async script before the
+ associated document has finished parsing.
+ </summary>
+ </metric>
+</event>
+
<event name="PeriodicBackgroundSyncEventCompleted">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -10325,6 +10614,9 @@ be describing additional metrics about the same event.
Responsiveness metrics recorded once every 5 seconds.
</summary>
<metric name="ExpectedTaskQueueingDuration">
+ <obsolete>
+ Removed June 2020.
+ </obsolete>
<summary>
Duration in MS for expected task queueing duration. The metric reflects
the responsiveness of a tab. A lower value means the tab will respond to
@@ -11153,6 +11445,9 @@ be describing additional metrics about the same event.
<event
name="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDurationInfo">
+ <obsolete>
+ Removed June 2020.
+ </obsolete>
<owner>chrisha@chromium.org</owner>
<summary>
Collects the expected queueing duration of tasks and metadata for the
@@ -11912,6 +12207,50 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="Unload" singular="True">
+ <owner>kdillon@chromium.org</owner>
+ <summary>
+ Metrics associated with a unloading in preparation for a navigation.
+ </summary>
+ <metric name="BeforeUnloadDuration">
+ <summary>
+ Measures the time in milliseconds of running the beforeunload handlers for
+ a page. If the beforeunloads are dispatched from the browser, this reports
+ the longest running one since these handlers will be run in parallel when
+ the page has frames in different processes. If the navigation is renderer
+ initiated, it will be the duration of running beforeunload handlers in the
+ navigating frame and its local descendants in the renderer plus any
+ latency caused by dispatching beforeunloads to remote frames from the
+ browser.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="BeforeUnloadQueueingDuration">
+ <summary>
+ Measures the time in milliseconds from when the browser sends the request
+ to run beforeunload to the renderer to when the renderer begins
+ dispatching the handlers. For browser-initiated navigations, we report the
+ queueing duration of the beforeunloads that took the longest since they
+ are dispatched in parallel to remote and local frames. For renderer-
+ initiated navigations this metric will only be filled in if we dispatched
+ beforeunloads from the browser to remote frames which we had to wait on.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
<event name="UserActivity">
<owner>jiameng@chromium.org</owner>
<summary>
@@ -12320,6 +12659,307 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="V8.Wasm.ModuleCompiled">
+ <owner>ecmziegler@chromium.org</owner>
+ <summary>
+ Records information on baseline compilation of WebAssembly modules and its
+ resource consumption.
+ </summary>
+ <metric name="Async" enum="Boolean">
+ <summary>
+ The compilation was running asynchronously.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Cached" enum="Boolean">
+ <summary>
+ The compilation was re-using already cached native module code instead of
+ JIT compiling it.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="CodeSize">
+ <summary>
+ The size of the native module code in bytes after baseline compilation
+ finished.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Deserialized" enum="Boolean">
+ <summary>
+ The compilation was deserializing the native module code from the disk
+ cache instead of JIT compiling it.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Lazy" enum="Boolean">
+ <summary>
+ The lazy compilation flag was enabled and therefore not all functions
+ might have been compiled.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="LiftoffBailoutCount">
+ <summary>
+ The number of functions that Liftoff could not compile and that therefore
+ needed to be compiled by TurboFan.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Streamed" enum="Boolean">
+ <summary>
+ The wire bytes were streamed while compiling.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Success" enum="Boolean">
+ <summary>
+ The module was successfully compiled.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <index fields="profile.system_ram"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="WallClockTime">
+ <summary>
+ The total time the compilation took in microseconds.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="V8.Wasm.ModuleDecoded">
+ <owner>ecmziegler@chromium.org</owner>
+ <summary>
+ Records information on WebAssembly modules included in websites.
+ </summary>
+ <metric name="FunctionCount">
+ <summary>
+ Number of declared functions in this module.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="ModuleSize">
+ <summary>
+ The size of the wire bytes of the module.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Streamed" enum="Boolean">
+ <summary>
+ The wire bytes were streamed while decoding.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Success" enum="Boolean">
+ <summary>
+ The module was successfully decoded.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <index fields="profile.system_ram"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="WallClockTime">
+ <summary>
+ The total time the decoding took in microseconds.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="V8.Wasm.ModuleInstantiated">
+ <owner>ecmziegler@chromium.org</owner>
+ <summary>
+ Records information on instantiation of WebAssembly modules and its resource
+ consumption.
+ </summary>
+ <metric name="ImportedFunctionCount">
+ <summary>
+ The number of functions imported by the module.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Success" enum="Boolean">
+ <summary>
+ The module was successfully instantiated.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <index fields="profile.system_ram"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="WallClockTime">
+ <summary>
+ The total time the instantiation took in microseconds.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
+<event name="V8.Wasm.ModuleTieredUp">
+ <owner>ecmziegler@chromium.org</owner>
+ <summary>
+ Records information on top-tier compilation of WebAssembly modules and its
+ resource consumption.
+ </summary>
+ <metric name="CodeSize">
+ <summary>
+ The size of the native module code in bytes after top-tier compilation
+ finished.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="Lazy" enum="Boolean">
+ <summary>
+ The lazy compilation flag was enabled and therefore not all functions
+ might have been compiled.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+ <metric name="WallClockTime">
+ <summary>
+ The total time the compilation took in microseconds.
+ </summary>
+ <aggregation>
+ <history>
+ <index fields="profile.form_factor"/>
+ <statistics>
+ <quantiles type="std-percentiles"/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
<event name="VirtualKeyboard.Open">
<owner>shend@chromium.org</owner>
<summary>
@@ -12760,6 +13400,21 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="WebOTPImpact">
+ <owner>yigu@chromium.org</owner>
+ <owner>goto@chromium.org</owner>
+ <owner>web-identity@google.com</owner>
+ <summary>
+ Records in the browser process when a document is destroyed.
+ </summary>
+ <metric name="PhoneCollection" enum="PhoneCollectionState">
+ <summary>
+ Records whether a document collected phone number, and/or used WebOTP,
+ and/or used OneTimeCode (OTC) during its lifecycle.
+ </summary>
+ </metric>
+</event>
+
<event name="WebRTC.AddressHarvesting">
<owner>hta@chromium.org</owner>
<summary>
@@ -12795,6 +13450,25 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="Worker.ClientAdded">
+ <owner>cfredric@google.com</owner>
+ <summary>
+ Recorded when a client connects to an existing SharedWorker; records the
+ source IDs of the client (which may be a document or another worker), and
+ the type of the worker being connected to.
+ </summary>
+ <metric name="ClientSourceId">
+ <summary>
+ The UKM source ID of the connecting client, as an integer.
+ </summary>
+ </metric>
+ <metric name="WorkerType" enum="WorkerType">
+ <summary>
+ The type of the worker that was connected to.
+ </summary>
+ </metric>
+</event>
+
<event name="XR.PageSession" singular="True">
<obsolete>
Removed 2/2020
diff --git a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
index c4424f2f00a..280bb754c2c 100644
--- a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
+++ b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
@@ -23,22 +23,18 @@ group("telemetry_chrome_test") {
if (is_android) {
data_deps += [
":telemetry_weblayer_apks",
+ "//android_webview:system_webview_apk",
"//android_webview/test:webview_instrumentation_apk",
+ "//android_webview/tools/system_webview_shell:system_webview_shell_apk",
"//chrome/android:chrome_public_apk",
+ "//chrome/android:monochrome_public_apk",
+ "//chrome/android:monochrome_public_bundle",
"//chrome/android/webapk/shell_apk:maps_go_webapk",
]
if (enable_chrome_android_internal) {
data_deps += [ "//clank:telemetry_clank_test" ]
}
- if (public_android_sdk) {
- data_deps += [
- "//android_webview:system_webview_apk",
- "//android_webview/tools/system_webview_shell:system_webview_shell_apk",
- "//chrome/android:monochrome_public_apk",
- "//chrome/android:monochrome_public_bundle",
- ]
- }
} else if (!is_fuchsia) {
data_deps += [ "//chrome" ]
}
@@ -47,7 +43,7 @@ group("telemetry_chrome_test") {
data_deps += [ "//chrome:reorder_imports" ]
}
- if (is_linux) {
+ if (is_linux || is_chromeos) {
data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ]
# CrOS currently has issues with the locally compiled version of
@@ -68,8 +64,9 @@ group("telemetry_chrome_test") {
]
}
- if (is_chromeos && cros_board != "") {
+ if (is_chromeos && is_chromeos_device) {
data_deps += [
+ "//:chromiumos_preflight",
"//chromeos:cros_chrome_deploy",
"//chromeos:cros_test_wrapper",
]
@@ -128,6 +125,14 @@ group("telemetry_chrome_test_without_chrome") {
]
}
+ if (is_mac) {
+ data += [
+ # Required for the hermetic otool binary, which is required for
+ # symbolizing minidumps on Mac.
+ "//build/mac_files/xcode_binaries/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/",
+ ]
+ }
+
if (is_android) {
data += [
# TODO(httpss://crbug.com/833808): Remove this once bots always set
@@ -135,6 +140,12 @@ group("telemetry_chrome_test_without_chrome") {
# for //build/android/pylib/constants/__init__.py to detect the output
# directory, which tombstones.py depends on.
"$root_out_dir/build.ninja",
+
+ # These dependencies are necessary for running Telemetry tests in an
+ # Android emulator.
+ "//third_party/android_ndk/simpleperf/",
+ "//third_party/android_sdk/public/",
+ "//tools/android/avd/proto/",
]
data_deps += [
"//build/android:devil_chromium_py",
diff --git a/chromium/tools/polymer/polymer.py b/chromium/tools/polymer/polymer.py
index e7567239658..a92fbb592b2 100644
--- a/chromium/tools/polymer/polymer.py
+++ b/chromium/tools/polymer/polymer.py
@@ -54,6 +54,7 @@ import io
import os
import re
import sys
+from collections import OrderedDict
_CWD = os.getcwd()
_HERE_PATH = os.path.dirname(__file__)
@@ -78,14 +79,13 @@ _ignore_imports = []
_migrated_imports = []
-_chrome_redirects = {
- 'chrome://resources/polymer/v1_0/': POLYMER_V1_DIR,
- 'chrome://resources/html/': 'ui/webui/resources/html/',
- 'chrome://resources/cr_elements/': 'ui/webui/resources/cr_elements/',
- '//resources/polymer/v1_0/': POLYMER_V1_DIR,
- '//resources/html/': 'ui/webui/resources/html/',
- '//resources/cr_elements/': 'ui/webui/resources/cr_elements/',
-}
+# Use an OrderedDict, since the order these redirects are applied matters.
+_chrome_redirects = OrderedDict([
+ ('chrome://resources/polymer/v1_0/', POLYMER_V1_DIR),
+ ('chrome://resources/', 'ui/webui/resources/'),
+ ('//resources/polymer/v1_0/', POLYMER_V1_DIR),
+ ('//resources/', 'ui/webui/resources/'),
+])
_chrome_reverse_redirects = {
POLYMER_V3_DIR: '//resources/polymer/v3_0/',
diff --git a/chromium/tools/polymer/txt_to_polymer_grdp.py b/chromium/tools/polymer/txt_to_polymer_grdp.py
index b241ed29316..e082ba120b0 100755
--- a/chromium/tools/polymer/txt_to_polymer_grdp.py
+++ b/chromium/tools/polymer/txt_to_polymer_grdp.py
@@ -47,14 +47,12 @@ FILE_TEMPLATE = \
DEFINITION_TEMPLATE_WEB_ANIMATIONS = \
""" <structure name="IDR_POLYMER_1_0_WEB_ANIMATIONS_JS_WEB_ANIMATIONS_NEXT_LITE_MIN_JS"
file="../../../third_party/web-animations-js/sources/web-animations-next-lite.min.js"
- type="chrome_html"
- compress="gzip" />"""
+ type="chrome_html" />"""
DEFINITION_TEMPLATE = \
""" <structure name="%(name)s"
file="../../../third_party/polymer/v%(version)s_0/components-chromium/%(path)s"
- type="chrome_html"
- compress="gzip" />"""
+ type="chrome_html" />"""
def PathToGritId(polymer_version, path):
diff --git a/chromium/tools/protoc_wrapper/protoc_wrapper.py b/chromium/tools/protoc_wrapper/protoc_wrapper.py
index e750880c19b..d096f603a7b 100755
--- a/chromium/tools/protoc_wrapper/protoc_wrapper.py
+++ b/chromium/tools/protoc_wrapper/protoc_wrapper.py
@@ -97,6 +97,8 @@ def main(argv):
parser.add_argument("--import-dir", action="append", default=[],
help="Extra import directory for protos, can be repeated."
)
+ parser.add_argument("--descriptor-set-out",
+ help="Path to write a descriptor.")
parser.add_argument("protos", nargs="+",
help="Input protobuf definition file(s).")
@@ -151,6 +153,9 @@ def main(argv):
protoc_cmd += [os.path.join(proto_dir, name) for name in protos]
+ if options.descriptor_set_out:
+ protoc_cmd += ["--descriptor_set_out", options.descriptor_set_out]
+
ret = subprocess.call(protoc_cmd)
if ret != 0:
if ret <= -100:
diff --git a/chromium/tools/roll_webgl_conformance.py b/chromium/tools/roll_webgl_conformance.py
index 87d977dd6dc..3344619bc5e 100755
--- a/chromium/tools/roll_webgl_conformance.py
+++ b/chromium/tools/roll_webgl_conformance.py
@@ -97,8 +97,9 @@ def _ParseDepsFile(filename):
def _ParseDepsDict(deps_content):
local_scope = {}
global_scope = {
- 'Var': _VarLookup(local_scope),
- 'deps_os': {},
+ 'Str': lambda arg: str(arg),
+ 'Var': _VarLookup(local_scope),
+ 'deps_os': {},
}
exec(deps_content, global_scope, local_scope)
return local_scope
diff --git a/chromium/tools/style_variable_generator/PRESUBMIT.py b/chromium/tools/style_variable_generator/PRESUBMIT.py
index f534a6f3e3b..15ae508583e 100644
--- a/chromium/tools/style_variable_generator/PRESUBMIT.py
+++ b/chromium/tools/style_variable_generator/PRESUBMIT.py
@@ -7,14 +7,33 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details about the presubmit API built into depot_tools.
"""
-WHITELIST = [r'.+_test.py$']
+TEST_ALLOWLIST = [r'.+_test.py$']
+STYLE_VAR_GEN_INPUTS = [
+ r'^tools[\\\/]style_variable_generator[\\\/].+\.json5$'
+]
+
+
+def _CommonChecks(input_api, output_api):
+ results = input_api.canned_checks.RunUnitTestsInDirectory(
+ input_api, output_api, '.', allowlist=TEST_ALLOWLIST)
+ try:
+ import sys
+ old_sys_path = sys.path[:]
+ sys.path += [
+ input_api.os_path.join(input_api.change.RepositoryRoot(), 'tools')
+ ]
+ import style_variable_generator.presubmit_support
+ results += (
+ style_variable_generator.presubmit_support.FindDeletedCSSVariables(
+ input_api, output_api, STYLE_VAR_GEN_INPUTS))
+ finally:
+ sys.path = old_sys_path
+ return results
def CheckChangeOnUpload(input_api, output_api):
- return input_api.canned_checks.RunUnitTestsInDirectory(
- input_api, output_api, '.', whitelist=WHITELIST)
+ return _CommonChecks(input_api, output_api)
def CheckChangeOnCommit(input_api, output_api):
- return input_api.canned_checks.RunUnitTestsInDirectory(
- input_api, output_api, '.', whitelist=WHITELIST)
+ return _CommonChecks(input_api, output_api)
diff --git a/chromium/tools/style_variable_generator/__init__.py b/chromium/tools/style_variable_generator/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/chromium/tools/style_variable_generator/__init__.py
diff --git a/chromium/tools/style_variable_generator/base_generator.py b/chromium/tools/style_variable_generator/base_generator.py
index 4663c4e23b9..0f6f6948ea4 100644
--- a/chromium/tools/style_variable_generator/base_generator.py
+++ b/chromium/tools/style_variable_generator/base_generator.py
@@ -73,9 +73,16 @@ class BaseGenerator:
globals to render their output.
'''
+ @staticmethod
+ def GetName():
+ return None
+
def __init__(self):
self.out_file_path = None
- self.in_files = []
+ # A map of input filepaths to their context object.
+ self.in_file_to_context = dict()
+
+ # If specified, only generates the given mode.
self.generate_single_mode = None
# The mode that colors will fallback to when not specified in a
@@ -91,8 +98,19 @@ class BaseGenerator:
VariableType.OPACITY: ModeVariables(self._default_mode),
}
+ # A dictionary of variable names to objects containing information about
+ # how the generator should run for that variable. All variables must
+ # populate this dictionary and as such, its keys can be used as a list
+ # of all variable names,
+ self.context_map = dict()
+
+ def _SetVariableContext(self, name, context):
+ if name in self.context_map:
+ raise ValueError('Variable name "%s" is reused' % name)
+ self.context_map[name] = context or {}
- def AddColor(self, name, value_obj):
+ def AddColor(self, name, value_obj, context=None):
+ self._SetVariableContext(name, context)
try:
if isinstance(value_obj, unicode):
self.model[VariableType.COLOR].Add(self._default_mode, name,
@@ -106,26 +124,37 @@ class BaseGenerator:
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:
- self.AddJSONToModel(f.read())
+ try:
+ with open(path, 'r') as f:
+ return self.AddJSONToModel(f.read(), path)
+ except ValueError as err:
+ raise ValueError('\n%s:\n %s' % (path, err))
- def AddJSONToModel(self, json_string):
+ def AddJSONToModel(self, json_string, in_file=None):
+ '''Adds a |json_string| with variable definitions to the model.
+
+ See *test.json5 files for a defacto format reference.
+
+ |in_file| is used to populate a file-to-context map.
+ '''
# TODO(calamity): Add allow_duplicate_keys=False once pyjson5 is
# rolled.
data = json5.loads(json_string,
object_pairs_hook=collections.OrderedDict)
+ # Use the generator's name to get the generator-specific context from
+ # the input.
+ generator_context = data.get('options', {}).get(self.GetName(), None)
+ self.in_file_to_context[in_file] = generator_context
- try:
- for name, value in data['colors'].items():
- if not re.match('^[a-z0-9_]+$', name):
- raise ValueError(
- '%s is not a valid variable name (lower case, 0-9, _)'
- % name)
+ for name, value in data['colors'].items():
+ if not re.match('^[a-z0-9_]+$', name):
+ raise ValueError(
+ '%s is not a valid variable name (lower case, 0-9, _)' %
+ name)
- self.AddColor(name, value)
- except ValueError as err:
- raise ValueError('\n%s:\n %s' % (path, err))
+ self.AddColor(name, value, generator_context)
+
+ return generator_context
def ApplyTemplate(self, style_generator, path_to_template, params):
loader_root_dir = path_overrides.GetFileSystemLoaderRootDirectory()
@@ -155,7 +184,7 @@ class BaseGenerator:
if value.var:
CheckColorInDefaultMode(value.var)
if value.rgb_var:
- CheckColorInDefaultMode(value.rgb_var[:-4])
+ CheckColorInDefaultMode(value.RGBVarToVar())
# 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
index a7fdd13664c..693b3932dde 100644
--- a/chromium/tools/style_variable_generator/base_generator_test.py
+++ b/chromium/tools/style_variable_generator/base_generator_test.py
@@ -45,16 +45,27 @@ class BaseGeneratorTest(unittest.TestCase):
''')
self.assertRaises(ValueError, self.generator.Validate)
- # Add google_grey_900 to light mode.
+ def testDuplicateKeys(self):
self.generator.AddJSONToModel('''
{
colors: {
- google_grey_900: { light: "rgb(255, 255, 255)", }
+ google_grey_900: { light: "rgb(255, 255, 255)", },
}
}
''')
self.generator.Validate()
+ # Add google_grey_900's dark mode as if in a separate file. This counts
+ # as a redefinition/conflict and causes an error.
+ self.assertRaises(
+ ValueError, self.generator.AddJSONToModel, '''
+{
+ colors: {
+ google_grey_900: { dark: "rgb(255, 255, 255)", }
+ }
+}
+ ''')
+
if __name__ == '__main__':
unittest.main()
diff --git a/chromium/tools/style_variable_generator/colors_test.json5 b/chromium/tools/style_variable_generator/colors_test.json5
index d36d59a6fd8..948ac1ed50f 100644
--- a/chromium/tools/style_variable_generator/colors_test.json5
+++ b/chromium/tools/style_variable_generator/colors_test.json5
@@ -1,12 +1,16 @@
{
+ options: {
+ CSS: {
+ prefix: 'cros'
+ }
+ },
colors: {
- google_grey_900: "#202124",
- cros_default_text_color: {
+ text_color_primary: {
light: "$google_grey_900",
dark: "rgb(255, 255, 255)",
},
- cros_toggle_color: {
- light: "rgba($cros_default_text_color_rgb, 0.1)"
+ toggle_color: {
+ light: "rgba($text_color_primary_rgb, 0.1)"
}
},
}
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
index f387b995960..cac2df91f40 100644
--- a/chromium/tools/style_variable_generator/colors_test_dark_only_expected.css
+++ b/chromium/tools/style_variable_generator/colors_test_dark_only_expected.css
@@ -3,6 +3,7 @@
* found in the LICENSE file. */
/* This file is generated from:
+ * colors_test_palette.json5
* colors_test.json5
*/
@@ -10,10 +11,10 @@ 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-text-color-primary-rgb: 255, 255, 255;
+ --cros-text-color-primary: rgb(var(--cros-text-color-primary-rgb));
- --cros-toggle-color-rgb: var(--cros-default-text-color-rgb);
+ --cros-toggle-color-rgb: var(--cros-text-color-primary-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 ccbe7b6e275..bf4867af364 100644
--- a/chromium/tools/style_variable_generator/colors_test_expected.css
+++ b/chromium/tools/style_variable_generator/colors_test_expected.css
@@ -3,6 +3,7 @@
* found in the LICENSE file. */
/* This file is generated from:
+ * colors_test_palette.json5
* colors_test.json5
*/
@@ -10,18 +11,18 @@ html:not(body) {
--google-grey-900-rgb: 32, 33, 36;
--google-grey-900: rgb(var(--google-grey-900-rgb));
- --cros-default-text-color-rgb: var(--google-grey-900-rgb);
- --cros-default-text-color: rgb(var(--cros-default-text-color-rgb));
+ --cros-text-color-primary-rgb: var(--google-grey-900-rgb);
+ --cros-text-color-primary: rgb(var(--cros-text-color-primary-rgb));
- --cros-toggle-color-rgb: var(--cros-default-text-color-rgb);
+ --cros-toggle-color-rgb: var(--cros-text-color-primary-rgb);
--cros-toggle-color: rgba(var(--cros-toggle-color-rgb), 0.1);
}
@media (prefers-color-scheme: dark) {
html:not(body) {
- --cros-default-text-color-rgb: 255, 255, 255;
- --cros-default-text-color: rgb(var(--cros-default-text-color-rgb));
+ --cros-text-color-primary-rgb: 255, 255, 255;
+ --cros-text-color-primary: rgb(var(--cros-text-color-primary-rgb));
}
}
diff --git a/chromium/tools/style_variable_generator/colors_test_expected.h b/chromium/tools/style_variable_generator/colors_test_expected.h
index 7fff1ebfab0..f703fdb5fe5 100644
--- a/chromium/tools/style_variable_generator/colors_test_expected.h
+++ b/chromium/tools/style_variable_generator/colors_test_expected.h
@@ -3,6 +3,7 @@
// found in the LICENSE file.
// This file is generated from:
+// colors_test_palette.json5
// colors_test.json5
#ifndef TOOLS_STYLE_VARIABLE_GENERATOR_COLORS_TEST_EXPECTED_H_
@@ -16,22 +17,22 @@ using AshColorMode = ash::AshColorProvider::AshColorMode;
enum class ColorName {
kGoogleGrey900,
- kCrosDefaultTextColor,
- kCrosToggleColor,
+ kTextColorPrimary,
+ kToggleColor,
};
constexpr SkColor ResolveColor(ColorName color_name, AshColorMode color_mode) {
switch (color_name) {
case ColorName::kGoogleGrey900:
return SkColorSetRGB(0x20, 0x21, 0x24);
- case ColorName::kCrosDefaultTextColor:
+ case ColorName::kTextColorPrimary:
if (color_mode == AshColorMode::kLight) {
return ResolveColor(ColorName::kGoogleGrey900, color_mode);
} else {
return SkColorSetRGB(0xFF, 0xFF, 0xFF);
}
- case ColorName::kCrosToggleColor:
- return SkColorSetA(ResolveColor(ColorName::kCrosDefaultTextColor, color_mode), 0x19);
+ case ColorName::kToggleColor:
+ return SkColorSetA(ResolveColor(ColorName::kTextColorPrimary, color_mode), 0x19);
}
}
diff --git a/chromium/tools/style_variable_generator/colors_test_palette.json5 b/chromium/tools/style_variable_generator/colors_test_palette.json5
new file mode 100644
index 00000000000..797efe87216
--- /dev/null
+++ b/chromium/tools/style_variable_generator/colors_test_palette.json5
@@ -0,0 +1,6 @@
+{
+ // No CSS prefix for this test palette.
+ colors: {
+ google_grey_900: "#202124",
+ },
+}
diff --git a/chromium/tools/style_variable_generator/css_generator.py b/chromium/tools/style_variable_generator/css_generator.py
index 22f7209fdb1..587f4caaed9 100644
--- a/chromium/tools/style_variable_generator/css_generator.py
+++ b/chromium/tools/style_variable_generator/css_generator.py
@@ -9,6 +9,10 @@ import collections
class CSSStyleGenerator(BaseGenerator):
'''Generator for CSS Variables'''
+ @staticmethod
+ def GetName():
+ return 'CSS'
+
def Render(self):
self.Validate()
return self.ApplyTemplate(self, 'css_generator.tmpl',
@@ -43,7 +47,7 @@ class CSSStyleGenerator(BaseGenerator):
def GetFilters(self):
return {
- 'to_var_name': self._ToVarName,
+ 'to_css_var_name': self._ToCSSVarName,
'css_color': self._CssColor,
'css_color_rgb': self._CssColorRGB,
}
@@ -51,23 +55,37 @@ class CSSStyleGenerator(BaseGenerator):
def GetGlobals(self):
return {
'css_color_from_rgb_var': self._CssColorFromRGBVar,
- 'in_files': self.in_files,
+ 'in_files': self.in_file_to_context.keys(),
}
- def _ToVarName(self, var_name):
- return '--%s' % var_name.replace('_', '-')
+ def GetCSSVarNames(self):
+ '''Returns generated CSS variable names (excluding the rgb versions)'''
+ names = set()
+ for name in self.model[VariableType.COLOR].keys():
+ names.add(self._ToCSSVarName(name))
+
+ return names
+
+ def _GetCSSVarPrefix(self, model_name):
+ prefix = self.context_map[model_name].get('prefix')
+ return prefix + '-' if prefix else ''
+
+ def _ToCSSVarName(self, model_name):
+ return '--%s%s' % (self._GetCSSVarPrefix(model_name),
+ model_name.replace('_', '-'))
def _CssColor(self, c):
'''Returns the CSS color representation of |c|'''
assert (isinstance(c, Color))
if c.var:
- return 'var(%s)' % self._ToVarName(c.var)
+ return 'var(%s)' % self._ToCSSVarName(c.var)
if c.rgb_var:
if c.a != 1:
- return 'rgba(var(%s), %g)' % (self._ToVarName(c.rgb_var), c.a)
+ return 'rgba(var(%s-rgb), %g)' % (self._ToCSSVarName(
+ c.RGBVarToVar()), c.a)
else:
- return 'rgb(var(%s))' % self._ToVarName(c.rgb_var)
+ return 'rgb(var(%s-rgb))' % self._ToCSSVarName(c.RGBVarToVar())
if c.a != 1:
return 'rgba(%d, %d, %d, %g)' % (c.r, c.g, c.b, c.a)
@@ -77,16 +95,17 @@ class CSSStyleGenerator(BaseGenerator):
def _CssColorRGB(self, c):
'''Returns the CSS rgb representation of |c|'''
if c.var:
- return 'var(%s-rgb)' % self._ToVarName(c.var)
+ return 'var(%s-rgb)' % self._ToCSSVarName(c.var)
if c.rgb_var:
- return 'var(%s)' % self._ToVarName(c.rgb_var)
+ return 'var(%s-rgb)' % self._ToCSSVarName(c.RGBVarToVar())
return '%d, %d, %d' % (c.r, c.g, c.b)
- def _CssColorFromRGBVar(self, name, alpha):
+ def _CssColorFromRGBVar(self, model_name, alpha):
'''Returns the CSS color representation given a color name and alpha'''
if alpha != 1:
- return 'rgba(var(%s-rgb), %g)' % (self._ToVarName(name), alpha)
+ return 'rgba(var(%s-rgb), %g)' % (self._ToCSSVarName(model_name),
+ alpha)
else:
- return 'rgb(var(%s-rgb))' % self._ToVarName(name)
+ return 'rgb(var(%s-rgb))' % self._ToCSSVarName(model_name)
diff --git a/chromium/tools/style_variable_generator/css_generator.tmpl b/chromium/tools/style_variable_generator/css_generator.tmpl
index b33a22cc77c..708d78bd452 100644
--- a/chromium/tools/style_variable_generator/css_generator.tmpl
+++ b/chromium/tools/style_variable_generator/css_generator.tmpl
@@ -15,9 +15,9 @@ TODO(https://crbug.com/1062154): Remove once deprecated colors are removed from
Chrome OS pages.
-#}
html:not(body) {
-{%- 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)}};
+{%- for model_name, color in light_colors.items() %}
+ {{model_name | to_css_var_name}}-rgb: {{color | css_color_rgb}};
+ {{model_name | to_css_var_name}}: {{css_color_from_rgb_var(model_name, color.a)}};
{% endfor %}
}
{%- if dark_colors %}
@@ -30,9 +30,9 @@ TODO(https://crbug.com/1062154): Remove once deprecated colors are removed from
Chrome OS pages.
#}
html:not(body) {
-{%- 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)}};
+{%- for model_name, color in dark_colors.items() %}
+ {{model_name | to_css_var_name}}-rgb: {{color | css_color_rgb}};
+ {{model_name | to_css_var_name}}: {{css_color_from_rgb_var(model_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 50eac224bd7..0eca46dd736 100644
--- a/chromium/tools/style_variable_generator/css_generator_test.py
+++ b/chromium/tools/style_variable_generator/css_generator_test.py
@@ -10,6 +10,8 @@ import unittest
class CSSStyleGeneratorTest(unittest.TestCase):
def setUp(self):
self.generator = CSSStyleGenerator()
+ self.generator.AddJSONFileToModel('colors_test_palette.json5')
+ self.generator.AddJSONFileToModel('colors_test.json5')
def assertEqualToFile(self, value, filename):
with open(filename) as f:
@@ -20,12 +22,10 @@ class CSSStyleGeneratorTest(unittest.TestCase):
(value, contents))
def testColorTestJSON(self):
- self.generator.AddJSONFileToModel('colors_test.json5')
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')
diff --git a/chromium/tools/style_variable_generator/find_invalid_css_variables.py b/chromium/tools/style_variable_generator/find_invalid_css_variables.py
new file mode 100644
index 00000000000..f29416ef64e
--- /dev/null
+++ b/chromium/tools/style_variable_generator/find_invalid_css_variables.py
@@ -0,0 +1,72 @@
+# 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.
+
+from __future__ import print_function
+
+import argparse
+import os
+import subprocess
+import sys
+from css_generator import CSSStyleGenerator
+from presubmit_support import RunGit
+
+
+# TODO(calamity): extend this checker to find unused C++ variables
+def FindInvalidCSSVariables(json_string, input_file, git_runner=RunGit):
+ style_generator = CSSStyleGenerator()
+ style_generator.AddJSONToModel(json_string, in_file=input_file)
+
+ context = style_generator.in_file_to_context[input_file]
+ if (not context or 'prefix' not in context):
+ raise KeyError('This tool only works on files with a CSS prefix.')
+
+ css_prefix = '--' + context['prefix'] + '-'
+
+ valid_names = style_generator.GetCSSVarNames()
+
+ found_names_list = git_runner([
+ 'grep', '-ho',
+ '\\%s[a-z-]*' % css_prefix, '--', '*.css', '*.html', '*.js'
+ ]).splitlines()
+ found_names = set()
+ for name in found_names_list:
+ rgb_suffix = '-rgb'
+ if name.endswith(rgb_suffix):
+ name = name[:-len(rgb_suffix)]
+ found_names.add(name)
+ return {
+ 'unspecified': found_names.difference(valid_names),
+ 'unused': valid_names.difference(found_names),
+ 'css_prefix': css_prefix,
+ }
+
+
+def main():
+ parser = argparse.ArgumentParser(
+ description='''Finds CSS variables in the codebase that are prefixed
+ with |input_file|'s CSS prefix but aren't specified in |input_file|.'''
+ )
+ # TODO(calamity): support multiple files if multiple json5 files have the
+ # same prefix.
+ parser.add_argument('target', help='source json5 color file')
+ args = parser.parse_args()
+
+ input_file = args.target
+
+ with open(input_file, 'r') as f:
+ result = FindInvalidCSSVariables(f.read(), input_file)
+
+ print('Has prefix %s but not in %s:' % (result['css_prefix'], input_file))
+ for name in sorted(result['unspecified']):
+ print(name)
+
+ print('\nGenerated by %s but not used in codebase:' % input_file)
+ for name in sorted(result['unused']):
+ print(name)
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/chromium/tools/style_variable_generator/find_invalid_css_variables_test.py b/chromium/tools/style_variable_generator/find_invalid_css_variables_test.py
new file mode 100644
index 00000000000..0a411d7b1a5
--- /dev/null
+++ b/chromium/tools/style_variable_generator/find_invalid_css_variables_test.py
@@ -0,0 +1,83 @@
+# 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.
+
+from find_invalid_css_variables import FindInvalidCSSVariables
+import unittest
+
+
+class FindInvalidCSSVariablesTest(unittest.TestCase):
+ def testUnspecified(self):
+ def GitResult(command):
+ return '''--test-not-specified
+--test-only-rgb-used-rgb
+--test-toolbar'''
+
+ json_string = '''
+{
+ options: {
+ CSS: {
+ prefix: 'test'
+ }
+ },
+ colors: {
+ toolbar: "rgb(255, 255, 255)",
+ only_rgb_used: "rgb(255, 255, 255)",
+ }
+}
+ '''
+
+ result = FindInvalidCSSVariables(json_string,
+ 'test',
+ git_runner=GitResult)
+ unused = set()
+ self.assertEqual(result['unused'], unused)
+ unspecified = set(['--test-not-specified'])
+ self.assertEqual(result['unspecified'], unspecified)
+
+ def testUnused(self):
+ def GitResult(command):
+ return '''--test-toolbar'''
+
+ json_string = '''
+{
+ options: {
+ CSS: {
+ prefix: 'test'
+ }
+ },
+ colors: {
+ toolbar: "rgb(255, 255, 255)",
+ unused: "rgb(255, 255, 255)",
+ }
+}
+ '''
+
+ result = FindInvalidCSSVariables(json_string,
+ 'test',
+ git_runner=GitResult)
+ unused = set(['--test-unused'])
+ self.assertEqual(result['unused'], unused)
+ unspecified = set()
+ self.assertEqual(result['unspecified'], unspecified)
+
+ def testNoPrefix(self):
+ def GitResult(command):
+ return ''
+
+ json_string = '''
+{
+ colors: {
+ toolbar: "rgb(255, 255, 255)",
+ }
+}
+ '''
+ self.assertRaises(KeyError,
+ FindInvalidCSSVariables,
+ json_string,
+ 'test',
+ git_runner=GitResult)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/tools/style_variable_generator/presubmit_support.py b/chromium/tools/style_variable_generator/presubmit_support.py
new file mode 100644
index 00000000000..fd3f7ee7011
--- /dev/null
+++ b/chromium/tools/style_variable_generator/presubmit_support.py
@@ -0,0 +1,61 @@
+# 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 argparse
+import os
+import subprocess
+import sys
+from css_generator import CSSStyleGenerator
+
+
+def BuildGrepQuery(deleted_names):
+ # Query is built as \--var-1|--var-2|... The first backslash is necessary to
+ # prevent --var-1 from being read as an argument. The pipes make a big OR
+ # query.
+ return '\\' + '|'.join(deleted_names)
+
+
+def RunGit(command):
+ """Run a git subcommand, returning its output."""
+ command = ['git'] + command
+ proc = subprocess.Popen(command, stdout=subprocess.PIPE)
+ out = proc.communicate()[0].strip()
+ return out
+
+
+def FindDeletedCSSVariables(input_api, output_api, input_file_filter):
+ files = input_api.AffectedFiles(
+ file_filter=lambda f: input_api.FilterSourceFile(
+ f, files_to_check=input_file_filter))
+
+ def get_css_var_names_for_contents(contents_function):
+ style_generator = CSSStyleGenerator()
+ for f in files:
+ style_generator.AddJSONToModel('\n'.join(contents_function(f)),
+ in_file=f.LocalPath())
+ return style_generator.GetCSSVarNames()
+
+ old_names = get_css_var_names_for_contents(lambda f: f.OldContents())
+ new_names = get_css_var_names_for_contents(lambda f: f.NewContents())
+
+ deleted_names = old_names.difference(new_names)
+ if not deleted_names:
+ return []
+
+ # Use --full-name and -n for formatting, -E for extended regexp, and :/
+ # as pathspec for grepping across entire repository (assumes git > 1.9.1)
+ problems = RunGit([
+ 'grep', '--full-name', '-En',
+ BuildGrepQuery(deleted_names), '--', ':/'
+ ]).splitlines()
+
+ if not problems:
+ return []
+
+ return [
+ output_api.PresubmitPromptWarning(
+ 'style_variable_generator variables were deleted but usages of ' +
+ 'generated CSS variables were found in the codebase:',
+ items=problems)
+ ]
diff --git a/chromium/tools/style_variable_generator/style_variable_generator.py b/chromium/tools/style_variable_generator/style_variable_generator.py
index e7b20fd8371..3b004561675 100644
--- a/chromium/tools/style_variable_generator/style_variable_generator.py
+++ b/chromium/tools/style_variable_generator/style_variable_generator.py
@@ -13,11 +13,12 @@ def main():
parser = argparse.ArgumentParser(
description='Generate style variables from JSON5 color file.')
- parser.add_argument(
- '--generator',
- choices=['CSS', 'Views'],
- required=True,
- help='type of file to generate')
+ generators = [CSSStyleGenerator, ViewsStyleGenerator]
+
+ parser.add_argument('--generator',
+ choices=[g.GetName() for g in generators],
+ required=True,
+ help='type of file to generate')
parser.add_argument('--generate-single-mode',
choices=Modes.ALL,
help='generates output for a single mode')
@@ -26,11 +27,9 @@ def main():
args = parser.parse_args()
- if args.generator == 'CSS':
- style_generator = CSSStyleGenerator()
-
- if args.generator == 'Views':
- style_generator = ViewsStyleGenerator()
+ for g in generators:
+ if args.generator == g.GetName():
+ style_generator = g()
for t in args.targets:
style_generator.AddJSONFileToModel(t)
diff --git a/chromium/tools/style_variable_generator/views_generator.py b/chromium/tools/style_variable_generator/views_generator.py
index 9f2587d4336..e9cb4d9aa47 100644
--- a/chromium/tools/style_variable_generator/views_generator.py
+++ b/chromium/tools/style_variable_generator/views_generator.py
@@ -9,6 +9,10 @@ from base_generator import Color, Modes, BaseGenerator, VariableType
class ViewsStyleGenerator(BaseGenerator):
'''Generator for Views Variables'''
+ @staticmethod
+ def GetName():
+ return 'Views'
+
def Render(self):
self.Validate()
return self.ApplyTemplate(self, 'views_generator_h.tmpl',
@@ -30,7 +34,7 @@ class ViewsStyleGenerator(BaseGenerator):
'Modes': Modes,
'out_file_path': None,
'namespace_name': None,
- 'in_files': self.in_files,
+ 'in_files': self.in_file_to_context.keys(),
}
if self.out_file_path:
globals['out_file_path'] = self.out_file_path
diff --git a/chromium/tools/style_variable_generator/views_generator_test.py b/chromium/tools/style_variable_generator/views_generator_test.py
index 49563e270c5..df43f56c966 100644
--- a/chromium/tools/style_variable_generator/views_generator_test.py
+++ b/chromium/tools/style_variable_generator/views_generator_test.py
@@ -9,6 +9,8 @@ import unittest
class ViewsStyleGeneratorTest(unittest.TestCase):
def setUp(self):
self.generator = ViewsStyleGenerator()
+ self.generator.AddJSONFileToModel('colors_test_palette.json5')
+ self.generator.AddJSONFileToModel('colors_test.json5')
def assertEqualToFile(self, value, filename):
with open(filename) as f:
@@ -19,7 +21,6 @@ class ViewsStyleGeneratorTest(unittest.TestCase):
(value, contents))
def testColorTestJSON(self):
- self.generator.AddJSONFileToModel('colors_test.json5')
self.generator.out_file_path = (
'tools/style_variable_generator/colors_test_expected.h')
self.assertEqualToFile(self.generator.Render(),
diff --git a/chromium/tools/traffic_annotation/auditor/BUILD.gn b/chromium/tools/traffic_annotation/auditor/BUILD.gn
index 93b312dda7b..a94d5c60199 100644
--- a/chromium/tools/traffic_annotation/auditor/BUILD.gn
+++ b/chromium/tools/traffic_annotation/auditor/BUILD.gn
@@ -6,7 +6,7 @@ import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")
# Works only on Windows and Linux.
-assert(is_win || is_linux)
+assert(is_win || is_linux || is_chromeos)
proto_library("chrome_settings_full_runtime") {
proto_out_dir = "/tools/traffic_annotation"
@@ -113,6 +113,7 @@ test("traffic_annotation_auditor_unittests") {
"tests/irrelevant_file_name.txt",
"tests/relevant_file_name_and_content.cc",
"tests/relevant_file_name_and_content.mm",
+ "tests/test_grouping.xml",
]
deps = [
":auditor_sources",
diff --git a/chromium/tools/traffic_annotation/auditor/auditor_result.cc b/chromium/tools/traffic_annotation/auditor/auditor_result.cc
index 3afcc4e7fb7..a275a21299e 100644
--- a/chromium/tools/traffic_annotation/auditor/auditor_result.cc
+++ b/chromium/tools/traffic_annotation/auditor/auditor_result.cc
@@ -138,6 +138,14 @@ std::string AuditorResult::ToText() const {
"Annotation at '%s:%i' has the following inconsistencies: %s",
file_path_.c_str(), line_, details_[0].c_str());
+ case AuditorResult::Type::ERROR_MISSING_GROUPING:
+ DCHECK(!details_.empty());
+ return base::StringPrintf(
+ "Annotation at '%s:%i' with unique_id '%s' does not appear in "
+ "summary/grouping.xml. Add the annotation to an existing "
+ "group in summary/grouping.xml",
+ file_path_.c_str(), line_, details_[0].c_str());
+
case AuditorResult::Type::ERROR_MERGE_FAILED:
DCHECK(details_.size() == 3);
return base::StringPrintf(
@@ -205,6 +213,9 @@ std::string AuditorResult::ToShortText() const {
return base::StringPrintf("the following inconsistencies: %s",
details_[0].c_str());
+ case AuditorResult::Type::ERROR_MISSING_GROUPING:
+ return base::StringPrintf("missing from summary/grouping.xml");
+
default:
NOTREACHED();
return std::string();
diff --git a/chromium/tools/traffic_annotation/auditor/auditor_result.h b/chromium/tools/traffic_annotation/auditor/auditor_result.h
index 2fe3bc879f2..8521823fbaf 100644
--- a/chromium/tools/traffic_annotation/auditor/auditor_result.h
+++ b/chromium/tools/traffic_annotation/auditor/auditor_result.h
@@ -37,6 +37,8 @@ class AuditorResult {
ERROR_MISSING_SECOND_ID, // Annotation does not have a valid second id.
ERROR_INCOMPLETE_ANNOTATION, // Annotation has some missing fields.
ERROR_INCONSISTENT_ANNOTATION, // Annotation has some inconsistent fields.
+ ERROR_MISSING_GROUPING, // Annotation is missing from
+ // summary/grouping.xml file.
ERROR_MERGE_FAILED, // Two annotations that are supposed to merge
// cannot merge.
ERROR_INCOMPLETED_ANNOTATION, // A partial or [branched_] completing
diff --git a/chromium/tools/traffic_annotation/auditor/instance.cc b/chromium/tools/traffic_annotation/auditor/instance.cc
index febf9cbb88d..97513affbda 100644
--- a/chromium/tools/traffic_annotation/auditor/instance.cc
+++ b/chromium/tools/traffic_annotation/auditor/instance.cc
@@ -13,6 +13,7 @@
#include "third_party/protobuf/src/google/protobuf/io/tokenizer.h"
#include "third_party/protobuf/src/google/protobuf/text_format.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_auditor.h"
+#include "tools/traffic_annotation/auditor/traffic_annotation_exporter.h"
namespace {
@@ -386,6 +387,19 @@ AuditorResult AnnotationInstance::IsConsistent() const {
return AuditorResult(AuditorResult::Type::RESULT_OK);
}
+AuditorResult AnnotationInstance::InGroupingXML(
+ const std::set<std::string>& grouping_annotation_unique_ids) const {
+ const std::string& unique_id = proto.unique_id();
+
+ if (grouping_annotation_unique_ids.find(unique_id) ==
+ grouping_annotation_unique_ids.end()) {
+ return AuditorResult(AuditorResult::Type::ERROR_MISSING_GROUPING,
+ unique_id.c_str(), proto.source().file(),
+ proto.source().line());
+ }
+ return AuditorResult(AuditorResult::Type::RESULT_OK);
+}
+
bool AnnotationInstance::IsCompletableWith(
const AnnotationInstance& other) const {
if (type != AnnotationInstance::Type::ANNOTATION_PARTIAL || second_id.empty())
diff --git a/chromium/tools/traffic_annotation/auditor/instance.h b/chromium/tools/traffic_annotation/auditor/instance.h
index 8082d8140d0..c07fba34743 100644
--- a/chromium/tools/traffic_annotation/auditor/instance.h
+++ b/chromium/tools/traffic_annotation/auditor/instance.h
@@ -81,6 +81,10 @@ class AnnotationInstance : public InstanceBase {
// Checks if annotation fields are consistent.
AuditorResult IsConsistent() const;
+ // Checks if annotation appears in summary/grouping.xml
+ AuditorResult InGroupingXML(
+ const std::set<std::string>& grouping_annotation_unique_ids) const;
+
// Checks to see if this annotation can be completed with the |other|
// annotation, based on their unique ids, types, and extra ids. |*this| should
// be of partial type and the |other| either COMPLETING or BRANCHED_COMPLETING
diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc
index 866b1da6f18..f41f004f929 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.cc
@@ -19,6 +19,8 @@
#include "build/build_config.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
+#include "third_party/libxml/chromium/xml_reader.h"
+#include "third_party/libxml/chromium/xml_writer.h"
#include "third_party/re2/src/re2/re2.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_file_filter.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_id_checker.h"
@@ -67,6 +69,12 @@ const base::FilePath kExtractorScript =
.Append(FILE_PATH_LITERAL("scripts"))
.Append(FILE_PATH_LITERAL("extractor.py"));
+const base::FilePath kGroupingXmlPath =
+ base::FilePath(FILE_PATH_LITERAL("tools"))
+ .Append(FILE_PATH_LITERAL("traffic_annotation"))
+ .Append(FILE_PATH_LITERAL("summary"))
+ .Append(FILE_PATH_LITERAL("grouping.xml"));
+
// Checks if the list of |path_filters| include the given |file_path|, or there
// are path filters which are a folder (don't have a '.' in their name), and
// match the file name.
@@ -261,7 +269,7 @@ bool TrafficAnnotationAuditor::RunExtractor(
}
base::SetCurrentDirectory(original_path);
- base::DeleteFile(options_filepath, false);
+ base::DeleteFile(options_filepath);
return result;
}
@@ -580,9 +588,9 @@ bool TrafficAnnotationAuditor::CheckIfCallCanBeUnannotated(
const base::CommandLine::CharType* args[] = {
#if defined(OS_WIN)
FILE_PATH_LITERAL("buildtools/win/gn.exe"),
-#elif defined(OS_MACOSX)
+#elif defined(OS_MAC)
FILE_PATH_LITERAL("buildtools/mac/gn"),
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
FILE_PATH_LITERAL("buildtools/linux64/gn"),
#else
// Fallback to using PATH to find gn.
@@ -634,6 +642,8 @@ void TrafficAnnotationAuditor::CheckAnnotationsContents() {
AuditorResult result = instance.IsComplete();
if (result.IsOK())
result = instance.IsConsistent();
+ if (result.IsOK())
+ result = instance.InGroupingXML(grouped_annotation_unique_ids_);
if (!result.IsOK())
errors_.push_back(result);
break;
@@ -671,6 +681,9 @@ void TrafficAnnotationAuditor::CheckAnnotationsContents() {
if (result.IsOK())
result = completed.IsConsistent();
+ if (result.IsOK())
+ result = completed.InGroupingXML(grouped_annotation_unique_ids_);
+
if (result.IsOK()) {
new_annotations.push_back(completed);
} else {
@@ -719,6 +732,28 @@ void TrafficAnnotationAuditor::AddMissingAnnotations() {
}
}
+bool TrafficAnnotationAuditor::GetGroupingAnnotationsUniqueIDs(
+ base::FilePath grouping_xml_path,
+ std::set<std::string>* annotation_unique_ids) const {
+ XmlReader reader;
+ if (!reader.LoadFile(grouping_xml_path.MaybeAsASCII())) {
+ LOG(ERROR) << "Could not load '" << grouping_xml_path.MaybeAsASCII()
+ << "'.";
+ return false;
+ }
+
+ bool all_ok = true;
+ while (reader.Read()) {
+ if (reader.IsClosingElement() || reader.NodeName() != "traffic_annotation")
+ continue;
+
+ std::string unique_id;
+ all_ok &= reader.NodeAttribute("unique_id", &unique_id);
+ annotation_unique_ids->insert(unique_id);
+ }
+ return all_ok;
+}
+
bool TrafficAnnotationAuditor::RunAllChecks(
bool report_xml_updates) {
if (exporter_.GetArchivedAnnotations().empty() &&
@@ -729,6 +764,11 @@ bool TrafficAnnotationAuditor::RunAllChecks(
std::set<int> deprecated_ids;
exporter_.GetDeprecatedHashCodes(&deprecated_ids);
+ if (!GetGroupingAnnotationsUniqueIDs(source_path_.Append(kGroupingXmlPath),
+ &grouped_annotation_unique_ids_)) {
+ return false;
+ }
+
if (!path_filters_.empty())
AddMissingAnnotations();
diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.h b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.h
index 7874f921b45..099e5dd9938 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.h
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor.h
@@ -137,6 +137,11 @@ class TrafficAnnotationAuditor {
extracted_calls_ = calls;
}
+ void SetGroupedAnnotationUniqueIDsForTesting(
+ std::set<std::string>& annotation_unique_ids) {
+ grouped_annotation_unique_ids_ = annotation_unique_ids;
+ }
+
const std::vector<CallInstance>& extracted_calls() const {
return extracted_calls_;
}
@@ -159,10 +164,17 @@ class TrafficAnnotationAuditor {
std::unique_ptr<google::protobuf::Message> CreateAnnotationProto();
+ // Produces the set of annotation unique_ids that appear in grouping.xml
+ // Returns false if grouping.xml cannot be loaded.
+ bool GetGroupingAnnotationsUniqueIDs(
+ base::FilePath grouping_xml_path,
+ std::set<std::string>* annotation_unique_ids) const;
+
private:
const base::FilePath source_path_;
const base::FilePath build_path_;
std::vector<std::string> path_filters_;
+ std::set<std::string> grouped_annotation_unique_ids_;
// Variables used to dynamic the NetworkTrafficAnnotation proto.
std::unique_ptr<google::protobuf::DescriptorPool> descriptor_pool_;
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 6477538e726..d5bb68b7138 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc
@@ -17,6 +17,7 @@
#include "build/build_config.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_exporter.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_file_filter.h"
@@ -660,9 +661,27 @@ TEST_F(TrafficAnnotationAuditorTest, CheckAllRequiredFunctionsAreAnnotated) {
// Tests if TrafficAnnotationAuditor::CheckAnnotationsContents works as
// expected for COMPLETE annotations. It also inherently checks
// TrafficAnnotationAuditor::IsAnnotationComplete and
-// TrafficAnnotationAuditor::IsAnnotationConsistent.
+// TrafficAnnotationAuditor::IsAnnotationConsistent and
+// TrafficAnnotationAuditor::InGroupingXML.
TEST_F(TrafficAnnotationAuditorTest, CheckCompleteAnnotations) {
AnnotationInstance instance = CreateAnnotationInstanceSample();
+
+ base::FilePath grouping_xml_path =
+ tests_folder().Append(FILE_PATH_LITERAL("test_grouping.xml"));
+ std::set<std::string> annotation_unique_ids;
+ bool success = auditor().GetGroupingAnnotationsUniqueIDs(
+ grouping_xml_path, &annotation_unique_ids);
+ EXPECT_TRUE(success);
+ EXPECT_THAT(annotation_unique_ids,
+ testing::UnorderedElementsAre(
+ "foobar_policy_fetcher", "foobar_info_fetcher",
+ "fizzbuzz_handle_front_end_messages",
+ "fizzbuzz_hard_coded_data_source", "fizzbuzz_http_handler",
+ "widget_grabber"));
+ auditor().SetGroupedAnnotationUniqueIDsForTesting(annotation_unique_ids);
+ // Set unique id to be something in `tests/test_grouping.xml`.
+ instance.proto.set_unique_id("foobar_policy_fetcher");
+
std::vector<AnnotationInstance> annotations;
unsigned int expected_errors_count = 0;
@@ -942,3 +961,36 @@ TEST_F(TrafficAnnotationAuditorTest, AnnotationsXMLDifferences) {
EXPECT_EQ(diff13, expected_diff13);
EXPECT_EQ(diff23, expected_diff23);
}
+
+// Tests if an 'annotation' is in 'test_grouping.xml' or not.
+TEST_F(TrafficAnnotationAuditorTest, AnnotationGrouping) {
+ AnnotationInstance instance = CreateAnnotationInstanceSample();
+ instance.type = AnnotationInstance::Type::ANNOTATION_COMPLETE;
+
+ base::FilePath grouping_xml_path =
+ tests_folder().Append(FILE_PATH_LITERAL("test_grouping.xml"));
+
+ std::set<std::string> annotation_unique_ids;
+ bool success = auditor().GetGroupingAnnotationsUniqueIDs(
+ grouping_xml_path, &annotation_unique_ids);
+
+ EXPECT_TRUE(success);
+ EXPECT_THAT(annotation_unique_ids,
+ testing::UnorderedElementsAre(
+ "foobar_policy_fetcher", "foobar_info_fetcher",
+ "fizzbuzz_handle_front_end_messages",
+ "fizzbuzz_hard_coded_data_source", "fizzbuzz_http_handler",
+ "widget_grabber"));
+
+ // Test 'annotation' with unique id "empty" is not in 'test_grouping.xml'
+ instance.proto.set_unique_id("empty");
+ AuditorResult::Type returned_type =
+ instance.InGroupingXML(annotation_unique_ids).type();
+ EXPECT_EQ(returned_type, AuditorResult::Type::ERROR_MISSING_GROUPING);
+
+ // Test 'annotation' with unique id "foobar_policy_fetcher" is in
+ // 'test_grouping.xml'
+ instance.proto.set_unique_id("foobar_policy_fetcher");
+ returned_type = instance.InGroupingXML(annotation_unique_ids).type();
+ EXPECT_EQ(returned_type, AuditorResult::Type::RESULT_OK);
+}
diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
index 1d826dbe22d..324e85fb51a 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
@@ -34,6 +34,12 @@ const base::FilePath kAnnotationsXmlPath =
.Append(FILE_PATH_LITERAL("summary"))
.Append(FILE_PATH_LITERAL("annotations.xml"));
+const base::FilePath kGroupingXmlPath =
+ base::FilePath(FILE_PATH_LITERAL("tools"))
+ .Append(FILE_PATH_LITERAL("traffic_annotation"))
+ .Append(FILE_PATH_LITERAL("summary"))
+ .Append(FILE_PATH_LITERAL("grouping.xml"));
+
// Extracts annotation id from a line of XML. Expects to have the line in the
// following format: <... id="..." .../>
// TODO(rhalavati): Use real XML parsing.
@@ -80,7 +86,7 @@ TrafficAnnotationExporter::TrafficAnnotationExporter(
: source_path_(source_path), modified_(false) {
all_supported_platforms_.push_back("linux");
all_supported_platforms_.push_back("windows");
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
current_platform_ = "linux";
#elif defined(OS_WIN)
current_platform_ = "windows";
diff --git a/chromium/tools/traffic_annotation/scripts/README.md b/chromium/tools/traffic_annotation/scripts/README.md
index 9b7ff77b8fb..bfa5220aa3f 100644
--- a/chromium/tools/traffic_annotation/scripts/README.md
+++ b/chromium/tools/traffic_annotation/scripts/README.md
@@ -29,3 +29,25 @@ annotations in code. It uses regex expressions on source files.
# extractor_test.py
Unit tests for extractor.py.
+
+# update_annotations_doc.py
+Updates the Chrome Browser Network Traffic Annotations document that presents
+all network traffic annotations specified within `summary/grouping.xml`.
+ - You can use the `hidden="true"` attribute within a group to suppress the
+ group and its nested senders and annotations from appearing in the document.
+ - You can use the `hidden="true"` attribute within the annotations in
+ `grouping.xml` to suppress them from appearing in the document.
+ - `grouping.xml` needn't be organized in alphabetical order, the script
+ automatically places them in alphabetical order.
+
+# update_annotations_doc_tests.py
+Unit tests for update_annotations_doc.py.
+
+# generator_utils.py
+Parses the `grouping.xml` and `annotations.tsv` files to provide
+`update_annotations_doc.py` with the annotations and their relevant information,
+e.g. unique_id, data, trigger, etc. Also includes methods to parse the json
+object returned by the Google Docs API `get()` method.
+
+# generator_utils_tests.py
+Unit tests for generator_utils.py. \ No newline at end of file
diff --git a/chromium/tools/traffic_annotation/scripts/generator_utils.py b/chromium/tools/traffic_annotation/scripts/generator_utils.py
new file mode 100755
index 00000000000..10f1b0f4948
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/generator_utils.py
@@ -0,0 +1,352 @@
+#!/usr/bin/env vpython
+# 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.
+"""Contains the parsers for .tsv and .xml files, annotations.tsv and
+grouping.xml respectively. Also includes methods to parse the json object
+returned by the Google Doc API's .get() method.
+
+These parsers are used to populate the duplicated Google Doc template with
+several placeholders, and, to populate the traffic annotations with their
+relevant attributes, e.g. description, policy, etc.
+"""
+
+from __future__ import print_function
+from collections import namedtuple
+from collections import OrderedDict
+import xml.etree.ElementTree
+import enum
+import json
+import csv
+import sys
+import io
+import re
+
+TrafficAnnotation = namedtuple(
+ "TrafficAnnotation",
+ ["unique_id", "description", "trigger", "data", "settings", "policy"])
+
+
+class Placeholder(str, enum.Enum):
+ GROUP = "group"
+ SENDER = "sender"
+ ANNOTATION = "annotation"
+ ANNOTATION_BOLD = "annotation_bold"
+
+
+PLACEHOLDER_STYLES = {
+ Placeholder.GROUP: {
+ "bold": False,
+ "font": "Roboto",
+ "fontSize": 20,
+ "namedStyleType": "HEADING_1"
+ },
+ Placeholder.SENDER: {
+ "bold": True,
+ "font": "Roboto",
+ "fontSize": 14,
+ "namedStyleType": "HEADING_2"
+ },
+ Placeholder.ANNOTATION: {
+ "bold": False,
+ "font": "Roboto",
+ "fontSize": 9
+ },
+ Placeholder.ANNOTATION_BOLD: {
+ "bold": True,
+ "font": "Roboto",
+ "fontSize": 9
+ }
+}
+
+
+def utf_8_encoder(input_file):
+ for line in input_file:
+ yield line.encode("utf-8")
+
+
+def load_tsv_file(file_path, verbose):
+ """ Loads annotations TSV file.
+
+ Args:
+ file_path: str
+ Path to the TSV file.
+ verbose: bool
+ Whether to print messages about ignored rows.
+
+ Returns:
+ list of list Table of loaded annotations.
+ """
+ rows = []
+ with io.open(file_path, mode="r", encoding="utf-8") as csvfile:
+ # CSV library does not support unicode, so encoding to utf-8 and back.
+ reader = csv.reader(utf_8_encoder(csvfile), delimiter="\t")
+ for row in reader:
+ row = [unicode(col, "utf-8") for col in row]
+ # If the last column of the file_row is empty, the row belongs to a
+ # platform different from the one that TSV file is generated on, hence it
+ # should be ignored.
+ if row[-1]:
+ rows.append(row)
+ elif verbose:
+ print("Ignored from other platforms: %s" % row[0])
+ return rows
+
+
+def map_annotations(tsv_contents):
+ """Creates a mapping between the unique_id of a given annotation and its
+ relevant attributes, e.g. description, trigger, data, etc.
+
+ Args:
+ tsv_contents: List[List]
+ Table of loaded annotations.
+
+ Returns:
+ unique_id_rel_attributes_map: <Dict[str, TrafficAnnotation]>
+ """
+ unique_id_rel_attributes_map = {}
+ for annotation_row in tsv_contents:
+ unique_id = annotation_row[0].encode("utf-8")
+ description = annotation_row[3].encode("utf-8")
+ trigger = annotation_row[4].encode("utf-8")
+ data = annotation_row[5].encode("utf-8")
+ settings = annotation_row[9].encode("utf-8")
+ policy = annotation_row[10].encode("utf-8")
+ payload = [unique_id, description, trigger, data, settings, policy]
+
+ unique_id_rel_attributes_map[unique_id] = TrafficAnnotation._make(payload)
+ return unique_id_rel_attributes_map
+
+
+class XMLParser:
+ """Parses grouping.xml with the aim of generating the placeholders list"""
+
+ def __init__(self, file_path, annotations_mapping):
+ """
+ Args:
+ file_path: str
+ The file path to the xml to parse. Ostensibly, grouping.xml located
+ within traffic_annotation/summary.
+ annotations_mapping: Dict[str, dict]
+ The mapping between a given annotation's unique_id and its relevant
+ attributes, e.g. description, policy, data, etc.
+ """
+ self.parsed_xml = {}
+ self.annotations_mapping = annotations_mapping
+
+ self.parse_xml(file_path)
+
+ def parse_xml(self, file_path):
+ """Parses the grouping.xml file and populates self.parsed_xml.
+
+ self.parsed_xml: <{Group1: {sender: [traffic_annotations]}, ...}>
+ """
+ tree = xml.etree.ElementTree.parse(file_path)
+ root = tree.getroot()
+ for group in root.iter("group"):
+ assert group.tag == "group"
+ group_name = group.attrib["name"]
+ # Suppress if hidden="true" in the group block. Will not include any of
+ # the senders and annotations in the block.
+ if group.attrib.get("hidden", "") == "true":
+ continue
+ self.parsed_xml[group_name] = {}
+
+ for sender in group.iter("sender"):
+ sender_name = sender.attrib["name"]
+ # Suppress if hidden="true" (or hidden is even mentioned) in the given
+ # annotation, don't include in traffic_annotations.
+ traffic_annotations = sorted([
+ t_annotation.attrib["unique_id"]
+ for t_annotation in sender.iter("traffic_annotation")
+ if t_annotation.attrib.get("hidden", "") != "true"
+ ])
+ self.parsed_xml[group_name][sender_name] = traffic_annotations
+
+ def _sort_parsed_xml(self):
+ """Sort on the group and sender keys in alphabetical order, note that
+ annotations are already sorted."""
+ self.parsed_xml = {
+ k: OrderedDict(sorted(v.items()))
+ for k, v in self.parsed_xml.items()
+ }
+ self.parsed_xml = OrderedDict(
+ sorted(self.parsed_xml.items(), key=lambda t: t[0]))
+
+ def _add_group_placeholder(self, name):
+ return {"type": Placeholder.GROUP, "name": name}
+
+ def _add_sender_placeholder(self, name):
+ return {"type": Placeholder.SENDER, "name": name}
+
+ def _add_annotation_placeholder(self, unique_id):
+ """
+ Args:
+ unique_id: str
+ The annotation's unique_id.
+ """
+ traffic_annotation = self.annotations_mapping.get(unique_id, None)
+ is_complete = traffic_annotation and all(traffic_annotation)
+ if not is_complete:
+ print(
+ "Warning: {} row is empty in annotations.tsv but is in grouping.xml".
+ format(unique_id))
+ traffic_annotation = TrafficAnnotation(unique_id, "NA", "NA", "NA", "NA",
+ "NA")
+
+ return {
+ "type": Placeholder.ANNOTATION,
+ "traffic_annotation": traffic_annotation
+ }
+
+ def build_placeholders(self):
+ """
+ Returns:
+ The placeholders <list> to be added in the order of their appearance.
+ The annotations are the TrafficAnnotation objects with the relevant
+ information.
+ """
+ self._sort_parsed_xml()
+ placeholders = []
+
+ for group, senders in self.parsed_xml.items():
+ placeholders.append(self._add_group_placeholder(group))
+ for sender, annotations in senders.items():
+ placeholders.append(self._add_sender_placeholder(sender))
+ for annotation in annotations:
+ placeholders.append(self._add_annotation_placeholder(annotation))
+ return placeholders
+
+
+def jprint(msg):
+ print(json.dumps(msg, indent=4), file=sys.stderr)
+
+
+def extract_body(document=None, target="body", json_file_path="template.json"):
+ """Google Doc API returns a .json object. Parse this doc object to obtain its
+ body.
+
+ The |template.json| object of the current state of
+ the document can be obtained by running the update_annotations_doc.py script
+ using the --debug flag.
+ """
+ if document:
+ doc = document
+ else:
+ try:
+ with open(json_file_path) as json_file:
+ doc = json.load(json_file)
+ except IOError:
+ print("Couldn't find the .json file.")
+
+ if target == "all":
+ return doc
+ return doc[target]
+
+
+def find_first_index(doc):
+ """Finds the cursor index (location) that comes right after the Introduction
+ section. Namely, the endIndex of the paragraph block the |target_text| belongs
+ to.
+
+ Returns: int
+ The first cursor index (loc) of the template document, right after the
+ Introduction section.
+ """
+ target_text = "The policy, if one exists, to control this type of network"
+ padding = 1 # We pad so as to overwrite cleanly.
+
+ body = extract_body(document=doc)
+ contents = body["content"]
+ for element in contents:
+ if "paragraph" in element:
+ end_index = element["endIndex"]
+ lines = element["paragraph"]["elements"]
+ for text_run in lines:
+ if target_text in text_run["textRun"]["content"]:
+ return end_index + padding
+
+
+def find_last_index(doc):
+ """
+ Returns: int
+ The last cursor index (loc) of the template document.
+ """
+ body = extract_body(document=doc)
+ contents = body["content"]
+ last_index = contents[-1]["endIndex"]
+ return last_index - 1
+
+
+def find_chrome_browser_version(doc):
+ """Finds what the current chrome browser version is in the document.
+
+ We grab the current "Chrome Browser version MAJOR.MINOR.BUILD.PATCH" from the
+ document's header.
+
+ Returns: str
+ The chrome browser version string.
+ """
+ # Only one header.
+ header = extract_body(document=doc, target="headers").values()[0]
+ header_elements = header["content"][0]["paragraph"]["elements"]
+ text = header_elements[0]["textRun"]["content"]
+ current_version = re.search(r"([\d.]+)", text).group()
+ return current_version
+
+
+def find_bold_ranges(doc, debug=False):
+ """Finds parts to bold given the targets of "trigger", "data", etc.
+
+ Returns:
+ The startIndex <int> and endIndex <int> tuple pairs as a list for all
+ occurrences of the targets. <List[Tuple[int, int]]>
+ """
+ bold_ranges = []
+ targets = ["Trigger", "Data", "Settings", "Policy"]
+ content = extract_body(document=doc)["content"]
+
+ for i, element in enumerate(content):
+ element_type = list(element.keys())[-1]
+
+ if element_type != "table":
+ continue
+
+ # Recall that table is 1x2 in Docs, first cell contains unique_id, second
+ # cell has traffic annotation relevant attributes.
+
+ # Unique id column, messy parsing through. You can inspect the json output
+ # with jprint() to confirm/debug if broken.
+ unique_id_col = element["table"]["tableRows"][0]["tableCells"][0][
+ "content"][0]["paragraph"]["elements"][0]
+ if debug:
+ jprint(unique_id_col)
+ assert "textRun" in unique_id_col, "Not the correct unique_id cell"
+
+ start_index = unique_id_col["startIndex"]
+ end_index = unique_id_col["endIndex"]
+ bold_ranges.append((start_index, end_index))
+
+ start_index, end_index = None, None # Reset
+
+ # The info column, messy parsing through. You can inspect the json output
+ # with jprint() to confirm/debug if broken.
+ info_elements = element["table"]["tableRows"][0]["tableCells"][1]["content"]
+ for i, info_col in enumerate(info_elements):
+ info_col = info_elements[i]
+
+ start_index = info_col["startIndex"]
+ content = info_col["paragraph"]["elements"][0]["textRun"]["content"]
+ # To find the end_index, run through and find something in targets.
+ for target in targets:
+ if content.find("{}:".format(target)) != -1:
+ # Contains the string "|target|:"
+ end_index = start_index + len(target) + 1
+ bold_ranges.append((start_index, end_index))
+ break
+
+ if debug:
+ jprint(info_col)
+ print("#" * 30)
+
+ return bold_ranges
diff --git a/chromium/tools/traffic_annotation/scripts/generator_utils_tests.py b/chromium/tools/traffic_annotation/scripts/generator_utils_tests.py
new file mode 100755
index 00000000000..06dff93187e
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/generator_utils_tests.py
@@ -0,0 +1,130 @@
+#!/usr/bin/env python
+# 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.
+"""
+Unit tests for generator_utils.py
+"""
+
+import os
+import unittest
+import generator_utils
+
+# Absolute path to chrome/src.
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "../../.."))
+TESTS_DIR = os.path.join(SCRIPT_DIR, "test_data")
+
+
+class ParserTest(unittest.TestCase):
+ TSV_CONTENTS = [[
+ u"unique_id_A", u"", u"sender_A", u"description_A", u"trigger_A",
+ u"data_A", u"destination_A", u"cookies_allowed_A", u"cookies_store_A",
+ u"settings_A", u"chrome_policy_A", u"", u"source_file_A",
+ u"id_hash_code_A", u"content_hash_code_A"],
+ [
+ u"unique_id_B", u"", u"sender_B", u"description_B", u"trigger_B",
+ u"data_B", u"destination_B", u"cookies_allowed_B", u"cookies_store_B",
+ u"settings_B", u"chrome_policy_B", u"", u"source_file_B",
+ u"id_hash_code_B", u"content_hash_code_B"],
+ [
+ u"unique_id_C", u"", u"sender_C", u"description_C", u"trigger_C",
+ u"data_C", u"destination_C", u"cookies_allowed_C", u"cookies_store_C",
+ u"settings_C", u"chrome_policy_C", u"", u"source_file_C",
+ u"id_hash_code_C", u"content_hash_code_C"]
+ ]
+
+ ANNOTATIONS_MAPPING = {
+ "unique_id_A":
+ generator_utils.TrafficAnnotation(
+ **{
+ "unique_id": "unique_id_A",
+ "description": "description_A",
+ "trigger": "trigger_A",
+ "data": "data_A",
+ "settings": "settings_A",
+ "policy": "chrome_policy_A"
+ }),
+ "unique_id_B":
+ generator_utils.TrafficAnnotation(
+ **{
+ "unique_id": "unique_id_B",
+ "description": "description_B",
+ "trigger": "trigger_B",
+ "data": "data_B",
+ "settings": "settings_B",
+ "policy": "chrome_policy_B"
+ }),
+ "unique_id_C":
+ generator_utils.TrafficAnnotation(
+ **{
+ "unique_id": "unique_id_C",
+ "description": "description_C",
+ "trigger": "trigger_C",
+ "data": "data_C",
+ "settings": "settings_C",
+ "policy": "chrome_policy_C"
+ })
+ }
+
+ PLACEHOLDERS = [
+ {"type": generator_utils.Placeholder.GROUP, "name": "Group A"},
+ {"type": generator_utils.Placeholder.SENDER, "name": "Sender 1"},
+ {
+ "type": generator_utils.Placeholder.ANNOTATION,
+ "traffic_annotation": ANNOTATIONS_MAPPING["unique_id_A"]},
+ {"type": generator_utils.Placeholder.SENDER, "name": "Sender 2"},
+ {
+ "type": generator_utils.Placeholder.ANNOTATION,
+ "traffic_annotation": ANNOTATIONS_MAPPING["unique_id_B"]},
+ {"type": generator_utils.Placeholder.GROUP, "name": "Group C"},
+ {"type": generator_utils.Placeholder.SENDER, "name": "Sender 3"},
+ {
+ "type": generator_utils.Placeholder.ANNOTATION,
+ "traffic_annotation": ANNOTATIONS_MAPPING["unique_id_C"]}
+ ]
+
+ # Document formatted according to fake_grouping.xml
+ DOC_JSON = generator_utils.extract_body(target="all",
+ json_file_path=os.path.join(
+ TESTS_DIR, "fake_doc.json"))
+
+ def test_load_tsv_file(self):
+ self.assertEqual(self.TSV_CONTENTS, generator_utils.load_tsv_file(
+ os.path.join(SRC_DIR,
+ "tools/traffic_annotation/scripts/test_data/fake_annotations.tsv"),
+ False))
+
+ def test_map_annotations(self):
+ self.assertEqual(self.ANNOTATIONS_MAPPING,
+ generator_utils.map_annotations(self.TSV_CONTENTS))
+
+ def test_xml_parser_build_placeholders(self):
+ xml_parser = generator_utils.XMLParser(
+ os.path.join(TESTS_DIR, "fake_grouping.xml"), self.ANNOTATIONS_MAPPING)
+ self.assertEqual(self.PLACEHOLDERS, xml_parser.build_placeholders())
+
+ def test_find_first_index(self):
+ first_index = generator_utils.find_first_index(self.DOC_JSON)
+ self.assertEqual(1822, first_index)
+
+ def test_find_last_index(self):
+ last_index = generator_utils.find_last_index(self.DOC_JSON)
+ self.assertEqual(2066, last_index)
+
+ def test_find_chrome_browser_version(self):
+ current_version = generator_utils.find_chrome_browser_version(self.DOC_JSON)
+ self.assertEqual("86.0.4187.0", current_version)
+
+ def test_find_bold_ranges(self):
+ expected_bold_ranges = [(1843, 1855), (1859, 1867), (1871, 1876),
+ (1880, 1889), (1893, 1900), (1918, 1930),
+ (1934, 1942), (1968, 1975), (1946, 1951),
+ (1955, 1964), (2001, 2013), (2017, 2025),
+ (2029, 2034), (2038, 2047), (2051, 2058)]
+ bold_ranges = generator_utils.find_bold_ranges(self.DOC_JSON)
+ self.assertItemsEqual(expected_bold_ranges, bold_ranges)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/chromium/tools/traffic_annotation/scripts/test_data/fake_annotations.tsv b/chromium/tools/traffic_annotation/scripts/test_data/fake_annotations.tsv
new file mode 100644
index 00000000000..765ab0d8b25
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/test_data/fake_annotations.tsv
@@ -0,0 +1,3 @@
+unique_id_A sender_A description_A trigger_A data_A destination_A cookies_allowed_A cookies_store_A settings_A chrome_policy_A source_file_A id_hash_code_A content_hash_code_A
+unique_id_B sender_B description_B trigger_B data_B destination_B cookies_allowed_B cookies_store_B settings_B chrome_policy_B source_file_B id_hash_code_B content_hash_code_B
+unique_id_C sender_C description_C trigger_C data_C destination_C cookies_allowed_C cookies_store_C settings_C chrome_policy_C source_file_C id_hash_code_C content_hash_code_C
diff --git a/chromium/tools/traffic_annotation/scripts/test_data/fake_grouping.xml b/chromium/tools/traffic_annotation/scripts/test_data/fake_grouping.xml
new file mode 100644
index 00000000000..9196eb5d737
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/test_data/fake_grouping.xml
@@ -0,0 +1,15 @@
+<groups>
+ <group name="Group A">
+ <sender name="Sender 1">
+ <traffic_annotation unique_id="unique_id_A"/>
+ </sender>
+ <sender name="Sender 2">
+ <traffic_annotation unique_id="unique_id_B"/>
+ </sender>
+ </group>
+ <group name="Group C">
+ <sender name="Sender 3">
+ <traffic_annotation unique_id="unique_id_C"/>
+ </sender>
+ </group>
+</groups> \ No newline at end of file
diff --git a/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py b/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py
new file mode 100755
index 00000000000..227905207dc
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py
@@ -0,0 +1,552 @@
+#!/usr/bin/env vpython
+# 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 script updates the Chrome Browser Network Traffic Annotations document.
+To run the script, you should first generate annotations.tsv using
+traffic_annotation_auditor.
+
+To run the script, call: `update_annotations_doc --config-file=[config.json]
+--annotations-file=[path_to_annotations.tsv]`
+
+Run `update_annotations_doc --config-help` for help on the config.json
+configuration file.
+"""
+
+from __future__ import print_function
+import argparse
+import datetime
+import httplib2
+import time
+import json
+import sys
+import os
+
+from apiclient import discovery
+from infra_libs import luci_auth
+from oauth2client import client
+from oauth2client import tools
+from oauth2client.file import Storage
+
+import generator_utils
+from generator_utils import (XMLParser, map_annotations, load_tsv_file,
+ Placeholder, PLACEHOLDER_STYLES)
+
+# Absolute path to chrome/src.
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "../../.."))
+
+
+class NetworkTrafficAnnotationsDoc:
+ SCOPES = "https://www.googleapis.com/auth/documents"
+ APPLICATION_NAME = "Chrome Network Traffic Annotations Document Updater"
+
+ # Colors are given as RGB percentages
+ BLUE = {"red": 0.812, "green": 0.886, "blue": 0.953}
+ WHITE = {"red": 1.0, "green": 1.0, "blue": 1.0}
+
+ def __init__(self,
+ doc_id,
+ doc_name,
+ credentials_file_path,
+ client_token_file_path,
+ verbose,
+ index=None):
+ """
+ Args:
+ doc_id: str
+ ID of the annotations document for clients. This is the destination
+ document where updates are made.
+ doc_name: str
+ Name of the document that contains the annotations for clients.
+ credentials_file_path: str
+ Path relative to src to read user credentials (credentials.json).
+ client_token_file_path: str
+ Path relative to src to read/save user credentials (token.pickle).
+ verbose: bool
+ Flag requesting dump of API status calls.
+ index: int
+ Where to begin adding content to. If index=None, will automatically
+ find the index corresponding to the end of the template file.
+ """
+ self.destination_id = doc_id
+ self.doc_name = doc_name
+ self.index = index
+ self._docs_service = None
+ self._color_bool = True
+ self._credentials_file_path = credentials_file_path
+ self._client_token_file_path = client_token_file_path
+
+ self.verbose = verbose
+
+ def update_doc(self, placeholders):
+ """Updates the chrome version of the destination document and includes all
+ the annotations within the grouping.xml file.
+
+ Args:
+ placeholders:
+ Contains the order of the placeholders to construct template
+ """
+ self._docs_service = self._initialize_service(
+ self._get_credentials(
+ self._credentials_file_path, self._client_token_file_path))
+ doc = self._get_doc_contents(self.destination_id)
+ self._update_chrome_version(doc)
+ self.index = self._clear_destination_contents(doc)
+ self._insert_placeholders(placeholders)
+ self._to_all_bold()
+
+ if self.verbose:
+ self._get_doc_contents(self.destination_id, save=True)
+
+ print("Done, please review the document before sharing it with clients.")
+
+ def _initialize_service(self, credentials):
+ """Initializes the Google Docs API services.
+
+ Args:
+ credentials: OAuth2Credentials user credentials.
+ The path to the user's credentials.
+
+ Returns:
+ googleapiclient.discovery.Resource Doc API service, v1.
+ """
+ http = credentials.authorize(httplib2.Http())
+ return discovery.build("docs", "v1", http=http)
+
+ def _get_credentials(self, credentials_file_path, client_token_file_path):
+ """ Gets valid user credentials from storage. If nothing has been stored, or
+ if the stored credentials are invalid, the OAuth2 flow is completed to
+ obtain the new credentials.
+
+ When running in the buildbot, uses LUCI credentials instead.
+
+ Args:
+ credentials_file_path: str
+ Absolute path to read credentials.json.
+ client_token_file_path: str
+ Absolute path to read/save user secret token.
+
+ Returns:
+ OAuth2Credentials The obtained user credentials.
+ """
+ if luci_auth.available():
+ return luci_auth.LUCICredentials(scopes=[self.SCOPES])
+
+ store = Storage(os.path.join(SRC_DIR, client_token_file_path))
+ credentials = store.get()
+
+ if not credentials or credentials.invalid:
+ flow = client.flow_from_clientsecrets(
+ os.path.join(SRC_DIR, credentials_file_path), self.SCOPES)
+ flow.user_agent = self.APPLICATION_NAME
+ flags = tools.argparser.parse_args([])
+ credentials = tools.run_flow(flow, store, flags)
+ print("Storing credentials to " + credentials_file_path)
+ return credentials
+
+ def _get_doc_contents(self, document_id, save=False):
+ document = self._docs_service.documents().get(
+ documentId=document_id).execute()
+ if save:
+ with open(os.path.join(SRC_DIR,
+ "tools/traffic_annotation/scripts/template.json"), "w") as out_file:
+ json.dump(document, out_file)
+ print("Saved template.json.")
+
+ if self.verbose:
+ print(document)
+ return document
+
+ def _update_chrome_version(self, doc):
+ """Gets the chrome version (MAJOR.MINOR.BUILD.PATCH) from src/chrome/VERSION
+ and updates the doc to reflect the correct version.
+ """
+ version = ""
+ with open(os.path.join(SRC_DIR, "chrome/VERSION"), "r") as version_file:
+ version = ".".join(line.strip().split("=")[1]
+ for line in version_file.readlines())
+
+ current_version = generator_utils.find_chrome_browser_version(doc)
+ replacement = "Chrome Browser version {}".format(version)
+ target = "Chrome Browser version {}".format(current_version)
+
+ if replacement == target:
+ print("Document chrome version is already up to date.")
+ return
+
+ req = [{
+ "replaceAllText": {
+ "containsText": {
+ "text": target,
+ "matchCase": True
+ },
+ "replaceText": replacement
+ }
+ }]
+ self._perform_requests(req)
+ print("Updated document chrome version {} --> {}".format(
+ current_version, version))
+
+ def _clear_destination_contents(self, doc):
+ """Will clear the contents of the destination document from the end of the
+ "Introduction" section onwards.
+
+ Return: Integer of where to start writing, i.e. the index.
+ """
+ print("Overwriting the destination document.")
+ first_index = generator_utils.find_first_index(doc)
+ last_index = generator_utils.find_last_index(doc)
+
+ if self.verbose:
+ print("First index, last index", first_index, last_index)
+
+ if first_index >= last_index:
+ print("Nothing to overwrite.")
+ return first_index
+
+ req = [{
+ "deleteContentRange": {
+ "range": {
+ "startIndex": first_index,
+ "endIndex": last_index
+ }
+ }
+ }]
+ self._perform_requests(req)
+ return first_index
+
+ def _perform_requests(self, reqs):
+ """Performs the requests |reqs| using batch update.
+ """
+ if not reqs:
+ print("Warning, no requests provided. Returning.")
+ return
+
+ status = self._docs_service.documents().batchUpdate(
+ body={
+ "requests": reqs
+ }, documentId=self.destination_id, fields="").execute()
+ if self.verbose:
+ print("#"*30)
+ print(status)
+ print("#"*30)
+ return status
+
+ def _insert_placeholders(self, placeholders):
+ """Placeholders (e.g. groups, senders, traffic annotations) are inserted in
+ the document in their order of appearance.
+
+ Increment the self.index value to ensure that placeholders are inserted at
+ the correct locations. Because placeholders are sorted in order of
+ appearance, self.index is strictly increasing.
+ """
+ reqs = []
+ for placeholder in placeholders:
+ placeholder_type = placeholder["type"]
+
+ if placeholder_type == Placeholder.ANNOTATION:
+ req, index = self._create_annotation_request(
+ placeholder["traffic_annotation"],
+ self.index,
+ color=self._color_bool)
+ self._color_bool = not self._color_bool
+ else:
+ # is either a group or sender placeholder
+ req, index = self._create_group_or_sender_request(
+ placeholder["name"], self.index, placeholder_type)
+
+ reqs += req
+ self.index += index
+
+ status = self._perform_requests(reqs)
+ print("Added all {} placeholders!\n".format(len(placeholders)))
+
+ def _create_text_request(self, text, index):
+ """
+ Returns:
+ The request to insert raw text without formatting and the length of the
+ text for appropriately incrementing |self.index|.
+ """
+ return {
+ "insertText": {
+ "location": {"index": index},
+ "text": text
+ }
+ }, len(text)
+
+ def _format_text(self, start_index, end_index, placeholder_type):
+ """Format the text in between |start_index| and |end_index| using the styles
+ specified by |generator_utils.PLACEHOLDER_STYLES|.
+
+ Returns: The request to format the text in between |start_index| and
+ |end_index|.
+ """
+ return {
+ "updateTextStyle": {
+ "range": {
+ "startIndex": start_index,
+ "endIndex": end_index
+ },
+ "textStyle": {
+ "bold": PLACEHOLDER_STYLES[placeholder_type]["bold"],
+ "fontSize": {
+ "magnitude":
+ PLACEHOLDER_STYLES[placeholder_type]["fontSize"],
+ "unit": "PT"
+ },
+ "weightedFontFamily": {
+ "fontFamily": PLACEHOLDER_STYLES[placeholder_type]["font"],
+ "weight": 400
+ }
+ },
+ "fields": "*"
+ }
+ }
+
+ def _create_group_or_sender_request(self, text, index, placeholder_type):
+ """Returns the request for inserting the group or sender placeholders using
+ the styling of |generator_utils.PLACEHOLDER_STYLES|.
+ """
+ assert placeholder_type in [Placeholder.GROUP, Placeholder.SENDER]
+ text += "\n"
+ req, idx = self._create_text_request(text, index)
+ reqs = [req]
+ reqs.append({
+ "updateParagraphStyle": {
+ "range": {
+ "startIndex": index,
+ "endIndex": index + idx
+ },
+ "paragraphStyle": {
+ "namedStyleType":
+ PLACEHOLDER_STYLES[placeholder_type]["namedStyleType"],
+ "direction": "LEFT_TO_RIGHT",
+ "spacingMode": "NEVER_COLLAPSE",
+ "spaceAbove": {"unit": "PT"}
+ },
+ "fields": "*"
+ }
+ })
+ reqs.append(self._format_text(index, index + idx, placeholder_type))
+ return reqs, idx
+
+ def _create_annotation_request(self, traffic_annotation, index, color=False):
+ """Returns the request (dict) for inserting the annotations table. Refer to
+ the template document for a visual.
+
+ Args:
+ traffic_annotation: generator_utils.TrafficAnnotation
+ The TrafficAnnotation object with all the relevant information, e.g.
+ unique_id, description, etc.
+ index: int
+ Where the annotation should be added in the document.
+ color: bool
+ If True, make the table blue, otherwise white.
+ """
+ # Hardcoded due to intrinsic of tables in Google Docs API.
+ idx = 8
+ offset = 2
+
+ # Create the 1x2 table -- col 1 contains the unique_id placeholder, col 2
+ # contains the remaining placeholders, e.g. trigger, description, etc.
+ padding_req, _ = self._create_text_request("\n", index)
+ reqs = [padding_req]
+ reqs.append({
+ "insertTable": {
+ "rows": 1,
+ "columns": 2,
+ "location": {"index": index}
+ }
+ })
+
+ # Writing the annotation's relevant information directly to the table,
+ # within the left cell |left_text| and the right cell |right_text|.
+ left_text = traffic_annotation.unique_id
+ right_text = "{}\nTrigger: {}\nData: {}\nSettings: {}\nPolicy: {}".format(
+ traffic_annotation.description, traffic_annotation.trigger,
+ traffic_annotation.data, traffic_annotation.settings,
+ traffic_annotation.policy)
+
+ # +4 hardcoded due to intrinsic of tables in Google Docs API.
+ start_index = index + 4
+ left_req, left_increment = self._create_text_request(left_text, start_index)
+ right_req, right_increment = self._create_text_request(
+ right_text, start_index + left_increment + offset)
+
+ reqs.append(left_req)
+ reqs.append(right_req)
+
+ end_index = index + left_increment + right_increment + idx
+
+ # This sizes the table correctly such as making the right cell's width
+ # greater than that of the left cell.
+ col_properties = [{
+ "columnIndices": [0],
+ "width": 153
+ }, {
+ "columnIndices": [1],
+ "width": 534
+ }]
+ for properties in col_properties:
+ reqs.append({
+ "updateTableColumnProperties": {
+ "tableStartLocation": {"index": index + 1},
+ "columnIndices": properties["columnIndices"],
+ "fields": "*",
+ "tableColumnProperties": {
+ "widthType": "FIXED_WIDTH",
+ "width": {
+ "magnitude": properties["width"],
+ "unit": "PT"
+ }
+ }
+ }
+ })
+
+ # Changing the table's color and ensuring that the borders are "turned off"
+ # (really they're given the same color as the background).
+ color = self.BLUE if color else self.WHITE
+ color_and_border_req = {
+ "updateTableCellStyle": {
+ "tableStartLocation": {"index": index + 1},
+ "fields": "*",
+ "tableCellStyle": {
+ "rowSpan": 1,
+ "columnSpan": 1,
+ "backgroundColor": {
+ "color": {
+ "rgbColor": color
+ }
+ }
+ }
+ }
+ }
+ # make the table borders 'invisible' and adjust the padding to site text in
+ # the cell correctly.
+ for direction in ["Left", "Right", "Top", "Bottom"]:
+ color_and_border_req["updateTableCellStyle"]["tableCellStyle"][
+ "border" + direction] = {
+ "color": {"color": {"rgbColor": color}},
+ "width": {"unit": "PT"},
+ "dashStyle": "SOLID"
+ }
+ color_and_border_req["updateTableCellStyle"]["tableCellStyle"][
+ "padding" + direction] = {"magnitude": 1.44, "unit": "PT"}
+ reqs.append(color_and_border_req)
+
+ # Text formatting (normal text, linespacing, etc.) adds space below the
+ # lines within a cell.
+ reqs.append({
+ "updateParagraphStyle": {
+ "range": {
+ "startIndex": start_index,
+ "endIndex": end_index - 1
+ },
+ "paragraphStyle": {
+ "namedStyleType": "NORMAL_TEXT",
+ "lineSpacing": 100,
+ "direction": "LEFT_TO_RIGHT",
+ "spacingMode": "NEVER_COLLAPSE",
+ "spaceBelow": {"magnitude": 4, "unit": "PT"},
+ "avoidWidowAndOrphan": False
+ },
+ "fields": "*"
+ }
+ })
+ reqs.append(
+ self._format_text(start_index, end_index - 1, Placeholder.ANNOTATION))
+ return reqs, end_index - index
+
+ def _to_bold(self, start_index, end_index):
+ """Bold the text between start_index and end_index. Uses the same formatting
+ as the annotation bold."""
+ return self._format_text(start_index, end_index,
+ Placeholder.ANNOTATION_BOLD)
+
+ def _to_all_bold(self):
+ """Bold the unique_id, description, trigger, etc. in the tables to
+ correspond exactly to the template."""
+ # Get recent doc after all the substitutions with the annotations. At this
+ # point, document has all the content.
+ print("Finding everything to bold...")
+ doc = self._get_doc_contents(self.destination_id)
+
+ # the ranges to bold using the updateTextStyle request
+ bold_ranges = generator_utils.find_bold_ranges(doc)
+ reqs = []
+ for i, (start_index, end_index) in enumerate(bold_ranges):
+ if end_index > start_index:
+ reqs.append(self._to_bold(start_index, end_index))
+ self._perform_requests(reqs)
+
+
+def print_config_help():
+ print("The config.json file should have the following items:\n"
+ "doc_id:\n"
+ " ID of the destination document.\n"
+ "doc_name:\n"
+ " Name of the document.\n"
+ "credentials_file_path:\n"
+ " Absolute path of the file that keeps user credentials.\n"
+ "client_token_file_path:\n"
+ " Absolute path of the token.pickle which keeps the users credentials."
+ " The file can be created as specified in:\n"
+ " https://developers.google.com/docs/api/quickstart/python")
+
+
+def main():
+ args_parser = argparse.ArgumentParser(
+ description="Updates 'Chrome Browser Network Traffic Annotations' doc.")
+ args_parser.add_argument("--config-file", help="Configurations file.")
+ args_parser.add_argument("--annotations-file",
+ help="TSV annotations file exported from auditor.")
+ args_parser.add_argument("--verbose",
+ action="store_true",
+ help="Reports all updates. "
+ " Also creates a scripts/template.json file "
+ " outlining the document's current structure.")
+ args_parser.add_argument("--config-help",
+ action="store_true",
+ help="Shows the configurations help.")
+ args = args_parser.parse_args()
+
+ if args.config_help:
+ print_config_help()
+ return 0
+
+ # Load and parse config file.
+ with open(os.path.join(SRC_DIR, args.config_file)) as config_file:
+ config = json.load(config_file)
+
+ tsv_contents = load_tsv_file(
+ os.path.join(SRC_DIR, args.annotations_file), False)
+ if not tsv_contents:
+ print("Could not read annotations file.")
+ return -1
+
+ xml_parser = XMLParser(
+ os.path.join(SRC_DIR, "tools/traffic_annotation/summary/grouping.xml"),
+ map_annotations(tsv_contents))
+ placeholders = xml_parser.build_placeholders()
+ print("#" * 40)
+ print("There are:", len(placeholders), "placeholders")
+ if args.verbose:
+ print(placeholders)
+ print("#" * 40)
+
+ network_traffic_doc = NetworkTrafficAnnotationsDoc(
+ doc_id=config["doc_id"],
+ doc_name=config["doc_name"],
+ credentials_file_path=config["credentials_file_path"],
+ client_token_file_path=config["client_token_file_path"],
+ verbose=args.verbose)
+
+ if not network_traffic_doc.update_doc(placeholders):
+ return -1
+
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py.vpython b/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py.vpython
new file mode 100644
index 00000000000..59b3e8e3373
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/update_annotations_doc.py.vpython
@@ -0,0 +1,61 @@
+python_version: "2.7"
+
+wheel: <
+ name: "infra/python/wheels/google_api_python_client-py2_py3"
+ version: "version:1.6.2"
+>
+
+wheel: <
+ name: "infra/python/wheels/oauth2client-py2_py3"
+ version: "version:4.0.0"
+>
+
+wheel: <
+ name: "infra/python/wheels/uritemplate-py2_py3"
+ version: "version:3.0.0"
+>
+
+wheel: <
+ name: "infra/python/wheels/enum34-py2"
+ version: "version:1.1.6"
+>
+
+wheel: <
+ name: "infra/python/wheels/httplib2-py2_py3"
+ version: "version:0.12.1"
+>
+
+wheel: <
+ name: "infra/python/wheels/rsa-py2_py3"
+ version: "version:3.4.2"
+>
+
+wheel: <
+ name: "infra/python/wheels/pyasn1-py2_py3"
+ version: "version:0.2.3"
+>
+
+wheel: <
+ name: "infra/python/wheels/pyasn1_modules-py2_py3"
+ version: "version:0.0.8"
+>
+
+wheel: <
+ name: "infra/python/wheels/six-py2_py3"
+ version: "version:1.10.0"
+>
+
+wheel: <
+ name: "infra/python/wheels/infra_libs-py2"
+ version: "version:2.0.0"
+>
+
+wheel: <
+ name: "infra/python/wheels/protobuf-py2_py3"
+ version: "version:3.2.0"
+>
+
+wheel: <
+ name: "infra/python/wheels/requests-py2_py3"
+ version: "version:2.13.0"
+> \ No newline at end of file
diff --git a/chromium/tools/traffic_annotation/scripts/update_annotations_doc_tests.py b/chromium/tools/traffic_annotation/scripts/update_annotations_doc_tests.py
new file mode 100755
index 00000000000..a6d69bc9c51
--- /dev/null
+++ b/chromium/tools/traffic_annotation/scripts/update_annotations_doc_tests.py
@@ -0,0 +1,177 @@
+#!/usr/bin/env python
+# 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.
+
+"""
+Unit tests for update_annotations_doc.py
+"""
+
+import os
+import sys
+import unittest
+from mock import MagicMock
+
+# Mock some imports which aren't necessary during testing.
+sys.modules["infra_libs"] = MagicMock()
+import update_annotations_doc
+import generator_utils
+
+# Absolute path to chrome/src.
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "../../.."))
+TESTS_DIR = os.path.join(SCRIPT_DIR, "test_data")
+
+
+class UpdateAnnotationsDocTest(unittest.TestCase):
+ network_doc_obj = update_annotations_doc.NetworkTrafficAnnotationsDoc(
+ "", "", "", "", "")
+
+ def test_create_group_request(self):
+ text = "TestGroup"
+ req, index = self.network_doc_obj._create_group_or_sender_request(
+ text, 0, generator_utils.Placeholder.GROUP)
+
+ self.assertEqual(len(text)+1, index)
+ expected_req = [
+ {"insertText": {"text": "TestGroup\n", "location": {"index": 0}}},
+ {"updateParagraphStyle": {
+ "fields": "*",
+ "range": {"endIndex": 10, "startIndex": 0},
+ "paragraphStyle": {
+ "spacingMode": "NEVER_COLLAPSE",
+ "direction": "LEFT_TO_RIGHT",
+ "namedStyleType": "HEADING_1",
+ "spaceAbove": {"unit": "PT"}
+ }
+ }
+ },
+ {"updateTextStyle": {
+ "textStyle": {
+ "fontSize": {"magnitude": 20, "unit": "PT"},
+ "bold": False,
+ "weightedFontFamily": {
+ "fontFamily": "Roboto",
+ "weight": 400
+ }
+ },
+ "range": {"endIndex": 10, "startIndex": 0}, "fields": "*"}}
+ ]
+ self.assertEqual(expected_req, req)
+
+ def test_create_sender_request(self):
+ text = "TestSender"
+ print(text)
+ req, index = self.network_doc_obj._create_group_or_sender_request(
+ text, 0, generator_utils.Placeholder.SENDER)
+
+ self.assertEqual(len(text)+1, index)
+ expected_req = [
+ {"insertText": {"text": "TestSender\n", "location": {"index": 0}}},
+ {"updateParagraphStyle": {
+ "fields": "*",
+ "range": {"endIndex": 11, "startIndex": 0},
+ "paragraphStyle": {
+ "spacingMode": "NEVER_COLLAPSE",
+ "direction": "LEFT_TO_RIGHT",
+ "namedStyleType": "HEADING_2",
+ "spaceAbove": {"unit": "PT"}
+ }
+ }
+ },
+ {"updateTextStyle": {
+ "textStyle": {"fontSize": {"magnitude": 14, "unit": "PT"},
+ "bold": True,
+ "weightedFontFamily": {"fontFamily": "Roboto", "weight": 400}},
+ "range": {"endIndex": 11, "startIndex": 0}, "fields": "*"}
+ }
+ ]
+ self.assertEqual(expected_req, req)
+
+ def test_create_annotation_request(self):
+ traffic_annotation = generator_utils.TrafficAnnotation(
+ **{
+ "unique_id": "unique_id_A",
+ "description": "description_A",
+ "trigger": "trigger_A",
+ "data": "data_A",
+ "settings": "settings_A",
+ "policy": "chrome_policy_A"
+ })
+
+ req, index = self.network_doc_obj._create_annotation_request(
+ traffic_annotation, 0)
+
+ self.assertEqual(109, index)
+ expected_req = [
+ {'insertText': {'text': '\n', 'location': {'index': 0}}},
+ {'insertTable': {'rows': 1, 'location': {'index': 0}, 'columns': 2}},
+ {'insertText': {'text': 'unique_id_A', 'location': {'index': 4}}},
+ {
+ 'insertText': {
+ 'text': "description_A\nTrigger: trigger_A\nData: data_A\nSettings: "
+ "settings_A\nPolicy: chrome_policy_A", 'location': {'index': 17}}},
+ {'updateTableColumnProperties': {
+ 'columnIndices': [0],
+ 'fields': '*',
+ 'tableColumnProperties': {
+ 'width': {'magnitude': 153, 'unit': 'PT'},
+ 'widthType': 'FIXED_WIDTH'},
+ 'tableStartLocation': {'index': 1}}},
+ {'updateTableColumnProperties': {
+ 'columnIndices': [1],
+ 'fields': '*',
+ 'tableColumnProperties': {
+ 'width': {'magnitude': 534, 'unit': 'PT'},'widthType': 'FIXED_WIDTH'},
+ 'tableStartLocation': {'index': 1}}},
+ {'updateTableCellStyle': {
+ 'fields': '*',
+ 'tableCellStyle': {
+ 'rowSpan': 1,
+ 'borderBottom': {
+ 'color': {
+ 'color': {'rgbColor': {'blue': 1.0, 'green': 1.0, 'red': 1.0}}},
+ 'width': {'unit': 'PT'}, 'dashStyle': 'SOLID'},
+ 'paddingBottom': {'magnitude': 1.44, 'unit': 'PT'},
+ 'paddingLeft': {'magnitude': 1.44, 'unit': 'PT'},
+ 'paddingTop': {'magnitude': 1.44, 'unit': 'PT'},
+ 'borderLeft': {
+ 'color': {
+ 'color': {'rgbColor': {'blue': 1.0, 'green': 1.0, 'red': 1.0}}},
+ 'width': {'unit': 'PT'},
+ 'dashStyle': 'SOLID'},
+ 'columnSpan': 1,
+ 'backgroundColor': {
+ 'color': {'rgbColor': {'blue': 1.0, 'green': 1.0, 'red': 1.0}}},
+ 'borderRight': {
+ 'color': {
+ 'color': {'rgbColor': {'blue': 1.0, 'green': 1.0, 'red': 1.0}}},
+ 'width': {'unit': 'PT'},
+ 'dashStyle': 'SOLID'},
+ 'borderTop': {
+ 'color': {
+ 'color': {'rgbColor': {'blue': 1.0, 'green': 1.0, 'red': 1.0}}},
+ 'width': {'unit': 'PT'},
+ 'dashStyle': 'SOLID'},
+ 'paddingRight': {'magnitude': 1.44, 'unit': 'PT'}},
+ 'tableStartLocation': {'index': 1}}},
+ {'updateParagraphStyle': {
+ 'fields': '*',
+ 'range': {'endIndex': 108, 'startIndex': 4},
+ 'paragraphStyle': {
+ 'spacingMode': 'NEVER_COLLAPSE',
+ 'direction': 'LEFT_TO_RIGHT',
+ 'spaceBelow': {'magnitude': 4, 'unit': 'PT'},
+ 'lineSpacing': 100,
+ 'avoidWidowAndOrphan': False,
+ 'namedStyleType': 'NORMAL_TEXT'}}},
+ {'updateTextStyle': {
+ 'textStyle': {'fontSize': {'magnitude': 9, 'unit': 'PT'},
+ 'bold': False,
+ 'weightedFontFamily': {'fontFamily': 'Roboto', 'weight': 400}},
+ 'range': {'endIndex': 108, 'startIndex': 4}, 'fields': '*'}}]
+ self.assertEqual(expected_req, req)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py b/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py
index 0a613b4bfd7..c290a287e64 100755
--- a/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py
+++ b/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py
@@ -29,6 +29,7 @@ from infra_libs import luci_auth
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
+from generator_utils import load_tsv_file
class SheetEditor():
@@ -336,37 +337,6 @@ class SheetEditor():
self.insert_count, self.update_count, self.delete_count)
-def utf_8_encoder(input_file):
- for line in input_file:
- yield line.encode("utf-8")
-
-
-def LoadTSVFile(file_path, verbose):
- """ Loads annotations TSV file.
-
- Args:
- file_path: str Path to the TSV file.
- verbose: bool Whether to print messages about ignored rows.
-
- Returns:
- list of list Table of loaded annotations.
- """
- rows = []
- with io.open(file_path, mode="r", encoding="utf-8") as csvfile:
- # CSV library does not support unicode, so encoding to utf-8 and back.
- reader = csv.reader(utf_8_encoder(csvfile), delimiter='\t')
- for row in reader:
- row = [unicode(col, 'utf-8') for col in row]
- # If the last column of the file_row is empty, the row belongs to a
- # platform different from the one that TSV file is generated on, hence it
- # should be ignored.
- if row[-1]:
- rows.append(row)
- elif verbose:
- print("Ignored from other platforms: %s" % row[0])
- return rows
-
-
def PrintConfigHelp():
print("The config.json file should have the following items:\n"
"spreadsheet_id:\n"
@@ -416,7 +386,7 @@ def main():
config = json.load(config_file)
# Load and parse annotations file.
- file_content = LoadTSVFile(args.annotations_file, args.verbose)
+ file_content = load_tsv_file(args.annotations_file, args.verbose)
if not file_content:
print("Could not read annotations file.")
return -1
diff --git a/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py.vpython b/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py.vpython
index 931fed622e0..7018a9dac16 100644
--- a/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py.vpython
+++ b/chromium/tools/traffic_annotation/scripts/update_annotations_sheet.py.vpython
@@ -53,4 +53,9 @@ wheel: <
wheel: <
name: "infra/python/wheels/requests-py2_py3"
version: "version:2.13.0"
-> \ No newline at end of file
+>
+
+wheel: <
+ name: "infra/python/wheels/enum34-py2"
+ version: "version:1.1.6"
+>
diff --git a/chromium/tools/traffic_annotation/summary/annotations.xml b/chromium/tools/traffic_annotation/summary/annotations.xml
index 28d2cb16d13..6ccb72ef01b 100644
--- a/chromium/tools/traffic_annotation/summary/annotations.xml
+++ b/chromium/tools/traffic_annotation/summary/annotations.xml
@@ -23,13 +23,14 @@ Refer to README.md for content description and update process.
<item id="background_fetch_context" hash_code="16469669" type="0" content_hash_code="52235434" os_list="linux,windows" file_path="content/browser/background_fetch/background_fetch_delegate_proxy.cc"/>
<item id="background_performance_tracer" hash_code="84575287" type="0" content_hash_code="120154250" os_list="linux,windows" file_path="chrome/browser/tracing/crash_service_uploader.cc"/>
<item id="bidirectional_stream" hash_code="108665132" type="0" content_hash_code="130038340" os_list="linux,windows" file_path="net/http/bidirectional_stream.cc"/>
- <item id="blink_extension_resource_loader" hash_code="84165821" type="0" content_hash_code="3695143" os_list="linux,windows" file_path="content/renderer/loader/web_url_loader_impl.cc"/>
+ <item id="blink_extension_resource_loader" hash_code="84165821" type="0" content_hash_code="63536185" os_list="linux,windows" file_path="content/renderer/loader/web_url_loader_impl.cc"/>
<item id="blink_resource_loader" hash_code="101845102" type="0" content_hash_code="75331172" os_list="linux,windows" file_path="content/renderer/loader/web_url_loader_impl.cc"/>
<item id="blob_read" hash_code="112303907" type="0" deprecated="2019-08-09" content_hash_code="135449692" file_path=""/>
<item id="blob_reader" hash_code="5154306" type="0" deprecated="2018-06-14" content_hash_code="39702178" file_path=""/>
<item id="bluetooth_socket" hash_code="94099818" type="0" content_hash_code="30932349" os_list="linux,windows" file_path="device/bluetooth/bluetooth_socket_net.cc"/>
<item id="brandcode_config" hash_code="109679553" type="0" content_hash_code="128843792" os_list="linux,windows" file_path="chrome/browser/profile_resetter/brandcode_config_fetcher.cc"/>
<item id="browser_switcher_ieem_sitelist" hash_code="97159948" type="0" content_hash_code="129062966" os_list="linux,windows" file_path="chrome/browser/browser_switcher/browser_switcher_service.cc"/>
+ <item id="cablev2_websocket_from_client" hash_code="3464399" type="0" content_hash_code="46324469" os_list="windows,linux" file_path="device/fido/cable/fido_tunnel_device.cc"/>
<item id="captive_portal_service" hash_code="88754904" type="0" content_hash_code="70737580" os_list="linux,windows" file_path="components/captive_portal/content/captive_portal_service.cc"/>
<item id="cast_channel_send" hash_code="103172229" type="0" deprecated="2018-08-23" content_hash_code="33946302" file_path=""/>
<item id="cast_keep_alive_delegate" hash_code="134755844" type="0" deprecated="2018-08-23" content_hash_code="66118796" file_path=""/>
@@ -40,7 +41,7 @@ Refer to README.md for content description and update process.
<item id="certificate_verifier_url_loader" hash_code="80134684" type="0" content_hash_code="92630208" os_list="linux,windows" file_path="services/cert_verifier/cert_net_url_loader/cert_net_fetcher_url_loader.cc"/>
<item id="certificate_verifier_url_request" hash_code="85988208" type="0" content_hash_code="59262468" os_list="linux,windows" file_path="net/cert_net/cert_net_fetcher_url_request.cc"/>
<item id="chrome_HaTS_service" hash_code="136028241" type="0" content_hash_code="68990360" os_list="linux,windows" file_path="chrome/browser/ui/hats/hats_survey_status_checker.cc"/>
- <item id="chrome_apps_socket_api" hash_code="8591273" type="0" content_hash_code="70868355" os_list="linux,windows" file_path="extensions/browser/api/socket/socket.cc"/>
+ <item id="chrome_apps_socket_api" hash_code="8591273" type="0" content_hash_code="130709397" os_list="linux,windows" file_path="extensions/browser/api/socket/socket.cc"/>
<item id="chrome_cleaner" hash_code="27071967" type="0" content_hash_code="111240292" os_list="windows" file_path="chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_fetcher_win.cc"/>
<item id="chrome_cleanup_report" hash_code="71102679" type="0" content_hash_code="130565656" os_list="windows" file_path="chrome/chrome_cleaner/logging/cleaner_logging_service.cc"/>
<item id="chrome_feedback_report_app" hash_code="134729048" type="0" content_hash_code="73916972" os_list="linux,windows" file_path="components/feedback/feedback_uploader.cc"/>
@@ -94,20 +95,25 @@ Refer to README.md for content description and update process.
<item id="download_manager_resume" hash_code="35380758" type="0" content_hash_code="41227674" os_list="linux,windows" file_path="components/download/internal/common/download_item_impl.cc"/>
<item id="download_recovery_component" hash_code="131711536" type="0" content_hash_code="3243311" os_list="windows" file_path="chrome/chrome_cleaner/components/recovery_component.cc"/>
<item id="download_web_contents_frame" hash_code="56351037" type="0" content_hash_code="3657889" os_list="linux,windows" file_path="content/browser/web_contents/web_contents_impl.cc"/>
- <item id="downloads_api_run_async" hash_code="121068967" type="0" content_hash_code="87443585" os_list="linux,windows" file_path="chrome/browser/extensions/api/downloads/downloads_api.cc"/>
+ <item id="downloads_api_run_async" hash_code="121068967" type="0" content_hash_code="9280914" os_list="linux,windows" file_path="chrome/browser/extensions/api/downloads/downloads_api.cc"/>
<item id="downloads_dom_handler" hash_code="95951029" type="0" content_hash_code="137150731" os_list="linux,windows" file_path="chrome/browser/ui/webui/downloads/downloads_dom_handler.cc"/>
<item id="drag_download_file" hash_code="95910019" type="0" content_hash_code="126492858" os_list="linux,windows" file_path="content/browser/download/drag_download_file.cc"/>
+ <item id="enterprise_safe_browsing_realtime_url_lookup" hash_code="22262963" type="0" content_hash_code="14052810" os_list="linux,windows" file_path="chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc"/>
<item id="expect_ct_reporter" hash_code="57276415" type="0" deprecated="2018-06-20" content_hash_code="130492494" file_path="services/network/expect_ct_reporter.cc"/>
- <item id="extension_blacklist" hash_code="59592717" type="0" content_hash_code="116742516" os_list="linux,windows" file_path="chrome/browser/extensions/blacklist_state_fetcher.cc"/>
+ <item id="extension_blacklist" hash_code="59592717" type="0" content_hash_code="116742516" os_list="linux,windows" file_path="chrome/browser/extensions/blocklist_state_fetcher.cc"/>
<item id="extension_crx_fetcher" hash_code="21145003" type="0" content_hash_code="79150319" os_list="linux,windows" file_path="extensions/browser/updater/extension_downloader.cc"/>
- <item id="extension_install_signer" hash_code="50464499" type="0" content_hash_code="88088656" os_list="linux,windows" file_path="chrome/browser/extensions/install_signer.cc"/>
- <item id="extension_manifest_fetcher" hash_code="5151071" type="0" content_hash_code="75239211" os_list="linux,windows" file_path="extensions/browser/updater/extension_downloader.cc"/>
+ <item id="extension_install_signer" hash_code="50464499" type="0" content_hash_code="106712014" os_list="linux,windows" file_path="chrome/browser/extensions/install_signer.cc"/>
+ <item id="extension_manifest_fetcher" hash_code="5151071" type="0" content_hash_code="93862569" os_list="linux,windows" file_path="extensions/browser/updater/extension_downloader.cc"/>
<item id="external_policy_fetcher" hash_code="9459438" type="0" content_hash_code="64260484" os_list="linux,windows" file_path="components/policy/core/common/cloud/external_policy_data_fetcher.cc"/>
<item id="family_info" hash_code="30913825" type="0" deprecated="2019-07-30" content_hash_code="25369370" file_path=""/>
<item id="favicon_loader" hash_code="112189210" type="0" content_hash_code="70773116" os_list="linux,windows" file_path="content/renderer/loader/web_url_loader_impl.cc"/>
<item id="feed_image_fetcher" hash_code="87439531" type="0" deprecated="2019-01-04" content_hash_code="26756208" file_path=""/>
<item id="floc_id_provider_impl" hash_code="103052331" type="1" second_id="13704791" content_hash_code="41421380" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="3" file_path="chrome/browser/federated_learning/floc_id_provider_impl.cc"/>
<item id="floc_remote_permission_service" hash_code="13704791" type="2" content_hash_code="86293622" os_list="linux,windows" semantics_fields="1,5" policy_fields="1,2,4" file_path="chrome/browser/federated_learning/floc_remote_permission_service.cc"/>
+ <item id="ftl_messaging_client_ack_messages" hash_code="55663676" type="0" content_hash_code="20913627" os_list="linux,windows" file_path="remoting/signaling/ftl_messaging_client.cc"/>
+ <item id="ftl_messaging_client_receive_messages" hash_code="136248372" type="0" content_hash_code="36609143" os_list="linux,windows" file_path="remoting/signaling/ftl_messaging_client.cc"/>
+ <item id="ftl_messaging_client_send_messages" hash_code="48924790" type="0" content_hash_code="6841587" os_list="linux,windows" file_path="remoting/signaling/ftl_messaging_client.cc"/>
+ <item id="ftl_registration_manager" hash_code="38256901" type="0" content_hash_code="12581281" os_list="linux,windows" file_path="remoting/signaling/ftl_registration_manager.cc"/>
<item id="gaia_auth_check_connection_info" hash_code="4598626" type="0" content_hash_code="57347000" os_list="linux,windows" file_path="google_apis/gaia/gaia_auth_fetcher.cc"/>
<item id="gaia_auth_exchange_cookies" hash_code="134289752" type="0" deprecated="2018-09-11" content_hash_code="66433230" file_path=""/>
<item id="gaia_auth_exchange_device_id" hash_code="39877119" type="0" content_hash_code="61857947" os_list="linux,windows" file_path="google_apis/gaia/gaia_auth_fetcher.cc"/>
@@ -134,7 +140,9 @@ Refer to README.md for content description and update process.
<item id="gcm_unregistration" hash_code="119542033" type="0" content_hash_code="30144127" os_list="linux,windows" file_path="google_apis/gcm/engine/unregistration_request.cc"/>
<item id="geo_language_provider" hash_code="52821843" type="1" second_id="96590038" content_hash_code="65327456" os_list="linux,windows" semantics_fields="1" policy_fields="3,4" file_path="components/language/content/browser/geo_language_provider.cc"/>
<item id="google_url_tracker" hash_code="5492492" type="0" deprecated="2019-08-01" content_hash_code="54474899" file_path=""/>
+ <item id="gstatic_change_password_override_urls" hash_code="135799714" type="0" content_hash_code="133151871" os_list="linux,windows" file_path="components/password_manager/core/browser/change_password_url_service_impl.cc"/>
<item id="headless_url_request" hash_code="29865866" type="0" deprecated="2018-07-10" content_hash_code="76700151" file_path=""/>
+ <item id="heartbeat_sender" hash_code="4883150" type="0" content_hash_code="131927805" os_list="linux,windows" file_path="remoting/host/heartbeat_sender.cc"/>
<item id="hintsfetcher_gethintsrequest" hash_code="34557599" type="0" content_hash_code="57003380" os_list="linux,windows" file_path="components/optimization_guide/hints_fetcher.cc"/>
<item id="history_notice_utils_notice" hash_code="102595701" type="1" second_id="110307337" content_hash_code="130829410" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/>
<item id="history_notice_utils_popup" hash_code="80832574" type="1" second_id="110307337" content_hash_code="30618510" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/>
@@ -147,6 +155,7 @@ Refer to README.md for content description and update process.
<item id="image_annotation" hash_code="107881858" type="0" content_hash_code="76229990" os_list="linux,windows" file_path="services/image_annotation/annotator.cc"/>
<item id="indexed_db_internals_handler" hash_code="131180348" type="0" content_hash_code="59026406" os_list="linux,windows" file_path="content/browser/indexed_db/indexed_db_internals_ui.cc"/>
<item id="interest_feed_send" hash_code="76717919" type="0" content_hash_code="6240898" os_list="linux,windows" file_path="components/feed/core/feed_networking_host.cc"/>
+ <item id="interest_feedv2_image_send" hash_code="92245202" type="0" content_hash_code="107508312" os_list="linux,windows" file_path="components/feed/core/v2/image_fetcher.cc"/>
<item id="interest_feedv2_send" hash_code="85742023" type="0" content_hash_code="49706671" os_list="linux,windows" file_path="components/feed/core/v2/feed_network_impl.cc"/>
<item id="intranet_redirect_detector" hash_code="21785164" type="0" content_hash_code="62025595" os_list="linux,windows" file_path="chrome/browser/intranet_redirect_detector.cc"/>
<item id="invalidation_service" hash_code="72354423" type="0" deprecated="2020-01-23" content_hash_code="78425687" file_path=""/>
@@ -164,12 +173,16 @@ Refer to README.md for content description and update process.
<item id="media_router_global_media_controls_image" hash_code="95983790" type="0" content_hash_code="48851217" os_list="linux,windows" file_path="chrome/browser/ui/global_media_controls/cast_media_notification_item.cc"/>
<item id="metrics_report_ukm" hash_code="727478" type="0" content_hash_code="8746987" os_list="linux,windows" file_path="components/metrics/net/net_metrics_log_uploader.cc"/>
<item id="metrics_report_uma" hash_code="727528" type="0" content_hash_code="10176197" os_list="linux,windows" file_path="components/metrics/net/net_metrics_log_uploader.cc"/>
- <item id="mirroring_get_setup_info" hash_code="78447809" type="0" content_hash_code="112561099" os_list="linux,windows" file_path="components/mirroring/service/session_monitor.cc"/>
+ <item id="mirroring_get_setup_info" hash_code="78447809" type="0" content_hash_code="64839410" os_list="windows,linux" file_path="components/mirroring/service/receiver_setup_querier.cc"/>
<item id="missing" hash_code="77012883" type="0" reserved="1" os_list="linux,windows" file_path=""/>
<item id="mojo_context_state" hash_code="93232258" type="0" deprecated="2017-10-20" content_hash_code="124821232" file_path=""/>
<item id="navigation_predictor_srp_prefetch" hash_code="57773453" type="0" content_hash_code="38811322" os_list="linux,windows" file_path="chrome/browser/prerender/isolated/isolated_prerender_tab_helper.cc"/>
<item id="navigation_url_loader" hash_code="63171670" type="0" content_hash_code="129352907" os_list="linux,windows" file_path="content/browser/loader/navigation_url_loader_impl.cc"/>
- <item id="net_error_helper" hash_code="60071001" type="0" content_hash_code="68322861" os_list="linux,windows" file_path="chrome/renderer/net/net_error_helper.cc"/>
+ <item id="nearby_share_contacts" hash_code="91999155" type="1" second_id="29188932" content_hash_code="74684570" os_list="linux,windows" semantics_fields="1,2,3,4,5" policy_fields="3,4" file_path="chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc"/>
+ <item id="nearby_share_list_public_certificates" hash_code="123714070" type="1" second_id="29188932" content_hash_code="24145546" os_list="linux,windows" semantics_fields="1,2,3,4,5" policy_fields="3,4" file_path="chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc"/>
+ <item id="nearby_share_update_device" hash_code="30656793" type="1" second_id="29188932" content_hash_code="30624346" os_list="linux,windows" semantics_fields="1,2,3,4,5" policy_fields="3,4" file_path="chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc"/>
+ <item id="nearby_webrtc_connection" hash_code="37994740" type="0" content_hash_code="118366066" os_list="linux,windows" file_path="chrome/services/sharing/nearby/platform_v2/webrtc.cc"/>
+ <item id="net_error_helper" hash_code="60071001" type="0" deprecated="2020-07-10" content_hash_code="68322861" file_path=""/>
<item id="network_location_provider" hash_code="23472048" type="1" second_id="96590038" content_hash_code="41087976" os_list="linux,windows" semantics_fields="1" policy_fields="3,4" file_path="services/device/geolocation/network_location_provider.cc"/>
<item id="network_location_request" hash_code="96590038" type="2" content_hash_code="80741011" os_list="linux,windows" semantics_fields="2,3,4,5" policy_fields="-1" file_path="services/device/geolocation/network_location_request.cc"/>
<item id="network_time_component" hash_code="46188932" type="0" content_hash_code="28051857" os_list="linux,windows" file_path="components/network_time/network_time_tracker.cc"/>
@@ -208,14 +221,14 @@ Refer to README.md for content description and update process.
<item id="payment_manifest_downloader" hash_code="84045030" type="0" content_hash_code="19293316" os_list="linux,windows" file_path="components/payments/core/payment_manifest_downloader.cc"/>
<item id="payments_sync_cards" hash_code="95588446" type="0" content_hash_code="56526513" os_list="linux,windows" file_path="components/autofill/core/browser/payments/payments_client.cc"/>
<item id="pdf_plugin_placeholder" hash_code="56866367" type="0" content_hash_code="16907221" os_list="linux,windows" file_path="chrome/browser/plugins/pdf_plugin_placeholder_observer.cc"/>
- <item id="pepper_tcp_socket" hash_code="120623198" type="0" content_hash_code="105652563" os_list="linux,windows" file_path="content/browser/renderer_host/pepper/pepper_socket_utils.cc"/>
- <item id="pepper_udp_socket" hash_code="53512439" type="0" content_hash_code="85431089" os_list="linux,windows" file_path="content/browser/renderer_host/pepper/pepper_socket_utils.cc"/>
+ <item id="pepper_tcp_socket" hash_code="120623198" type="0" content_hash_code="27489892" os_list="linux,windows" file_path="content/browser/renderer_host/pepper/pepper_socket_utils.cc"/>
+ <item id="pepper_udp_socket" hash_code="53512439" type="0" content_hash_code="7268418" os_list="linux,windows" file_path="content/browser/renderer_host/pepper/pepper_socket_utils.cc"/>
<item id="per_user_topic_registration_request" hash_code="10498172" type="0" content_hash_code="57098847" os_list="linux,windows" file_path="components/invalidation/impl/per_user_topic_subscription_request.cc"/>
<item id="permission_reporting" hash_code="131741641" type="0" deprecated="2018-03-06" content_hash_code="7213535" file_path=""/>
<item id="permission_request_creator" hash_code="43206794" type="0" deprecated="2019-07-30" content_hash_code="73571699" file_path=""/>
<item id="persist_blob_to_indexed_db" hash_code="32030464" type="0" deprecated="2018-08-13" content_hash_code="35410079" file_path=""/>
<item id="plugins_resource_service" hash_code="49601082" type="0" content_hash_code="6877335" os_list="linux,windows" file_path="chrome/browser/plugins/plugins_resource_service.cc"/>
- <item id="policy_blacklist_service" hash_code="49799644" type="0" content_hash_code="57843386" os_list="linux,windows" file_path="components/policy/content/policy_blacklist_service.cc"/>
+ <item id="policy_blacklist_service" hash_code="49799644" type="0" content_hash_code="57843386" os_list="linux,windows" file_path="components/policy/content/policy_blocklist_service.cc"/>
<item id="popular_sites_fetch" hash_code="50755044" type="0" content_hash_code="6910083" os_list="linux,windows" file_path="components/ntp_tiles/popular_sites_impl.cc"/>
<item id="port_forwarding_controller_socket" hash_code="95075845" type="0" content_hash_code="122163428" os_list="linux,windows" file_path="chrome/browser/devtools/device/port_forwarding_controller.cc"/>
<item id="ppapi_download_request" hash_code="135967426" type="0" content_hash_code="110461402" os_list="linux,windows" file_path="chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc"/>
@@ -234,6 +247,7 @@ Refer to README.md for content description and update process.
<item id="proxy_config_headless" hash_code="133221587" type="0" content_hash_code="77459277" os_list="linux,windows" file_path="headless/lib/browser/headless_request_context_manager.cc"/>
<item id="proxy_config_settings" hash_code="136468456" type="0" content_hash_code="19527377" os_list="linux,windows" file_path="components/proxy_config/pref_proxy_config_tracker_impl.cc"/>
<item id="proxy_config_system" hash_code="11258689" type="0" content_hash_code="77057929" os_list="linux,windows" file_path="net/proxy_resolution/configured_proxy_resolution_service.cc"/>
+ <item id="proxy_config_windows_resolver" hash_code="13924805" type="0" content_hash_code="123023599" os_list="windows" file_path="net/proxy_resolution/win/windows_system_proxy_resolution_request.cc"/>
<item id="proxy_script_fetcher" hash_code="37531401" type="0" deprecated="2018-03-16" content_hash_code="31866133" file_path=""/>
<item id="puch_client_channel" hash_code="34459548" type="0" deprecated="2020-01-23" content_hash_code="92475475" file_path=""/>
<item id="qr_code_save" hash_code="87963126" type="0" content_hash_code="72717245" os_list="linux,windows" file_path="chrome/browser/ui/views/qrcode_generator/qrcode_generator_bubble.cc"/>
@@ -244,10 +258,17 @@ Refer to README.md for content description and update process.
<item id="quic_chromium_packet_writer" hash_code="20153177" type="0" content_hash_code="29657765" os_list="linux,windows" file_path="net/quic/quic_chromium_packet_writer.cc"/>
<item id="ranker_url_fetcher" hash_code="95682324" type="0" content_hash_code="45958626" os_list="linux,windows" file_path="components/assist_ranker/ranker_url_fetcher.cc"/>
<item id="rappor_report" hash_code="44606780" type="0" content_hash_code="111287826" os_list="linux,windows" file_path="components/rappor/log_uploader.cc"/>
- <item id="receive_messages_express" hash_code="29506140" type="0" content_hash_code="38581365" os_list="linux,windows" file_path="chrome/browser/nearby_sharing/tachyon/receive_messages_express.cc"/>
+ <item id="receive_messages_express" hash_code="29506140" type="0" content_hash_code="38581365" os_list="linux,windows" file_path="chrome/browser/nearby_sharing/instantmessaging/receive_messages_express.cc"/>
<item id="refresh_token_annotation_request" hash_code="7433837" type="1" second_id="29188932" deprecated="2018-01-17" content_hash_code="137103383" file_path=""/>
<item id="remote_copy_message_handler" hash_code="80255301" type="0" content_hash_code="117673331" os_list="linux,windows" file_path="chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc"/>
<item id="remote_suggestions_provider" hash_code="49544361" type="0" content_hash_code="126329742" os_list="linux,windows" file_path="components/ntp_snippets/remote/cached_image_fetcher.cc"/>
+ <item id="remoting_directory_delete_host" hash_code="89093734" type="0" content_hash_code="65893931" os_list="linux,windows" file_path="remoting/base/directory_service_client.cc"/>
+ <item id="remoting_directory_get_host_list" hash_code="93434368" type="0" content_hash_code="59980448" os_list="linux,windows" file_path="remoting/base/directory_service_client.cc"/>
+ <item id="remoting_directory_register_host" hash_code="117688925" type="0" content_hash_code="74224493" os_list="linux,windows" file_path="remoting/base/directory_service_client.cc"/>
+ <item id="remoting_ice_config_request" hash_code="88945310" type="0" content_hash_code="94742293" os_list="linux,windows" file_path="remoting/protocol/remoting_ice_config_request.cc"/>
+ <item id="remoting_log_to_server" hash_code="99742369" type="0" content_hash_code="117118166" os_list="linux,windows" file_path="remoting/signaling/remoting_log_to_server.cc"/>
+ <item id="remoting_register_support_host_request" hash_code="67117364" type="0" content_hash_code="15955284" os_list="linux,windows" file_path="remoting/host/remoting_register_support_host_request.cc"/>
+ <item id="remoting_telemetry_log_writer" hash_code="107268760" type="0" content_hash_code="81741595" os_list="linux,windows" file_path="remoting/base/telemetry_log_writer.cc"/>
<item id="render_view_context_menu" hash_code="25844439" type="0" content_hash_code="69471170" os_list="linux,windows" file_path="chrome/browser/renderer_context_menu/render_view_context_menu.cc"/>
<item id="renderer_initiated_download" hash_code="116443055" type="0" content_hash_code="37846436" os_list="linux,windows" file_path="content/browser/frame_host/render_frame_host_impl.cc"/>
<item id="reporting" hash_code="109891200" type="0" content_hash_code="125758928" os_list="linux,windows" file_path="net/reporting/reporting_uploader.cc"/>
@@ -270,11 +291,12 @@ Refer to README.md for content description and update process.
<item id="safe_browsing_v4_get_hash" hash_code="8561691" type="0" content_hash_code="132435617" os_list="linux,windows" file_path="components/safe_browsing/core/db/v4_get_hash_protocol_manager.cc"/>
<item id="safe_browsing_v4_update" hash_code="82509217" type="0" content_hash_code="5247849" os_list="linux,windows" file_path="components/safe_browsing/core/db/v4_update_protocol_manager.cc"/>
<item id="safety_check_update_connectivity" hash_code="137724067" type="0" content_hash_code="30977369" os_list="linux,windows" file_path="components/safety_check/update_check_helper.cc"/>
+ <item id="sanitized_image_source" hash_code="82344448" type="0" content_hash_code="39770427" os_list="linux,windows" file_path="chrome/browser/ui/webui/sanitized_image_source.cc"/>
<item id="save_file_manager" hash_code="56275203" type="0" content_hash_code="56692339" os_list="linux,windows" file_path="content/browser/download/save_file_manager.cc"/>
<item id="sdch_dictionary_fetch" hash_code="47152935" type="0" deprecated="2017-09-16" content_hash_code="16764294" file_path=""/>
<item id="search_suggest_service" hash_code="57785193" type="0" content_hash_code="132247652" os_list="linux,windows" file_path="chrome/browser/search/search_suggest/search_suggest_loader_impl.cc"/>
<item id="security_key_socket" hash_code="31074955" type="0" content_hash_code="13741232" os_list="linux,windows" file_path="remoting/host/security_key/security_key_socket.cc"/>
- <item id="send_message_express" hash_code="23527666" type="0" content_hash_code="96850228" os_list="linux,windows" file_path="chrome/browser/nearby_sharing/tachyon/send_message_express.cc"/>
+ <item id="send_message_express" hash_code="23527666" type="0" content_hash_code="96850228" os_list="linux,windows" file_path="chrome/browser/nearby_sharing/instantmessaging/send_message_express.cc"/>
<item id="service_worker_navigation_preload" hash_code="129872904" type="0" content_hash_code="79473248" os_list="linux,windows" file_path="content/browser/service_worker/service_worker_fetch_dispatcher.cc"/>
<item id="service_worker_update_checker" hash_code="130931413" type="0" content_hash_code="46608086" os_list="linux,windows" file_path="content/browser/service_worker/service_worker_single_script_update_checker.cc"/>
<item id="services_http_server_error_response" hash_code="59302801" type="0" content_hash_code="127774041" os_list="linux,windows" file_path="services/network/public/cpp/server/http_server.cc"/>
@@ -328,11 +350,12 @@ Refer to README.md for content description and update process.
<item id="webrtc_log_upload" hash_code="62443804" type="0" content_hash_code="33661169" os_list="linux,windows" file_path="chrome/browser/media/webrtc/webrtc_log_uploader.cc"/>
<item id="webrtc_peer_connection" hash_code="63497370" type="0" content_hash_code="60553259" os_list="linux,windows" file_path="third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc"/>
<item id="websocket_basic_stream" hash_code="51586722" type="0" content_hash_code="68121427" os_list="linux,windows" file_path="net/websockets/websocket_basic_stream.cc"/>
- <item id="websocket_stream" hash_code="17188928" type="0" content_hash_code="7250776" os_list="linux,windows" file_path="net/websockets/websocket_stream.cc"/>
+ <item id="websocket_stream" hash_code="17188928" type="0" content_hash_code="7250776" os_list="linux,windows" file_path="content/browser/websockets/websocket_connector_impl.cc"/>
<item id="webstore_data_fetcher" hash_code="26302604" type="0" content_hash_code="24000746" os_list="linux,windows" file_path="chrome/browser/extensions/webstore_data_fetcher.cc"/>
<item id="webstore_install_helper" hash_code="25921771" type="0" content_hash_code="10206361" os_list="linux,windows" file_path="chrome/browser/extensions/webstore_install_helper.cc"/>
- <item id="webstore_installer" hash_code="18764319" type="0" content_hash_code="11030110" os_list="linux,windows" file_path="chrome/browser/extensions/webstore_installer.cc"/>
+ <item id="webstore_installer" hash_code="18764319" type="0" content_hash_code="70871152" os_list="linux,windows" file_path="chrome/browser/extensions/webstore_installer.cc"/>
<item id="webui_content_scripts_download" hash_code="100545943" type="0" content_hash_code="119898059" os_list="linux,windows" file_path="extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.cc"/>
+ <item id="well_known_path_that_should_not_exist" hash_code="134618785" type="0" content_hash_code="55913167" os_list="linux,windows" file_path="components/password_manager/core/browser/well_known_change_password_state.cc"/>
<item id="worker_script_load" hash_code="72087791" type="0" content_hash_code="24889169" os_list="linux,windows" file_path="content/browser/worker_host/worker_script_fetcher.cc"/>
<item id="xmpp_signal_strategy" hash_code="88906454" type="0" deprecated="2019-07-16" content_hash_code="88958321" file_path=""/>
</annotations>
diff --git a/chromium/tools/traffic_annotation/summary/grouping.xml b/chromium/tools/traffic_annotation/summary/grouping.xml
new file mode 100644
index 00000000000..67b51df8985
--- /dev/null
+++ b/chromium/tools/traffic_annotation/summary/grouping.xml
@@ -0,0 +1,391 @@
+<!--
+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.
+
+Refer to README.md for content description and update process. Use hidden="true"
+to suppress a given annotation from appearing within the generated document. e.g
+<traffic_annotation unique_id="foobar" hidden="true"/>
+
+Unsorted annotations can be placed under the 'Unsorted' group. Keep
+hidden="true" so that these annotations don't show up in the document.
+-->
+
+<groups>
+ <group name="Unsorted" hidden="true"> <!--Unsorted annotations go here.-->
+ <sender name="Unsorted Sender">
+ <traffic_annotation unique_id="omnibox_result_change"/>
+ <traffic_annotation unique_id="browser_switcher_ieem_sitelist"/>
+ <traffic_annotation unique_id="adb_client_socket"/>
+ <traffic_annotation unique_id="devtools_network_resource"/>
+ <traffic_annotation unique_id="downloads_api_run_async"/>
+ <traffic_annotation unique_id="media_feeds_checker"/>
+ <traffic_annotation unique_id="isolated_prerender_loader"/>
+ <traffic_annotation unique_id="intranet_redirect_detector"/>
+ <traffic_annotation unique_id="dial_url_fetcher"/>
+ <traffic_annotation unique_id="send_message_express"/>
+ <traffic_annotation unique_id="browser_switcher_ieem_sitelist"/>
+ <traffic_annotation unique_id="isolated_prerender_probe"/>
+ <traffic_annotation unique_id="enterprise_safe_browsing_realtime_url_lookup"/>
+ <traffic_annotation unique_id="remote_copy_message_handler"/>
+ <traffic_annotation unique_id="chrome_HaTS_service"/>
+ <traffic_annotation unique_id="port_forwarding_controller_socket"/>
+ <traffic_annotation unique_id="media_feeds"/>
+ <traffic_annotation unique_id="receive_messages_express"/>
+ <traffic_annotation unique_id="pdf_plugin_placeholder"/>
+ <traffic_annotation unique_id="predictive_prefetch"/>
+ <traffic_annotation unique_id="navigation_predictor_srp_prefetch"/>
+ <traffic_annotation unique_id="cloud_print_privet_register"/>
+ <traffic_annotation unique_id="cloud_print_search"/>
+ <traffic_annotation unique_id="privet_http_impl"/>
+ <traffic_annotation unique_id="render_view_context_menu"/>
+ <traffic_annotation unique_id="ice_config_fetcher"/>
+ <traffic_annotation unique_id="media_router_global_media_controls_image"/>
+ <traffic_annotation unique_id="omnibox_navigation_observer"/>
+ <traffic_annotation unique_id="credenential_avatar"/>
+ <traffic_annotation unique_id="well_known_path_that_should_not_exist"/>
+ <traffic_annotation unique_id="devtools_free_data_source"/>
+ <traffic_annotation unique_id="download_internals_webui_source"/>
+ <traffic_annotation unique_id="downloads_dom_handler"/>
+ <traffic_annotation unique_id="new_tab_page_handler"/>
+ <traffic_annotation unique_id="sharing_webrtc_connection"/>
+ <traffic_annotation unique_id="cloud_speech_recognition"/>
+ <traffic_annotation unique_id="cast_socket"/>
+ <traffic_annotation unique_id="dom_distiller"/>
+ <traffic_annotation unique_id="download_manager_resume"/>
+ <traffic_annotation unique_id="parallel_download_job"/>
+ <traffic_annotation unique_id="interest_feedv2_send"/>
+ <traffic_annotation unique_id="mirroring_get_setup_info"/>
+ <traffic_annotation unique_id="cast_udp_socket"/>
+ <traffic_annotation unique_id="icon_cacher"/>
+ <traffic_annotation unique_id="omnibox_suggest_deletion"/>
+ <traffic_annotation unique_id="omnibox_suggest"/>
+ <traffic_annotation unique_id="openscreen_tls_message"/>
+ <traffic_annotation unique_id="openscreen_message"/>
+ <traffic_annotation unique_id="password_requirements_spec_fetch"/>
+ <traffic_annotation unique_id="payment_manifest_downloader"/>
+ <traffic_annotation unique_id="proxy_config_settings"/>
+ <traffic_annotation unique_id="query_tiles_image_loader"/>
+ <traffic_annotation unique_id="query_tiles_fetcher"/>
+ <traffic_annotation unique_id="qr_code_save"/>
+ <traffic_annotation unique_id="safe_browsing_cache_collector"/>
+ <traffic_annotation unique_id="safety_check_update_connectivity"/>
+ <traffic_annotation unique_id="open_search"/>
+ <traffic_annotation unique_id="logo_service"/>
+ <traffic_annotation unique_id="ssl_name_mismatch_lookup"/>
+ <traffic_annotation unique_id="ui_devtools_server"/>
+ <traffic_annotation unique_id="viz_devtools_server"/>
+ <traffic_annotation unique_id="appcache_update_job"/>
+ <traffic_annotation unique_id="background_fetch_context"/>
+ <traffic_annotation unique_id="conversion_measurement_report"/>
+ <traffic_annotation unique_id="devtools_proxy_config"/>
+ <traffic_annotation unique_id="tethering_handler_socket"/>
+ <traffic_annotation unique_id="drag_download_file"/>
+ <traffic_annotation unique_id="save_file_manager"/>
+ <traffic_annotation unique_id="renderer_initiated_download"/>
+ <traffic_annotation unique_id="indexed_db_internals_handler"/>
+ <traffic_annotation unique_id="navigation_url_loader"/>
+ <traffic_annotation unique_id="url_prevision_fetcher"/>
+ <traffic_annotation unique_id="pepper_tcp_socket"/>
+ <traffic_annotation unique_id="pepper_udp_socket"/>
+ <traffic_annotation unique_id="service_worker_navigation_preload"/>
+ <traffic_annotation unique_id="service_worker_update_checker"/>
+ <traffic_annotation unique_id="download_web_contents_frame"/>
+ <traffic_annotation unique_id="sigined_exchange_cert_fetcher"/>
+ <traffic_annotation unique_id="sigined_exchange_validity_pinger"/>
+ <traffic_annotation unique_id="sigined_exchange_validity_pinger"/>
+ <traffic_annotation unique_id="web_bundle_loader"/>
+ <traffic_annotation unique_id="worker_script_load"/>
+ <traffic_annotation unique_id="blink_resource_loader"/>
+ <traffic_annotation unique_id="blink_extension_resource_loader"/>
+ <traffic_annotation unique_id="favicon_loader"/>
+ <traffic_annotation unique_id="bluetooth_socket"/>
+ <traffic_annotation unique_id="webui_content_scripts_download"/>
+ <traffic_annotation unique_id="extension_manifest_fetcher"/>
+ <traffic_annotation unique_id="extension_crx_fetcher"/>
+ <traffic_annotation unique_id="gaia_create_reauth_proof_token_for_parent"/>
+ <traffic_annotation unique_id="proxy_config_headless"/>
+ <traffic_annotation unique_id="cast_udp_transport"/>
+ <traffic_annotation unique_id="certificate_verifier_url_request"/>
+ <traffic_annotation unique_id="bidirectional_stream"/>
+ <traffic_annotation unique_id="proxy_config_system"/>
+ <traffic_annotation unique_id="quic_chromium_incoming_session"/>
+ <traffic_annotation unique_id="quic_chromium_incoming_pending_session"/>
+ <traffic_annotation unique_id="quic_chromium_packet_writer"/>
+ <traffic_annotation unique_id="proxy_config_direct"/>
+ <traffic_annotation unique_id="reporting"/>
+ <traffic_annotation unique_id="socket_bio_adapter"/>
+ <traffic_annotation unique_id="spdy_session_control"/>
+ <traffic_annotation unique_id="spdy_push_stream"/>
+ <traffic_annotation unique_id="websocket_basic_stream"/>
+ <traffic_annotation unique_id="websocket_stream"/>
+ <traffic_annotation unique_id="notification_client"/>
+ <traffic_annotation unique_id="security_key_socket"/>
+ <traffic_annotation unique_id="ssl_hmac_channel_authenticator"/>
+ <traffic_annotation unique_id="stream_message_pipe_adapter"/>
+ <traffic_annotation unique_id="stream_packet_socket"/>
+ <traffic_annotation unique_id="certificate_verifier_url_loader"/>
+ <traffic_annotation unique_id="expect_ct_reporter"/>
+ <traffic_annotation unique_id="domain_security_policy"/>
+ <traffic_annotation unique_id="origin_policy_loader"/>
+ <traffic_annotation unique_id="services_http_server_error_response"/>
+ <traffic_annotation unique_id="webrtc_peer_connection"/>
+ <traffic_annotation unique_id="floc_id_provider_impl"/>
+ <traffic_annotation unique_id="gstatic_change_password_override_urls"/>
+ <traffic_annotation unique_id="interest_feedv2_image_send"/>
+ <traffic_annotation unique_id="sanitized_image_source"/>
+ </sender>
+ </group>
+ <group name="Admin Features">
+ <sender name="Cloud Policy">
+ <traffic_annotation unique_id="external_policy_fetcher"/>
+ <traffic_annotation unique_id="user_info_fetcher"/>
+ </sender>
+ <sender name="Developer Tools">
+ <traffic_annotation unique_id="devtools_handle_front_end_messages"/>
+ <traffic_annotation unique_id="devtools_hard_coded_data_source"/>
+ <traffic_annotation unique_id="devtools_http_handler"/>
+ </sender>
+ </group>
+ <group name="Apps and Content">
+ <sender name="Chrome Cleanup">
+ <traffic_annotation unique_id="chrome_cleaner"/>
+ <traffic_annotation unique_id="chrome_cleanup_report"/>
+ </sender>
+ <sender name="Extension and App Management">
+ <traffic_annotation unique_id="chrome_apps_socket_api"/>
+ <traffic_annotation unique_id="extension_blacklist"/>
+ <traffic_annotation unique_id="extension_install_signer"/>
+ <traffic_annotation unique_id="sync_file_system"/>
+ </sender>
+ <sender name="Webstore">
+ <traffic_annotation unique_id="content_hash_verification_job"/>
+ <traffic_annotation unique_id="webstore_data_fetcher"/>
+ <traffic_annotation unique_id="webstore_install_helper"/>
+ <traffic_annotation unique_id="webstore_installer"/>
+ </sender>
+ <sender name="Google Cloud Messaging">
+ <traffic_annotation unique_id="gcm_channel_status_request"/>
+ <traffic_annotation unique_id="gcm_checkin"/>
+ <traffic_annotation unique_id="gcm_connection_factory"/>
+ <traffic_annotation unique_id="gcm_registration"/>
+ <traffic_annotation unique_id="gcm_unregistration"/>
+ <traffic_annotation unique_id="web_push_message"/>
+ <traffic_annotation unique_id="per_user_topic_registration_request"/>
+ </sender>
+ </group>
+ <group name="Child-protection and Safe Browsing Features">
+ <sender name="Safe Browsing">
+ <traffic_annotation unique_id="client_download_request"/>
+ <traffic_annotation unique_id="password_protection_request"/>
+ <traffic_annotation unique_id="safe_browsing_certificate_error_reporting"/>
+ <traffic_annotation unique_id="safe_browsing_client_side_malware_detector"/>
+ <traffic_annotation unique_id="safe_browsing_client_side_phishing_detector"/>
+ <traffic_annotation unique_id="safe_browsing_extended_reporting"/>
+ <traffic_annotation unique_id="safe_browsing_feedback"/>
+ <traffic_annotation unique_id="safe_browsing_incident"/>
+ <traffic_annotation unique_id="safe_browsing_module_loader"/>
+ <traffic_annotation unique_id="safe_browsing_v4_get_hash"/>
+ <traffic_annotation unique_id="safe_browsing_v4_update"/>
+ <traffic_annotation unique_id="safe_browsing_binary_upload"/>
+ <traffic_annotation unique_id="safe_browsing_realtime_url_lookup"/>
+ <traffic_annotation unique_id="unwanted_software_report"/>
+ <traffic_annotation unique_id="ppapi_download_request"/>
+ </sender>
+ </group>
+ <group name="Identity and Security">
+ <sender name="Accounts, Identity, and Authentication">
+ <traffic_annotation unique_id="accounts_image_fetcher"/>
+ <traffic_annotation unique_id="device_management_service"/>
+ <traffic_annotation unique_id="lookup_single_password_leak"/>
+ </sender>
+ <sender name="OAuth 2.0">
+ <traffic_annotation unique_id="gaia_auth_check_connection_info"/>
+ <traffic_annotation unique_id="gaia_auth_exchange_device_id"/>
+ <traffic_annotation unique_id="gaia_auth_fetch_for_uber"/>
+ <traffic_annotation unique_id="gaia_auth_get_user_info"/>
+ <traffic_annotation unique_id="gaia_auth_list_accounts"/>
+ <traffic_annotation unique_id="gaia_auth_log_out"/>
+ <traffic_annotation unique_id="gaia_auth_login"/>
+ <traffic_annotation unique_id="gaia_auth_merge_sessions"/>
+ <traffic_annotation unique_id="gaia_auth_revoke_token"/>
+ <traffic_annotation unique_id="gaia_auth_multilogin"/>
+ <traffic_annotation unique_id="gaia_cookie_manager_external_cc_result"/>
+ <traffic_annotation unique_id="gaia_oauth_client_get_token_info"/>
+ <traffic_annotation unique_id="gaia_oauth_client_get_tokens"/>
+ <traffic_annotation unique_id="gaia_oauth_client_get_user_info"/>
+ <traffic_annotation unique_id="gaia_oauth_client_refresh_token"/>
+ <traffic_annotation unique_id="policy_blacklist_service"/>
+ <traffic_annotation unique_id="oauth2_access_token_fetcher"/>
+ <traffic_annotation unique_id="oauth2_mint_token_flow"/>
+ </sender>
+ <sender name="Payments">
+ <traffic_annotation unique_id="payments_sync_cards"/>
+ </sender>
+ </group>
+ <group name="Location">
+ <sender name="Location">
+ <traffic_annotation unique_id="geo_language_provider"/>
+ <traffic_annotation unique_id="lib_address_input"/>
+ <traffic_annotation unique_id="network_location_provider"/>
+ </sender>
+ <sender name="RLZ Ping">
+ <traffic_annotation unique_id="rlz_ping"/>
+ </sender>
+ </group>
+ <group name="Media">
+ <sender name="Plugins">
+ <traffic_annotation unique_id="plugins_resource_service"/>
+ </sender>
+ </group>
+ <group name="Mobile">
+ <sender name="Android">
+ <traffic_annotation unique_id="affiliation_lookup"/>
+ <traffic_annotation unique_id="android_device_manager_socket"/>
+ <traffic_annotation unique_id="android_web_socket"/>
+ </sender>
+ </group>
+ <group name="Networking">
+ <sender name="Brandcode Configuration">
+ <traffic_annotation unique_id="brandcode_config"/>
+ </sender>
+ <sender name="Captive Portal">
+ <traffic_annotation unique_id="captive_portal_service"/>
+ </sender>
+ <sender name="DNS">
+ <traffic_annotation unique_id="dns_over_https"/>
+ <traffic_annotation unique_id="dns_transaction"/>
+ <traffic_annotation unique_id="domain_reliability_report_upload"/>
+ <traffic_annotation unique_id="http_server_error_response"/>
+ </sender>
+ <sender name="Data Reduction Proxy">
+ <traffic_annotation unique_id="data_reduction_proxy_config"/>
+ <traffic_annotation unique_id="data_reduction_proxy_secure_proxy_check"/>
+ <traffic_annotation unique_id="data_reduction_proxy_warmup"/>
+ <traffic_annotation unique_id="hintsfetcher_gethintsrequest"/>
+ <traffic_annotation unique_id="optimization_guide_model"/>
+ <traffic_annotation unique_id="previews_litepage_prober"/>
+ </sender>
+ <sender name="Network">
+ <traffic_annotation unique_id="network_time_component"/>
+ </sender>
+ </group>
+ <group name="Printing">
+ <sender name="Cloud Print">
+ <traffic_annotation unique_id="cloud_print_backend"/>
+ <traffic_annotation unique_id="cloud_print_credential_update"/>
+ <traffic_annotation unique_id="cloud_print_proxy"/>
+ <traffic_annotation unique_id="printer_job_handler"/>
+ </sender>
+ </group>
+ <group name="Search">
+ <sender name="Web History">
+ <traffic_annotation unique_id="web_history_counter"/>
+ <traffic_annotation unique_id="web_history_expire"/>
+ <traffic_annotation unique_id="web_history_expire_between_dates"/>
+ <traffic_annotation unique_id="web_history_query"/>
+ <traffic_annotation unique_id="web_history_delete_url"/>
+ <traffic_annotation unique_id="history_notice_utils_notice"/>
+ <traffic_annotation unique_id="history_notice_utils_popup"/>
+ <traffic_annotation unique_id="history_ui_favicon_request_handler_get_favicon"/>
+ </sender>
+ <sender name="Omnibox">
+ <traffic_annotation unique_id="omnibox_documentsuggest"/>
+ <traffic_annotation unique_id="omnibox_zerosuggest"/>
+ <traffic_annotation unique_id="one_google_bar_service"/>
+ </sender>
+ </group>
+ <group name="Updates, Recovery, and Crash Reports">
+ <sender name="Chrome Variations Service">
+ <traffic_annotation unique_id="chrome_variations_service"/>
+ </sender>
+ <sender name="Updates">
+ <traffic_annotation unique_id="update_client"/>
+ </sender>
+ <sender name="ChromeOS Recovery">
+ <traffic_annotation unique_id="cros_recovery_image_download"/>
+ <traffic_annotation unique_id="download_recovery_component"/>
+ </sender>
+ <sender name="Chrome Performance, Feedback, and Usage Statistics">
+ <traffic_annotation unique_id="background_performance_tracer"/>
+ <traffic_annotation unique_id="chrome_feedback_report_app"/>
+ <traffic_annotation unique_id="metrics_report_ukm"/>
+ <traffic_annotation unique_id="metrics_report_uma"/>
+ <traffic_annotation unique_id="rappor_report"/>
+ </sender>
+ <sender name="WebRTC">
+ <traffic_annotation unique_id="webrtc_event_log_uploader"/>
+ <traffic_annotation unique_id="webrtc_log_upload"/>
+ </sender>
+ </group>
+ <group name="User Experience">
+ <sender name="Autofill">
+ <traffic_annotation unique_id="autofill_query"/>
+ <traffic_annotation unique_id="autofill_upload"/>
+ <traffic_annotation unique_id="load_autofill_gstatic_data"/>
+ </sender>
+ <sender name="Feed Library">
+ <traffic_annotation unique_id="interest_feed_send"/>
+ </sender>
+ <sender name="Personalization">
+ <traffic_annotation unique_id="profile_avatar"/>
+ <traffic_annotation unique_id="profile_resetter_upload"/>
+ <traffic_annotation unique_id="signed_in_profile_avatar"/>
+ <traffic_annotation unique_id="push_client_channel"/>
+ </sender>
+ <sender name="Favicon">
+ <traffic_annotation unique_id="content_suggestion_get_favicon"/>
+ <traffic_annotation unique_id="icon_catcher_get_large_icon"/>
+ </sender>
+ <sender name="Images">
+ <traffic_annotation unique_id="image_annotation"/>
+ </sender>
+ <sender name="Link Doctor">
+ <traffic_annotation unique_id="net_error_helper"/>
+ </sender>
+ <sender name="Prefetch">
+ <traffic_annotation unique_id="offline_prefetch"/>
+ <traffic_annotation unique_id="prefetch_download"/>
+ <traffic_annotation unique_id="prefetch_visuals"/>
+ </sender>
+ <sender name="New Tab Page">
+ <traffic_annotation unique_id="backdrop_collection_images_download"/>
+ <traffic_annotation unique_id="backdrop_collection_names_download"/>
+ <traffic_annotation unique_id="backdrop_next_image_download"/>
+ <traffic_annotation unique_id="ntp_snippets_fetch"/>
+ <traffic_annotation unique_id="ntp_custom_background"/>
+ <traffic_annotation unique_id="ntp_icon_source"/>
+ <traffic_annotation unique_id="nux_ntp_background_preview"/>
+ <traffic_annotation unique_id="popular_sites_fetch"/>
+ <traffic_annotation unique_id="search_suggest_service"/>
+ <traffic_annotation unique_id="remote_suggestions_provider"/>
+ <traffic_annotation unique_id="promo_service"/>
+ </sender>
+ <sender name="Speech Recognition">
+ <traffic_annotation unique_id="speech_recognition_downstream"/>
+ <traffic_annotation unique_id="speech_recognition_upstream"/>
+ </sender>
+ <sender name="Spellcheck">
+ <traffic_annotation unique_id="spellcheck_hunspell_dictionary"/>
+ <traffic_annotation unique_id="spellcheck_lookup"/>
+ </sender>
+ <sender name="Suggestions">
+ <traffic_annotation unique_id="suggestions_service"/>
+ </sender>
+ <sender name="Translate">
+ <traffic_annotation unique_id="translate_url_fetcher"/>
+ </sender>
+ <sender name="Chrome Sync">
+ <traffic_annotation unique_id="invalidation_service"/>
+ <traffic_annotation unique_id="sync_http_bridge"/>
+ <traffic_annotation unique_id="sync_stop_reporter"/>
+ <traffic_annotation unique_id="sync_clipboard_service"/>
+ </sender>
+ <sender name="Assist Rank">
+ <traffic_annotation unique_id="ranker_url_fetcher"/>
+ </sender>
+ <sender name="Phone as a Security Key">
+ <traffic_annotation unique_id="cablev2_websocket_from_client"/>
+ </sender>
+ </group>
+</groups>
diff --git a/chromium/tools/translation/helper/grd_helper.py b/chromium/tools/translation/helper/grd_helper.py
index 96b78f8acb7..80670246ccd 100644
--- a/chromium/tools/translation/helper/grd_helper.py
+++ b/chromium/tools/translation/helper/grd_helper.py
@@ -48,7 +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()
+ if msg.IsTranslateable() and not msg.IsAccessibilityWithNoUI()
}
diff --git a/chromium/tools/update_pgo_profiles.py b/chromium/tools/update_pgo_profiles.py
index 8935bfd656f..f48dbcf07b5 100755
--- a/chromium/tools/update_pgo_profiles.py
+++ b/chromium/tools/update_pgo_profiles.py
@@ -132,7 +132,7 @@ def main():
parser.add_argument(
'--target',
required=True,
- choices=['win32', 'win64', 'mac'],
+ choices=['win32', 'win64', 'mac', 'linux'],
help='Identifier of a specific target platform + architecture.')
subparsers = parser.add_subparsers()
diff --git a/chromium/tools/v8_context_snapshot/BUILD.gn b/chromium/tools/v8_context_snapshot/BUILD.gn
index 400a2de58c7..7728ccccee9 100644
--- a/chromium/tools/v8_context_snapshot/BUILD.gn
+++ b/chromium/tools/v8_context_snapshot/BUILD.gn
@@ -64,12 +64,21 @@ if (use_v8_context_snapshot) {
deps = [ ":v8_context_snapshot_generator($v8_snapshot_toolchain)" ]
if (is_component_build) {
- # In component builds, this forces the generator to rerun whenever the v8
- # shared library is rebuilt. Without it would only regenerate if the
- # generator itself was rebuilt.
- inputs = [ "$root_out_dir/${shlib_prefix}v8${shlib_extension}" ]
-
- deps += [ "//v8" ]
+ # In the component build mode, the snapshot should be updated when any of
+ # the generator executable or the shared libraries get updated. Note that
+ # it's possible that some of the shared libraries are updated without
+ # having the executable updated.
+ inputs = [
+ "$root_out_dir/${shlib_prefix}blink_core${shlib_extension}",
+ "$root_out_dir/${shlib_prefix}blink_modules${shlib_extension}",
+ "$root_out_dir/${shlib_prefix}blink_platform${shlib_extension}",
+ "$root_out_dir/${shlib_prefix}v8${shlib_extension}",
+ ]
+
+ deps += [
+ "//third_party/blink/renderer/bindings:v8_context_snapshot_influential_libs",
+ "//v8",
+ ]
}
outputs = [ output_file ]
diff --git a/chromium/tools/variations/fieldtrial_to_struct.py b/chromium/tools/variations/fieldtrial_to_struct.py
index 35bdad1eedb..a5fb64d3026 100755
--- a/chromium/tools/variations/fieldtrial_to_struct.py
+++ b/chromium/tools/variations/fieldtrial_to_struct.py
@@ -64,11 +64,13 @@ def _Load(filename):
result = json.loads(json_comment_eater.Nom(handle.read()))
return result
-def _LoadFieldTrialConfig(filename, platforms):
+
+def _LoadFieldTrialConfig(filename, platforms, invert):
"""Loads a field trial config JSON and converts it into a format that can be
used by json_to_struct.
"""
- return _FieldTrialConfigToDescription(_Load(filename), platforms)
+ return _FieldTrialConfigToDescription(_Load(filename), platforms, invert)
+
def _ConvertOverrideUIStrings(override_ui_strings):
"""Converts override_ui_strings to formatted dicts."""
@@ -83,7 +85,8 @@ def _ConvertOverrideUIStrings(override_ui_strings):
def _CreateExperiment(experiment_data,
platforms,
form_factors,
- is_low_end_device):
+ is_low_end_device,
+ invert=False):
"""Creates an experiment dictionary with all necessary information.
Args:
@@ -94,6 +97,8 @@ def _CreateExperiment(experiment_data,
a subset of |_form_factors|.
is_low_end_device: An optional parameter. This can either be True or
False. None if not specified.
+ invert: An optional parameter. If set, inverts the enabled and disabled
+ set of experiments. Controlled by a GN flag.
Returns:
An experiment dict.
@@ -116,18 +121,21 @@ def _CreateExperiment(experiment_data,
experiment['params'] = [{'key': param, 'value': params_data[param]}
for param in sorted(params_data.keys())];
enable_features_data = experiment_data.get('enable_features')
- if enable_features_data:
- experiment['enable_features'] = enable_features_data
disable_features_data = experiment_data.get('disable_features')
- if disable_features_data:
- experiment['disable_features'] = disable_features_data
+ if enable_features_data or (invert and disable_features_data):
+ experiment['enable_features'] = (disable_features_data
+ if invert else enable_features_data)
+ if disable_features_data or (invert and enable_features_data):
+ experiment['disable_features'] = (enable_features_data
+ if invert else disable_features_data)
override_ui_strings = experiment_data.get('override_ui_strings')
if override_ui_strings:
experiment['override_ui_string'] = _ConvertOverrideUIStrings(
override_ui_strings)
return experiment
-def _CreateTrial(study_name, experiment_configs, platforms):
+
+def _CreateTrial(study_name, experiment_configs, platforms, invert):
"""Returns the applicable experiments for |study_name| and |platforms|.
This iterates through all of the experiment_configs for |study_name|
@@ -139,37 +147,41 @@ def _CreateTrial(study_name, experiment_configs, platforms):
platform_intersection = [p for p in platforms if p in config['platforms']]
if platform_intersection:
- experiments += [_CreateExperiment(
- e,
- platform_intersection,
- config.get('form_factors', []),
- config.get('is_low_end_device'))
- for e in config['experiments']]
+ experiments += [
+ _CreateExperiment(e,
+ platform_intersection,
+ config.get('form_factors', []),
+ config.get('is_low_end_device'),
+ invert=invert) for e in config['experiments']
+ ]
return {
'name': study_name,
'experiments': experiments,
}
-def _GenerateTrials(config, platforms):
+
+def _GenerateTrials(config, platforms, invert):
for study_name in sorted(config.keys()):
- study = _CreateTrial(study_name, config[study_name], platforms)
+ study = _CreateTrial(study_name, config[study_name], platforms, invert)
# To avoid converting studies with empty experiments (e.g. the study doesn't
# apply to the target platforms), this generator only yields studies that
# have non-empty experiments.
if study['experiments']:
yield study
-def ConfigToStudies(config, platforms):
+
+def ConfigToStudies(config, platforms, invert):
"""Returns the applicable studies from config for the platforms."""
- return [study for study in _GenerateTrials(config, platforms)]
+ return [study for study in _GenerateTrials(config, platforms, invert)]
+
-def _FieldTrialConfigToDescription(config, platforms):
+def _FieldTrialConfigToDescription(config, platforms, invert):
return {
- 'elements': {
- 'kFieldTrialConfig': {
- 'studies': ConfigToStudies(config, platforms)
+ 'elements': {
+ 'kFieldTrialConfig': {
+ 'studies': ConfigToStudies(config, platforms, invert)
+ }
}
- }
}
def main(arguments):
@@ -190,6 +202,12 @@ def main(arguments):
'mandatory.')
parser.add_option('-y', '--year',
help='year to put in the copy-right.')
+ parser.add_option(
+ '--invert_fieldtrials',
+ action='store_true',
+ help=
+ "Inverts the enabled and disabled experiments for existing field trials.")
+
(opts, args) = parser.parse_args(args=arguments)
if not opts.schema:
@@ -211,7 +229,8 @@ def main(arguments):
basepath = ''
schema = _Load(opts.schema)
- description = _LoadFieldTrialConfig(description_filename, opts.platform)
+ description = _LoadFieldTrialConfig(description_filename, opts.platform,
+ opts.invert_fieldtrials)
json_to_struct.GenerateStruct(
basepath, output_root, opts.namespace, schema, description,
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
diff --git a/chromium/tools/variations/fieldtrial_to_struct_unittest.py b/chromium/tools/variations/fieldtrial_to_struct_unittest.py
index a7586822c25..25104284e2d 100644
--- a/chromium/tools/variations/fieldtrial_to_struct_unittest.py
+++ b/chromium/tools/variations/fieldtrial_to_struct_unittest.py
@@ -62,8 +62,8 @@ class FieldTrialToStruct(unittest.TestCase):
}
]
}
- result = fieldtrial_to_struct._FieldTrialConfigToDescription(config,
- ['windows'])
+ result = fieldtrial_to_struct._FieldTrialConfigToDescription(
+ config, ['windows'], False)
expected = {
'elements': {
'kFieldTrialConfig': {
@@ -123,6 +123,113 @@ class FieldTrialToStruct(unittest.TestCase):
self.maxDiff = None
self.assertEqual(expected, result)
+ def test_FieldTrialToDescriptionInvert(self):
+ config = {
+ 'Trial1': [{
+ 'platforms': ['windows'],
+ 'experiments': [
+ {
+ 'name': 'Group1',
+ 'params': {
+ 'x': '1',
+ 'y': '2'
+ },
+ 'enable_features': ['A', 'B'],
+ 'disable_features': ['C']
+ },
+ {
+ 'name': 'Group2',
+ 'params': {
+ 'x': '3',
+ 'y': '4'
+ },
+ 'enable_features': ['D', 'E'],
+ 'disable_features': ['F']
+ },
+ ]
+ }],
+ 'Trial2': [{
+ 'platforms': ['windows'],
+ 'experiments': [{
+ 'name': 'OtherGroup'
+ }]
+ }],
+ 'TrialWithForcingFlag': [{
+ 'platforms': ['windows'],
+ 'experiments': [{
+ 'name': 'ForcedGroup',
+ 'forcing_flag': "my-forcing-flag"
+ }]
+ }]
+ }
+ result = fieldtrial_to_struct._FieldTrialConfigToDescription(
+ config, ['windows'], True)
+ expected = {
+ 'elements': {
+ 'kFieldTrialConfig': {
+ 'studies': [
+ {
+ 'name':
+ 'Trial1',
+ 'experiments': [
+ {
+ 'name':
+ 'Group1',
+ 'platforms': ['Study::PLATFORM_WINDOWS'],
+ 'params': [{
+ 'key': 'x',
+ 'value': '1'
+ }, {
+ 'key': 'y',
+ 'value': '2'
+ }],
+ 'enable_features': ['C'],
+ 'disable_features': ['A', 'B'],
+ 'form_factors': [],
+ },
+ {
+ 'name':
+ 'Group2',
+ 'platforms': ['Study::PLATFORM_WINDOWS'],
+ 'params': [{
+ 'key': 'x',
+ 'value': '3'
+ }, {
+ 'key': 'y',
+ 'value': '4'
+ }],
+ 'enable_features': ['F'],
+ 'disable_features': ['D', 'E'],
+ 'form_factors': [],
+ },
+ ],
+ },
+ {
+ 'name':
+ 'Trial2',
+ 'experiments': [{
+ 'name': 'OtherGroup',
+ 'platforms': ['Study::PLATFORM_WINDOWS'],
+ 'form_factors': [],
+ }]
+ },
+ {
+ 'name':
+ 'TrialWithForcingFlag',
+ 'experiments': [{
+ 'name': 'ForcedGroup',
+ 'platforms': ['Study::PLATFORM_WINDOWS'],
+ 'forcing_flag': "my-forcing-flag",
+ 'form_factors': [],
+ }]
+ },
+ ]
+ }
+ }
+ }
+ self.maxDiff = None
+ self.assertEqual(expected, result)
+
_MULTIPLE_PLATFORM_CONFIG = {
'Trial1': [
{
@@ -168,7 +275,7 @@ class FieldTrialToStruct(unittest.TestCase):
def test_FieldTrialToDescriptionMultipleSinglePlatformMultipleTrial(self):
result = fieldtrial_to_struct._FieldTrialConfigToDescription(
- self._MULTIPLE_PLATFORM_CONFIG, ['ios'])
+ self._MULTIPLE_PLATFORM_CONFIG, ['ios'], False)
expected = {
'elements': {
'kFieldTrialConfig': {
@@ -216,7 +323,7 @@ class FieldTrialToStruct(unittest.TestCase):
def test_FieldTrialToDescriptionMultipleSinglePlatformSingleTrial(self):
result = fieldtrial_to_struct._FieldTrialConfigToDescription(
- self._MULTIPLE_PLATFORM_CONFIG, ['mac'])
+ self._MULTIPLE_PLATFORM_CONFIG, ['mac'], False)
expected = {
'elements': {
'kFieldTrialConfig': {
@@ -257,7 +364,7 @@ class FieldTrialToStruct(unittest.TestCase):
def test_FieldTrialToDescriptionMultipleFormFactorsTrial(self):
result = fieldtrial_to_struct._FieldTrialConfigToDescription(
- self._MULTIPLE_FORM_FACTORS_CONFIG, ['windows'])
+ self._MULTIPLE_FORM_FACTORS_CONFIG, ['windows'], False)
expected = {
'elements': {
'kFieldTrialConfig': {
@@ -321,7 +428,7 @@ class FieldTrialToStruct(unittest.TestCase):
def test_FieldTrialToDescriptionMultipleOverrideUIStringTrial(self):
result = fieldtrial_to_struct._FieldTrialConfigToDescription(
- self._MULTIPLE_OVERRIDE_UI_STRING_CONFIG, ['windows'])
+ self._MULTIPLE_OVERRIDE_UI_STRING_CONFIG, ['windows'], False)
expected = {
'elements': {
'kFieldTrialConfig': {
diff --git a/chromium/tools/variations/fieldtrial_util.py b/chromium/tools/variations/fieldtrial_util.py
index d03307cdea9..ac0b9f54292 100644
--- a/chromium/tools/variations/fieldtrial_util.py
+++ b/chromium/tools/variations/fieldtrial_util.py
@@ -137,7 +137,11 @@ def GenerateArgs(config_path, platform, override_args=None):
except (IOError, ValueError):
return []
- platform_studies = fieldtrial_to_struct.ConfigToStudies(config, [platform])
+ platform_studies = fieldtrial_to_struct.ConfigToStudies(
+ # For now, assume we never invert. Can add this as an argument if needed.
+ config,
+ [platform],
+ False)
if override_args is None:
override_args = []
diff --git a/chromium/tools/vim/chromium.ycm_extra_conf.py b/chromium/tools/vim/chromium.ycm_extra_conf.py
index fb9c2b0a0fd..e5ff5310d89 100644
--- a/chromium/tools/vim/chromium.ycm_extra_conf.py
+++ b/chromium/tools/vim/chromium.ycm_extra_conf.py
@@ -337,8 +337,10 @@ def GetClangOptionsFromNinjaForFilename(chrome_root, filename):
return GetClangOptionsFromCommandLine(clang_line, out_dir, additional_flags)
+# FlagsForFile entrypoint is deprecated in YCM and has replaced by
+# Settings.
def FlagsForFile(filename):
- """This is the main entry point for YCM. Its interface is fixed.
+ """This is the old entry point for YCM. Its interface is fixed.
Args:
filename: (String) Path to source file being edited.
@@ -348,6 +350,11 @@ def FlagsForFile(filename):
'flags': (List of Strings) Command line flags.
'do_cache': (Boolean) True if the result should be cached.
"""
+ return Settings(filename=filename)
+
+
+def Settings(**kwargs):
+ filename = kwargs['filename']
abs_filename = os.path.abspath(filename)
chrome_root = FindChromeSrcFromFilename(abs_filename)
clang_flags = GetClangOptionsFromNinjaForFilename(chrome_root, abs_filename)
diff --git a/chromium/tools/web_dev_style/css_checker.py b/chromium/tools/web_dev_style/css_checker.py
index 4c13441ff68..e8ff0a40c0a 100644
--- a/chromium/tools/web_dev_style/css_checker.py
+++ b/chromium/tools/web_dev_style/css_checker.py
@@ -82,10 +82,9 @@ class CSSChecker(object):
mixin_shim_reg = r'[\w-]+_-_[\w-]+'
- def _remove_mixins_and_valid_vars(s):
- valid_vars = r'--(?!' + mixin_shim_reg + r')[\w-]+:\s*'
- mixin_or_value = r'({.*?}|[^;}]+);?\s*'
- return re.sub(valid_vars + mixin_or_value, '', s, flags=re.DOTALL)
+ def _remove_valid_vars(s):
+ valid_vars = r'--(?!' + mixin_shim_reg + r')[\w-]+:\s*([^;{}}]+);\s*'
+ return re.sub(valid_vars, '', s, flags=re.DOTALL)
def _remove_disable(content, lstrip=False):
prefix_reg = ('\s*' if lstrip else '')
@@ -383,6 +382,10 @@ class CSSChecker(object):
errors.append(' ' + first_line)
return errors
+ def mixins(line):
+ return re.search(r'--[\w-]+:\s*({.*?)', line) or re.search(
+ r'@apply', line)
+
# NOTE: Currently multi-line checks don't support 'after'. Instead, add
# suggestions while parsing the file so another pass isn't necessary.
added_or_modified_files_checks = [
@@ -460,6 +463,10 @@ class CSSChecker(object):
'test': zero_width_lengths,
'multiline': True,
},
+ { 'desc': 'Avoid using CSS mixins. Use CSS shadow parts, CSS ' \
+ 'variables, or common CSS classes instead.',
+ 'test': mixins,
+ },
]
results = []
@@ -490,7 +497,7 @@ class CSSChecker(object):
if not is_html:
file_contents = _remove_comments_except_for_disables(file_contents)
- file_contents = _remove_mixins_and_valid_vars(file_contents)
+ file_contents = _remove_valid_vars(file_contents)
file_contents = _remove_template_expressions(file_contents)
files.append((path, file_contents))
diff --git a/chromium/tools/web_dev_style/css_checker_test.py b/chromium/tools/web_dev_style/css_checker_test.py
index f32abedb3c1..ae628fb386a 100755
--- a/chromium/tools/web_dev_style/css_checker_test.py
+++ b/chromium/tools/web_dev_style/css_checker_test.py
@@ -94,7 +94,6 @@ class CssCheckerTest(unittest.TestCase):
body.alternate-logo #logo {
-webkit-mask-image: url(images/google_logo.png@2x);
background: none;
- @apply(--some-variable);
}
div {
@@ -133,13 +132,6 @@ div {
self.VerifyContentIsValid("""
#id {
--zzyxx-xylophone: 3px;
- --ignore-me: {
- /* TODO(dbeam): fix this by creating a "sort context". If we simply strip
- * off the mixin, the inside contents will be compared to the outside
- * contents, which isn't what we want. */
- visibility: hidden;
- color: black;
- };
--aardvark-animal: var(--zzyxz-xylophone);
}
""")
@@ -157,9 +149,6 @@ blah /* hey! */
.mixed-in {
display: none;
- --css-mixin: {
- color: red;
- }; /* This should be ignored. */
}
.this.is { /* allowed */
@@ -169,6 +158,18 @@ blah /* hey! */
div{
{""")
+ def testMixins(self):
+ self.VerifyContentsProducesOutput(
+ """
+.mixed-in {
+ --css-mixin: {
+ color: red;
+ }
+}""", """
+- Avoid using CSS mixins. Use CSS shadow parts, CSS variables, or common CSS \
+classes instead.
+ --css-mixin: {""")
+
def testCssClassesUseDashes(self):
self.VerifyContentsProducesOutput("""
.className,
@@ -193,15 +194,6 @@ blah /* hey! */
#id { /* $i18n{*} and $i18nRaw{*} should be ignored. */
rule: $i18n{someValue};
rule2: $i18nRaw{someValue};
- --css-mixin: {
- color: red;
- };
-}
-
-.paper-wrapper {
- --paper-thinger: {
- background: blue;
- };
}
#rule {
@@ -310,12 +302,6 @@ div {
rule: value; /* rule: value; */
rule: value; rule: value;
}
-
-.remix {
- --dj: {
- spin: that;
- };
-}
""", """
- One rule per line (what not to do: color: red; margin: 0;).
rule: value; rule: value;""")
@@ -358,7 +344,8 @@ b:before,
""")
def testCssRgbIfNotGray(self):
- self.VerifyContentsProducesOutput("""
+ self.VerifyContentsProducesOutput(
+ """
#abc,
#aaa,
#aabbcc {
@@ -368,7 +355,7 @@ b:before,
}""", """
- Use rgb() over #hex when not a shade of gray (like #333).
background: -webkit-linear-gradient(left, from(#abc), to(#def)); """
-"""(replace with rgb(170, 187, 204), rgb(221, 238, 255))
+ """(replace with rgb(170, 187, 204), rgb(221, 238, 255))
color: #bad; (replace with rgb(187, 170, 221))
color: #bada55; (replace with rgb(186, 218, 85))""")
diff --git a/chromium/tools/web_dev_style/js_checker.py b/chromium/tools/web_dev_style/js_checker.py
index 57e7497bcd7..72a6e7f3220 100644
--- a/chromium/tools/web_dev_style/js_checker.py
+++ b/chromium/tools/web_dev_style/js_checker.py
@@ -70,7 +70,7 @@ class JSChecker(object):
from os import isatty as os_isatty
args = ["--color"] if os_isatty(self.input_api.sys.stdout.fileno()) else []
- args += ["--format", format, "--ignore-pattern '!.eslintrc.js'"]
+ args += ["--format", format, "--ignore-pattern", "!.eslintrc.js"]
args += affected_js_files_paths
import eslint
diff --git a/chromium/tools/win/DebugVisualizers/BUILD.gn b/chromium/tools/win/DebugVisualizers/BUILD.gn
index 231cf0ddcb9..39d5fe0a5b2 100644
--- a/chromium/tools/win/DebugVisualizers/BUILD.gn
+++ b/chromium/tools/win/DebugVisualizers/BUILD.gn
@@ -23,8 +23,8 @@ config("chrome") {
ldflags = [ "/NATVIS:" + rebase_path("chrome.natvis", root_build_dir) ]
}
-config("webkit") {
- # webkit.natvis listed as an input in
+config("blink") {
+ # blink.natvis listed as an input in
# //third_party/blink/renderer/platform/wtf to guarantee relinking on changes.
- ldflags = [ "/NATVIS:" + rebase_path("webkit.natvis", root_build_dir) ]
+ ldflags = [ "/NATVIS:" + rebase_path("blink.natvis", root_build_dir) ]
}
diff --git a/chromium/tools/win/DebugVisualizers/webkit.natvis b/chromium/tools/win/DebugVisualizers/blink.natvis
index b922a97096d..c734b13f1b5 100644
--- a/chromium/tools/win/DebugVisualizers/webkit.natvis
+++ b/chromium/tools/win/DebugVisualizers/blink.natvis
@@ -25,16 +25,28 @@
</Type>
<Type Name="WTF::StringImpl">
<DisplayString IncludeView="bare"
- Condition="is_8bit_">{(this+1),[length_]sb}</DisplayString>
- <DisplayString
- Condition="is_8bit_">[{length_}] {(this+1),[length_]s}</DisplayString>
- <DisplayString IncludeView="bare">{(this+1),[length_]sub}</DisplayString>
- <DisplayString>[{length_}] {(this+1),[length_]su}</DisplayString>
+ Condition="*(int*)&amp;hash_and_flags_ &amp; 1">
+ {(this+1),[length_]sb}</DisplayString>
+ <DisplayString>[{length_}] {(this+1),[length_]s}</DisplayString>
+ <DisplayString IncludeView="bare"
+ Condition="*(int*)&amp;hash_and_flags_ &amp; 1">
+ {(this+1),[length_]sub}</DisplayString>
+ <DisplayString Condition="(*(int*)&amp;hash_and_flags_ &amp; 1)==0">
+ [{length_}] {(this+1),[length_]su}</DisplayString>
<Expand>
<Item Name="Length">length_</Item>
- <Item Name="Hash">hash_</Item>
- <Item Name="AsciiText" Condition="is_8bit_">(char*)(this+1),[length_]s</Item>
- <Item Name="UnicodeText" Condition="!is_8bit_">(wchar_t*)(this+1),[length_]su</Item>
+ <Item Name="AsciiText"
+ Condition="*(int*)&amp;hash_and_flags_ &amp; 1">
+ (char*)(this+1),[length_]s</Item>
+ <Item Name="UnicodeText"
+ Condition="(*(int*)&amp;hash_and_flags_ &amp; 1)==0">
+ (wchar_t*)(this+1),[length_]su</Item>
+ <Item Name="Is8Bit">*(int*)&amp;hash_and_flags_ &amp; 1</Item>
+ <Item Name="IsStatic">*(int*)&amp;hash_and_flags_ &amp; 2</Item>
+ <Item Name="IsAtomic">*(int*)&amp;hash_and_flags_ &amp; 4</Item>
+ <Item Name="AsciiCheckDone">*(int*)&amp;hash_and_flags_ &amp; 8</Item>
+ <Item Name="ContainsOnlyAscii">*(int*)&amp;hash_and_flags_ &amp; 16</Item>
+ <Item Name="HashRaw">*(int*)&amp;hash_and_flags_ >> 8</Item>
</Expand>
</Type>
<Type Name="WTF::AtomicString">
@@ -274,6 +286,32 @@
</Synthetic>
</Expand>
</Type>
+ <Type Name="blink::NGFragmentItem">
+ <Expand>
+ <Item Name="Text" Condition="type_ == 0">text_</Item>
+ <Item Name="TextType" Condition="type_ == 0">(blink::NGTextType)sub_type_</Item>
+ <Item Name="GeneratedText" Condition="type_ == 1">generated_text_</Item>
+ <Item Name="Line" Condition="type_ == 2">line_</Item>
+ <Item Name="LineBoxType" Condition="type_ == 2">(NGPhysicalLineBoxFragment::NGLineBoxType)sub_type_</Item>
+ <Item Name="Box" Condition="type_ == 3">box_</Item>
+ <Item Name="layout_object_">layout_object_</Item>
+ <Item Name="rect_">rect_</Item>
+ </Expand>
+ </Type>
+ <Type Name="blink::NGFragmentItems">
+ <Expand>
+ <Item Name="text_content_">text_content_</Item>
+ <Synthetic Name="Items">
+ <DisplayString>{size_}</DisplayString>
+ <Expand>
+ <ArrayItems>
+ <Size>size_</Size>
+ <ValuePointer>items_</ValuePointer>
+ </ArrayItems>
+ </Expand>
+ </Synthetic>
+ </Expand>
+ </Type>
<!-- Layout: TextRun -->
<Type Name="blink::TextRun">
<DisplayString Condition="is_8bit_">{data_.characters8,[len_]s}</DisplayString>
diff --git a/chromium/tools/win/IdleWakeups/README.md b/chromium/tools/win/IdleWakeups/README.md
new file mode 100644
index 00000000000..841df0a39ec
--- /dev/null
+++ b/chromium/tools/win/IdleWakeups/README.md
@@ -0,0 +1,29 @@
+This tool is designed to measure and aggregate a few key performance metrics
+for all Chrome processes over time. The tool supports other browsers such as
+Edge or Firefox, or in fact any other processes. The inclusion of processes
+is based on a simple partial process image name match against the image name
+argument (optional, chrome.exe is the default image name used when no
+argument is provided).
+
+# Compilation
+Open IdleWakeups.sln in Visual Studio and select Build > Build Solution (F7).
+IdleWakeups.exe can then be found in src/tools/win/IdleWakeups/x64/Debug/.
+
+# Usage
+"IdleWakeups.exe" to match all Chrome processes.
+"IdleWakeups.exe Firefox" to match all Firefox processes.
+"IdleWakeups.exe msedge" to match all Edge processes.
+
+The process matching the provided parameter is identified by case-sensitive
+string prefix, e.g., "some_process" and "some_process.exe" would both work.
+
+When the tool starts it begins gathering and aggregating CPU usage, private
+working set size, number of context switches / sec, and power usage for all
+matched processes. Hit Ctrl-C to stop the measurements and print average and
+median values over the entire measurement interval.
+
+CPU usage is normalized to one CPU core, with 100% meaning one CPU core is
+fully utilized.
+
+Intel Power Gadget is required to allow IdleWakeups tool to query power usage.
+https://software.intel.com/en-us/articles/intel-power-gadget-20
diff --git a/chromium/tools/win/IdleWakeups/ReadMe.txt b/chromium/tools/win/IdleWakeups/ReadMe.txt
deleted file mode 100644
index e48f798395f..00000000000
--- a/chromium/tools/win/IdleWakeups/ReadMe.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This tool is designed to measure and aggregate a few key performance metrics
-for all Chrome processes over time. The tool supports other browsers such as
-Edge or Firefox, or in fact any other processes. The inclusion of processes
-is based on a simple partial process image name match against the image name
-argument (optional, Chrome.exe is the default image name used when no
-argument is provided).
-
-Sample usage:
-
-"IdleWakeups.exe" to match all Chrome.exe processes.
-"IdleWakeups.exe" firefox to match Firefox process.
-"IdleWakeups.exe MicrosoftEdge" to match all Edge processes.
-
-When the tool starts it begins gathering and aggregating CPU usage, private
-working set size, number of context switches / sec, and power usage for all
-matched processes. Hit Ctrl+C to stop the measurements and print average and
-median values over the entire measurement interval.
-
-CPU usage is normalized to one CPU core with 100% meaning one CPU core is
-fully utilized.
-
-Intel Power Gadget is required to allow IdleWakeups tool to query power usage.
-https://software.intel.com/en-us/articles/intel-power-gadget-20
diff --git a/chromium/tools/win/IdleWakeups/idle_wakeups.cpp b/chromium/tools/win/IdleWakeups/idle_wakeups.cpp
index 52a5174dc70..bbb579ba140 100644
--- a/chromium/tools/win/IdleWakeups/idle_wakeups.cpp
+++ b/chromium/tools/win/IdleWakeups/idle_wakeups.cpp
@@ -54,7 +54,19 @@ T GetMedian(ResultVector* results, T (*getter)(const Result&)) {
}
}
-// This class holds the app state and constains a number of utilities for
+// Count newly created processes: those in |processes| but not
+// |previous_processes|.
+size_t GetNumProcessesCreated(const ProcessDataMap& previous_processes,
+ const ProcessDataMap& processes) {
+ size_t num_processes_created = 0;
+ for (auto& process : processes) {
+ if (previous_processes.find(process.first) == previous_processes.end())
+ num_processes_created++;
+ }
+ return num_processes_created;
+}
+
+// This class holds the app state and contains a number of utilities for
// collecting and diffing snapshots of data, handling processes, etc.
class IdleWakeups {
public:
@@ -77,7 +89,7 @@ class IdleWakeups {
static ULONG DiffContextSwitches(const ProcessData& prev_process_data,
const ProcessData& process_data);
- std::map<ProcessId, HANDLE> process_id_to_hanle_map;
+ std::map<ProcessId, HANDLE> process_id_to_handle_map;
IdleWakeups& operator=(const IdleWakeups&) = delete;
IdleWakeups(const IdleWakeups&) = delete;
@@ -96,25 +108,25 @@ void IdleWakeups::OpenProcesses(const ProcessDataSnapshot& snapshot) {
}
void IdleWakeups::CloseProcesses() {
- for (auto& pair : process_id_to_hanle_map) {
+ for (auto& pair : process_id_to_handle_map) {
CloseHandle(pair.second);
}
- process_id_to_hanle_map.clear();
+ process_id_to_handle_map.clear();
}
HANDLE IdleWakeups::GetProcessHandle(ProcessId process_id) {
- return process_id_to_hanle_map[process_id];
+ return process_id_to_handle_map[process_id];
}
void IdleWakeups::OpenProcess(ProcessId process_id) {
- process_id_to_hanle_map[process_id] = ::OpenProcess(
+ process_id_to_handle_map[process_id] = ::OpenProcess(
PROCESS_QUERY_LIMITED_INFORMATION, FALSE, (DWORD)(ULONGLONG)process_id);
}
void IdleWakeups::CloseProcess(ProcessId process_id) {
HANDLE handle = GetProcessHandle(process_id);
CloseHandle(handle);
- process_id_to_hanle_map.erase(process_id);
+ process_id_to_handle_map.erase(process_id);
}
ULONG IdleWakeups::CountContextSwitches(const ProcessData& process_data) {
@@ -279,11 +291,15 @@ int wmain(int argc, wchar_t* argv[]) {
system_information_sampler.TakeSnapshot();
the_app.OpenProcesses(*previous_snapshot);
+ const size_t initial_number_of_processes =
+ previous_snapshot->processes.size();
+ size_t final_number_of_processes = initial_number_of_processes;
ULONG cumulative_idle_wakeups_per_sec = 0;
double cumulative_cpu_usage = 0.0;
ULONGLONG cumulative_working_set = 0;
double cumulative_energy = 0.0;
+ size_t cumulative_processes_created = 0;
ResultVector results;
@@ -300,6 +316,10 @@ int wmain(int argc, wchar_t* argv[]) {
std::unique_ptr<ProcessDataSnapshot> snapshot =
system_information_sampler.TakeSnapshot();
size_t number_of_processes = snapshot->processes.size();
+ final_number_of_processes = number_of_processes;
+
+ cumulative_processes_created += GetNumProcessesCreated(
+ previous_snapshot->processes, snapshot->processes);
Result result = the_app.DiffSnapshots(*previous_snapshot, *snapshot);
previous_snapshot = std::move(snapshot);
@@ -345,5 +365,10 @@ int wmain(int argc, wchar_t* argv[]) {
median_result.idle_wakeups_per_sec, median_result.cpu_usage, '%',
median_result.working_set / 1024.0, median_result.power);
+ printf("\nProcesses created: %zu\n", cumulative_processes_created);
+ printf("Processes destroyed: %zu\n", initial_number_of_processes +
+ cumulative_processes_created -
+ final_number_of_processes);
+
return 0;
}
diff --git a/chromium/tools/win/IdleWakeups/system_information_sampler.cpp b/chromium/tools/win/IdleWakeups/system_information_sampler.cpp
index 0f4c6fc8f44..e52b7686593 100644
--- a/chromium/tools/win/IdleWakeups/system_information_sampler.cpp
+++ b/chromium/tools/win/IdleWakeups/system_information_sampler.cpp
@@ -221,6 +221,41 @@ SystemInformationSampler::SystemInformationSampler(
SystemInformationSampler::~SystemInformationSampler() {}
+// Collect enough data to be able to do a diff between two snapshots. Some
+// threads might stop or new threads might be created between two snapshots. If
+// a thread with a large number of context switches gets terminated the total
+// number of context switches for the process might go down and the delta would
+// be negative. To avoid that we need to compare thread IDs between two
+// snapshots and not count context switches for threads that are missing in the
+// most recent snapshot.
+ProcessData GetProcessData(const SYSTEM_PROCESS_INFORMATION* const pi) {
+ ProcessData process_data;
+ process_data.cpu_time = pi->KernelTime + pi->UserTime;
+ process_data.working_set = pi->WorkingSetPrivateSize;
+
+ // Iterate over threads and store each thread's ID and number of context
+ // switches.
+ for (ULONG thread_index = 0; thread_index < pi->NumberOfThreads;
+ ++thread_index) {
+ const SYSTEM_THREAD_INFORMATION* ti = &pi->Threads[thread_index];
+ if (ti->ClientId.UniqueProcess != pi->ProcessId)
+ continue;
+
+ ThreadData thread_data;
+ thread_data.thread_id = ti->ClientId.UniqueThread;
+ thread_data.context_switches = ti->ContextSwitchCount;
+ process_data.threads.push_back(thread_data);
+ }
+
+ // Order thread data by thread ID to help diff two snapshots.
+ std::sort(process_data.threads.begin(), process_data.threads.end(),
+ [](const ThreadData& l, const ThreadData r) {
+ return l.thread_id < r.thread_id;
+ });
+
+ return process_data;
+}
+
std::unique_ptr<ProcessDataSnapshot> SystemInformationSampler::TakeSnapshot() {
// Preallocate the buffer with the size determined on the previous call to
// QuerySystemProcessInformation. This should be sufficient most of the time.
@@ -241,64 +276,38 @@ std::unique_ptr<ProcessDataSnapshot> SystemInformationSampler::TakeSnapshot() {
perf_frequency_.QuadPart);
for (size_t offset = 0; offset < data_buffer.size();) {
- auto pi = reinterpret_cast<const SYSTEM_PROCESS_INFORMATION*>(
- data_buffer.data() + offset);
-
- // Validate that the offset is valid and all needed data is within
- // the buffer boundary.
+ // Validate that the offset is valid.
if (offset + sizeof(SYSTEM_PROCESS_INFORMATION) > data_buffer.size())
break;
- if (offset + sizeof(SYSTEM_PROCESS_INFORMATION) +
- (pi->NumberOfThreads - 1) * sizeof(SYSTEM_THREAD_INFORMATION) >
- data_buffer.size())
- break;
- if (pi->ImageName.Buffer) {
- // Validate that the image name is within the buffer boundary.
- // ImageName.Length seems to be in bytes rather than characters.
- size_t image_name_offset =
- reinterpret_cast<BYTE*>(pi->ImageName.Buffer) - data_buffer.data();
- if (image_name_offset + pi->ImageName.Length > data_buffer.size())
+ auto pi = reinterpret_cast<const SYSTEM_PROCESS_INFORMATION*>(
+ data_buffer.data() + offset);
+
+ // Skip processes that report zero threads (e.g., the "Secure System"
+ // process, which does not disclose its thread count).
+ if (pi->NumberOfThreads > 0) {
+ // Validate that |pi| and any additional SYSTEM_THREAD_INFORMATION structs
+ // that it may have are all within the buffer boundary.
+ if (offset + sizeof(SYSTEM_PROCESS_INFORMATION) +
+ (pi->NumberOfThreads - 1) * sizeof(SYSTEM_THREAD_INFORMATION) >
+ data_buffer.size()) {
break;
+ }
- // Check if this is a chrome process. Ignore all other processes.
- if (wcsncmp(target_process_name_filter(), pi->ImageName.Buffer,
- lstrlen(target_process_name_filter())) == 0) {
- // Collect enough data to be able to do a diff between two snapshots.
- // Some threads might stop or new threads might be created between two
- // snapshots. If a thread with a large number of context switches gets
- // terminated the total number of context switches for the process might
- // go down and the delta would be negative.
- // To avoid that we need to compare thread IDs between two snapshots and
- // not count context switches for threads that are missing in the most
- // recent snapshot.
- ProcessData process_data;
-
- process_data.cpu_time = pi->KernelTime + pi->UserTime;
- process_data.working_set = pi->WorkingSetPrivateSize;
-
- // Iterate over threads and store each thread's ID and number of context
- // switches.
- for (ULONG thread_index = 0; thread_index < pi->NumberOfThreads;
- ++thread_index) {
- const SYSTEM_THREAD_INFORMATION* ti = &pi->Threads[thread_index];
- if (ti->ClientId.UniqueProcess != pi->ProcessId)
- continue;
-
- ThreadData thread_data;
- thread_data.thread_id = ti->ClientId.UniqueThread;
- thread_data.context_switches = ti->ContextSwitchCount;
- process_data.threads.push_back(thread_data);
+ if (pi->ImageName.Buffer) {
+ // Validate that the image name is within the buffer boundary.
+ // ImageName.Length seems to be in bytes rather than characters.
+ size_t image_name_offset =
+ reinterpret_cast<BYTE*>(pi->ImageName.Buffer) - data_buffer.data();
+ if (image_name_offset + pi->ImageName.Length > data_buffer.size())
+ break;
+
+ // If |pi| is the targeted process, add its data to the snapshot.
+ if (wcsncmp(target_process_name_filter(), pi->ImageName.Buffer,
+ lstrlen(target_process_name_filter())) == 0) {
+ snapshot->processes.insert(
+ std::make_pair(pi->ProcessId, GetProcessData(pi)));
}
-
- // Order thread data by thread ID to help diff two snapshots.
- std::sort(process_data.threads.begin(), process_data.threads.end(),
- [](const ThreadData& l, const ThreadData r) {
- return l.thread_id < r.thread_id;
- });
-
- snapshot->processes.insert(
- std::make_pair(pi->ProcessId, std::move(process_data)));
}
}