summaryrefslogtreecommitdiff
path: root/chromium/tools
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-11 11:32:04 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-18 13:40:17 +0000
commit31ccca0778db85c159634478b4ec7997f6704860 (patch)
tree3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/tools
parent248b70b82a40964d5594eb04feca0fa36716185d (diff)
downloadqtwebengine-chromium-31ccca0778db85c159634478b4ec7997f6704860.tar.gz
BASELINE: Update Chromium to 80.0.3987.136
Change-Id: I98e1649aafae85ba3a83e67af00bb27ef301db7b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'chromium/tools')
-rwxr-xr-xchromium/tools/accessibility/rebase_dump_accessibility_tree_test.py6
-rw-r--r--chromium/tools/android/BUILD.gn2
-rw-r--r--chromium/tools/android/errorprone_plugin/BUILD.gn8
-rw-r--r--chromium/tools/android/io_benchmark/BUILD.gn12
-rw-r--r--chromium/tools/binary_size/BUILD.gn10
-rwxr-xr-xchromium/tools/binary_size/diagnose_bloat.py8
-rwxr-xr-xchromium/tools/binary_size/generate_milestone_reports.py135
-rw-r--r--chromium/tools/binary_size/libsupersize/apkanalyzer.py30
-rw-r--r--chromium/tools/binary_size/libsupersize/archive.py81
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/BUILD.gn69
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/DEPS2
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/caspian.md19
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc159
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/cli.cc92
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/diff.cc252
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/diff.h14
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/diff_test.cc306
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/file_format.cc409
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/file_format.h14
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/function_signature.cc342
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/function_signature.h60
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/function_signature_test.cc244
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/grouped_path.cc74
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/grouped_path.h60
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/grouped_path_test.cc95
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens.cc117
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens.h40
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/lens_test.cc82
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/model.cc474
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/model.h353
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc338
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder.h68
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc154
-rw-r--r--chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch104
-rw-r--r--chromium/tools/binary_size/libsupersize/console.py48
-rw-r--r--chromium/tools/binary_size/libsupersize/diff.py8
-rw-r--r--chromium/tools/binary_size/libsupersize/file_format.py203
-rw-r--r--chromium/tools/binary_size/libsupersize/function_signature.py94
-rwxr-xr-xchromium/tools/binary_size/libsupersize/integration_test.py79
-rwxr-xr-xchromium/tools/binary_size/libsupersize/linker_map_parser.py4
-rwxr-xr-xchromium/tools/binary_size/libsupersize/main.py31
-rw-r--r--chromium/tools/binary_size/libsupersize/models.py7
-rw-r--r--chromium/tools/binary_size/libsupersize/path_util.py21
-rw-r--r--chromium/tools/binary_size/libsupersize/start_server.py20
-rw-r--r--chromium/tools/binary_size/libsupersize/static/index.html8
-rw-r--r--chromium/tools/binary_size/libsupersize/static/infocard-ui.js61
-rw-r--r--chromium/tools/binary_size/libsupersize/static/main.css17
-rw-r--r--chromium/tools/binary_size/libsupersize/static/shared.js12
-rw-r--r--chromium/tools/binary_size/libsupersize/static/start-worker.js30
-rw-r--r--chromium/tools/binary_size/libsupersize/static/state.js44
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-ui.js25
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js198
-rw-r--r--chromium/tools/binary_size/libsupersize/static/tree-worker.js44
-rw-r--r--chromium/tools/binary_size/libsupersize/static/viewer.html99
-rw-r--r--chromium/tools/binary_size/libsupersize/templates/sw.js4
-rwxr-xr-xchromium/tools/binary_size/trybot_commit_size_checker.py140
-rw-r--r--chromium/tools/bisect_repackage/bisect_repackage.py2
-rw-r--r--chromium/tools/cfi/blacklist.txt3
-rwxr-xr-xchromium/tools/checkteamtags/checkteamtags.py11
-rw-r--r--chromium/tools/checkteamtags/extract_components_test.py4
-rw-r--r--chromium/tools/checkteamtags/owners_file_tags.py19
-rw-r--r--chromium/tools/chrome_proxy/webdriver/html5.py1
-rw-r--r--chromium/tools/chrome_proxy/webdriver/video.py2
-rwxr-xr-xchromium/tools/clang/scripts/build.py47
-rwxr-xr-xchromium/tools/clang/scripts/download_lld_mac.py38
-rwxr-xr-xchromium/tools/clang/scripts/download_objdump.py43
-rwxr-xr-xchromium/tools/clang/scripts/package.py44
-rwxr-xr-xchromium/tools/clang/scripts/update.py121
-rwxr-xr-xchromium/tools/clang/scripts/upload_revision.py15
-rw-r--r--chromium/tools/clang/translation_unit/TranslationUnitGenerator.cpp3
-rw-r--r--chromium/tools/code_coverage/OWNERS4
-rwxr-xr-xchromium/tools/code_coverage/coverage.py9
-rw-r--r--chromium/tools/code_coverage/test_suite.txt1
-rwxr-xr-xchromium/tools/code_coverage/update_clang_coverage_tools.py93
-rwxr-xr-xchromium/tools/cygprofile/orderfile_generator_backend.py112
-rw-r--r--chromium/tools/cygprofile/symbol_extractor.py4
-rwxr-xr-xchromium/tools/determinism/compare_build_artifacts.py3
-rw-r--r--chromium/tools/determinism/deterministic_build_whitelist.pyl16
-rw-r--r--chromium/tools/gdb/gdb_chrome.py13
-rw-r--r--chromium/tools/gn/bootstrap/libc++.ninja5
-rw-r--r--chromium/tools/grit/OWNERS4
-rwxr-xr-xchromium/tools/grit/grit.py8
-rwxr-xr-xchromium/tools/grit/grit/format/data_pack.py8
-rwxr-xr-xchromium/tools/grit/grit/format/html_inline.py4
-rwxr-xr-xchromium/tools/grit/grit/format/html_inline_unittest.py2
-rw-r--r--chromium/tools/grit/grit/format/minifier.py14
-rwxr-xr-xchromium/tools/grit/grit/format/policy_templates_json_unittest.py2
-rw-r--r--chromium/tools/grit/grit/gather/policy_json.py14
-rwxr-xr-xchromium/tools/grit/grit/gather/policy_json_unittest.py32
-rwxr-xr-xchromium/tools/grit/grit/grit_runner.py95
-rw-r--r--chromium/tools/grit/grit/node/misc.py27
-rw-r--r--chromium/tools/grit/grit/tool/build.py14
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/__init__.py254
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/assigner.py286
-rwxr-xr-xchromium/tools/grit/grit/tool/update_resource_ids/assigner_unittest.py154
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/common.py101
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/parser.py231
-rw-r--r--chromium/tools/grit/grit/tool/update_resource_ids/reader.py75
-rw-r--r--chromium/tools/grit/grit_rule.gni43
-rwxr-xr-xchromium/tools/grit/minimize_css.py105
-rwxr-xr-xchromium/tools/grit/minimize_css_unittest.py58
-rwxr-xr-xchromium/tools/grit/pak_util.py26
-rw-r--r--chromium/tools/grit/repack.gni9
-rw-r--r--chromium/tools/gritsettings/resource_ids378
-rw-r--r--chromium/tools/gritsettings/translation_expectations.pyl22
-rw-r--r--chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn1
-rw-r--r--chromium/tools/ipc_fuzzer/message_lib/BUILD.gn3
-rw-r--r--chromium/tools/ipc_fuzzer/message_lib/DEPS1
-rw-r--r--chromium/tools/ipc_fuzzer/message_lib/all_messages.h1
-rw-r--r--chromium/tools/ipc_fuzzer/message_replay/BUILD.gn2
-rw-r--r--chromium/tools/ipc_fuzzer/message_replay/DEPS1
-rw-r--r--chromium/tools/ipc_fuzzer/message_replay/replay_process.cc68
-rw-r--r--chromium/tools/ipc_fuzzer/message_replay/replay_process.h6
-rw-r--r--chromium/tools/ipc_fuzzer/message_tools/message_list.cc2
-rw-r--r--chromium/tools/json_schema_compiler/feature_compiler.py1
-rw-r--r--chromium/tools/json_schema_compiler/json_schema_api.gni94
-rw-r--r--chromium/tools/luci-go/OWNERS2
-rw-r--r--chromium/tools/mb/docs/user_guide.md19
-rwxr-xr-xchromium/tools/mb/mb.py132
-rw-r--r--chromium/tools/mb/mb_config.pyl482
-rwxr-xr-xchromium/tools/mb/mb_unittest.py24
-rw-r--r--chromium/tools/measure_page_load_time/ff_ext/chrome.manifest2
-rw-r--r--chromium/tools/measure_page_load_time/ff_ext/content/firefoxOverlay.xul7
-rw-r--r--chromium/tools/measure_page_load_time/ff_ext/content/measure_page_load_time.js209
-rw-r--r--chromium/tools/measure_page_load_time/ff_ext/install.rdf17
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.cpp72
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.def9
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.idl40
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rc121
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rgs29
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.vcproj320
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.cpp292
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.h87
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.rgs27
-rw-r--r--chromium/tools/measure_page_load_time/ie_bho/resource.h18
-rwxr-xr-xchromium/tools/media_engagement_preload/make_dafsa.py2
-rw-r--r--chromium/tools/metrics/actions/action_utils.py16
-rw-r--r--chromium/tools/metrics/actions/actions.xml251
-rw-r--r--chromium/tools/metrics/histograms/README.md37
-rw-r--r--chromium/tools/metrics/histograms/enums.xml1540
-rw-r--r--chromium/tools/metrics/histograms/expand_owners.py11
-rw-r--r--chromium/tools/metrics/histograms/extract_histograms.py160
-rw-r--r--chromium/tools/metrics/histograms/histograms.xml11432
-rwxr-xr-xchromium/tools/metrics/histograms/merge_xml.py7
-rw-r--r--chromium/tools/metrics/rappor/rappor.xml1066
-rw-r--r--chromium/tools/metrics/structured/OWNERS1
-rw-r--r--chromium/tools/metrics/structured/structured.xml26
-rw-r--r--chromium/tools/metrics/ukm/ukm.xml814
-rw-r--r--chromium/tools/perf/BUILD.gn21
-rw-r--r--chromium/tools/perf/chrome_telemetry_build/BUILD.gn17
-rwxr-xr-xchromium/tools/polymer/generate_gn.py8
-rwxr-xr-xchromium/tools/polymer/generate_gn_v3.py7
-rw-r--r--chromium/tools/polymer/polymer.py46
-rwxr-xr-xchromium/tools/polymer/polymer_test.py4
-rwxr-xr-xchromium/tools/resources/svgo.py6
-rw-r--r--chromium/tools/resources/svgo_presubmit.py9
-rwxr-xr-xchromium/tools/resources/svgo_presubmit_test.py2
-rwxr-xr-xchromium/tools/roll_webgl_conformance.py17
-rwxr-xr-xchromium/tools/run-swarmed.py2
-rw-r--r--chromium/tools/traffic_annotation/auditor/BUILD.gn3
-rw-r--r--chromium/tools/traffic_annotation/auditor/DEPS2
-rw-r--r--chromium/tools/traffic_annotation/auditor/safe_list.txt3
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc2
-rw-r--r--chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc3
-rwxr-xr-xchromium/tools/traffic_annotation/scripts/traffic_annotation_auditor_tests.py19
-rw-r--r--chromium/tools/traffic_annotation/summary/OWNERS7
-rw-r--r--chromium/tools/traffic_annotation/summary/TRAFFIC_ANNOTATION_OWNERS5
-rw-r--r--chromium/tools/traffic_annotation/summary/annotations.xml19
-rw-r--r--chromium/tools/v8_context_snapshot/BUILD.gn22
-rw-r--r--chromium/tools/v8_context_snapshot/DEPS2
-rw-r--r--chromium/tools/v8_context_snapshot/v8_context_snapshot_generator.cc7
-rw-r--r--chromium/tools/web_dev_style/js_checker.py4
-rwxr-xr-xchromium/tools/web_dev_style/js_checker_eslint_test.py4
-rw-r--r--chromium/tools/win/ShowGlobals/ShowGlobals.cc27
174 files changed, 19370 insertions, 6359 deletions
diff --git a/chromium/tools/accessibility/rebase_dump_accessibility_tree_test.py b/chromium/tools/accessibility/rebase_dump_accessibility_tree_test.py
index 5f9c8f38c95..8900d4d6b8b 100755
--- a/chromium/tools/accessibility/rebase_dump_accessibility_tree_test.py
+++ b/chromium/tools/accessibility/rebase_dump_accessibility_tree_test.py
@@ -113,13 +113,13 @@ def Run():
#print(json.dumps(data, indent=4))
for builder in data:
- print(builder['builder_name'], builder['result'])
- if builder['result'] == 'FAILURE':
+ print(builder['builder']['builder'], builder['status'])
+ if builder['status'] == 'FAILURE':
logdog_tokens = [
'chromium',
'buildbucket',
'cr-buildbucket.appspot.com',
- builder['buildbucket_id'],
+ builder['id'],
'+',
'steps',
'**']
diff --git a/chromium/tools/android/BUILD.gn b/chromium/tools/android/BUILD.gn
index 72ba13a8900..9ad5bb33bd0 100644
--- a/chromium/tools/android/BUILD.gn
+++ b/chromium/tools/android/BUILD.gn
@@ -9,9 +9,7 @@ import("//build/config/sanitizers/sanitizers.gni")
group("android_tools") {
testonly = true
deps = [
- "//build/android:wrapper_scripts",
"//build/android/pylib/device/commands",
- "//third_party/android_platform:stack_wrapper",
"//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
"//tools/android/adb_reboot",
"//tools/android/forwarder2",
diff --git a/chromium/tools/android/errorprone_plugin/BUILD.gn b/chromium/tools/android/errorprone_plugin/BUILD.gn
index ebb9671d837..eeee344eca8 100644
--- a/chromium/tools/android/errorprone_plugin/BUILD.gn
+++ b/chromium/tools/android/errorprone_plugin/BUILD.gn
@@ -14,6 +14,7 @@ java_library("errorprone_plugin_java") {
"src/org/chromium/tools/errorprone/plugin/NoRedundantFieldInitCheck.java",
"src/org/chromium/tools/errorprone/plugin/NoSynchronizedMethodCheck.java",
"src/org/chromium/tools/errorprone/plugin/NoSynchronizedThisCheck.java",
+ "src/org/chromium/tools/errorprone/plugin/TestClassNameCheck.java",
]
# Necessary to avoid dependency cycle
@@ -23,9 +24,10 @@ java_library("errorprone_plugin_java") {
# So that we don't need to inject jacoco runtime into the compiler's classpath.
jacoco_never_instrument = true
- annotation_processor_deps = [ "//third_party/auto:auto_service_processor" ]
+ annotation_processor_deps =
+ [ "//third_party/android_deps:auto_service_processor" ]
deps = [
- "//third_party/auto:auto_service_java",
- "//third_party/errorprone:errorprone_java",
+ "//third_party/android_deps:com_google_auto_service_auto_service_annotations_java",
+ "//third_party/android_deps:com_google_errorprone_error_prone_core_java",
]
}
diff --git a/chromium/tools/android/io_benchmark/BUILD.gn b/chromium/tools/android/io_benchmark/BUILD.gn
index 22cbba86048..ae8e53e28cc 100644
--- a/chromium/tools/android/io_benchmark/BUILD.gn
+++ b/chromium/tools/android/io_benchmark/BUILD.gn
@@ -27,3 +27,15 @@ executable("compression_benchmark") {
]
testonly = true
}
+
+executable("sha_benchmark") {
+ sources = [
+ "sha_benchmark.cc",
+ ]
+ deps = [
+ "//base",
+ "//base/test:test_support",
+ "//crypto:crypto",
+ ]
+ testonly = true
+}
diff --git a/chromium/tools/binary_size/BUILD.gn b/chromium/tools/binary_size/BUILD.gn
index 98493f10740..a9629c27bc4 100644
--- a/chromium/tools/binary_size/BUILD.gn
+++ b/chromium/tools/binary_size/BUILD.gn
@@ -23,8 +23,10 @@ python_library("sizes_py") {
]
}
-group("caspian") {
- deps = [
- "//tools/binary_size/libsupersize/caspian:cli($host_toolchain)",
- ]
+if (is_linux) {
+ group("caspian") {
+ deps = [
+ "//tools/binary_size/libsupersize/caspian:cli($host_toolchain)",
+ ]
+ }
}
diff --git a/chromium/tools/binary_size/diagnose_bloat.py b/chromium/tools/binary_size/diagnose_bloat.py
index 6a8e8627099..cfb49abced7 100755
--- a/chromium/tools/binary_size/diagnose_bloat.py
+++ b/chromium/tools/binary_size/diagnose_bloat.py
@@ -39,8 +39,8 @@ _RESOURCE_SIZES_PATH = os.path.join(
_SRC_ROOT, 'build', 'android', 'resource_sizes.py')
_LLVM_TOOLS_DIR = os.path.join(
_SRC_ROOT, 'third_party', 'llvm-build', 'Release+Asserts', 'bin')
-_DOWNLOAD_OBJDUMP_PATH = os.path.join(
- _SRC_ROOT, 'tools', 'clang', 'scripts', 'download_objdump.py')
+_CLANG_UPDATE_PATH = os.path.join(_SRC_ROOT, 'tools', 'clang', 'scripts',
+ 'update.py')
_GN_PATH = os.path.join(_SRC_ROOT, 'third_party', 'depot_tools', 'gn')
_NINJA_PATH = os.path.join(_SRC_ROOT, 'third_party', 'depot_tools', 'ninja')
@@ -767,9 +767,9 @@ def _TmpCopyBinarySizeDir():
shutil.copytree(_BINARY_SIZE_DIR, bs_dir)
# We also copy the tools supersize needs, but only if they exist.
tool_prefix = None
- if os.path.exists(_DOWNLOAD_OBJDUMP_PATH):
+ if os.path.exists(_CLANG_UPDATE_PATH):
if not os.path.exists(os.path.join(_LLVM_TOOLS_DIR, 'llvm-readelf')):
- _RunCmd([_DOWNLOAD_OBJDUMP_PATH])
+ _RunCmd([_CLANG_UPDATE_PATH, '--package=objdump'])
tools_dir = os.path.join(bs_dir, 'bintools')
tool_prefix = os.path.join(tools_dir, 'llvm-')
shutil.copytree(_LLVM_TOOLS_DIR, tools_dir)
diff --git a/chromium/tools/binary_size/generate_milestone_reports.py b/chromium/tools/binary_size/generate_milestone_reports.py
index a60b2c72cfe..ec527b1ac62 100755
--- a/chromium/tools/binary_size/generate_milestone_reports.py
+++ b/chromium/tools/binary_size/generate_milestone_reports.py
@@ -69,8 +69,9 @@ _DESIRED_VERSIONS = [
'74.0.3729.112',
'75.0.3770.143',
'76.0.3809.132',
- '77.0.3865.73', # Beta
- '78.0.3904.8', # Also Beta
+ '77.0.3865.115',
+ '78.0.3904.62',
+ '79.0.3945.2', # Canary
]
@@ -92,61 +93,18 @@ def _EnumerateReports():
if apk == 'AndroidWebview.apk':
versions = [v for v in versions if _VersionTuple(v) >= (71,)]
- for after_version in versions:
- yield Report(cpu, apk, None, after_version)
- for i, before_version in enumerate(versions):
- for after_version in versions[i + 1:]:
- yield Report(cpu, apk, before_version, after_version)
-
-
-def _TemplateToRegex(template):
- # Transform '{cpu}/{apk}/... -> (?P<cpu>[^/]+)/(?P<apk>[^/]+)/...
- pattern = re.sub(r'{(.*?)}', r'(?P<\1>[^/]+)', template)
- return re.compile(pattern)
-
-
-class Report(
- collections.namedtuple('Report', 'cpu,apk,before_version,after_version')):
-
- _NDJSON_TEMPLATE_VIEW = '{cpu}/{apk}/report_{after_version}.ndjson'
- _NDJSON_TEMPLATE_COMPARE = (
- '{cpu}/{apk}/report_{before_version}_{after_version}.ndjson')
- _PUSH_URL_REGEX_VIEW = _TemplateToRegex(_PUSH_URL + _NDJSON_TEMPLATE_VIEW)
- _PUSH_URL_REGEX_COMPARE = _TemplateToRegex(_PUSH_URL +
- _NDJSON_TEMPLATE_COMPARE)
-
- @classmethod
- def FromUrl(cls, url):
- # Perform this match first since it's more restrictive.
- match = cls._PUSH_URL_REGEX_COMPARE.match(url)
- if match:
- return cls(**match.groupdict())
- match = cls._PUSH_URL_REGEX_VIEW.match(url)
- if match:
- return cls(before_version=None, **match.groupdict())
- return None
-
- def _CreateSizeSubpath(self, version):
- ret = '{version}/{cpu}/{apk}.size'.format(version=version, **self._asdict())
- if _IsBundle(self.apk, version):
- ret = ret.replace('.apk', '.minimal.apks')
- return ret
+ for version in versions:
+ yield Report(cpu, apk, version)
- @property
- def before_size_file_subpath(self):
- if self.before_version:
- return self._CreateSizeSubpath(self.before_version)
- return None
- @property
- def after_size_file_subpath(self):
- return self._CreateSizeSubpath(self.after_version)
+class Report(collections.namedtuple('Report', 'cpu,apk,version')):
@property
- def ndjson_subpath(self):
- if self.before_version:
- return self._NDJSON_TEMPLATE_COMPARE.format(**self._asdict())
- return self._NDJSON_TEMPLATE_VIEW.format(**self._asdict())
+ def size_file_subpath(self):
+ ret = '{version}/{cpu}/{apk}.size'.format(**self._asdict())
+ if _IsBundle(self.apk, self.version):
+ ret = ret.replace('.apk', '.minimal.apks')
+ return ret
def _MakeDirectory(path):
@@ -179,10 +137,7 @@ def _DownloadOneSizeFile(arg_tuples):
def _DownloadSizeFiles(base_url, reports):
temp_dir = tempfile.mkdtemp()
try:
- subpaths = set(x.after_size_file_subpath for x in reports)
- subpaths.update(x.before_size_file_subpath
- for x in reports
- if x.before_size_file_subpath)
+ subpaths = set(x.size_file_subpath for x in reports)
logging.warning('Downloading %d .size files', len(subpaths))
arg_tuples = ((p, temp_dir, base_url) for p in subpaths)
for _ in _Shard(_DownloadOneSizeFile, arg_tuples):
@@ -192,14 +147,6 @@ def _DownloadSizeFiles(base_url, reports):
shutil.rmtree(temp_dir)
-def _FetchExistingMilestoneReports():
- milestones = subprocess.check_output([_GSUTIL, 'ls', '-R', _PUSH_URL + '*'])
- for path in milestones.splitlines()[1:]:
- report = Report.FromUrl(path)
- if report:
- yield report
-
-
def _WriteMilestonesJson(path):
with open(path, 'w') as out_file:
# TODO(agrieve): Record the full list of reports rather than three arrays
@@ -214,38 +161,17 @@ def _WriteMilestonesJson(path):
json.dump(pushed_reports_obj, out_file, sort_keys=True, indent=2)
-def _BuildOneReport(arg_tuples):
- report, output_directory, size_file_directory = arg_tuples
- ndjson_path = os.path.join(output_directory, report.ndjson_subpath)
-
- _MakeDirectory(os.path.dirname(ndjson_path))
- script = os.path.join(os.path.dirname(__file__), 'supersize')
- after_size_file = os.path.join(size_file_directory,
- report.after_size_file_subpath)
- args = [script, 'html_report', after_size_file, ndjson_path]
+def _BuildOneReport(report, output_directory, size_file_directory):
+ # Newer Monochrome builds are minimal builds, with names like
+ # "Monochrome.minimal.apks.size". Standardize to "Monochrome.apk.size".
+ local_size_path = os.path.join(output_directory,
+ report.size_file_subpath).replace(
+ 'minimal.apks', 'apk')
- if report.before_version:
- before_size_file = os.path.join(size_file_directory,
- report.before_size_file_subpath)
- args += ['--diff-with', before_size_file]
+ _MakeDirectory(os.path.dirname(local_size_path))
- subprocess.check_output(args, stderr=subprocess.STDOUT)
-
-
-def _CreateReportObjects(skip_existing):
- desired_reports = set(_EnumerateReports())
- logging.warning('Querying storage bucket for existing reports.')
- existing_reports = set(_FetchExistingMilestoneReports())
- missing_reports = desired_reports - existing_reports
- stale_reports = existing_reports - desired_reports
- if stale_reports:
- # Stale reports happen when we remove a version
- # (e.g. update a beta to a stable).
- # It's probably best to leave them in case people have linked to them.
- logging.warning('Number of stale reports: %d', len(stale_reports))
- if skip_existing:
- return sorted(missing_reports)
- return sorted(desired_reports)
+ size_file = os.path.join(size_file_directory, report.size_file_subpath)
+ shutil.copyfile(size_file, local_size_path)
def main():
@@ -261,13 +187,11 @@ def main():
action='store_true',
help='Sync data files to GCS (otherwise just prints out command to run).')
parser.add_argument(
- '--skip-existing', action='store_true', help='Skip existing reports.')
+ '--skip-existing',
+ action='store_true',
+ help='Used to control skipping existing reports, now does nothing.')
args = parser.parse_args()
- # Anything lower than WARNING gives screens full of supersize logs.
- logging.basicConfig(
- level=logging.WARNING,
- format='%(levelname).1s %(relativeCreated)6d %(message)s')
size_file_bucket = args.size_file_bucket.rstrip('/')
if not size_file_bucket.startswith('gs://'):
@@ -277,16 +201,13 @@ def main():
if os.listdir(args.directory):
parser.error('Directory must be empty')
- reports_to_make = _CreateReportObjects(args.skip_existing)
- if not reports_to_make:
- logging.warning('No reports need to be created (due to --skip-existing).')
- return
+ reports_to_make = set(_EnumerateReports())
with _DownloadSizeFiles(args.size_file_bucket, reports_to_make) as sizes_dir:
- logging.warning('Generating %d reports.', len(reports_to_make))
+ logging.warning('Downloading %d size files.', len(reports_to_make))
- arg_tuples = ((r, args.directory, sizes_dir) for r in reports_to_make)
- for i, _ in enumerate(_Shard(_BuildOneReport, arg_tuples)):
+ for i, r in enumerate(reports_to_make):
+ _BuildOneReport(r, args.directory, sizes_dir)
sys.stdout.write('\rGenerated {} of {}'.format(i + 1,
len(reports_to_make)))
sys.stdout.flush()
diff --git a/chromium/tools/binary_size/libsupersize/apkanalyzer.py b/chromium/tools/binary_size/libsupersize/apkanalyzer.py
index 259e95afa20..93ded40ae3c 100644
--- a/chromium/tools/binary_size/libsupersize/apkanalyzer.py
+++ b/chromium/tools/binary_size/libsupersize/apkanalyzer.py
@@ -29,20 +29,25 @@ def _ParseJarInfoFile(file_name):
return source_map
-def _RunApkAnalyzer(apk_path, mapping_path, output_directory):
- args = [path_util.GetApkAnalyzerPath(output_directory), 'dex', 'packages',
- apk_path]
+def _RunApkAnalyzer(apk_path, mapping_path):
+ args = [path_util.GetApkAnalyzerPath(), 'dex', 'packages', apk_path]
if mapping_path and os.path.exists(mapping_path):
args.extend(['--proguard-mappings', mapping_path])
- output = subprocess.check_output(args)
+ env = os.environ.copy()
+ env['JAVA_HOME'] = path_util.GetJavaHome()
+ output = subprocess.check_output(args, env=env)
data = []
for line in output.splitlines():
- vals = line.split()
- # We want to name these columns so we know exactly which is which.
- # pylint: disable=unused-variable
- node_type, state, defined_methods, referenced_methods, size, name = (
- vals[0], vals[1], vals[2], vals[3], vals[4], vals[5:])
- data.append((node_type, ' '.join(name), int(size)))
+ try:
+ vals = line.split()
+ # We want to name these columns so we know exactly which is which.
+ # pylint: disable=unused-variable
+ node_type, state, defined_methods, referenced_methods, size, name = (
+ vals[0], vals[1], vals[2], vals[3], vals[4], vals[5:])
+ data.append((node_type, ' '.join(name), int(size)))
+ except Exception:
+ logging.error('Problem line was: %s', line)
+ raise
return data
@@ -130,11 +135,10 @@ def UndoHierarchicalSizing(data):
return nodes
-def CreateDexSymbols(apk_path, mapping_path, size_info_prefix,
- output_directory):
+def CreateDexSymbols(apk_path, mapping_path, size_info_prefix):
source_map = _ParseJarInfoFile(size_info_prefix + '.jar.info')
- nodes = _RunApkAnalyzer(apk_path, mapping_path, output_directory)
+ nodes = _RunApkAnalyzer(apk_path, mapping_path)
nodes = UndoHierarchicalSizing(nodes)
dex_expected_size = _ExpectedDexTotalSize(apk_path)
diff --git a/chromium/tools/binary_size/libsupersize/archive.py b/chromium/tools/binary_size/libsupersize/archive.py
index 0f3134885e0..891eac468ae 100644
--- a/chromium/tools/binary_size/libsupersize/archive.py
+++ b/chromium/tools/binary_size/libsupersize/archive.py
@@ -90,7 +90,6 @@ class SectionSizeKnobs(object):
'assets/icudtl.dat': '../../third_party/icu/android/icudtl.dat',
'assets/snapshot_blob_32.bin': '../../v8/snapshot_blob_32.bin',
'assets/snapshot_blob_64.bin': '../../v8/snapshot_blob_64.bin',
- 'assets/natives_blob.bin': '../../v8/natives_blob.bin',
'assets/unwind_cfi_32': '../../base/trace_event/cfi_backtrace_android.cc',
'assets/webapk_dex_version.txt': (
'../../chrome/android/webapk/libs/runtime_library_version.gni'),
@@ -523,43 +522,6 @@ def _CreateMergeStringsReplacements(merge_string_syms,
return ret
-def _CalculatePadding(raw_symbols):
- """Populates the |padding| field based on symbol addresses.
-
- Symbols must already be sorted by |address|.
- """
- seen_sections = set()
- for i, symbol in enumerate(raw_symbols[1:]):
- prev_symbol = raw_symbols[i]
- if symbol.IsOverhead():
- # Overhead symbols are not actionable so should be padding-only.
- symbol.padding = symbol.size
- if prev_symbol.section_name != symbol.section_name:
- assert symbol.section_name not in seen_sections, (
- 'Input symbols must be sorted by section, then address.')
- seen_sections.add(symbol.section_name)
- continue
- if (symbol.address <= 0 or prev_symbol.address <= 0 or
- not symbol.IsNative() or not prev_symbol.IsNative()):
- continue
-
- if symbol.address == prev_symbol.address:
- if symbol.aliases and symbol.aliases is prev_symbol.aliases:
- symbol.padding = prev_symbol.padding
- symbol.size = prev_symbol.size
- continue
- # Padding-only symbols happen for ** symbol gaps.
- assert prev_symbol.size_without_padding == 0, (
- 'Found duplicate symbols:\n%r\n%r' % (prev_symbol, symbol))
-
- padding = symbol.address - prev_symbol.end_address
- symbol.padding = padding
- symbol.size += padding
- assert symbol.size >= 0, (
- 'Symbol has negative size (likely not sorted propertly): '
- '%r\nprev symbol: %r' % (symbol, prev_symbol))
-
-
def _ParseComponentFromOwners(filename):
"""Searches an OWNERS file for lines that start with `# COMPONENT:`.
@@ -721,8 +683,6 @@ def LoadAndPostProcessSizeInfo(path, file_obj=None):
size_info = file_format.LoadSizeInfo(path, file_obj=file_obj)
logging.info('Normalizing symbol names')
_NormalizeNames(size_info.raw_symbols)
- logging.info('Calculating padding')
- _CalculatePadding(size_info.raw_symbols)
logging.info('Loaded %d symbols', len(size_info.raw_symbols))
return size_info
@@ -774,6 +734,7 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path,
elf_path))
timestamp = calendar.timegm(timestamp_obj.timetuple())
relative_tool_prefix = path_util.ToSrcRootRelative(tool_prefix)
+ relocations_count = _CountRelocationsFromElf(elf_path, tool_prefix)
metadata = {
models.METADATA_GIT_REVISION: git_rev,
@@ -782,6 +743,7 @@ def CreateMetadata(map_path, elf_path, apk_path, minimal_apks_path,
models.METADATA_ELF_BUILD_ID: build_id,
models.METADATA_LINKER_NAME: linker_name,
models.METADATA_TOOL_PREFIX: relative_tool_prefix,
+ models.METADATA_ELF_RELOCATIONS_COUNT: relocations_count
}
if output_directory:
@@ -1523,8 +1485,8 @@ def CreateSectionSizesAndSymbols(map_path=None,
size_info_prefix, knobs)
if knobs.analyze_java:
- dex_symbols = apkanalyzer.CreateDexSymbols(
- apk_path, mapping_path, size_info_prefix, output_directory)
+ dex_symbols = apkanalyzer.CreateDexSymbols(apk_path, mapping_path,
+ size_info_prefix)
raw_symbols.extend(dex_symbols)
# We can't meaningfully track section size of dex methods vs other, so
@@ -1587,22 +1549,24 @@ def CreateSectionSizesAndSymbols(map_path=None,
return section_sizes, raw_symbols
-def CreateSizeInfo(
- section_sizes, raw_symbols, metadata=None, normalize_names=True):
- """Performs operations on all symbols and creates a SizeInfo object."""
+def SortSymbols(raw_symbols):
logging.debug('Sorting %d symbols', len(raw_symbols))
# TODO(agrieve): Either change this sort so that it's only sorting by section
# (and not using .sort()), or have it specify a total ordering (which must
# also include putting padding-only symbols before others of the same
# address). Note: The sort as-is takes ~1.5 seconds.
- raw_symbols.sort(key=lambda s: (
- s.IsPak(), s.IsBss(), s.section_name, s.address))
+ raw_symbols.sort(
+ key=lambda s: (s.IsPak(), s.IsBss(), s.section_name, s.address))
logging.info('Processed %d symbols', len(raw_symbols))
- # Padding not really required, but it is useful to check for large padding and
- # log a warning.
- logging.info('Calculating padding')
- _CalculatePadding(raw_symbols)
+
+def CreateSizeInfo(section_sizes,
+ raw_symbols,
+ metadata=None,
+ normalize_names=True):
+ """Performs operations on all symbols and creates a SizeInfo object."""
+ SortSymbols(raw_symbols)
+ file_format.CalculatePadding(raw_symbols)
# Do not call _NormalizeNames() during archive since that method tends to need
# tweaks over time. Calling it only when loading .size files allows for more
@@ -1672,6 +1636,13 @@ def _ArchFromElf(elf_path, tool_prefix):
return machine
+def _CountRelocationsFromElf(elf_path, tool_prefix):
+ args = [path_util.GetObjDumpPath(tool_prefix), '--private-headers', elf_path]
+ stdout = subprocess.check_output(args)
+ relocations = re.search('REL[AR]?COUNT\s*(.+)', stdout).group(1)
+ return int(relocations, 16)
+
+
def _ParseGnArgs(args_path):
"""Returns a list of normalized "key=value" strings."""
args = {}
@@ -1778,6 +1749,11 @@ def AddArguments(parser):
'--no-java', action='store_true', help='Do not run on Java symbols')
parser.add_argument(
'--no-native', action='store_true', help='Do not run on native symbols')
+ parser.add_argument(
+ '--include-padding',
+ action='store_true',
+ help='Include a padding field for each symbol, instead of rederiving '
+ 'from consecutive symbols on file load.')
AddMainPathsArguments(parser)
@@ -1961,6 +1937,7 @@ def _RunInternal(args, parser, extracted_minimal_apk_path):
logging.info('Recording metadata: \n %s',
'\n '.join(describe.DescribeMetadata(size_info.metadata)))
logging.info('Saving result to %s', args.size_file)
- file_format.SaveSizeInfo(size_info, args.size_file)
+ file_format.SaveSizeInfo(
+ size_info, args.size_file, include_padding=args.include_padding)
size_in_mb = os.path.getsize(args.size_file) / 1024.0 / 1024.0
logging.info('Done. File size is %.2fMiB.', size_in_mb)
diff --git a/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn b/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
index b2b3f1c5be8..dc48257b337 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
+++ b/chromium/tools/binary_size/libsupersize/caspian/BUILD.gn
@@ -2,20 +2,58 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//testing/test.gni")
+
+# Enable wasm target that depends on foo.patch being applied.
+if (!defined(is_wasm)) {
+ is_wasm = current_os == "wasm"
+}
+
+assert(is_linux || is_wasm)
+
source_set("caspian-lib") {
sources = [
+ "diff.cc",
+ "diff.h",
"file_format.cc",
"file_format.h",
+ "function_signature.cc",
+ "function_signature.h",
+ "grouped_path.cc",
+ "grouped_path.h",
+ "lens.cc",
+ "lens.h",
"model.cc",
"model.h",
+ "tree_builder.cc",
+ "tree_builder.h",
]
deps = [
+ "//third_party/re2:re2",
"//third_party/zlib:zlib",
"//third_party/zlib/google:compression_utils_portable",
]
public_deps = [
"//third_party/jsoncpp:jsoncpp",
]
+ configs -= [ "//build/config/compiler:default_optimization" ]
+ configs += [ "//build/config/compiler:optimize_speed" ]
+}
+
+test("caspian_unittests") {
+ sources = [
+ "diff_test.cc",
+ "function_signature_test.cc",
+ "grouped_path_test.cc",
+ "lens_test.cc",
+ "tree_builder_test.cc",
+ ]
+ deps = [
+ ":caspian-lib",
+ "//testing/gtest",
+ "//testing/gtest:gtest_main",
+ "//third_party/re2:re2",
+ ]
}
executable("cli") {
@@ -25,4 +63,35 @@ executable("cli") {
deps = [
":caspian-lib",
]
+ cflags = [ "-Wall" ]
+}
+
+if (is_wasm) {
+ executable("caspian_web") {
+ sources = [
+ "caspian_web.cc",
+ ]
+ deps = [
+ ":caspian-lib",
+ "//third_party/re2:re2",
+ ]
+ if (!is_debug) {
+ # Use optimize_speed (-O3) to output the _smallest_ code.
+ configs -= [ "//build/config/compiler:default_optimization" ]
+ configs += [ "//build/config/compiler:optimize_speed" ]
+ }
+ ldflags = [
+ "-s",
+ "TOTAL_MEMORY=536870912",
+ "-s",
+ "ALLOW_MEMORY_GROWTH=1",
+ "-s",
+ "EXPORTED_FUNCTIONS=['_LoadSizeFile','_LoadBeforeSizeFile','_BuildTree','_Open','_malloc','_free']",
+ "-s",
+ "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall','cwrap','UTF8ToString']",
+ ]
+ if (!is_debug) {
+ ldflags += [ "-O3" ]
+ }
+ }
}
diff --git a/chromium/tools/binary_size/libsupersize/caspian/DEPS b/chromium/tools/binary_size/libsupersize/caspian/DEPS
index 9d034a5a031..77ebf8d8638 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/DEPS
+++ b/chromium/tools/binary_size/libsupersize/caspian/DEPS
@@ -1,4 +1,6 @@
include_rules = [
"+third_party/zlib",
"+third_party/jsoncpp",
+ "+third_party/re2",
+ "+testing/gtest/include/gtest",
]
diff --git a/chromium/tools/binary_size/libsupersize/caspian/caspian.md b/chromium/tools/binary_size/libsupersize/caspian/caspian.md
new file mode 100644
index 00000000000..0a6a8a5508f
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/caspian.md
@@ -0,0 +1,19 @@
+# Caspian
+
+## What is it?
+
+Caspian is the name for the WebAssembly portion of the SuperSize Tiger Viewer.
+
+## How do I build it?
+
+1. Apply the patch file at `tools/binary_size/libsupersize/caspian/wasmbuild.patch`
+
+2. From `src/`, run
+`gn gen out/caspian &&
+third_party/depot_tools/autoninja -C out/caspian tools/binary_size:caspian_web -v &&
+cp out/caspian/wasm/caspian_web.* tools/binary_size/libsupersize/static/`
+
+ * If doing a release build, you should change your gn args: set is\_debug=false
+
+3. You can then launch a local instance using `tools/binary_size/supersize start_server out.size`
+
diff --git a/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc b/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
index 3bccad1323a..2d6b1f3c51e 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/caspian_web.cc
@@ -5,16 +5,167 @@
// Command-line interface for checking the integrity of .size files.
// Intended to be called from WebAssembly code.
+#include <stdint.h>
#include <stdlib.h>
+#include <iostream>
+#include <memory>
+#include <sstream>
+#include <string>
+
+#include "third_party/jsoncpp/source/include/json/json.h"
+#include "third_party/re2/src/re2/re2.h"
+#include "tools/binary_size/libsupersize/caspian/diff.h"
#include "tools/binary_size/libsupersize/caspian/file_format.h"
+#include "tools/binary_size/libsupersize/caspian/lens.h"
#include "tools/binary_size/libsupersize/caspian/model.h"
+#include "tools/binary_size/libsupersize/caspian/tree_builder.h"
+
+namespace caspian {
+namespace {
+std::unique_ptr<SizeInfo> info;
+std::unique_ptr<SizeInfo> before_info;
+std::unique_ptr<DeltaSizeInfo> diff_info;
+std::unique_ptr<TreeBuilder> builder;
-caspian::SizeInfo info;
+std::unique_ptr<Json::StreamWriter> writer;
+
+std::string JsonSerialize(const Json::Value& value) {
+ if (!writer) {
+ writer.reset(Json::StreamWriterBuilder().newStreamWriter());
+ }
+ std::stringstream s;
+ writer->write(value, &s);
+ return s.str();
+}
+} // namespace
extern "C" {
-bool LoadSizeFile(const char* compressed, size_t size) {
- caspian::ParseSizeInfo(compressed, size, &info);
- return true;
+void LoadSizeFile(char* compressed, size_t size) {
+ if (IsDiffSizeInfo(compressed, size)) {
+ info = std::make_unique<SizeInfo>();
+ before_info = std::make_unique<SizeInfo>();
+ diff_info.reset(nullptr);
+ ParseDiffSizeInfo(compressed, size, before_info.get(), info.get());
+ } else {
+ diff_info.reset(nullptr);
+ info = std::make_unique<SizeInfo>();
+ ParseSizeInfo(compressed, size, info.get());
+ }
+}
+
+void LoadBeforeSizeFile(const char* compressed, size_t size) {
+ diff_info.reset(nullptr);
+ before_info = std::make_unique<SizeInfo>();
+ ParseSizeInfo(compressed, size, before_info.get());
+}
+
+void BuildTree(bool method_count_mode,
+ const char* group_by,
+ const char* include_regex_str,
+ const char* exclude_regex_str,
+ const char* include_sections,
+ int minimum_size_bytes,
+ int match_flag) {
+ std::vector<std::function<bool(const BaseSymbol&)>> filters;
+
+ const bool diff_mode = info && before_info;
+
+ if (minimum_size_bytes > 0) {
+ if (!diff_mode) {
+ filters.push_back([minimum_size_bytes](const BaseSymbol& sym) -> bool {
+ return sym.Pss() >= minimum_size_bytes;
+ });
+ } else {
+ filters.push_back([minimum_size_bytes](const BaseSymbol& sym) -> bool {
+ return abs(sym.Pss()) >= minimum_size_bytes;
+ });
+ }
+ }
+
+ // It's currently not useful to filter on more than one flag, so
+ // |match_flag| can be assumed to be a power of two.
+ if (match_flag) {
+ std::cout << "Filtering on flag matching " << match_flag << std::endl;
+ filters.push_back([match_flag](const BaseSymbol& sym) -> bool {
+ return match_flag & sym.Flags();
+ });
+ }
+
+ std::array<bool, 256> include_sections_map{};
+ if (include_sections) {
+ std::cout << "Filtering on sections " << include_sections << std::endl;
+ for (const char* c = include_sections; *c; c++) {
+ include_sections_map[static_cast<uint8_t>(*c)] = true;
+ }
+ filters.push_back([&include_sections_map](const BaseSymbol& sym) -> bool {
+ return include_sections_map[static_cast<uint8_t>(sym.Section())];
+ });
+ }
+
+ std::unique_ptr<RE2> include_regex;
+ if (include_regex_str && *include_regex_str) {
+ include_regex.reset(new RE2(include_regex_str));
+ if (include_regex->error_code() == RE2::NoError) {
+ filters.push_back([&include_regex](const BaseSymbol& sym) -> bool {
+ re2::StringPiece piece(sym.FullName().data(), sym.FullName().size());
+ return RE2::PartialMatch(piece, *include_regex);
+ });
+ }
+ }
+
+ std::unique_ptr<RE2> exclude_regex;
+ if (exclude_regex_str && *exclude_regex_str) {
+ exclude_regex.reset(new RE2(exclude_regex_str));
+ if (exclude_regex->error_code() == RE2::NoError) {
+ filters.push_back([&exclude_regex](const BaseSymbol& sym) -> bool {
+ re2::StringPiece piece(sym.FullName().data(), sym.FullName().size());
+ return !RE2::PartialMatch(piece, *exclude_regex);
+ });
+ }
+ }
+
+ // BuildTree() is called every time a new filter is applied in the HTML
+ // viewer, but if we already have a DeltaSizeInfo we can skip regenerating it
+ // and let the TreeBuilder filter the symbols we care about.
+ if (diff_mode && !diff_info) {
+ diff_info.reset(new DeltaSizeInfo(Diff(before_info.get(), info.get())));
+ }
+
+ if (diff_mode) {
+ builder.reset(new TreeBuilder(diff_info.get()));
+ } else {
+ builder.reset(new TreeBuilder(info.get()));
+ }
+
+ std::unique_ptr<BaseLens> lens;
+ char sep = '/';
+ std::cout << "group_by=" << group_by << std::endl;
+ if (!strcmp(group_by, "source_path")) {
+ lens = std::make_unique<IdPathLens>();
+ } else if (!strcmp(group_by, "component")) {
+ lens = std::make_unique<ComponentLens>();
+ sep = '>';
+ } else if (!strcmp(group_by, "template")) {
+ lens = std::make_unique<TemplateLens>();
+ filters.push_back([](const BaseSymbol& sym) -> bool {
+ return sym.IsTemplate() && sym.IsNative();
+ });
+ } else if (!strcmp(group_by, "generated_type")) {
+ lens = std::make_unique<GeneratedLens>();
+ } else {
+ std::cerr << "Unsupported group_by=" << group_by << std::endl;
+ exit(1);
+ }
+ builder->Build(std::move(lens), sep, method_count_mode, filters);
}
+
+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();
}
+} // extern "C"
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/cli.cc b/chromium/tools/binary_size/libsupersize/caspian/cli.cc
index b07f9cd5143..2fcffb9fb61 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/cli.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/cli.cc
@@ -11,38 +11,88 @@
#include <fstream>
#include <iostream>
+#include "tools/binary_size/libsupersize/caspian/diff.h"
#include "tools/binary_size/libsupersize/caspian/file_format.h"
#include "tools/binary_size/libsupersize/caspian/model.h"
-int main(int argc, char* argv[]) {
- if (argc < 2) {
- std::cerr << "Usage: cli (path to .size file)" << std::endl;
+void ParseSizeInfoFromFile(const char* filename, caspian::SizeInfo* info) {
+ std::ifstream ifs(filename, std::ifstream::in);
+ if (!ifs.good()) {
+ std::cerr << "Unable to open file: " << filename << std::endl;
exit(1);
}
- std::ifstream ifs(argv[1], std::ifstream::in);
+ std::string compressed((std::istreambuf_iterator<char>(ifs)),
+ std::istreambuf_iterator<char>());
+ caspian::ParseSizeInfo(compressed.data(), compressed.size(), info);
+}
+
+void ParseDiffSizeInfoFromFile(const char* filename,
+ caspian::SizeInfo* before,
+ caspian::SizeInfo* after) {
+ std::ifstream ifs(filename, std::ifstream::in);
if (!ifs.good()) {
- std::cerr << "Unable to open file: " << argv[1] << std::endl;
+ std::cerr << "Unable to open file: " << filename << std::endl;
exit(1);
}
std::string compressed((std::istreambuf_iterator<char>(ifs)),
std::istreambuf_iterator<char>());
+ caspian::ParseDiffSizeInfo(&compressed[0], compressed.size(), before, after);
+}
+
+void Diff(const char* before_filename, const char* after_filename) {
+ caspian::SizeInfo before;
+ ParseSizeInfoFromFile(before_filename, &before);
+
+ caspian::SizeInfo after;
+ ParseSizeInfoFromFile(after_filename, &after);
+
+ caspian::DeltaSizeInfo diff = Diff(&before, &after);
+
+ float pss = 0.0f;
+ float size = 0.0f;
+ float padding = 0.0f;
+ for (const auto& sym : diff.delta_symbols) {
+ pss += sym.Pss();
+ size += sym.Size();
+ padding += sym.Padding();
+ }
+ std::cout << "Pss: " << pss << std::endl;
+ std::cout << "Size: " << size << std::endl;
+ std::cout << "Padding: " << padding << std::endl;
+}
+
+void Validate(const char* filename) {
caspian::SizeInfo info;
- caspian::ParseSizeInfo(compressed.data(), compressed.size(), &info);
-
- size_t max_aliases = 0;
- for (auto& s : info.raw_symbols) {
- if (s.aliases) {
- max_aliases = std::max(max_aliases, s.aliases->size());
- // What a wonderful O(n^2) loop
- for (auto* ss : *s.aliases) {
- if (ss->aliases != s.aliases) {
- std::cerr << "Not all symbols in alias group had same alias count"
- << std::endl;
- exit(1);
- }
- }
- }
+ ParseSizeInfoFromFile(filename, &info);
+}
+
+void ValidateDiff(const char* filename) {
+ caspian::SizeInfo before;
+ caspian::SizeInfo after;
+ ParseDiffSizeInfoFromFile(filename, &before, &after);
+}
+
+void PrintUsageAndExit() {
+ std::cerr << "Must have exactly one of:" << std::endl;
+ std::cerr << " validate, diff" << std::endl;
+ std::cerr << "Usage:" << std::endl;
+ std::cerr << " cli validate <size file>" << std::endl;
+ std::cerr << " cli diff <before_file> <after_file>" << std::endl;
+ exit(1);
+}
+
+int main(int argc, char* argv[]) {
+ if (argc < 2) {
+ PrintUsageAndExit();
+ }
+ if (std::string_view(argv[1]) == "diff") {
+ Diff(argv[2], argv[3]);
+ } else if (std::string_view(argv[1]) == "validate") {
+ Validate(argv[2]);
+ } else if (std::string_view(argv[1]) == "validatediff") {
+ ValidateDiff(argv[2]);
+ } else {
+ PrintUsageAndExit();
}
- std::cout << "Largest number of aliases: " << max_aliases << std::endl;
return 0;
}
diff --git a/chromium/tools/binary_size/libsupersize/caspian/diff.cc b/chromium/tools/binary_size/libsupersize/caspian/diff.cc
new file mode 100644
index 00000000000..ca17f9a8b0a
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/diff.cc
@@ -0,0 +1,252 @@
+// 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 "tools/binary_size/libsupersize/caspian/diff.h"
+
+#include <deque>
+#include <functional>
+#include <iostream>
+#include <list>
+#include <string>
+#include <string_view>
+#include <unordered_map>
+#include <utility>
+#include <vector>
+
+#include "third_party/re2/src/re2/re2.h"
+
+namespace {
+struct SymbolMatchIndex {
+ SymbolMatchIndex() {}
+ SymbolMatchIndex(caspian::SectionId id,
+ std::string_view name,
+ std::string_view path,
+ int size_without_padding)
+ : nonempty(true),
+ id(id),
+ name(name),
+ path(path),
+ size_without_padding(size_without_padding) {
+ this->name = name;
+ }
+
+ operator bool() const { return nonempty; }
+
+ bool operator==(const SymbolMatchIndex& other) const {
+ return id == other.id && name == other.name && path == other.path &&
+ size_without_padding == other.size_without_padding;
+ }
+
+ bool nonempty = false;
+ caspian::SectionId id;
+ std::string_view name;
+ std::string_view path;
+ int size_without_padding;
+};
+} // namespace
+
+namespace std {
+template <>
+struct hash<SymbolMatchIndex> {
+ static constexpr size_t kPrime1 = 105929;
+ static constexpr size_t kPrime2 = 8543;
+ size_t operator()(const SymbolMatchIndex& k) const {
+ return ((kPrime1 * static_cast<size_t>(k.id)) ^
+ hash<string_view>()(k.name) ^ hash<string_view>()(k.path) ^
+ (kPrime2 * k.size_without_padding));
+ }
+};
+} // namespace std
+
+namespace {
+// Copied from /base/stl_util.h
+template <class T, class Allocator, class Value>
+void Erase(std::vector<T, Allocator>& container, const Value& value) {
+ container.erase(std::remove(container.begin(), container.end(), value),
+ container.end());
+}
+
+std::string_view GetIdPath(const caspian::Symbol& sym) {
+ return (sym.SourcePath() && *sym.SourcePath()) ? sym.SourcePath()
+ : sym.ObjectPath();
+}
+
+int MatchSymbols(
+ std::function<SymbolMatchIndex(const caspian::Symbol&)> key_func,
+ std::vector<caspian::DeltaSymbol>* delta_symbols,
+ std::vector<const caspian::Symbol*>* unmatched_before,
+ std::vector<const caspian::Symbol*>* unmatched_after,
+ std::unordered_map<caspian::SectionId, float>* padding_by_section_name) {
+ int n_matched_symbols = 0;
+ std::unordered_map<SymbolMatchIndex,
+ std::list<std::reference_wrapper<const caspian::Symbol*>>>
+ before_symbols_by_key;
+ for (const caspian::Symbol*& before_sym : *unmatched_before) {
+ SymbolMatchIndex key = key_func(*before_sym);
+ if (key) {
+ before_symbols_by_key[key].emplace_back(before_sym);
+ }
+ }
+
+ for (const caspian::Symbol*& after_sym : *unmatched_after) {
+ SymbolMatchIndex key = key_func(*after_sym);
+ if (key) {
+ const auto& found = before_symbols_by_key.find(key);
+ if (found != before_symbols_by_key.end() && found->second.size()) {
+ const caspian::Symbol*& before_sym = found->second.front().get();
+ found->second.pop_front();
+ // Padding tracked in aggregate, except for padding-only symbols.
+ if (before_sym->SizeWithoutPadding() != 0) {
+ (*padding_by_section_name)[before_sym->section_id_] +=
+ after_sym->PaddingPss() - before_sym->PaddingPss();
+ }
+ caspian::DeltaSymbol delta_sym(before_sym, after_sym);
+ delta_symbols->push_back(delta_sym);
+ // Null associated pointers in |unmatched_before|, |unmatched_after|.
+ before_sym = nullptr;
+ after_sym = nullptr;
+ n_matched_symbols++;
+ }
+ }
+ }
+
+ // Compact out nulled entries.
+ Erase(*unmatched_before, nullptr);
+ Erase(*unmatched_after, nullptr);
+ return n_matched_symbols;
+}
+
+class DiffHelper {
+ public:
+ DiffHelper() = default;
+
+ std::string_view StripNumbers(std::string_view in) {
+ static const RE2 number_regex("\\d+");
+ re2::StringPiece piece(in.data(), in.size());
+ if (RE2::PartialMatch(piece, number_regex)) {
+ tmp_strings_.push_back(std::string(in));
+ RE2::GlobalReplace(&tmp_strings_.back(), number_regex, "");
+ return tmp_strings_.back();
+ }
+ return in;
+ }
+
+ std::string_view NormalizeStarSymbols(std::string_view in) {
+ // Used only for "*" symbols to strip suffixes "abc123" or "abc123 (any)".
+ static const RE2 normalize_star_symbols("\\s+\\d+(?: \\(.*\\))?$");
+ re2::StringPiece piece(in.data(), in.size());
+ if (RE2::PartialMatch(piece, normalize_star_symbols)) {
+ tmp_strings_.push_back(std::string(in));
+ RE2::Replace(&tmp_strings_.back(), normalize_star_symbols, "s");
+ return tmp_strings_.back();
+ }
+ return in;
+ }
+
+ using MatchFunc = std::function<SymbolMatchIndex(const caspian::Symbol&)>;
+
+ MatchFunc SectionAndFullNameAndPathAndSize() {
+ return [](const caspian::Symbol& sym) {
+ return SymbolMatchIndex(sym.section_id_, sym.full_name_, GetIdPath(sym),
+ sym.Pss());
+ };
+ }
+
+ MatchFunc SectionAndFullNameAndPath() {
+ return [this](const caspian::Symbol& sym) {
+ return SymbolMatchIndex(sym.section_id_, StripNumbers(sym.full_name_),
+ GetIdPath(sym), 0.0f);
+ };
+ }
+
+ // Allows signature changes (uses |Name()| rather than |FullName()|)
+ MatchFunc SectionAndNameAndPath() {
+ return [this](const caspian::Symbol& sym) {
+ std::string_view name = sym.Name();
+ if (!name.empty() && name[0] == '*') {
+ name = NormalizeStarSymbols(name);
+ }
+ return SymbolMatchIndex(sym.section_id_, name, GetIdPath(sym), 0.0f);
+ };
+ }
+
+ // Match on full name, but without path (to account for file moves)
+ MatchFunc SectionAndFullName() {
+ return [](const caspian::Symbol& sym) {
+ if (!sym.IsNameUnique()) {
+ return SymbolMatchIndex();
+ }
+ return SymbolMatchIndex(sym.section_id_, sym.full_name_, "", 0.0f);
+ };
+ }
+
+ void ClearStrings() { tmp_strings_.clear(); }
+
+ private:
+ // Holds strings created during number stripping/star symbol normalization.
+ std::deque<std::string> tmp_strings_;
+};
+} // namespace
+
+namespace caspian {
+
+DeltaSizeInfo Diff(const SizeInfo* before, const SizeInfo* after) {
+ DeltaSizeInfo ret(before, after);
+
+ std::vector<const Symbol*> unmatched_before;
+ for (const Symbol& sym : before->raw_symbols) {
+ unmatched_before.push_back(&sym);
+ }
+
+ std::vector<const Symbol*> unmatched_after;
+ for (const Symbol& sym : after->raw_symbols) {
+ unmatched_after.push_back(&sym);
+ }
+
+ // Attempt several rounds to use increasingly loose matching on unmatched
+ // symbols. Any symbols still unmatched are tried in the next round.
+ int step = 0;
+ DiffHelper helper;
+ std::vector<DiffHelper::MatchFunc>
+ key_funcs = {helper.SectionAndFullNameAndPathAndSize(),
+ helper.SectionAndFullNameAndPath(),
+ helper.SectionAndNameAndPath(), helper.SectionAndFullName()};
+ std::unordered_map<SectionId, float> padding_by_section_name;
+ for (const auto& key_function : key_funcs) {
+ int n_matched_symbols =
+ MatchSymbols(key_function, &ret.delta_symbols, &unmatched_before,
+ &unmatched_after, &padding_by_section_name);
+ std::cout << "Matched " << n_matched_symbols << " symbols in matching pass "
+ << ++step << std::endl;
+ helper.ClearStrings();
+ }
+
+ // Add removals or deletions for any unmatched symbols.
+ for (const Symbol* after_sym : unmatched_after) {
+ ret.delta_symbols.push_back(DeltaSymbol(nullptr, after_sym));
+ }
+ for (const Symbol* before_sym : unmatched_before) {
+ ret.delta_symbols.push_back(DeltaSymbol(before_sym, nullptr));
+ }
+
+ // Create a DeltaSymbol to represent the zeroed out padding of matched
+ // symbols.
+ for (const auto& pair : padding_by_section_name) {
+ SectionId section_id = pair.first;
+ float padding = pair.second;
+ if (padding != 0.0f) {
+ ret.owned_symbols.emplace_back();
+ Symbol& after_sym = ret.owned_symbols.back();
+ after_sym.section_id_ = section_id;
+ after_sym.size_ = padding;
+ after_sym.padding_ = padding;
+ after_sym.full_name_ = "Overhead: aggregate padding of diff'ed symbols";
+ after_sym.template_name_ = after_sym.full_name_;
+ after_sym.name_ = after_sym.full_name_;
+ ret.delta_symbols.push_back(DeltaSymbol(nullptr, &after_sym));
+ }
+ }
+ return ret;
+}
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/diff.h b/chromium/tools/binary_size/libsupersize/caspian/diff.h
new file mode 100644
index 00000000000..6bccdd11e6e
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/diff.h
@@ -0,0 +1,14 @@
+// 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.
+
+#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_DIFF_H_
+#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_DIFF_H_
+
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+DeltaSizeInfo Diff(const SizeInfo* before, const SizeInfo* after);
+}
+
+#endif // TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_DIFF_H_
diff --git a/chromium/tools/binary_size/libsupersize/caspian/diff_test.cc b/chromium/tools/binary_size/libsupersize/caspian/diff_test.cc
new file mode 100644
index 00000000000..460edca3c97
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/diff_test.cc
@@ -0,0 +1,306 @@
+// 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 "tools/binary_size/libsupersize/caspian/diff.h"
+
+#include <stdint.h>
+
+#include <deque>
+#include <memory>
+#include <string>
+#include <string_view>
+#include <utility>
+#include <vector>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+namespace {
+
+Symbol MakeSymbol(SectionId section_id,
+ int32_t size,
+ const char* path,
+ std::string_view name = "") {
+ static std::deque<std::string> symbol_names;
+ if (name.empty()) {
+ symbol_names.push_back(std::string());
+ std::string& s = symbol_names.back();
+ s += static_cast<char>(section_id);
+ s += "_";
+ s += std::to_string(size);
+ s += "A";
+ name = s;
+ }
+ Symbol sym;
+ sym.full_name_ = name;
+ sym.template_name_ = name;
+ sym.name_ = name;
+ sym.section_id_ = section_id;
+ sym.size_ = size;
+ sym.object_path_ = path;
+ return sym;
+}
+
+void SetName(Symbol* symbol, std::string_view full_name) {
+ symbol->full_name_ = full_name;
+ symbol->template_name_ = full_name;
+ symbol->name_ = full_name;
+}
+
+int32_t SumOfSymbolSizes(const DeltaSizeInfo& info) {
+ int32_t size = 0;
+ for (const DeltaSymbol& sym : info.delta_symbols) {
+ size += sym.Size();
+ }
+ return size;
+}
+
+int32_t SumOfSymbolPadding(const DeltaSizeInfo& info) {
+ int32_t size = 0;
+ for (const DeltaSymbol& sym : info.delta_symbols) {
+ size += sym.Padding();
+ }
+ return size;
+}
+
+std::unique_ptr<SizeInfo> CreateSizeInfo() {
+ std::unique_ptr<SizeInfo> info = std::make_unique<SizeInfo>();
+ info->raw_symbols.push_back(
+ MakeSymbol(SectionId::kDexMethod, 10, "a", "com.Foo#bar()"));
+ info->raw_symbols.push_back(MakeSymbol(SectionId::kText, 20, "a", ".Lfoo"));
+ info->raw_symbols.push_back(MakeSymbol(SectionId::kText, 30, "b"));
+ info->raw_symbols.push_back(MakeSymbol(SectionId::kText, 40, "b"));
+ info->raw_symbols.push_back(MakeSymbol(SectionId::kText, 50, "b"));
+ info->raw_symbols.push_back(MakeSymbol(SectionId::kText, 60, ""));
+ return info;
+}
+
+void MakeAliasGroup(SizeInfo* info, size_t start, size_t end) {
+ static std::deque<std::vector<Symbol*>> alias_groups;
+ alias_groups.emplace_back();
+ for (size_t i = start; i < end; i++) {
+ info->raw_symbols[i].aliases_ = &alias_groups.back();
+ alias_groups.back().push_back(&info->raw_symbols[i]);
+ }
+}
+
+TEST(DiffTest, TestIdentity) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+ for (const DeltaSymbol& sym : diff.delta_symbols) {
+ EXPECT_EQ(sym.Size(), 0);
+ EXPECT_EQ(sym.Padding(), 0);
+ }
+}
+
+TEST(DiffTest, TestSimpleAdd) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info1->raw_symbols.erase(size_info1->raw_symbols.begin());
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{5, 0, 1, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolPadding(diff));
+ EXPECT_EQ(10, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestSimpleDelete) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info2->raw_symbols.erase(size_info2->raw_symbols.begin());
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{5, 0, 0, 1};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolPadding(diff));
+ EXPECT_EQ(-10, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestSimpleChange) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info2->raw_symbols[0].size_ += 11;
+ size_info2->raw_symbols[0].padding_ += 20;
+ size_info2->raw_symbols.back().size_ += 11;
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{4, 2, 1, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(20, SumOfSymbolPadding(diff));
+ EXPECT_EQ(22, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestDontMatchAcrossSections) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info1->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 11, "asdf", "Hello"));
+ size_info2->raw_symbols.push_back(
+ MakeSymbol(SectionId::kRoData, 11, "asdf", "Hello"));
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{6, 0, 1, 1};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestAliasesRemove) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ MakeAliasGroup(size_info1.get(), 0, 3);
+ MakeAliasGroup(size_info2.get(), 0, 2);
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{3, 3, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestAliasesAdd) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ MakeAliasGroup(size_info1.get(), 0, 2);
+ MakeAliasGroup(size_info2.get(), 0, 3);
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{3, 3, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestAliasesChangeGroup) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ MakeAliasGroup(size_info1.get(), 0, 2);
+ MakeAliasGroup(size_info1.get(), 2, 5);
+ MakeAliasGroup(size_info2.get(), 0, 3);
+ MakeAliasGroup(size_info2.get(), 3, 5);
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{2, 4, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+// These tests currently fail because _ doesn't rewrite.
+
+TEST(DiffTest, TestStarSymbolNormalization) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ SetName(&size_info1->raw_symbols[0], "* symbol gap 1 (end of section)");
+ SetName(&size_info2->raw_symbols[0], "* symbol gap 2 (end of section)");
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{6, 0, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestNumberNormalization) {
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info1->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 11, "a", ".L__unnamed_1193"));
+ size_info1->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 22, "a", ".L__unnamed_1194"));
+ size_info1->raw_symbols.push_back(MakeSymbol(
+ SectionId::kText, 33, "a", "SingleCategoryPreferences$3#this$0"));
+ size_info1->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 44, "a", ".L.ref.tmp.2"));
+
+ size_info2->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 11, "a", ".L__unnamed_2194"));
+ size_info2->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 22, "a", ".L__unnamed_2195"));
+ size_info2->raw_symbols.push_back(MakeSymbol(
+ SectionId::kText, 33, "a", "SingleCategoryPreferences$9#this$009"));
+ size_info2->raw_symbols.push_back(
+ MakeSymbol(SectionId::kText, 44, "a", ".L.ref.tmp.137"));
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{10, 0, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestChangedParams) {
+ // Ensure that params changes match up so long as path doesn't change.
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info1->raw_symbols[0].full_name_ = "Foo()";
+ size_info1->raw_symbols[0].name_ = "Foo";
+ size_info2->raw_symbols[0].full_name_ = "Foo(bool)";
+ size_info2->raw_symbols[0].name_ = "Foo";
+
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{6, 0, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestChangedPathsNative) {
+ // Ensure that non-globally-unique symbols are not matched when path changes.
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info2->raw_symbols[1].object_path_ = "asdf";
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{5, 0, 1, 1};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestChangedPathsJava) {
+ // Ensure that Java symbols are matched up.
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info2->raw_symbols[0].object_path_ = "asdf";
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{6, 0, 0, 0};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+
+TEST(DiffTest, TestChangedPathsChangedParams) {
+ // Ensure that path changes are not matched when params also change.
+ std::unique_ptr<SizeInfo> size_info1 = CreateSizeInfo();
+ std::unique_ptr<SizeInfo> size_info2 = CreateSizeInfo();
+
+ size_info1->raw_symbols[0].full_name_ = "Foo()";
+ size_info1->raw_symbols[0].name_ = "Foo";
+ size_info2->raw_symbols[0].full_name_ = "Foo(bool)";
+ size_info2->raw_symbols[0].name_ = "Foo";
+ size_info2->raw_symbols[0].object_path_ = "asdf";
+ DeltaSizeInfo diff = Diff(size_info1.get(), size_info2.get());
+
+ DeltaSizeInfo::Results expected_counts{5, 0, 1, 1};
+ EXPECT_EQ(expected_counts, diff.CountsByDiffStatus());
+ EXPECT_EQ(0, SumOfSymbolSizes(diff));
+}
+} // namespace
+} // 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 15e04e83d7d..2f51b4180e0 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/file_format.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/file_format.cc
@@ -9,68 +9,90 @@
#include "tools/binary_size/libsupersize/caspian/file_format.h"
#include <assert.h>
+#include <stdint.h>
#include <cstring>
#include <iostream>
+#include <memory>
#include <numeric>
+#include <set>
#include <sstream>
#include <string>
#include <vector>
#include "third_party/jsoncpp/source/include/json/json.h"
#include "third_party/zlib/google/compression_utils_portable.h"
-
#include "tools/binary_size/libsupersize/caspian/model.h"
namespace {
+const char kDiffHeader[] = "# Created by //tools/binary_size\nDIFF\n";
+const char kSerializationVersion[] = "Size File Format v1";
-const std::string SERIALIZATION_VERSION = "Size File Format v1";
-
-int ReadLoneInt(std::stringstream* stream) {
- int val;
- *stream >> val;
- stream->ignore(); // Drop newline.
- return val;
+int ReadLoneInt(char** rest) {
+ char* token = strsep(rest, "\n");
+ return std::strtol(token, nullptr, 10);
}
-std::stringstream Decompress(const char* gzipped, unsigned long len) {
- uint32_t uncompressed_size;
- memcpy(&uncompressed_size, &gzipped[len - sizeof(uncompressed_size)],
- sizeof(uncompressed_size));
- unsigned long long_uncompressed_size(uncompressed_size);
+void Decompress(const char* gzipped,
+ unsigned long len,
+ std::vector<char>* uncompressed) {
+ // gzip format stores the uncompressed size in the last four bytes.
+ if (len < sizeof(uint32_t)) {
+ std::cerr << "Input too short to be gzipped" << std::endl;
+ exit(1);
+ }
+ uint32_t uncompressed_size = *reinterpret_cast<const uint32_t*>(
+ &gzipped[len - sizeof(uncompressed_size)]);
+
+ // Should be little-endian.
+ int num = 1;
+ if (*reinterpret_cast<char*>(&num) != 1) {
+ uncompressed_size = __builtin_bswap32(uncompressed_size);
+ }
- std::string uncompressed;
- uncompressed.resize(uncompressed_size);
+ uncompressed->resize(uncompressed_size + 1);
+ // Add terminating null for safety.
+ (*uncompressed)[uncompressed_size] = '\0';
+ unsigned long long_uncompressed_size(uncompressed_size);
auto ret = zlib_internal::GzipUncompressHelper(
- reinterpret_cast<Bytef*>(&uncompressed[0]), &long_uncompressed_size,
+ reinterpret_cast<Bytef*>(&(*uncompressed)[0]), &long_uncompressed_size,
reinterpret_cast<const Bytef*>(gzipped), len);
if (Z_OK == ret) {
- return std::stringstream(uncompressed);
+ return;
}
std::cerr << "Failed to decompress. Zlib code: " << ret << std::endl;
exit(1);
}
-std::vector<std::string> ReadValuesFromLine(std::istream* stream,
+std::vector<const char*> ReadValuesFromLine(char** rest,
const char* delimiter) {
- std::string line;
- std::getline(*stream, line);
- std::vector<std::string> ret;
- char* cstr = std::strtok(&line[0], delimiter);
- while (cstr != nullptr) {
- ret.push_back(std::string(cstr));
- cstr = std::strtok(nullptr, delimiter);
+ char* rest_of_line = strsep(rest, "\n");
+
+ std::vector<const char*> ret;
+ while (true) {
+ char* token = strsep(&rest_of_line, delimiter);
+ if (!token)
+ break;
+ ret.push_back(token);
}
return ret;
}
template <typename T>
-std::vector<T> ReadIntList(std::istream* stream, int n, bool stored_as_delta) {
+std::vector<T> ReadIntList(char** rest,
+ const char* delim,
+ int n,
+ bool stored_as_delta) {
+ char* rest_of_line = strsep(rest, "\n");
+
std::vector<T> result;
result.resize(n);
- for (int i = 0; i < n; i++)
- *stream >> result[i];
+ for (int i = 0; i < n; i++) {
+ char* token = strsep(&rest_of_line, delim);
+ result[i] = std::strtol(token, nullptr, 10);
+ }
+
if (stored_as_delta)
std::partial_sum(result.begin(), result.end(), result.begin());
return result;
@@ -78,108 +100,186 @@ std::vector<T> ReadIntList(std::istream* stream, int n, bool stored_as_delta) {
template <typename T>
std::vector<std::vector<T>> ReadIntListForEachSection(
- std::istream* stream,
+ char** rest,
const std::vector<int>& section_counts,
bool stored_as_delta) {
std::vector<std::vector<T>> ret;
ret.reserve(section_counts.size());
for (int nsymbols : section_counts) {
- ret.emplace_back(ReadIntList<T>(stream, nsymbols, stored_as_delta));
+ ret.push_back(ReadIntList<T>(rest, " ", nsymbols, stored_as_delta));
}
return ret;
}
+void ReadJsonBlob(char** rest, Json::Value* metadata) {
+ // 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
+ << std::endl;
+ exit(1);
+ }
+ char* json_start = *rest;
+ *rest += metadata_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,
+ &json_errors)) {
+ std::cerr << "Failed to parse JSON metadata:" << *rest << std::endl;
+ std::cerr << json_errors << std::endl;
+ exit(1);
+ }
+}
+
+void CheckNoNonEmptyLinesRemain(char* rest) {
+ if (rest) {
+ int lines_remaining = 50;
+ bool newlines_only = true;
+ char* line = nullptr;
+ while (lines_remaining > 0 && (line = strsep(&rest, "\n"))) {
+ if (strcmp("", line)) {
+ std::cerr << "Unparsed line: " << line << std::endl;
+ newlines_only = false;
+ lines_remaining--;
+ }
+ }
+ if (!newlines_only) {
+ exit(1);
+ }
+ }
+}
} // namespace
namespace caspian {
-void ParseSizeInfo(const char* gzipped,
- unsigned long len,
- ::caspian::SizeInfo* info) {
- std::stringstream ss = Decompress(gzipped, len);
+void CalculatePadding(std::vector<Symbol>* raw_symbols) {
+ std::set<const char*> seen_sections;
+ for (size_t i = 1; i < raw_symbols->size(); i++) {
+ const Symbol& prev_symbol = (*raw_symbols)[i - 1];
+ Symbol& symbol = (*raw_symbols)[i];
+
+ if (symbol.IsOverhead()) {
+ symbol.padding_ = symbol.size_;
+ }
+ if (prev_symbol.SectionName() != symbol.SectionName()) {
+ if (seen_sections.count(symbol.section_name_)) {
+ std::cerr << "Input symbols must be sorted by section, then address: "
+ << prev_symbol << ", " << symbol << std::endl;
+ exit(1);
+ }
+ seen_sections.insert(symbol.SectionName());
+ continue;
+ }
+
+ if (symbol.Address() <= 0 || prev_symbol.Address() <= 0 ||
+ !symbol.IsNative() || !prev_symbol.IsNative()) {
+ continue;
+ }
+
+ if (symbol.Address() == prev_symbol.Address()) {
+ if (symbol.aliases_ && symbol.aliases_ == prev_symbol.aliases_) {
+ symbol.padding_ = prev_symbol.padding_;
+ symbol.size_ = prev_symbol.size_;
+ continue;
+ }
+ if (prev_symbol.SizeWithoutPadding() != 0) {
+ // Padding-only symbols happen for ** symbol gaps.
+ std::cerr << "Found duplicate symbols: " << prev_symbol << ", "
+ << symbol << std::endl;
+ exit(1);
+ }
+ }
+
+ int32_t padding = symbol.Address() - prev_symbol.EndAddress();
+ symbol.padding_ = padding;
+ symbol.size_ += padding;
+ if (symbol.size_ < 0) {
+ std::cerr << "Symbol has negative size (likely not sorted properly):"
+ << symbol << std::endl;
+ std::cerr << "prev symbol: " << prev_symbol << std::endl;
+ exit(1);
+ }
+ }
+}
+
+void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info) {
+ // To avoid memory allocations, all the char* in our final Symbol set will
+ // be pointers into the region originally pointed to by |decompressed_start|.
+ // Calls to strsep() replace delimiter characters with null terminators.
+ Decompress(gzipped, len, &info->raw_decompressed);
+ char* rest = &info->raw_decompressed[0];
// Ignore generated header
- std::string line;
- std::getline(ss, line);
+ char* line = strsep(&rest, "\n");
// Serialization version
- std::getline(ss, line);
- if (line != SERIALIZATION_VERSION) {
+ line = strsep(&rest, "\n");
+ if (std::strcmp(line, kSerializationVersion)) {
std::cerr << "Serialization version: '" << line << "' not recognized."
<< std::endl;
exit(1);
}
- // Metadata
- int metadata_len = ReadLoneInt(&ss) + 1;
- if (metadata_len < 0) {
- std::cerr << "Unexpected negative metadata length: " << metadata_len
- << std::endl;
- exit(1);
- }
-
- std::vector<char> metadata_str;
- metadata_str.resize(metadata_len);
- ss.get(metadata_str.data(), metadata_len, EOF);
- Json::Value root;
- std::stringstream(metadata_str.data()) >> root;
+ ReadJsonBlob(&rest, &info->metadata);
- if (!root) {
- std::cerr << "Failed to parse JSON metadata:" << metadata_str.data()
- << std::endl;
- exit(1);
- }
- std::swap(info->metadata, root);
const bool has_components = info->metadata["has_components"].asBool();
+ const bool has_padding = info->metadata["has_padding"].asBool();
// List of paths: (object_path, [source_path])
- int n_paths = ReadLoneInt(&ss);
+ int n_paths = ReadLoneInt(&rest);
if (n_paths < 0) {
std::cerr << "Unexpected negative path list length: " << n_paths
<< std::endl;
exit(1);
}
+ std::cout << "Reading " << n_paths << " paths" << std::endl;
info->object_paths.reserve(n_paths);
info->source_paths.reserve(n_paths);
for (int i = 0; i < n_paths; i++) {
- const std::vector<std::string> paths = ReadValuesFromLine(&ss, "\t");
- if (paths.size() == 2) {
- info->object_paths.push_back(paths[0]);
- info->source_paths.push_back(paths[1]);
- } else if (paths.size() == 1) {
- info->object_paths.push_back(paths[0]);
- info->source_paths.push_back("");
- } else if (paths.empty()) {
- info->object_paths.push_back("");
+ char* line = strsep(&rest, "\n");
+ char* first = strsep(&line, "\t");
+ char* second = strsep(&line, "\t");
+ if (second) {
+ info->object_paths.push_back(first);
+ info->source_paths.push_back(second);
+ } else if (first) {
+ info->object_paths.push_back(first);
info->source_paths.push_back("");
- } else {
+ } else if (line) {
std::cerr << "Too many tokens on path row: " << i << std::endl;
exit(1);
+ } else {
+ info->object_paths.push_back("");
+ info->source_paths.push_back("");
}
}
- // List of component names
- int n_components = ReadLoneInt(&ss);
- if (n_components < 0) {
- std::cerr << "Unexpected negative components list length: " << n_components
- << std::endl;
- exit(1);
- }
- std::cout << "Reading " << n_components << " components" << std::endl;
+ if (has_components) {
+ // List of component names
+ int n_components = ReadLoneInt(&rest);
+ if (n_components < 0) {
+ std::cerr << "Unexpected negative components list length: "
+ << n_components << std::endl;
+ exit(1);
+ }
+ std::cout << "Reading " << n_components << " components" << std::endl;
- info->components.reserve(n_components);
- for (int i = 0; i < n_components; i++) {
- std::getline(ss, line);
- info->components.push_back(line);
+ info->components.reserve(n_components);
+ for (int i = 0; i < n_components; i++) {
+ info->components.push_back(strsep(&rest, "\n"));
+ }
}
// Section names
- info->section_names = ReadValuesFromLine(&ss, "\t");
+ info->section_names = ReadValuesFromLine(&rest, "\t");
int n_sections = info->section_names.size();
// Symbol counts for each section
- std::vector<int> section_counts = ReadIntList<int>(&ss, n_sections, false);
+ std::vector<int> section_counts =
+ ReadIntList<int>(&rest, "\t", n_sections, false);
std::cout << "Section counts:" << std::endl;
int total_symbols =
std::accumulate(section_counts.begin(), section_counts.end(), 0);
@@ -190,65 +290,85 @@ void ParseSizeInfo(const char* gzipped,
}
std::vector<std::vector<int64_t>> addresses =
- ReadIntListForEachSection<int64_t>(&ss, section_counts, true);
- std::vector<std::vector<int>> sizes =
- ReadIntListForEachSection<int>(&ss, section_counts, false);
- std::vector<std::vector<int>> path_indices =
- ReadIntListForEachSection<int>(&ss, section_counts, true);
- std::vector<std::vector<int>> component_indices;
+ ReadIntListForEachSection<int64_t>(&rest, section_counts, true);
+ std::vector<std::vector<int32_t>> sizes =
+ ReadIntListForEachSection<int32_t>(&rest, section_counts, false);
+ std::vector<std::vector<int32_t>> paddings;
+ if (has_padding) {
+ paddings = ReadIntListForEachSection<int32_t>(&rest, section_counts, false);
+ } else {
+ paddings.resize(addresses.size());
+ }
+ std::vector<std::vector<int32_t>> path_indices =
+ ReadIntListForEachSection<int32_t>(&rest, section_counts, true);
+ std::vector<std::vector<int32_t>> component_indices;
if (has_components) {
component_indices =
- ReadIntListForEachSection<int>(&ss, section_counts, true);
+ ReadIntListForEachSection<int32_t>(&rest, section_counts, true);
} else {
component_indices.resize(addresses.size());
}
- ss.ignore();
info->raw_symbols.reserve(total_symbols);
// Construct raw symbols
for (int section_idx = 0; section_idx < n_sections; section_idx++) {
- const std::string* cur_section_name = &info->section_names[section_idx];
+ const char* cur_section_name = info->section_names[section_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<int>& cur_sizes = sizes[section_idx];
- const std::vector<int>& cur_path_indices = path_indices[section_idx];
- const std::vector<int>& cur_component_indices =
+ 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 std::vector<int32_t>& cur_component_indices =
component_indices[section_idx];
int32_t alias_counter = 0;
for (int i = 0; i < cur_section_count; i++) {
- const std::vector<std::string> parts = ReadValuesFromLine(&ss, "\t");
- if (parts.empty()) {
- std::cout << "Row " << i << " of symbols is blank" << std::endl;
- continue;
- }
- uint32_t flags = 0;
- uint32_t num_aliases = 0;
- if (parts.size() == 3) {
- num_aliases = std::strtol(parts[1].c_str(), nullptr, 16);
- flags = std::strtol(parts[1].c_str(), nullptr, 16);
- } else if (parts.size() == 2) {
- if (parts[1][0] == '0') {
- // full_name aliases_part
- num_aliases = std::strtol(parts[1].c_str(), nullptr, 16);
- } else {
- // full_name flags_part
- flags = std::strtol(parts[1].c_str(), nullptr, 16);
- }
- }
-
info->raw_symbols.emplace_back();
caspian::Symbol& new_sym = info->raw_symbols.back();
- new_sym.section_name = cur_section_name;
- new_sym.full_name = parts[0];
- new_sym.address = cur_addresses[i];
- new_sym.size = cur_sizes[i];
- new_sym.object_path = &info->object_paths[cur_path_indices[i]];
- new_sym.source_path = &info->source_paths[cur_path_indices[i]];
+
+ int32_t flags = 0;
+ int32_t num_aliases = 0;
+ char* line = strsep(&rest, "\n");
+ if (*line) {
+ new_sym.full_name_ = strsep(&line, "\t");
+ char* first = nullptr;
+ char* second = nullptr;
+ if (line) {
+ first = strsep(&line, "\t");
+ }
+ if (line) {
+ second = strsep(&line, "\t");
+ }
+ if (second) {
+ num_aliases = std::strtol(first, nullptr, 16);
+ flags = std::strtol(second, nullptr, 16);
+ } else if (first) {
+ if (first[0] == '0') {
+ // full_name aliases_part
+ num_aliases = std::strtol(first, nullptr, 16);
+ } else {
+ // full_name flags_part
+ flags = std::strtol(first, nullptr, 16);
+ }
+ }
+ }
+ new_sym.section_id_ = cur_section_id;
+ new_sym.address_ = cur_addresses[i];
+ new_sym.size_ = cur_sizes[i];
+ if (has_padding) {
+ new_sym.padding_ = cur_paddings[i];
+ new_sym.size_ += new_sym.padding_;
+ }
+ new_sym.section_name_ = cur_section_name;
+ new_sym.object_path_ = info->object_paths[cur_path_indices[i]];
+ new_sym.source_path_ = info->source_paths[cur_path_indices[i]];
if (has_components) {
- new_sym.component = &info->components[cur_component_indices[i]];
+ new_sym.component_ = info->components[cur_component_indices[i]];
}
- new_sym.flags = flags;
+ new_sym.flags_ = flags;
+ new_sym.size_info_ = info;
// When we encounter a symbol with an alias count, the next N symbols we
// encounter should be placed in the same symbol group.
@@ -258,23 +378,50 @@ void ParseSizeInfo(const char* gzipped,
alias_counter = num_aliases;
}
if (alias_counter > 0) {
- new_sym.aliases = &info->alias_groups.back();
- new_sym.aliases->push_back(&new_sym);
+ new_sym.aliases_ = &info->alias_groups.back();
+ new_sym.aliases_->push_back(&new_sym);
alias_counter--;
}
}
}
- if (std::getline(ss, line)) {
- int lines_remaining = 50;
- do {
- std::cerr << "Unparsed line: " << line << std::endl;
- lines_remaining++;
- } while (lines_remaining > 0 && std::getline(ss, line));
- exit(1);
+ info->is_sparse = has_padding;
+ if (!has_padding) {
+ CalculatePadding(&info->raw_symbols);
}
+ // If there are unparsed non-empty lines, something's gone wrong.
+ CheckNoNonEmptyLinesRemain(rest);
+
std::cout << "Parsed " << info->raw_symbols.size() << " symbols" << std::endl;
}
+bool IsDiffSizeInfo(const char* file, unsigned long len) {
+ return !strncmp(file, kDiffHeader, 4);
+}
+
+void ParseDiffSizeInfo(char* file,
+ unsigned long len,
+ SizeInfo* before,
+ SizeInfo* after) {
+ // Skip "DIFF" header.
+ char* rest = file;
+ rest += strlen(kDiffHeader);
+ Json::Value metadata;
+ ReadJsonBlob(&rest, &metadata);
+
+ if (metadata["version"].asInt() != 1) {
+ std::cerr << ".sizediff version mismatch, write some upgrade code. version="
+ << metadata["version"] << std::endl;
+ exit(1);
+ }
+
+ unsigned long header_len = rest - file;
+ unsigned long before_len = metadata["before_length"].asUInt();
+ unsigned long after_len = len - header_len - before_len;
+
+ ParseSizeInfo(rest, before_len, before);
+ ParseSizeInfo(rest + before_len, after_len, after);
+}
+
} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/file_format.h b/chromium/tools/binary_size/libsupersize/caspian/file_format.h
index 6f376abe1f9..1564fe69a0a 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/file_format.h
+++ b/chromium/tools/binary_size/libsupersize/caspian/file_format.h
@@ -9,9 +9,17 @@ namespace caspian {
struct SizeInfo;
-void ParseSizeInfo(const char* gzipped,
- unsigned long len,
- caspian::SizeInfo* info);
+bool IsDiffSizeInfo(const char* file, unsigned long len);
+
+// Parses a .sizediff, and writes out the two sparse SizeInfos it contains.
+// Diffing still needs to be done on the result to obtain a DeltaSizeInfo.
+void ParseDiffSizeInfo(char* file,
+ unsigned long len,
+ SizeInfo* before,
+ SizeInfo* after);
+
+// Parses a .size file.
+void ParseSizeInfo(const char* gzipped, unsigned long len, SizeInfo* info);
} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/function_signature.cc b/chromium/tools/binary_size/libsupersize/caspian/function_signature.cc
new file mode 100644
index 00000000000..736769db4d4
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/function_signature.cc
@@ -0,0 +1,342 @@
+// 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.
+
+// Much of this logic is duplicated at
+// tools/binary_size/libsupersize/function_signature.py.
+
+#include <stddef.h>
+
+#include <algorithm>
+#include <deque>
+#include <iostream>
+#include <string>
+#include <string_view>
+#include <tuple>
+#include <vector>
+
+#include "tools/binary_size/libsupersize/caspian/function_signature.h"
+
+namespace {
+bool EndsWith(std::string_view str,
+ std::string_view suffix,
+ size_t pos = std::string_view::npos) {
+ pos = std::min(pos, str.size());
+ size_t span = suffix.size();
+ return pos >= span && str.substr(pos - span, span) == suffix;
+}
+
+std::string_view Slice(std::string_view sv, size_t lo, size_t hi) {
+ return sv.substr(lo, hi - lo);
+}
+} // namespace
+
+namespace caspian {
+std::vector<std::string_view> SplitBy(std::string_view str, char delim) {
+ std::vector<std::string_view> ret;
+ while (true) {
+ size_t pos = str.find(delim);
+ ret.push_back(str.substr(0, pos));
+ if (pos == std::string_view::npos) {
+ break;
+ }
+ str = str.substr(pos + 1);
+ }
+ return ret;
+}
+
+std::tuple<std::string_view, std::string_view, std::string_view> ParseJava(
+ std::string_view full_name,
+ std::deque<std::string>* owned_strings) {
+ // |owned_strings| is used as an allocator, the relative order of its
+ // elements can be arbitrary.
+ std::string maybe_member_type;
+ size_t hash_idx = full_name.find('#');
+ std::string_view full_class_name;
+ std::string_view member;
+ std::string_view member_type;
+ if (hash_idx != std::string_view::npos) {
+ // Parse an already parsed full_name.
+ // Format: Class#symbol: type
+ full_class_name = full_name.substr(0, hash_idx);
+ size_t colon_idx = full_name.find(':');
+ member = Slice(full_name, hash_idx + 1, colon_idx);
+ if (colon_idx != std::string_view::npos) {
+ member_type = full_name.substr(colon_idx);
+ }
+ } else {
+ // Format: Class [returntype] functionName()
+ std::vector<std::string_view> parts = SplitBy(full_name, ' ');
+ full_class_name = parts[0];
+ if (parts.size() >= 2) {
+ member = parts.back();
+ }
+ if (parts.size() >= 3) {
+ maybe_member_type = ": " + std::string(parts[1]);
+ member_type = maybe_member_type;
+ }
+ }
+
+ std::vector<std::string_view> split = SplitBy(full_class_name, '.');
+ std::string_view short_class_name = split.back();
+
+ if (member.empty()) {
+ return std::make_tuple(full_name, full_name, short_class_name);
+ }
+ owned_strings->push_back(std::string(full_class_name) + std::string("#") +
+ std::string(member) + std::string(member_type));
+ full_name = owned_strings->back();
+
+ member = member.substr(0, member.find('('));
+
+ owned_strings->push_back(std::string(short_class_name) + std::string("#") +
+ std::string(member));
+ std::string_view name = owned_strings->back();
+
+ owned_strings->push_back(std::string(full_class_name) + std::string("#") +
+ std::string(member));
+ std::string_view template_name = owned_strings->back();
+
+ return std::make_tuple(full_name, template_name, name);
+}
+
+size_t FindLastCharOutsideOfBrackets(std::string_view name,
+ char target_char,
+ size_t prev_idx) {
+ int paren_balance_count = 0;
+ int angle_balance_count = 0;
+ std::string_view prefix = name.substr(0, prev_idx);
+ while (true) {
+ size_t idx = prefix.rfind(target_char);
+ if (idx == std::string_view::npos) {
+ return std::string_view::npos;
+ }
+ for (char c : prefix.substr(idx)) {
+ switch (c) {
+ case '<':
+ angle_balance_count++;
+ break;
+ case '>':
+ angle_balance_count--;
+ break;
+ case '(':
+ paren_balance_count++;
+ break;
+ case ')':
+ paren_balance_count--;
+ break;
+ }
+ }
+ if (angle_balance_count == 0 && paren_balance_count == 0) {
+ return idx;
+ }
+ prefix = prefix.substr(0, idx);
+ }
+}
+
+size_t FindReturnValueSpace(std::string_view name, size_t paren_idx) {
+ size_t space_idx = paren_idx;
+ // Special case: const cast operators (see tests).
+ if (EndsWith(name, " const", paren_idx)) {
+ space_idx = paren_idx - 6;
+ }
+ while (true) {
+ space_idx = FindLastCharOutsideOfBrackets(name, ' ', space_idx);
+ // Special cases: "operator new", "operator< <templ>", "operator<< <tmpl>".
+ // No space is added for operator>><tmpl>.
+ // Currently does not handle operator->, operator->*
+ if (std::string_view::npos == space_idx) {
+ break;
+ }
+ if (EndsWith(name, "operator", space_idx)) {
+ space_idx -= 8;
+ } else if (EndsWith(name, "operator<", space_idx)) {
+ space_idx -= 9;
+ } else if (EndsWith(name, "operator<<", space_idx)) {
+ space_idx -= 10;
+ } else {
+ break;
+ }
+ }
+ return space_idx;
+}
+
+std::string StripTemplateArgs(std::string_view name_view) {
+ // TODO(jaspercb): Could pass in |owned_strings| to avoid this allocation.
+ std::string name(name_view);
+ size_t last_right_idx = std::string::npos;
+ while (true) {
+ last_right_idx = name.substr(0, last_right_idx).rfind('>');
+ if (last_right_idx == std::string_view::npos) {
+ return name;
+ }
+ size_t left_idx =
+ FindLastCharOutsideOfBrackets(name, '<', last_right_idx + 1);
+ if (left_idx != std::string_view::npos) {
+ // Leave in empty <>s to denote that it's a template.
+ name = std::string(name.substr(0, left_idx + 1)) +
+ std::string(name.substr(last_right_idx));
+ last_right_idx = left_idx;
+ }
+ }
+}
+
+std::string NormalizeTopLevelGccLambda(std::string_view name,
+ size_t left_paren_idx) {
+ // cc::{lambda(PaintOp*)#63}::_FUN(cc:PaintOp*)
+ // -> cc::$lambda#63(cc:PaintOp*)
+
+ size_t left_brace_idx = name.find('{');
+ if (left_brace_idx == std::string_view::npos) {
+ exit(1);
+ }
+ size_t hash_idx = name.find('#', left_brace_idx + 1);
+ if (hash_idx == std::string_view::npos) {
+ exit(1);
+ }
+ size_t right_brace_idx = name.find('}', hash_idx + 1);
+ if (right_brace_idx == std::string_view::npos) {
+ exit(1);
+ }
+ std::string_view number = Slice(name, hash_idx + 1, right_brace_idx);
+
+ std::string ret;
+ ret += name.substr(0, left_brace_idx);
+ ret += "$lambda#";
+ ret += number;
+ ret += name.substr(left_paren_idx);
+ return ret;
+}
+
+std::string NormalizeTopLevelClangLambda(std::string_view name,
+ size_t left_paren_idx) {
+ // cc::$_21::__invoke(int) -> cc::$lambda#21(int)
+ size_t dollar_idx = name.find('$');
+ if (dollar_idx == std::string_view::npos) {
+ exit(1);
+ }
+ size_t colon_idx = name.find(':', dollar_idx + 1);
+ if (colon_idx == std::string_view::npos) {
+ exit(1);
+ }
+ std::string_view number = Slice(name, dollar_idx + 2, colon_idx);
+
+ std::string ret;
+ ret += name.substr(0, dollar_idx);
+ ret += "$lambda#";
+ ret += number;
+ ret += name.substr(left_paren_idx);
+ return ret;
+}
+
+size_t FindParameterListParen(std::string_view name) {
+ size_t start_idx = 0;
+ int angle_balance_count = 0;
+ int paren_balance_count = 0;
+ while (true) {
+ size_t idx = name.find('(', start_idx);
+ if (idx == std::string_view::npos) {
+ return std::string_view::npos;
+ }
+ for (char c : Slice(name, start_idx, idx)) {
+ switch (c) {
+ case '<':
+ angle_balance_count++;
+ break;
+ case '>':
+ angle_balance_count--;
+ break;
+ case '(':
+ paren_balance_count++;
+ break;
+ case ')':
+ paren_balance_count--;
+ break;
+ }
+ }
+ size_t operator_offset = Slice(name, start_idx, idx).find("operator<");
+ if (operator_offset != std::string_view::npos) {
+ if (name[start_idx + operator_offset + 9] == '<') {
+ // Handle operator<<, <<=
+ angle_balance_count -= 2;
+ } else {
+ // Handle operator<=
+ angle_balance_count -= 1;
+ }
+ } else {
+ operator_offset = Slice(name, start_idx, idx).find("operator>");
+ if (operator_offset != std::string_view::npos) {
+ if (name[start_idx + operator_offset + 9] == '>') {
+ // Handle operator>>,>>=
+ angle_balance_count += 2;
+ } else {
+ // Handle operator>=
+ angle_balance_count += 1;
+ }
+ }
+ }
+
+ // Adjust paren
+ if (angle_balance_count == 0 && paren_balance_count == 0) {
+ // Special case: skip "(anonymous namespace)".
+ if (name.substr(idx, 21) == "(anonymous namespace)") {
+ start_idx = idx + 21;
+ continue;
+ }
+ // Special case: skip "decltype (...)"
+ // Special case: skip "{lambda(PaintOp*)#63}"
+ if (idx && name[idx - 1] != ' ' && !EndsWith(name, "{lambda", idx)) {
+ return idx;
+ }
+ }
+
+ start_idx = idx + 1;
+ paren_balance_count++;
+ }
+}
+
+std::tuple<std::string_view, std::string_view, std::string_view> ParseCpp(
+ std::string_view full_name,
+ std::deque<std::string>* owned_strings) {
+ std::string name;
+ std::string_view name_view;
+ size_t left_paren_idx = FindParameterListParen(full_name);
+ if (left_paren_idx != std::string::npos && left_paren_idx > 0) {
+ size_t right_paren_idx = full_name.rfind(')');
+ if (right_paren_idx <= left_paren_idx) {
+ std::cerr << "ParseCpp() received bad symbol: " << full_name << std::endl;
+ exit(1);
+ }
+ size_t space_idx = FindReturnValueSpace(full_name, left_paren_idx);
+ std::string name_no_params =
+ std::string(Slice(full_name, space_idx + 1, left_paren_idx));
+ // Special case for top-level lambdas.
+ if (EndsWith(name_no_params, "}::_FUN")) {
+ // Don't use |name_no_params| in here since prior _idx will be off if
+ // there was a return value.
+ owned_strings->push_back(
+ NormalizeTopLevelGccLambda(full_name, left_paren_idx));
+ return ParseCpp(owned_strings->back(), owned_strings);
+ } else if (EndsWith(name_no_params, "::__invoke") &&
+ name_no_params.find('$') != std::string::npos) {
+ owned_strings->push_back(
+ NormalizeTopLevelClangLambda(full_name, left_paren_idx));
+ return ParseCpp(owned_strings->back(), owned_strings);
+ }
+
+ name = name_no_params + std::string(full_name.substr(right_paren_idx + 1));
+ name_view = name;
+ full_name = full_name.substr(space_idx + 1);
+ } else {
+ name_view = full_name;
+ }
+
+ owned_strings->emplace_back(name_view);
+ std::string_view template_name = owned_strings->back();
+
+ owned_strings->push_back(StripTemplateArgs(name_view));
+ std::string_view returned_name = owned_strings->back();
+
+ return std::make_tuple(full_name, template_name, returned_name);
+}
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/function_signature.h b/chromium/tools/binary_size/libsupersize/caspian/function_signature.h
new file mode 100644
index 00000000000..78996e9ddcf
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/function_signature.h
@@ -0,0 +1,60 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_FUNCTION_SIGNATURE_H_
+#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_FUNCTION_SIGNATURE_H_
+
+#include <deque>
+#include <string>
+#include <string_view>
+#include <tuple>
+#include <vector>
+
+namespace caspian {
+std::vector<std::string_view> SplitBy(std::string_view str, char delim);
+
+// Breaks Java |full_name| into parts.
+// If needed, new strings are allocated into |owned_strings|.
+// Returns: A tuple of (full_name, template_name, name), where:
+// * full_name = "class_with_package#member(args): type"
+// * template_name = "class_with_package#member"
+// * name = "class_without_package#member"
+std::tuple<std::string_view, std::string_view, std::string_view> ParseJava(
+ std::string_view full_name,
+ std::deque<std::string>* owned_strings);
+
+// Strips return type and breaks function signature into parts.
+// See unit tests for example signatures.
+// Returns:
+// A tuple of:
+// * name without return type (symbol.full_name),
+// * full_name without params (symbol.template_name),
+// * full_name without params and template args (symbol.name)
+std::tuple<std::string_view, std::string_view, std::string_view> ParseCpp(
+ std::string_view name,
+ std::deque<std::string>* owned_strings);
+
+// Returns the last index of |target_char| that is not within ()s nor <>s.
+size_t FindLastCharOutsideOfBrackets(std::string_view name,
+ char target_char,
+ size_t prev_idx = std::string::npos);
+
+// Finds index of the "(" that denotes the start of a parameter list.
+size_t FindParameterListParen(std::string_view name);
+
+// Returns the index of the space that comes after the return type.
+size_t FindReturnValueSpace(std::string_view name, size_t paren_idx);
+
+// Different compilers produce different lambda symbols. These utility
+// functions standardize the two, so we can compare between compilers.
+std::string NormalizeTopLevelGccLambda(std::string_view name,
+ size_t left_paren_idx);
+std::string NormalizeTopLevelClangLambda(std::string_view name,
+ size_t left_paren_idx);
+
+// Strips the contents of <>, leaving empty <>s to denote that it's a template.
+std::string StripTemplateArgs(std::string_view name);
+} // namespace caspian
+
+#endif // TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_FUNCTION_SIGNATURE_H_
diff --git a/chromium/tools/binary_size/libsupersize/caspian/function_signature_test.cc b/chromium/tools/binary_size/libsupersize/caspian/function_signature_test.cc
new file mode 100644
index 00000000000..05b72607340
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/function_signature_test.cc
@@ -0,0 +1,244 @@
+// 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 "tools/binary_size/libsupersize/caspian/function_signature.h"
+
+#include <string>
+#include <string_view>
+#include <tuple>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/re2/src/re2/re2.h"
+
+namespace {
+std::tuple<std::string, std::string, std::string> PrettyDebug(
+ std::tuple<std::string_view, std::string_view, std::string_view> tuple) {
+ return std::make_tuple(std::string(std::get<0>(tuple)),
+ std::string(std::get<1>(tuple)),
+ std::string(std::get<2>(tuple)));
+}
+
+TEST(AnalyzeTest, StringSplit) {
+ std::string input = "a//b/cd";
+ std::vector<std::string_view> expected_output = {"a", "", "b", "cd"};
+ EXPECT_EQ(expected_output, caspian::SplitBy(input, '/'));
+
+ input = "a";
+ expected_output = {"a"};
+ EXPECT_EQ(expected_output, caspian::SplitBy(input, '/'));
+
+ input = "";
+ expected_output = {""};
+ EXPECT_EQ(expected_output, caspian::SplitBy(input, '/'));
+
+ input = "/";
+ expected_output = {"", ""};
+ EXPECT_EQ(expected_output, caspian::SplitBy(input, '/'));
+}
+
+TEST(AnalyzeTest, FindLastCharOutsideOfBrackets) {
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("(a)a", 'a'), 3u);
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("abc(a)a", 'a'), 6u);
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("(b)aaa", 'b'),
+ std::string::npos);
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("", 'b'), std::string::npos);
+
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("a(a)a", 'a', 4u), 0u);
+ EXPECT_EQ(caspian::FindLastCharOutsideOfBrackets("a<<>", '<', 4u), 2u);
+}
+
+TEST(AnalyzeTest, FindParameterListParen) {
+ EXPECT_EQ(caspian::FindParameterListParen("a()"), 1u);
+ EXPECT_EQ(
+ caspian::FindParameterListParen(
+ "bool foo::Bar<unsigned int, int>::Do<unsigned int>(unsigned int)"),
+ 50u);
+ EXPECT_EQ(caspian::FindParameterListParen(
+ "std::basic_ostream<char, std::char_traits<char> >& "
+ "std::operator<< <std::char_traits<char> "
+ ">(std::basic_ostream<char, std::char_traits<char> >&, char)"),
+ 92u);
+}
+
+TEST(AnalyzeTest, FindReturnValueSpace) {
+ EXPECT_EQ(caspian::FindReturnValueSpace("bool a()", 6u), 4u);
+ EXPECT_EQ(caspian::FindReturnValueSpace("operator delete(void*)", 15),
+ std::string::npos);
+ EXPECT_EQ(
+ caspian::FindReturnValueSpace(
+ "bool foo::Bar<unsigned int, int>::Do<unsigned int>(unsigned int)",
+ 50u),
+ 4u);
+ EXPECT_EQ(caspian::FindReturnValueSpace(
+ "std::basic_ostream<char, std::char_traits<char> >& "
+ "std::operator<< <std::char_traits<char> "
+ ">(std::basic_ostream<char, std::char_traits<char> >&, char)",
+ 92u),
+ 50u);
+}
+
+TEST(AnalyzeTest, NormalizeTopLevelGccLambda) {
+ EXPECT_EQ(caspian::NormalizeTopLevelGccLambda(
+ "cc::{lambda(PaintOp*)#63}::_FUN()", 31u),
+ "cc::$lambda#63()");
+}
+
+TEST(AnalyzeTest, NormalizeTopLevelClangLambda) {
+ // cc::$_21::__invoke() -> cc::$lambda#21()
+ EXPECT_EQ(caspian::NormalizeTopLevelClangLambda("cc::$_21::__invoke()", 18u),
+ "cc::$lambda#21()");
+}
+
+TEST(AnalyzeTest, ParseJavaFunctionSignature) {
+ std::deque<std::string> owned_strings;
+ // Java method with no args
+ auto do_test = [&owned_strings](std::string sig, std::string exp_full_name,
+ std::string exp_template_name,
+ std::string exp_name) {
+ auto actual = caspian::ParseJava(sig, &owned_strings);
+ EXPECT_EQ(exp_full_name, std::string(std::get<0>(actual)));
+ EXPECT_EQ(exp_template_name, std::string(std::get<1>(actual)));
+ EXPECT_EQ(exp_name, std::string(std::get<2>(actual)));
+ // Ensure that ParseJava() is idempotent w.r.t. |full_name| output.
+ EXPECT_EQ(PrettyDebug(actual), PrettyDebug(caspian::ParseJava(
+ std::get<0>(actual), &owned_strings)));
+ };
+ do_test("org.ClassName java.util.List getCameraInfo()",
+ "org.ClassName#getCameraInfo(): java.util.List",
+ "org.ClassName#getCameraInfo", "ClassName#getCameraInfo");
+
+ // Java method with args
+ do_test("org.ClassName int readShort(int,int)",
+ "org.ClassName#readShort(int,int): int", "org.ClassName#readShort",
+ "ClassName#readShort");
+
+ // Java <init> method
+ do_test("org.ClassName$Inner <init>(byte[])",
+ "org.ClassName$Inner#<init>(byte[])", "org.ClassName$Inner#<init>",
+ "ClassName$Inner#<init>");
+
+ // Java Class
+ do_test("org.ClassName", "org.ClassName", "org.ClassName", "ClassName");
+
+ // Java field
+ do_test("org.ClassName some.Type mField", "org.ClassName#mField: some.Type",
+ "org.ClassName#mField", "ClassName#mField");
+}
+
+TEST(AnalyzeTest, ParseFunctionSignature) {
+ std::deque<std::string> owned_strings;
+ auto check = [&owned_strings](std::string ret_part, std::string name_part,
+ std::string params_part,
+ std::string after_part = "",
+ std::string name_without_templates = "") {
+ if (name_without_templates.empty()) {
+ name_without_templates = name_part;
+ // Heuristic to drop templates: std::vector<int> -> std::vector<>
+ RE2::GlobalReplace(&name_without_templates, "<.*?>", "<>");
+ name_without_templates += after_part;
+ }
+ std::string signature = name_part + params_part + after_part;
+ auto result = caspian::ParseCpp(signature, &owned_strings);
+ EXPECT_EQ(name_without_templates, std::get<2>(result));
+ EXPECT_EQ(name_part + after_part, std::get<1>(result));
+ EXPECT_EQ(name_part + params_part + after_part, std::get<0>(result));
+
+ if (!ret_part.empty()) {
+ // Parse should be unchanged when we prepend |ret_part|
+ signature = ret_part + name_part + params_part + after_part;
+ result = caspian::ParseCpp(signature, &owned_strings);
+ EXPECT_EQ(name_without_templates, std::get<2>(result));
+ EXPECT_EQ(name_part + after_part, std::get<1>(result));
+ EXPECT_EQ(name_part + params_part + after_part, std::get<0>(result));
+ }
+ };
+
+ check("bool ", "foo::Bar<unsigned int, int>::Do<unsigned int>",
+ "(unsigned int)");
+ check("base::internal::CheckedNumeric<int>& ",
+ "base::internal::CheckedNumeric<int>::operator+=<int>", "(int)");
+ check("base::internal::CheckedNumeric<int>& ",
+ "b::i::CheckedNumeric<int>::MathOp<b::i::CheckedAddOp, int>", "(int)");
+ check("", "(anonymous namespace)::GetBridge", "(long long)");
+ check("", "operator delete", "(void*)");
+ check("",
+ "b::i::DstRangeRelationToSrcRangeImpl<long long, long long, "
+ "std::__ndk1::numeric_limits, (b::i::Integer)1>::Check",
+ "(long long)");
+ check("", "cc::LayerIterator::operator cc::LayerIteratorPosition const", "()",
+ " const");
+ check("decltype ({parm#1}((SkRecords::NoOp)())) ",
+ "SkRecord::Record::visit<SkRecords::Draw&>", "(SkRecords::Draw&)",
+ " const");
+ check("", "base::internal::BindStateBase::BindStateBase",
+ "(void (*)(), void (*)(base::internal::BindStateBase const*))");
+ check("int ", "std::__ndk1::__c11_atomic_load<int>",
+ "(std::__ndk1::<int> volatile*, std::__ndk1::memory_order)");
+ check("std::basic_ostream<char, std::char_traits<char> >& ",
+ "std::operator<< <std::char_traits<char> >",
+ "(std::basic_ostream<char, std::char_traits<char> >&, char)", "",
+ "std::operator<< <>");
+ check("",
+ "std::basic_istream<char, std::char_traits<char> >"
+ "::operator>>",
+ "(unsigned int&)", "", "std::basic_istream<>::operator>>");
+ check("", "std::operator><std::allocator<char> >", "()", "",
+ "std::operator><>");
+ check("", "std::operator>><std::allocator<char> >",
+ "(std::basic_istream<char, std::char_traits<char> >&)", "",
+ "std::operator>><>");
+ check("", "std::basic_istream<char>::operator>", "(unsigned int&)", "",
+ "std::basic_istream<>::operator>");
+ check("v8::internal::SlotCallbackResult ",
+ "v8::internal::UpdateTypedSlotHelper::UpdateCodeTarget"
+ "<v8::PointerUpdateJobTraits<(v8::Direction)1>::Foo(v8::Heap*, "
+ "v8::MemoryChunk*)::{lambda(v8::SlotType, unsigned char*)#2}::"
+ "operator()(v8::SlotType, unsigned char*, unsigned char*) "
+ "const::{lambda(v8::Object**)#1}>",
+ "(v8::RelocInfo, v8::Foo<(v8::PointerDirection)1>::Bar(v8::Heap*)::"
+ "{lambda(v8::SlotType)#2}::operator()(v8::SlotType) const::"
+ "{lambda(v8::Object**)#1})",
+ "", "v8::internal::UpdateTypedSlotHelper::UpdateCodeTarget<>");
+ check("", "WTF::StringAppend<WTF::String, WTF::String>::operator WTF::String",
+ "()", " const");
+ // Make sure []s are not removed from the name part.
+ check("", "Foo", "()", " [virtual thunk]");
+ // Template function that accepts an anonymous lambda.
+ check("",
+ "blink::FrameView::ForAllNonThrottledFrameViews<blink::FrameView::Pre"
+ "Paint()::{lambda(FrameView&)#2}>",
+ "(blink::FrameView::PrePaint()::{lambda(FrameView&)#2} const&)", "");
+
+ // Test with multiple template args.
+ check("int ", "Foo<int()>::bar<a<b> >", "()", "", "Foo<>::bar<>");
+
+ // See function_signature_test.py for full comment
+ std::string sig =
+ "(anonymous namespace)::Foo::Baz() const::GLSLFP::onData(Foo, Bar)";
+ auto ret = caspian::ParseCpp(sig, &owned_strings);
+ EXPECT_EQ("(anonymous namespace)::Foo::Baz", std::get<2>(ret));
+ EXPECT_EQ("(anonymous namespace)::Foo::Baz", std::get<1>(ret));
+ EXPECT_EQ(sig, std::get<0>(ret));
+
+ // Top-level lambda.
+ // Note: Inline lambdas do not seem to be broken into their own symbols.
+ sig = "cc::{lambda(cc::PaintOp*)#63}::_FUN(cc::PaintOp*)";
+ ret = caspian::ParseCpp(sig, &owned_strings);
+ EXPECT_EQ("cc::$lambda#63", std::get<2>(ret));
+ EXPECT_EQ("cc::$lambda#63", std::get<1>(ret));
+ EXPECT_EQ("cc::$lambda#63(cc::PaintOp*)", std::get<0>(ret));
+
+ sig = "cc::$_63::__invoke(cc::PaintOp*)";
+ ret = caspian::ParseCpp(sig, &owned_strings);
+ EXPECT_EQ("cc::$lambda#63", std::get<2>(ret));
+ EXPECT_EQ("cc::$lambda#63", std::get<1>(ret));
+ EXPECT_EQ("cc::$lambda#63(cc::PaintOp*)", std::get<0>(ret));
+
+ // Data members
+ check("", "blink::CSSValueKeywordsHash::findValueImpl", "(char const*)",
+ "::value_word_list");
+ check("", "foo::Bar<Z<Y> >::foo<bar>", "(abc)", "::var<baz>",
+ "foo::Bar<>::foo<>::var<>");
+}
+} // namespace
diff --git a/chromium/tools/binary_size/libsupersize/caspian/grouped_path.cc b/chromium/tools/binary_size/libsupersize/caspian/grouped_path.cc
new file mode 100644
index 00000000000..6330f885fb0
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/grouped_path.cc
@@ -0,0 +1,74 @@
+// 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 "tools/binary_size/libsupersize/caspian/grouped_path.h"
+
+#include <stdint.h>
+
+#include <tuple>
+
+namespace {
+
+// Returns |s| with the last |sep| + [suffix] removed, or "" if |sep| is not
+// found.
+std::string_view RemoveLastSegment(std::string_view s, char sep) {
+ size_t sep_idx = s.find_last_of(sep);
+ return s.substr(0, (sep_idx == std::string_view::npos) ? 0 : sep_idx);
+}
+
+} // namespace
+
+namespace caspian {
+
+GroupedPath::GroupedPath() = default;
+GroupedPath::GroupedPath(const GroupedPath& other) = default;
+GroupedPath::GroupedPath(std::string_view group_in, std::string_view path_in)
+ : group(group_in), path(path_in) {}
+GroupedPath::~GroupedPath() = default;
+
+std::string_view GroupedPath::ShortName(char group_separator) const {
+ if (path.empty()) {
+ // If there's no group separator, return entire group name;
+ return group.substr(group.find_last_of(group_separator) + 1);
+ }
+ // If there's no path separator, return entire path name.
+ return path.substr(path.find_last_of('/') + 1);
+}
+
+GroupedPath GroupedPath::Parent(char group_separator) const {
+ if (path.empty()) {
+ return GroupedPath{RemoveLastSegment(group, group_separator), path};
+ }
+ return GroupedPath{group, RemoveLastSegment(path, '/')};
+}
+
+bool GroupedPath::IsTopLevelPath() const {
+ return std::string_view::npos == path.find_first_of('/');
+}
+
+bool GroupedPath::operator==(const GroupedPath& other) const {
+ return group == other.group && path == other.path;
+}
+
+std::string GroupedPath::ToString() const {
+ std::string ret;
+ ret.reserve(size());
+ ret += group;
+ if (!group.empty() && !path.empty()) {
+ ret += "/";
+ }
+ ret += path;
+ return ret;
+}
+
+bool GroupedPath::operator<(const GroupedPath& other) const {
+ return std::tie(group, path) < std::tie(other.group, other.path);
+}
+
+std::ostream& operator<<(std::ostream& os, const GroupedPath& path) {
+ return os << "GroupedPath(group=\"" << path.group << "\", path=\""
+ << path.path << "\")";
+}
+
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/grouped_path.h b/chromium/tools/binary_size/libsupersize/caspian/grouped_path.h
new file mode 100644
index 00000000000..277962a5f35
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/grouped_path.h
@@ -0,0 +1,60 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_GROUPED_PATH_H_
+#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_GROUPED_PATH_H_
+
+#include <stddef.h>
+
+#include <functional>
+#include <ostream>
+#include <string>
+#include <string_view>
+
+namespace caspian {
+struct GroupedPath {
+ // TreeNode id_paths can be grouped by component or template, for example
+ // "Blink>JavaScript/v8/natives_blob.bin/assets" has the base path
+ // "v8/natives_blob.bin/assets" and has been grouped to the component
+ // "Blink>JavaScript". This is a lightweight utility class for managing this
+ // two-level path structure without wasteful string allocations.
+ GroupedPath();
+ GroupedPath(const GroupedPath& other);
+ GroupedPath(std::string_view group_in, std::string_view path_in);
+ ~GroupedPath();
+
+ // Returns |ToString.size()| without actually creating the string.
+ size_t size() const {
+ size_t sep_size = (group.empty() || path.empty()) ? 0 : 1; // For '/'.
+ return group.size() + path.size() + sep_size;
+ }
+
+ std::string_view ShortName(char group_separator) const;
+ GroupedPath Parent(char group_separator) const;
+ bool IsTopLevelPath() const;
+ bool empty() const { return path.empty() && group.empty(); }
+ bool operator==(const GroupedPath& other) const;
+ std::string ToString() const;
+
+ bool operator<(const GroupedPath& other) const;
+
+ std::string_view group;
+ std::string_view path;
+};
+
+std::ostream& operator<<(std::ostream& os, const GroupedPath& path);
+
+} // namespace caspian
+
+namespace std {
+template <>
+struct hash<caspian::GroupedPath> {
+ std::size_t operator()(const caspian::GroupedPath& grouped_path) const
+ noexcept {
+ return std::hash<std::string_view>{}(grouped_path.group) ^
+ std::hash<std::string_view>{}(grouped_path.path);
+ }
+};
+} // namespace std
+#endif // TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_GROUPED_PATH_H_
diff --git a/chromium/tools/binary_size/libsupersize/caspian/grouped_path_test.cc b/chromium/tools/binary_size/libsupersize/caspian/grouped_path_test.cc
new file mode 100644
index 00000000000..77f41ac81f1
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/grouped_path_test.cc
@@ -0,0 +1,95 @@
+// 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 "tools/binary_size/libsupersize/caspian/grouped_path.h"
+
+#include <stdint.h>
+
+#include <vector>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+namespace {
+
+void CheckParentChain(std::vector<GroupedPath> paths, char sep) {
+ for (unsigned int i = 1; i < paths.size(); i++) {
+ EXPECT_EQ(paths[i], paths[i - 1].Parent(sep));
+ }
+}
+
+} // namespace
+
+TEST(PathTest, TestBasic) {
+ std::vector<GroupedPath> paths{{"group", "foo/bar"},
+ {"group", "foo"},
+ {"group", ""},
+ {"", ""},
+ {"", ""}};
+ CheckParentChain(paths, '>');
+}
+
+TEST(PathTest, TestEmptyGroup) {
+ std::vector<GroupedPath> paths{
+ {"", "foo/bar/baz"}, {"", "foo/bar"}, {"", "foo"}, {"", ""}};
+ CheckParentChain(paths, '>');
+}
+
+TEST(PathTest, TestComponent) {
+ std::vector<GroupedPath> paths{
+ {"A>B>C", "foo"}, {"A>B>C", ""}, {"A>B", ""}, {"A", ""}, {"", ""}};
+ CheckParentChain(paths, '>');
+}
+
+TEST(PathTest, TestGroupPaths) {
+ std::vector<GroupedPath> paths{
+ {"a/b/c", "foo"}, {"a/b/c", ""}, {"a/b", ""}, {"a", ""}, {"", ""}};
+ CheckParentChain(paths, '/');
+}
+
+TEST(PathTest, TestNoSplitOnAngleBracketInPath) {
+ std::vector<GroupedPath> paths{
+ {"a/b/c", "operator>"}, {"a/b/c", ""}, {"a/b", ""}, {"a", ""}, {"", ""}};
+ CheckParentChain(paths, '/');
+}
+
+TEST(PathTest, TestNoSplitOnAngleBracketInGroup) {
+ std::vector<GroupedPath> paths{{"operator<>(foo)", ""}, {"", ""}};
+ CheckParentChain(paths, '/');
+}
+
+TEST(PathTest, TestIsTopLevelPath) {
+ EXPECT_TRUE((GroupedPath{"operator<>(foo)", "operator>"}.IsTopLevelPath()));
+ EXPECT_FALSE((GroupedPath{"", "a/b"}.IsTopLevelPath()));
+ EXPECT_TRUE((GroupedPath{"", "a"}.IsTopLevelPath()));
+ EXPECT_FALSE((GroupedPath{"a", "b/c"}.IsTopLevelPath()));
+
+ EXPECT_TRUE((GroupedPath{"foo", ""}.IsTopLevelPath()));
+ EXPECT_TRUE((GroupedPath{"", ""}.IsTopLevelPath()));
+}
+
+TEST(PathTest, TestComparison) {
+ EXPECT_TRUE((GroupedPath{"a", "b/c"}) < (GroupedPath{"a", "b/d"}));
+ EXPECT_FALSE((GroupedPath{"a", "b/c"}) < (GroupedPath{"a", "b/b"}));
+
+ EXPECT_FALSE((GroupedPath{"a", "b/c"}) < (GroupedPath{"a", "b/c"}));
+ EXPECT_TRUE((GroupedPath{"a", "b/c"}) < (GroupedPath{"a", "b/c/d"}));
+
+ EXPECT_TRUE((GroupedPath{"b", "c/c"}) < (GroupedPath{"c", "b/b"}));
+ EXPECT_FALSE((GroupedPath{"b", "a/c"}) < (GroupedPath{"a", "b/b"}));
+}
+
+TEST(PathTest, TestShortname) {
+ EXPECT_EQ("Blink", (GroupedPath{"Blink", ""}).ShortName('>'));
+ EXPECT_EQ("Foo", (GroupedPath{"Blink>Foo", ""}).ShortName('>'));
+
+ EXPECT_EQ("template<>", (GroupedPath{"a/template<>", ""}).ShortName('/'));
+
+ EXPECT_EQ("Bar", (GroupedPath{"Blink>Foo", "Bar"}).ShortName('>'));
+ EXPECT_EQ("c", (GroupedPath{"a", "b/c"}).ShortName('>'));
+ EXPECT_EQ("c", (GroupedPath{"a", "b/c"}).ShortName('>'));
+}
+
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens.cc b/chromium/tools/binary_size/libsupersize/caspian/lens.cc
new file mode 100644
index 00000000000..7011e4f0157
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens.cc
@@ -0,0 +1,117 @@
+// 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 "tools/binary_size/libsupersize/caspian/lens.h"
+
+#include <string>
+
+#include "third_party/re2/src/re2/re2.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace {
+
+constexpr const char* kNoComponent = "(No component)";
+
+bool PartialMatch(std::string_view view, const RE2& regex) {
+ re2::StringPiece piece(view.data(), view.size());
+ return RE2::PartialMatch(piece, regex);
+}
+
+bool PartialMatch(const char* string, const RE2& regex) {
+ if (string) {
+ return PartialMatch(std::string_view(string), regex);
+ }
+ return false;
+}
+
+} // namespace
+
+namespace caspian {
+
+std::string_view IdPathLens::ParentName(const BaseSymbol& symbol) {
+ return "";
+}
+
+std::string_view ComponentLens::ParentName(const BaseSymbol& symbol) {
+ std::string component;
+ if (symbol.Component() && *symbol.Component()) {
+ return symbol.Component();
+ }
+ return kNoComponent;
+}
+
+std::string_view TemplateLens::ParentName(const BaseSymbol& symbol) {
+ return symbol.Name();
+}
+
+std::string_view GeneratedLens::ParentName(const BaseSymbol& symbol) {
+ static LazyRE2 register_jni_regex = {
+ R"(Register.*JNIEnv\*\)|RegisteredMethods$)"};
+ if (PartialMatch(symbol.FullName(), *register_jni_regex)) {
+ return "RegisterJNI";
+ }
+
+ static LazyRE2 gl_bindings_autogen_regex = {"gl_bindings_autogen"};
+ if (PartialMatch(symbol.SourcePath(), *gl_bindings_autogen_regex) ||
+ PartialMatch(symbol.ObjectPath(), *gl_bindings_autogen_regex)) {
+ return "gl_bindings_autogen";
+ }
+ if (!symbol.IsGeneratedSource()) {
+ return "Not generated";
+ }
+
+ static LazyRE2 java_protobuf_regex = {R"(Proto\.java$)"};
+ if (PartialMatch(symbol.SourcePath(), *java_protobuf_regex)) {
+ return "Java Protocol Buffers";
+ }
+
+ static LazyRE2 cc_protobuf_regex = {R"(/protobuf/|\.pbzero\.o$|\.pb\.o$)"};
+ if (PartialMatch(symbol.ObjectPath(), *cc_protobuf_regex)) {
+ return "C++ Protocol Buffers";
+ }
+
+ static LazyRE2 mojo_regex = {".mojom|^mojo/|^mojo::"};
+ if (PartialMatch(symbol.ObjectPath(), *mojo_regex)) {
+ return "Mojo";
+ }
+
+ static LazyRE2 dev_tools_regex = {R"(\b(?:protocol|devtools)\b)"};
+ if (PartialMatch(symbol.SourcePath(), *dev_tools_regex)) {
+ return "DevTools";
+ }
+
+ static LazyRE2 blink_bindings_regex = {R"((?:blink|WebKit)/.*bindings)"};
+ if (PartialMatch(symbol.ObjectPath(), *blink_bindings_regex)) {
+ return "Blink (bindings)";
+ }
+
+ static LazyRE2 blink_regex = {"WebKit|blink/"};
+ if (PartialMatch(symbol.ObjectPath(), *blink_regex)) {
+ return "Blink (other)";
+ }
+
+ static LazyRE2 v8_builtins = {"embedded.S$"};
+ if (PartialMatch(symbol.ObjectPath(), *v8_builtins)) {
+ return "V8 Builtins";
+ }
+
+ static LazyRE2 prepopulated_engines_regex = {"prepopulated_engines"};
+ if (PartialMatch(symbol.ObjectPath(), *prepopulated_engines_regex)) {
+ return "Metrics-related code";
+ }
+
+ static LazyRE2 gpu_driver_regex = {"gpu_driver_bug_list"};
+ if (PartialMatch(symbol.ObjectPath(), *gpu_driver_regex)) {
+ return "gpu_driver_bug_list_autogen.cc";
+ }
+
+ static LazyRE2 components_policy_regex = {"components/policy"};
+ if (PartialMatch(symbol.ObjectPath(), *components_policy_regex)) {
+ return "components/policy";
+ }
+
+ return "Generated (other)";
+}
+
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens.h b/chromium/tools/binary_size/libsupersize/caspian/lens.h
new file mode 100644
index 00000000000..f3bf6fcaf69
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens.h
@@ -0,0 +1,40 @@
+// 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.
+
+#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_LENS_H_
+#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_LENS_H_
+
+#include <string_view>
+
+namespace caspian {
+class BaseSymbol;
+
+class BaseLens {
+ public:
+ virtual ~BaseLens() = default;
+ virtual std::string_view ParentName(const BaseSymbol& symbol) = 0;
+};
+
+class IdPathLens : public BaseLens {
+ public:
+ std::string_view ParentName(const BaseSymbol& symbol) override;
+};
+
+class ComponentLens : public BaseLens {
+ public:
+ std::string_view ParentName(const BaseSymbol& symbol) override;
+};
+
+class TemplateLens : public BaseLens {
+ public:
+ std::string_view ParentName(const BaseSymbol& symbol) override;
+};
+
+class GeneratedLens : public BaseLens {
+ public:
+ std::string_view ParentName(const BaseSymbol& symbol) override;
+};
+} // namespace caspian
+
+#endif // TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_LENS_H_
diff --git a/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc b/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc
new file mode 100644
index 00000000000..c3bad036087
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/lens_test.cc
@@ -0,0 +1,82 @@
+// 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 "tools/binary_size/libsupersize/caspian/lens.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+
+TEST(LensTest, TestGeneratedLensRegisterJNI) {
+ Symbol sym;
+ sym.full_name_ =
+ "base::android::JNI_TraceEvent_RegisterEnabledObserver(_JNIEnv*)";
+ sym.section_id_ = SectionId::kText;
+ sym.source_path_ = "a/b/c.java";
+ EXPECT_EQ("RegisterJNI", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensGlBindings) {
+ Symbol sym;
+ sym.full_name_ = "gl::TraceGLApi::glCopyTexImage2DFn(unsigned int, int, int)";
+ sym.section_id_ = SectionId::kText;
+ sym.source_path_ = "a/b/gl_bindings_autogen_gl.cc";
+ EXPECT_EQ("gl_bindings_autogen", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensNotGenerated) {
+ Symbol sym;
+ sym.full_name_ = "NotAGeneratedSymbol";
+ sym.section_id_ = SectionId::kText;
+ sym.source_path_ = "a/b/c.cc";
+ EXPECT_EQ("Not generated", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensJavaProto) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kDex;
+ sym.source_path_ = "a/b/FooProto.java";
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
+ EXPECT_EQ("Java Protocol Buffers", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensCppProto) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kDex;
+ sym.object_path_ = "a/b/sync.pb.o";
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
+ EXPECT_EQ("C++ Protocol Buffers", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensMojo) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kText;
+ sym.object_path_ = "a.mojom";
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
+ EXPECT_EQ("Mojo", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensDevTools) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kText;
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
+
+ sym.source_path_ = "a/b/protocol/Foo.cpp";
+ EXPECT_EQ("DevTools", GeneratedLens().ParentName(sym));
+
+ sym.source_path_ = "a/b/devtools/Foo.cpp";
+ EXPECT_EQ("DevTools", GeneratedLens().ParentName(sym));
+}
+
+TEST(LensTest, TestGeneratedLensBlinkBindings) {
+ Symbol sym;
+ sym.section_id_ = SectionId::kText;
+ sym.flags_ |= SymbolFlag::kGeneratedSource;
+
+ sym.object_path_ = "blink/foo/bindings/bar";
+ EXPECT_EQ("Blink (bindings)", GeneratedLens().ParentName(sym));
+}
+
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/model.cc b/chromium/tools/binary_size/libsupersize/caspian/model.cc
index d0aefae0b8a..2af51549218 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/model.cc
+++ b/chromium/tools/binary_size/libsupersize/caspian/model.cc
@@ -4,10 +4,476 @@
#include "tools/binary_size/libsupersize/caspian/model.h"
+#include <algorithm>
+#include <iostream>
+#include <list>
+#include <tuple>
+#include <unordered_map>
+
#include "tools/binary_size/libsupersize/caspian/file_format.h"
+#include "tools/binary_size/libsupersize/caspian/function_signature.h"
+
+namespace caspian {
+
+BaseSymbol::~BaseSymbol() = default;
+
+Symbol::Symbol() = default;
+Symbol::~Symbol() = default;
+Symbol::Symbol(const Symbol& other) = default;
+
+void Symbol::DeriveNames() const {
+ if (name_.data() != nullptr) {
+ return;
+ }
+ if (IsPak()) {
+ // full_name: "about_ui_resources.grdp: IDR_ABOUT_UI_CREDITS_HTML".
+ size_t space_idx = full_name_.rfind(' ');
+ template_name_ = full_name_.substr(space_idx + 1);
+ name_ = template_name_;
+ } else if ((!full_name_.empty() && full_name_[0] == '*') || IsOverhead() ||
+ IsOther()) {
+ template_name_ = full_name_;
+ name_ = full_name_;
+ } else if (IsDex()) {
+ std::tuple<std::string_view, std::string_view, std::string_view>
+ parsed_names = ParseJava(full_name_, &size_info_->owned_strings);
+ template_name_ = std::get<1>(parsed_names);
+ name_ = std::get<2>(parsed_names);
+ } else if (IsStringLiteral()) {
+ template_name_ = full_name_;
+ name_ = full_name_;
+ } else if (IsNative()) {
+ std::tuple<std::string_view, std::string_view, std::string_view>
+ parsed_names = ParseCpp(full_name_, &size_info_->owned_strings);
+ template_name_ = std::get<1>(parsed_names);
+ name_ = std::get<2>(parsed_names);
+ } else {
+ template_name_ = full_name_;
+ name_ = full_name_;
+ }
+}
+
+int32_t Symbol::Address() const {
+ return address_;
+}
+int32_t Symbol::Size() const {
+ return size_;
+}
+int32_t Symbol::Flags() const {
+ return flags_;
+}
+int32_t Symbol::Padding() const {
+ return padding_;
+}
+
+std::string_view Symbol::FullName() const {
+ return full_name_;
+}
+// Derived from |full_name|. Generated lazily and cached.
+std::string_view Symbol::TemplateName() const {
+ DeriveNames();
+ return template_name_;
+}
+std::string_view Symbol::Name() const {
+ DeriveNames();
+ return name_;
+}
+const std::vector<Symbol*>* Symbol::Aliases() const {
+ return aliases_;
+}
+SectionId Symbol::Section() const {
+ return section_id_;
+}
+
+const char* Symbol::ObjectPath() const {
+ return object_path_;
+}
+const char* Symbol::SourcePath() const {
+ return source_path_;
+}
+const char* Symbol::SectionName() const {
+ return section_name_;
+}
+const char* Symbol::Component() const {
+ return component_;
+}
+
+float Symbol::Pss() const {
+ return static_cast<float>(Size()) / NumAliases();
+}
+
+float Symbol::PssWithoutPadding() const {
+ return Pss() - PaddingPss();
+}
+
+float Symbol::PaddingPss() const {
+ return static_cast<float>(Padding()) / NumAliases();
+}
+
+DiffStatus Symbol::GetDiffStatus() const {
+ return DiffStatus::kUnchanged;
+}
+
+// delta symbol
+
+DeltaSymbol::DeltaSymbol(const Symbol* before, const Symbol* after)
+ : before_(before), after_(after) {
+ if (!before_ && !after_) {
+ exit(1);
+ }
+}
+
+DeltaSymbol::~DeltaSymbol() = default;
+
+int32_t DeltaSymbol::Address() const {
+ if (after_) {
+ return after_->Address();
+ }
+ return 0;
+}
+
+int32_t DeltaSymbol::Size() const {
+ if (!after_) {
+ return -before_->Size();
+ }
+ if (!before_) {
+ return after_->Size();
+ }
+ // Padding tracked in aggregate, except for padding-only symbols.
+ if (before_->SizeWithoutPadding() == 0) {
+ return after_->Padding() - before_->Padding();
+ }
+ return after_->SizeWithoutPadding() - before_->SizeWithoutPadding();
+}
+
+int32_t DeltaSymbol::Flags() const {
+ int32_t before_flags = before_ ? before_->Flags() : 0;
+ int32_t after_flags = after_ ? after_->Flags() : 0;
+ return before_flags ^ after_flags;
+}
+
+int32_t DeltaSymbol::Padding() const {
+ if (!after_) {
+ return -before_->Padding();
+ }
+ if (!before_) {
+ return after_->Padding();
+ }
+ // Padding tracked in aggregate, except for padding-only symbols.
+ if (before_->SizeWithoutPadding() == 0) {
+ return after_->Padding() - before_->Padding();
+ }
+ return 0;
+}
+
+std::string_view DeltaSymbol::FullName() const {
+ return (after_ ? after_ : before_)->FullName();
+}
+
+// Derived from |full_name|. Generated lazily and cached.
+std::string_view DeltaSymbol::TemplateName() const {
+ return (after_ ? after_ : before_)->TemplateName();
+}
+
+std::string_view DeltaSymbol::Name() const {
+ return (after_ ? after_ : before_)->Name();
+}
+
+const std::vector<Symbol*>* DeltaSymbol::Aliases() const {
+ return nullptr;
+}
+
+SectionId DeltaSymbol::Section() const {
+ return (after_ ? after_ : before_)->Section();
+}
+
+const char* DeltaSymbol::ObjectPath() const {
+ return (after_ ? after_ : before_)->ObjectPath();
+}
+
+const char* DeltaSymbol::SourcePath() const {
+ return (after_ ? after_ : before_)->SourcePath();
+}
+
+const char* DeltaSymbol::SectionName() const {
+ return (after_ ? after_ : before_)->SectionName();
+}
+
+const char* DeltaSymbol::Component() const {
+ return (after_ ? after_ : before_)->Component();
+}
+
+float DeltaSymbol::Pss() const {
+ if (!after_) {
+ return -before_->Pss();
+ }
+ if (!before_) {
+ return after_->Pss();
+ }
+ // Padding tracked in aggregate, except for padding-only symbols.
+ if (before_->SizeWithoutPadding() == 0) {
+ return after_->Pss() - before_->Pss();
+ }
+ return after_->PssWithoutPadding() - before_->PssWithoutPadding();
+}
+
+float DeltaSymbol::PssWithoutPadding() const {
+ return Pss() - PaddingPss();
+}
+
+float DeltaSymbol::PaddingPss() const {
+ if (!after_) {
+ return -before_->PaddingPss();
+ }
+ if (!before_) {
+ return after_->PaddingPss();
+ }
+ // Padding tracked in aggregate, except for padding-only symbols.
+ if (before_->SizeWithoutPadding() == 0) {
+ return after_->PaddingPss() - before_->PaddingPss();
+ }
+ return 0;
+}
+
+DiffStatus DeltaSymbol::GetDiffStatus() const {
+ if (!before_) {
+ return DiffStatus::kAdded;
+ }
+ if (!after_) {
+ return DiffStatus::kRemoved;
+ }
+ if (Size() || Pss() != 0) {
+ return DiffStatus::kChanged;
+ }
+ return DiffStatus::kUnchanged;
+}
+
+TreeNode::TreeNode() = default;
+TreeNode::~TreeNode() {
+ // TODO(jaspercb): Could use custom allocator to delete all nodes in one go.
+ for (TreeNode* child : children) {
+ delete child;
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, const Symbol& sym) {
+ return os << "Symbol(full_name=" << sym.FullName()
+ << ", section=" << static_cast<char>(sym.section_id_)
+ << ", section=" << sym.section_name_ << ", address=" << sym.address_
+ << ", size=" << sym.size_ << ", flags=" << sym.flags_
+ << ", padding=" << sym.padding_ << ")";
+}
+
+BaseSizeInfo::BaseSizeInfo() = default;
+BaseSizeInfo::BaseSizeInfo(const BaseSizeInfo&) = default;
+BaseSizeInfo::~BaseSizeInfo() = default;
+
+SectionId BaseSizeInfo::ShortSectionName(const char* section_name) {
+ static std::map<const char*, SectionId> short_section_name_cache;
+ SectionId& ret = short_section_name_cache[section_name];
+ if (ret == SectionId::kNone) {
+ if (!strcmp(section_name, ".text")) {
+ ret = SectionId::kText;
+ } else if (!strcmp(section_name, ".dex")) {
+ ret = SectionId::kDex;
+ } else if (!strcmp(section_name, ".dex.method")) {
+ ret = SectionId::kDexMethod;
+ } else if (!strcmp(section_name, ".other")) {
+ ret = SectionId::kOther;
+ } else if (!strcmp(section_name, ".rodata")) {
+ ret = SectionId::kRoData;
+ } else if (!strcmp(section_name, ".data")) {
+ ret = SectionId::kData;
+ } else if (!strcmp(section_name, ".data.rel.ro")) {
+ ret = SectionId::kDataRelRo;
+ } else if (!strcmp(section_name, ".bss")) {
+ ret = SectionId::kBss;
+ } else if (!strcmp(section_name, ".bss.rel.ro")) {
+ ret = SectionId::kBss;
+ } else if (!strcmp(section_name, ".pak.nontranslated")) {
+ ret = SectionId::kPakNontranslated;
+ } else if (!strcmp(section_name, ".pak.translations")) {
+ ret = SectionId::kPakTranslations;
+ } else {
+ std::cerr << "Attributing unrecognized section name to .other: "
+ << section_name << std::endl;
+ ret = SectionId::kOther;
+ }
+ }
+ return ret;
+}
+
+SizeInfo::SizeInfo() = default;
+SizeInfo::~SizeInfo() = default;
+
+bool SizeInfo::IsSparse() const {
+ return is_sparse;
+}
+
+DeltaSizeInfo::DeltaSizeInfo(const SizeInfo* before, const SizeInfo* after)
+ : before(before), after(after) {}
+
+DeltaSizeInfo::~DeltaSizeInfo() = default;
+DeltaSizeInfo::DeltaSizeInfo(const DeltaSizeInfo&) = default;
+DeltaSizeInfo& DeltaSizeInfo::operator=(const DeltaSizeInfo&) = default;
+
+bool DeltaSizeInfo::IsSparse() const {
+ return before->IsSparse() && after->IsSparse();
+}
+
+void TreeNode::WriteIntoJson(
+ int depth,
+ std::function<bool(const TreeNode* const& l, const TreeNode* const& r)>
+ compare_func,
+ bool is_sparse,
+ Json::Value* out) {
+ if (symbol) {
+ if (symbol->NumAliases() > 1) {
+ (*out)["numAliases"] = symbol->NumAliases();
+ }
+ if (symbol->IsDex()) {
+ (*out)["idPath"] = std::string(symbol->FullName());
+ } else {
+ (*out)["idPath"] = std::string(symbol->TemplateName());
+ (*out)["fullName"] = std::string(symbol->FullName());
+ }
+ if (symbol->SourcePath()) {
+ (*out)["srcPath"] = symbol->SourcePath();
+ }
+ if (symbol->Component()) {
+ (*out)["component"] = symbol->Component();
+ }
+ } 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();
+ if (diff_status != DiffStatus::kUnchanged) {
+ (*out)["diffStatus"] = static_cast<uint8_t>(diff_status);
+ }
+ }
+ }
+ (*out)["shortNameIndex"] = short_name_index;
+ std::string type;
+ if (container_type != ContainerType::kSymbol) {
+ type += static_cast<char>(container_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(&(*out)["childStats"]);
+
+ const size_t kMaxChildNodesToExpand = 1000;
+ if (children.size() > kMaxChildNodesToExpand) {
+ // When the tree is very flat, don't expand child nodes to avoid cost of
+ // sending thousands of children and grandchildren to renderer.
+ depth = 0;
+ }
+
+ if (depth < 0 && children.size() > 1) {
+ (*out)["children"] = Json::Value(); // null
+ } else {
+ (*out)["children"] = Json::Value(Json::arrayValue);
+ // Reorder children for output.
+ // TODO: Support additional compare functions.
+ std::sort(children.begin(), children.end(), compare_func);
+ for (unsigned int i = 0; i < children.size(); i++) {
+ children[i]->WriteIntoJson(depth - 1, compare_func, is_sparse,
+ &(*out)["children"][i]);
+ }
+ }
+}
+
+NodeStats::NodeStats() = default;
+NodeStats::~NodeStats() = default;
+
+NodeStats::NodeStats(const BaseSymbol& symbol) {
+ const SectionId section = symbol.Section();
+ Stat& section_stats = child_stats[section];
+ section_stats = {1, 0, 0, 0, symbol.Pss()};
+ switch (symbol.GetDiffStatus()) {
+ case DiffStatus::kUnchanged:
+ break;
+ case DiffStatus::kAdded:
+ section_stats.added = 1;
+ break;
+ case DiffStatus::kRemoved:
+ section_stats.removed = 1;
+ break;
+ case DiffStatus::kChanged:
+ section_stats.changed = 1;
+ break;
+ }
+}
+
+void NodeStats::WriteIntoJson(Json::Value* out) const {
+ (*out) = Json::Value(Json::objectValue);
+ for (const auto kv : child_stats) {
+ const std::string sectionId = std::string(1, static_cast<char>(kv.first));
+ const Stat stats = kv.second;
+ (*out)[sectionId] = Json::Value(Json::objectValue);
+ (*out)[sectionId]["size"] = stats.size;
+ (*out)[sectionId]["count"] = stats.count;
+ (*out)[sectionId]["added"] = stats.added;
+ (*out)[sectionId]["removed"] = stats.removed;
+ (*out)[sectionId]["changed"] = stats.changed;
+ }
+}
+
+NodeStats& NodeStats::operator+=(const NodeStats& other) {
+ for (const auto& it : other.child_stats) {
+ child_stats[it.first] += it.second;
+ }
+ return *this;
+}
+
+SectionId NodeStats::ComputeBiggestSection() const {
+ SectionId ret = SectionId::kNone;
+ float max = 0.0f;
+ for (auto& pair : child_stats) {
+ if (abs(pair.second.size) > max) {
+ ret = pair.first;
+ max = abs(pair.second.size);
+ }
+ }
+ return ret;
+}
+
+int32_t NodeStats::SumCount() const {
+ int32_t count = 0;
+ for (auto& pair : child_stats) {
+ count += pair.second.count;
+ }
+ return count;
+}
+
+int32_t NodeStats::SumAdded() const {
+ int32_t count = 0;
+ for (auto& pair : child_stats) {
+ count += pair.second.added;
+ }
+ return count;
+}
-caspian::Symbol::Symbol() = default;
-caspian::Symbol::Symbol(const Symbol& other) = default;
+int32_t NodeStats::SumRemoved() const {
+ int32_t count = 0;
+ for (auto& pair : child_stats) {
+ count += pair.second.removed;
+ }
+ return count;
+}
-caspian::SizeInfo::SizeInfo() = default;
-caspian::SizeInfo::~SizeInfo() = default;
+DiffStatus NodeStats::GetGlobalDiffStatus() const {
+ int32_t count = SumCount();
+ if (SumAdded() == count) {
+ return DiffStatus::kAdded;
+ } else if (SumRemoved() == count) {
+ return DiffStatus::kRemoved;
+ }
+ return DiffStatus::kUnchanged;
+}
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/model.h b/chromium/tools/binary_size/libsupersize/caspian/model.h
index 1157d6490f9..a5bfd88acfe 100644
--- a/chromium/tools/binary_size/libsupersize/caspian/model.h
+++ b/chromium/tools/binary_size/libsupersize/caspian/model.h
@@ -5,54 +5,357 @@
#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_MODEL_H_
#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_MODEL_H_
+#include <stdint.h>
#include <stdlib.h>
+#include <array>
#include <deque>
+#include <functional>
+#include <map>
+#include <ostream>
#include <string>
+#include <string_view>
#include <vector>
#include "third_party/jsoncpp/source/include/json/json.h"
+#include "tools/binary_size/libsupersize/caspian/grouped_path.h"
// Copied from representation in tools/binary_size/libsupersize/models.py
namespace caspian {
-struct Symbol {
+enum class ContainerType : char {
+ kSymbol = '\0',
+ kDirectory = 'D',
+ kComponent = 'C',
+ kFile = 'F',
+ kJavaClass = 'J',
+};
+
+enum class SectionId : char {
+ // kNone is unused except for default-initializing in containers
+ kNone = '\0',
+ kBss = 'b',
+ kData = 'd',
+ kDataRelRo = 'R',
+ kDex = 'x',
+ kDexMethod = 'm',
+ kOther = 'o',
+ kRoData = 'r',
+ kText = 't',
+ kPakNontranslated = 'P',
+ kPakTranslations = 'p',
+};
+
+enum class DiffStatus : uint8_t {
+ kUnchanged = 0,
+ kChanged = 1,
+ kAdded = 2,
+ kRemoved = 3,
+};
+
+class SymbolFlag {
+ public:
+ static const int32_t kAnonymous = 1;
+ static const int32_t kStartup = 2;
+ static const int32_t kUnlikely = 4;
+ static const int32_t kRel = 8;
+ static const int32_t kRelLocal = 16;
+ static const int32_t kGeneratedSource = 32;
+ static const int32_t kClone = 64;
+ static const int32_t kHot = 128;
+ static const int32_t kCovered = 256;
+ static const int32_t kUncompressed = 512;
+};
+
+class Symbol;
+
+class BaseSymbol {
+ public:
+ virtual ~BaseSymbol();
+
+ virtual int32_t Address() const = 0;
+ virtual int32_t Size() const = 0;
+ virtual int32_t Flags() const = 0;
+ virtual int32_t Padding() const = 0;
+
+ virtual std::string_view FullName() const = 0;
+ // Derived from |full_name|. Generated lazily and cached.
+ virtual std::string_view TemplateName() const = 0;
+ virtual std::string_view Name() const = 0;
+ virtual const std::vector<Symbol*>* Aliases() const = 0;
+ virtual SectionId Section() const = 0;
+
+ virtual const char* ObjectPath() const = 0;
+ virtual const char* SourcePath() const = 0;
+ virtual const char* SectionName() const = 0;
+ virtual const char* Component() const = 0;
+
+ virtual float Pss() const = 0;
+ virtual float PssWithoutPadding() const = 0;
+ virtual float PaddingPss() const = 0;
+
+ virtual DiffStatus GetDiffStatus() const = 0;
+
+ int32_t SizeWithoutPadding() const { return Size() - Padding(); }
+
+ int32_t EndAddress() const { return Address() + SizeWithoutPadding(); }
+
+ int32_t NumAliases() const {
+ const std::vector<Symbol*>* aliases = Aliases();
+ return aliases ? aliases->size() : 1;
+ }
+
+ bool IsTemplate() const {
+ // Because of the way these are derived from |FullName|, they have the
+ // same contents if and only if they have the same length.
+ return Name().size() != TemplateName().size();
+ }
+
+ bool IsOverhead() const { return FullName().substr(0, 10) == "Overhead: "; }
+
+ bool IsBss() const { return Section() == SectionId::kBss; }
+
+ bool IsDex() const {
+ SectionId section_id = Section();
+ return section_id == SectionId::kDex || section_id == SectionId::kDexMethod;
+ }
+
+ bool IsOther() const { return Section() == SectionId::kOther; }
+
+ bool IsPak() const {
+ SectionId section_id = Section();
+ return section_id == SectionId::kPakNontranslated ||
+ section_id == SectionId::kPakTranslations;
+ }
+
+ bool IsNative() const {
+ SectionId section_id = Section();
+ return (section_id == SectionId::kBss || section_id == SectionId::kData ||
+ section_id == SectionId::kDataRelRo ||
+ section_id == SectionId::kText || section_id == SectionId::kRoData);
+ }
+
+ bool IsStringLiteral() const {
+ std::string_view full_name = FullName();
+ return !full_name.empty() && full_name[0] == '"';
+ }
+
+ bool IsGeneratedSource() const {
+ return Flags() & SymbolFlag::kGeneratedSource;
+ }
+
+ bool IsNameUnique() const {
+ return !(IsStringLiteral() || IsOverhead() ||
+ (!FullName().empty() && FullName()[0] == '*') ||
+ (IsNative() && FullName().find('.') != std::string_view::npos));
+ }
+};
+
+struct BaseSizeInfo;
+class Symbol;
+
+class Symbol : public BaseSymbol {
+ public:
Symbol();
+ ~Symbol() override;
Symbol(const Symbol& other);
- int32_t address = 0;
- int32_t size = 0;
- int32_t flags = 0;
- int32_t padding = 0;
- std::string full_name;
- std::string template_name;
- std::string name;
- const std::string* object_path = nullptr;
- const std::string* section_name = nullptr;
- const std::string* source_path = nullptr;
- const std::string* component = nullptr;
- std::vector<Symbol*>* aliases = nullptr;
-};
-
-struct SizeInfo {
+ int32_t Address() const override;
+ int32_t Size() const override;
+ int32_t Flags() const override;
+ int32_t Padding() const override;
+
+ std::string_view FullName() const override;
+ // Derived from |full_name|. Generated lazily and cached.
+ std::string_view TemplateName() const override;
+ std::string_view Name() const override;
+ const std::vector<Symbol*>* Aliases() const override;
+ SectionId Section() const override;
+
+ const char* ObjectPath() const override;
+ const char* SourcePath() const override;
+ const char* SectionName() const override;
+ const char* Component() const override;
+
+ float Pss() const override;
+
+ float PssWithoutPadding() const override;
+
+ float PaddingPss() const override;
+
+ DiffStatus GetDiffStatus() const override;
+
+ int32_t address_ = 0;
+ int32_t size_ = 0;
+ int32_t flags_ = 0;
+ int32_t padding_ = 0;
+ SectionId section_id_ = SectionId::kNone;
+ std::string_view full_name_;
+ // Derived lazily
+ mutable std::string_view template_name_;
+ mutable std::string_view name_;
+ // Pointers into SizeInfo->raw_decompressed;
+ const char* section_name_ = nullptr;
+ const char* object_path_ = nullptr;
+ const char* source_path_ = nullptr;
+ const char* component_ = nullptr;
+ std::vector<Symbol*>* aliases_ = nullptr;
+
+ // The SizeInfo the symbol was constructed from. Primarily used for
+ // allocating commonly-reused strings in a context where they won't outlive
+ // the symbol.
+ BaseSizeInfo* size_info_ = nullptr;
+
+ private:
+ void DeriveNames() const;
+};
+
+class DeltaSymbol : public BaseSymbol {
+ public:
+ DeltaSymbol(const Symbol* before, const Symbol* after);
+ ~DeltaSymbol() override;
+ int32_t Address() const override;
+ int32_t Size() const override;
+ int32_t Flags() const override;
+ int32_t Padding() const override;
+
+ std::string_view FullName() const override;
+ // Derived from |full_name|. Generated lazily and cached.
+ std::string_view TemplateName() const override;
+ std::string_view Name() const override;
+ const std::vector<Symbol*>* Aliases() const override;
+ SectionId Section() const override;
+
+ const char* ObjectPath() const override;
+ const char* SourcePath() const override;
+ const char* SectionName() const override;
+ const char* Component() const override;
+
+ float Pss() const override;
+ float PssWithoutPadding() const override;
+ float PaddingPss() const override;
+
+ DiffStatus GetDiffStatus() const override;
+
+ private:
+ const Symbol* before_ = nullptr;
+ const Symbol* after_ = nullptr;
+};
+
+std::ostream& operator<<(std::ostream& os, const Symbol& sym);
+
+struct BaseSizeInfo {
+ BaseSizeInfo();
+ BaseSizeInfo(const BaseSizeInfo&);
+ virtual ~BaseSizeInfo();
+ virtual bool IsSparse() const = 0;
+
+ Json::Value metadata;
+ std::deque<std::string> owned_strings;
+ SectionId ShortSectionName(const char* section_name);
+};
+
+struct SizeInfo : BaseSizeInfo {
SizeInfo();
- ~SizeInfo();
+ ~SizeInfo() override;
SizeInfo(const SizeInfo& other) = delete;
SizeInfo& operator=(const SizeInfo& other) = delete;
-
- std::vector<caspian::Symbol> raw_symbols;
- Json::Value metadata;
+ bool IsSparse() const override;
// Entries in |raw_symbols| hold pointers to this data.
- // Appending to one will change their capacity and invalidate pointers.
- std::vector<std::string> object_paths;
- std::vector<std::string> source_paths;
- std::vector<std::string> components;
- std::vector<std::string> section_names;
+ 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;
// A container for each symbol group.
std::deque<std::vector<Symbol*>> alias_groups;
+
+ bool is_sparse = false;
+};
+
+struct DeltaSizeInfo : BaseSizeInfo {
+ DeltaSizeInfo(const SizeInfo* before, const SizeInfo* after);
+ ~DeltaSizeInfo() override;
+ DeltaSizeInfo(const DeltaSizeInfo&);
+ DeltaSizeInfo& operator=(const DeltaSizeInfo&);
+ bool IsSparse() const override;
+
+ using Results = std::array<int32_t, 4>;
+ Results CountsByDiffStatus() const {
+ Results ret{0};
+ for (const DeltaSymbol& sym : delta_symbols) {
+ ret[static_cast<uint8_t>(sym.GetDiffStatus())]++;
+ }
+ return ret;
+ }
+
+ const SizeInfo* before = nullptr;
+ const SizeInfo* after = nullptr;
+ std::vector<DeltaSymbol> delta_symbols;
+ // Symbols created during diffing, e.g. aggregated padding symbols.
+ std::deque<Symbol> owned_symbols;
+};
+
+struct Stat {
+ int32_t count = 0;
+ int32_t added = 0;
+ int32_t removed = 0;
+ int32_t changed = 0;
+ float size = 0.0f;
+
+ void operator+=(const Stat& other) {
+ count += other.count;
+ size += other.size;
+ added += other.added;
+ removed += other.removed;
+ changed += other.changed;
+ }
+};
+
+struct NodeStats {
+ NodeStats();
+ ~NodeStats();
+ explicit NodeStats(const BaseSymbol& symbol);
+ void WriteIntoJson(Json::Value* out) const;
+ NodeStats& operator+=(const NodeStats& other);
+ SectionId ComputeBiggestSection() const;
+ int32_t SumCount() const;
+ int32_t SumAdded() const;
+ int32_t SumRemoved() const;
+ DiffStatus GetGlobalDiffStatus() const;
+
+ std::map<SectionId, Stat> child_stats;
+};
+
+struct TreeNode {
+ TreeNode();
+ ~TreeNode();
+
+ using CompareFunc =
+ std::function<bool(const TreeNode* const& l, const TreeNode* const& r)>;
+ void WriteIntoJson(int depth,
+ CompareFunc compare_func,
+ bool is_sparse,
+ Json::Value* out);
+
+ GroupedPath id_path;
+ const char* src_path = nullptr;
+ const char* component = nullptr;
+ float size = 0.0f;
+ NodeStats node_stats;
+ int32_t flags = 0;
+ int32_t short_name_index = 0;
+
+ ContainerType container_type = ContainerType::kSymbol;
+
+ std::vector<TreeNode*> children;
+ TreeNode* parent = nullptr;
+ const BaseSymbol* symbol = nullptr;
};
} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc
new file mode 100644
index 00000000000..2d86e90a20a
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.cc
@@ -0,0 +1,338 @@
+// 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 "tools/binary_size/libsupersize/caspian/tree_builder.h"
+
+#include <algorithm>
+#include <iostream>
+#include <map>
+#include <utility>
+
+namespace caspian {
+
+namespace {
+/** Name used by a directory created to hold symbols with no name. */
+constexpr const char kComponentSep = '>';
+constexpr const char kPathSep = '/';
+constexpr const char* kNoName = "(No path)";
+} // namespace
+
+TreeBuilder::TreeBuilder(SizeInfo* size_info) {
+ symbols_.reserve(size_info->raw_symbols.size());
+ for (const Symbol& sym : size_info->raw_symbols) {
+ symbols_.push_back(&sym);
+ }
+ size_info_ = size_info;
+}
+
+TreeBuilder::TreeBuilder(DeltaSizeInfo* size_info) {
+ symbols_.reserve(size_info->delta_symbols.size());
+ for (const DeltaSymbol& sym : size_info->delta_symbols) {
+ symbols_.push_back(&sym);
+ }
+ size_info_ = size_info;
+}
+
+TreeBuilder::~TreeBuilder() = default;
+
+void TreeBuilder::Build(
+ std::unique_ptr<BaseLens> lens,
+ char separator,
+ bool method_count_mode,
+ std::vector<std::function<bool(const BaseSymbol&)>> filters) {
+ lens_ = std::move(lens);
+ method_count_mode_ = method_count_mode;
+ filters_ = filters;
+ sep_ = separator;
+
+ // Initialize tree root.
+ root_.container_type = ContainerType::kDirectory;
+ root_.id_path = GroupedPath{"", ""};
+ _parents[root_.id_path] = &root_;
+
+ std::unordered_map<GroupedPath, std::vector<const BaseSymbol*>>
+ symbols_by_grouped_path;
+ for (const BaseSymbol* sym : symbols_) {
+ if (ShouldIncludeSymbol(*sym)) {
+ GroupedPath key = GroupedPath{
+ lens_->ParentName(*sym),
+ sym->SourcePath() ? sym->SourcePath() : sym->ObjectPath()};
+ symbols_by_grouped_path[key].push_back(sym);
+ }
+ }
+ for (const auto& pair : symbols_by_grouped_path) {
+ AddFileEntry(pair.first, pair.second);
+ }
+}
+
+namespace {
+bool CompareAbsSize(const TreeNode* const& l, const TreeNode* const& r) {
+ // Sort nodes by size in descending order.
+ // Sort nodes with same size in alphabetically ascending order.
+ float l_size = abs(l->size);
+ float r_size = abs(r->size);
+ return (l_size != r_size) ? abs(l->size) > abs(r->size)
+ : l->id_path < r->id_path;
+}
+
+bool CompareCount(const TreeNode* const& l, const TreeNode* const& r) {
+ // Sort nodes by size in descending order.
+ // Sort nodes with same count in alphabetically ascending order.
+ // Particularly relevant for method count mode, where we get a lot of dex
+ // symbols with exactly the same size.
+ int32_t l_count = l->node_stats.SumCount();
+ int32_t r_count = r->node_stats.SumCount();
+ return (l_count != r_count) ? l_count > r_count : l->id_path < r->id_path;
+}
+} // namespace
+
+TreeNode* TreeBuilder::Find(std::string_view path) {
+ std::vector<std::string_view> id_paths;
+ while (!path.empty()) {
+ size_t idx = (sep_ == kComponentSep) ? path.find_first_of("/>")
+ : path.find_first_of(kPathSep);
+
+ id_paths.push_back(path.substr(0, idx));
+ if (idx == std::string_view::npos) {
+ break;
+ }
+ path = path.substr(idx + 1);
+ }
+
+ TreeNode* node = &root_;
+ for (std::string_view id_path : id_paths) {
+ TreeNode* old_node = node;
+ node = nullptr;
+ for (auto* child : old_node->children) {
+ if (child->id_path.ShortName(sep_) == id_path) {
+ node = child;
+ break;
+ }
+ }
+ if (node == nullptr) {
+ return nullptr;
+ }
+ }
+ return node;
+}
+
+Json::Value TreeBuilder::Open(const char* path) {
+ // Returns a string that can be parsed to a JS object.
+ static std::string result;
+
+ TreeNode::CompareFunc node_sort_func =
+ method_count_mode_ ? &CompareCount : &CompareAbsSize;
+
+ TreeNode* node = Find(path);
+ if (node == nullptr) {
+ std::cerr << "Tried to open nonexistent node with path: " << path
+ << std::endl;
+ exit(1);
+ }
+ Json::Value v;
+ node->WriteIntoJson(1, node_sort_func, size_info_->IsSparse(), &v);
+ return v;
+}
+
+void TreeBuilder::AddFileEntry(GroupedPath grouped_path,
+ const std::vector<const BaseSymbol*>& symbols) {
+ // Creates a single file node with a child for each symbol in that file.
+
+ // In legacy .size files, unattributed .dex symbols symbols aggregated and
+ // attributed to a path which is actually a directory. Therefore it's
+ // possible that a TreeNode has already been created for |grouped_path|. This
+ // is made slightly more complicated by the fact that _parents[""] is root,
+ // but we do want to create a a new (No path) file entry.
+
+ std::vector<TreeNode*> symbol_nodes;
+ // Create symbol nodes.
+ NodeStats node_stats;
+ for (const BaseSymbol* sym : symbols) {
+ if (sym->Pss() == 0.0f) {
+ // Even though unchanged symbols aren't displayed in the viewer, we need
+ // to aggregate counts of all symbol types in |node_stats.count| to know
+ // if all child symbols of a node have been added or removed, which is
+ // true if |count| == |added| or |count| == |removed|.
+ node_stats += NodeStats(*sym);
+ continue;
+ }
+ TreeNode* symbol_node = new TreeNode();
+ symbol_node->container_type = ContainerType::kSymbol;
+ symbol_node->id_path = GroupedPath{"", sym->FullName()};
+ symbol_node->size = sym->Pss();
+ symbol_node->node_stats = NodeStats(*sym);
+ symbol_node->symbol = sym;
+ symbol_nodes.push_back(symbol_node);
+ }
+
+ if (symbol_nodes.empty()) {
+ return;
+ }
+
+ 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->id_path = grouped_path;
+ if (file_node->id_path.path.empty()) {
+ file_node->id_path.path = kNoName;
+ }
+
+ file_node->short_name_index =
+ file_node->id_path.size() - file_node->id_path.ShortName(sep_).size();
+ _parents[file_node->id_path] = file_node;
+ file_node->node_stats = node_stats;
+ }
+
+ for (TreeNode* symbol_node : symbol_nodes) {
+ AttachToParent(symbol_node, file_node);
+ }
+
+ TreeNode* orphan_node = file_node;
+ while (orphan_node != &root_) {
+ orphan_node = GetOrMakeParentNode(orphan_node);
+ }
+
+ JoinDexMethodClasses(file_node);
+}
+
+TreeNode* TreeBuilder::GetOrMakeParentNode(TreeNode* child_node) {
+ GroupedPath parent_path = child_node->id_path.Parent(sep_);
+
+ TreeNode*& parent = _parents[parent_path];
+ if (parent == nullptr) {
+ parent = new TreeNode();
+ 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);
+ }
+ if (child_node->parent != parent) {
+ AttachToParent(child_node, parent);
+ }
+ return parent;
+}
+
+void TreeBuilder::AttachToParent(TreeNode* child, TreeNode* parent) {
+ if (child->parent != nullptr) {
+ std::cerr << "Child " << child->id_path << " already attached to parent "
+ << child->parent->id_path << std::endl;
+ std::cerr << "Cannot be attached to " << parent->id_path << std::endl;
+ std::cerr << child->parent << " " << parent << std::endl;
+ exit(1);
+ }
+
+ parent->children.push_back(child);
+ child->parent = parent;
+
+ // Update size information along tree.
+ TreeNode* node = child;
+ while (node->parent) {
+ node->parent->size += child->size;
+ node->parent->node_stats += child->node_stats;
+ node = node->parent;
+ }
+}
+
+ContainerType TreeBuilder::ContainerTypeFromChild(
+ 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;
+}
+
+bool TreeBuilder::ShouldIncludeSymbol(const BaseSymbol& symbol) const {
+ for (const auto& filter : filters_) {
+ if (!filter(symbol)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+void TreeBuilder::JoinDexMethodClasses(TreeNode* node) {
+ const bool is_file_node = node->container_type == ContainerType::kFile;
+ const bool has_dex =
+ node->node_stats.child_stats.count(SectionId::kDex) ||
+ node->node_stats.child_stats.count(SectionId::kDexMethod);
+ if (!is_file_node || !has_dex || node->children.empty()) {
+ return;
+ }
+
+ std::map<std::string_view, TreeNode*> java_class_containers;
+ std::vector<TreeNode*> other_symbols;
+
+ // Bucket dex symbols by their class.
+ for (TreeNode* child : node->children) {
+ const size_t split_index = child->id_path.path.find_first_of('#');
+ // No return type / field type means it's a class node.
+ const bool is_class_node =
+ child->id_path.path.find_first_of(' ', child->short_name_index) ==
+ std::string_view::npos;
+ const bool has_class_prefix =
+ is_class_node || split_index != std::string_view::npos;
+
+ const SectionId section =
+ child->symbol ? child->symbol->Section() : SectionId::kNone;
+ if (has_class_prefix &&
+ (section == SectionId::kDex || section == SectionId::kDexMethod)) {
+ const std::string_view class_id_path =
+ child->id_path.path.substr(0, split_index);
+
+ // Strip package from the node name for classes in .java files since the
+ // directory tree already shows it.
+ int short_name_index = child->short_name_index;
+ size_t java_idx = node->id_path.path.find(".java");
+ if (java_idx != std::string_view::npos) {
+ size_t dot_idx = class_id_path.find_last_of('.');
+ short_name_index += dot_idx + 1;
+ }
+
+ TreeNode*& class_node = java_class_containers[class_id_path];
+ if (class_node == nullptr) {
+ // We have to construct the class node id_path, because parent nodes
+ // need to have an id_path that describes how to reach them from root.
+ // Symbol (leaf) nodes typically store their full name in the id_path,
+ // which for class nodes would be as "org.x.y.ClassName" even if that
+ // node's parent is the file "a/b/c". So if we want an id_path of the
+ // form "a/b/c/ClassName$0", we have to create it.
+ class_node = new TreeNode();
+ owned_strings_.push_back(std::string(node->id_path.path) + "/" +
+ std::string(class_id_path));
+ class_node->id_path =
+ GroupedPath{node->id_path.group, owned_strings_.back()};
+ class_node->short_name_index =
+ 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;
+ _parents[class_node->id_path] = class_node;
+ }
+
+ // Adjust the dex method's short name so it starts after the " "
+ if (split_index != std::string_view::npos) {
+ child->short_name_index = split_index + 1;
+ }
+ child->parent = nullptr;
+ AttachToParent(child, class_node);
+ } else {
+ other_symbols.push_back(child);
+ }
+ }
+
+ node->children = other_symbols;
+ for (auto& iter : java_class_containers) {
+ TreeNode* container_node = iter.second;
+ // Delay setting the parent until here so that `_attachToParent`
+ // doesn't add method stats twice
+ container_node->parent = node;
+ node->children.push_back(container_node);
+ }
+}
+
+} // namespace caspian
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h
new file mode 100644
index 00000000000..df246064ce0
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder.h
@@ -0,0 +1,68 @@
+// 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.
+
+#ifndef TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_TREE_BUILDER_H_
+#define TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_TREE_BUILDER_H_
+
+#include <deque>
+#include <functional>
+#include <memory>
+#include <string>
+#include <string_view>
+#include <unordered_map>
+#include <vector>
+
+#include "tools/binary_size/libsupersize/caspian/lens.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+class TreeBuilder {
+ public:
+ explicit TreeBuilder(SizeInfo* size_info);
+ explicit TreeBuilder(DeltaSizeInfo* size_info);
+ ~TreeBuilder();
+ void Build(std::unique_ptr<BaseLens> lens,
+ char separator,
+ bool method_count_mode,
+ std::vector<std::function<bool(const BaseSymbol&)>> filters);
+ TreeNode* Find(std::string_view path);
+ Json::Value Open(const char* path);
+
+ private:
+ void AddFileEntry(GroupedPath source_path,
+ const std::vector<const BaseSymbol*>& symbols);
+
+ TreeNode* GetOrMakeParentNode(TreeNode* child_node);
+
+ void AttachToParent(TreeNode* child, TreeNode* parent);
+
+ ContainerType ContainerTypeFromChild(GroupedPath child_path) const;
+
+ bool ShouldIncludeSymbol(const BaseSymbol& symbol) const;
+
+ // Merges dex method symbols into containers based on the class of the dex
+ // method.
+ void JoinDexMethodClasses(TreeNode* node);
+
+ BaseSizeInfo* size_info_;
+ TreeNode root_;
+ std::unordered_map<GroupedPath, TreeNode*> _parents;
+
+ // Contained TreeNode hold lightweight string_views to fields in SizeInfo.
+ // If grouping by component, this isn't possible: TreeNode id_paths are not
+ // substrings of SizeInfo-owned strings. In that case, the strings are stored
+ // in |owned_strings_|.
+ // Deque is used for stability, to support string_view.
+ std::deque<std::string> owned_strings_;
+ std::unique_ptr<BaseLens> lens_;
+ bool method_count_mode_;
+ // The current path separator: '>' if grouping by component, '/' otherwise.
+ // Note that we split paths on '/' no matter the value of separator, since
+ // when grouping by component, paths look like Component>path/to/file.
+ char sep_;
+ std::vector<std::function<bool(const BaseSymbol&)>> filters_;
+ std::vector<const BaseSymbol*> symbols_;
+}; // TreeBuilder
+} // namespace caspian
+#endif // TOOLS_BINARY_SIZE_LIBSUPERSIZE_CASPIAN_TREE_BUILDER_H_
diff --git a/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc b/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc
new file mode 100644
index 00000000000..e2836729c89
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/tree_builder_test.cc
@@ -0,0 +1,154 @@
+// 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 "tools/binary_size/libsupersize/caspian/tree_builder.h"
+
+#include <stdint.h>
+
+#include <deque>
+#include <memory>
+#include <string>
+#include <string_view>
+#include <utility>
+#include <vector>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "tools/binary_size/libsupersize/caspian/model.h"
+
+namespace caspian {
+
+namespace {
+
+using FilterList = std::vector<std::function<bool(const BaseSymbol&)>>;
+
+void MakeSymbol(SizeInfo* info,
+ SectionId section_id,
+ int32_t size,
+ const char* path,
+ const char* component,
+ std::string_view name = "") {
+ static std::deque<std::string> symbol_names;
+ if (name.empty()) {
+ symbol_names.push_back(std::string());
+ std::string& s = symbol_names.back();
+ s += static_cast<char>(section_id);
+ s += "_";
+ s += std::to_string(size);
+ s += "A";
+ name = s;
+ }
+ Symbol sym;
+ sym.full_name_ = name;
+ sym.section_id_ = section_id;
+ sym.size_ = size;
+ sym.source_path_ = path;
+ sym.component_ = component;
+ sym.size_info_ = info;
+ info->raw_symbols.push_back(sym);
+}
+
+std::string ShortName(const Json::Value& node) {
+ const std::string id_path = node["idPath"].asString();
+ const int short_name_index = node["shortNameIndex"].asInt();
+ return id_path.substr(short_name_index);
+}
+} // namespace
+
+std::unique_ptr<SizeInfo> CreateSizeInfo() {
+ std::unique_ptr<SizeInfo> info = std::make_unique<SizeInfo>();
+ MakeSymbol(info.get(), SectionId::kText, 20, "a/b/c", "A");
+ MakeSymbol(info.get(), SectionId::kText, 30, "a/b", "B");
+ return info;
+}
+
+void CheckAllTreeNodesFindable(TreeBuilder& tree, const Json::Value& node) {
+ const Json::Value& children = node["children"];
+ for (unsigned int i = 0; i < children.size(); i++) {
+ // Only recurse on folders, which have type Ct or Dt rather than t.
+ if (children[i]["type"].size() == 2) {
+ std::string id_path = children[i]["idPath"].asString();
+ CheckAllTreeNodesFindable(tree, tree.Open(id_path.c_str()));
+ }
+ }
+}
+
+TEST(TreeBuilderTest, TestIdPathLens) {
+ std::unique_ptr<SizeInfo> size_info = CreateSizeInfo();
+
+ TreeBuilder builder(size_info.get());
+ FilterList filters;
+ builder.Build(std::make_unique<IdPathLens>(), '/', false, filters);
+ CheckAllTreeNodesFindable(builder, builder.Open(""));
+ EXPECT_EQ("Dt", builder.Open("")["type"].asString());
+}
+
+TEST(TreeBuilderTest, TestComponentLens) {
+ std::unique_ptr<SizeInfo> size_info = CreateSizeInfo();
+
+ TreeBuilder builder(size_info.get());
+ FilterList filters;
+ builder.Build(std::make_unique<ComponentLens>(), '>', false, filters);
+ CheckAllTreeNodesFindable(builder, builder.Open(""));
+ EXPECT_EQ("Ct", builder.Open("A")["type"].asString());
+ EXPECT_EQ(20, builder.Open("A")["size"].asInt());
+ EXPECT_EQ("Ct", builder.Open("B")["type"].asString());
+ EXPECT_EQ(30, builder.Open("B")["size"].asInt());
+}
+
+TEST(TreeBuilderTest, TestTemplateLens) {
+ std::unique_ptr<SizeInfo> size_info = std::make_unique<SizeInfo>();
+ MakeSymbol(size_info.get(), SectionId::kText, 20, "a/b/c", "A",
+ "base::internal::Invoker<base::internal::BindState<void "
+ "(autofill_assistant::Controller::*)(), "
+ "base::WeakPtr<autofill_assistant::Controller> >, void "
+ "()>::RunOnce(base::internal::BindStateBase*)");
+ MakeSymbol(size_info.get(), SectionId::kText, 30, "a/b", "B",
+ "base::internal::Invoker<base::internal::BindState<void "
+ "(autofill_assistant::Controller::*)(int), "
+ "base::WeakPtr<autofill_assistant::Controller>, unsigned int>, "
+ "void ()>::RunOnce(base::internal::BindStateBase*)");
+
+ TreeBuilder builder(size_info.get());
+ FilterList filters;
+ builder.Build(std::make_unique<TemplateLens>(), '/', false, filters);
+ CheckAllTreeNodesFindable(builder, builder.Open(""));
+ EXPECT_EQ(
+ "Ct",
+ builder.Open("base::internal::Invoker<>::RunOnce")["type"].asString());
+ EXPECT_EQ(50,
+ builder.Open("base::internal::Invoker<>::RunOnce")["size"].asInt());
+}
+
+TEST(TreeBuilderTest, TestNoNameUnderGroup) {
+ std::unique_ptr<SizeInfo> size_info = std::make_unique<SizeInfo>();
+ MakeSymbol(size_info.get(), SectionId::kText, 20, "", "A>B>C", "SymbolName");
+
+ TreeBuilder builder(size_info.get());
+ FilterList filters;
+ builder.Build(std::make_unique<ComponentLens>(), '>', false, filters);
+ CheckAllTreeNodesFindable(builder, builder.Open(""));
+ EXPECT_EQ("A>B>C/(No path)",
+ builder.Open("A>B>C")["children"][0]["idPath"].asString());
+}
+
+TEST(TreeBuilderTest, TestJoinDexMethodClasses) {
+ std::unique_ptr<SizeInfo> size_info = std::make_unique<SizeInfo>();
+ MakeSymbol(size_info.get(), SectionId::kDex, 30, "a/b/c", "",
+ "zL2#foo(int,android.os.Parcel,android.os.Parcel,int): boolean");
+
+ TreeBuilder builder(size_info.get());
+ FilterList filters;
+ builder.Build(std::make_unique<IdPathLens>(), '>', false, filters);
+ CheckAllTreeNodesFindable(builder, builder.Open(""));
+
+ Json::Value class_symbol = builder.Open("a/b/c/zL2");
+ EXPECT_EQ("zL2", ShortName(class_symbol));
+ 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(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
new file mode 100644
index 00000000000..4f1930f66eb
--- /dev/null
+++ b/chromium/tools/binary_size/libsupersize/caspian/wasmbuild.patch
@@ -0,0 +1,104 @@
+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/tools/binary_size/BUILD.gn b/tools/binary_size/BUILD.gn
+index a9629c27bc42..aa07d6376ac7 100644
+--- a/tools/binary_size/BUILD.gn
++++ b/tools/binary_size/BUILD.gn
+@@ -30,3 +30,9 @@ if (is_linux) {
+ ]
+ }
+ }
++
++group("caspian_web") {
++ deps = [
++ "//tools/binary_size/libsupersize/caspian:caspian_web(//build/toolchain/wasm:wasm)",
++ ]
++}
diff --git a/chromium/tools/binary_size/libsupersize/console.py b/chromium/tools/binary_size/libsupersize/console.py
index b13164ea445..27cd813e24e 100644
--- a/chromium/tools/binary_size/libsupersize/console.py
+++ b/chromium/tools/binary_size/libsupersize/console.py
@@ -76,7 +76,8 @@ class _Session(object):
'Print': self._PrintFunc,
'Csv': self._CsvFunc,
'Diff': self._DiffFunc,
- 'SaveNdjson': self._SaveNdjsonFunc,
+ 'SaveSizeInfo': self._SaveSizeInfo,
+ 'SaveDeltaSizeInfo': self._SaveDeltaSizeInfo,
'ReadStringLiterals': self._ReadStringLiterals,
'Disassemble': self._DisassembleFunc,
'ExpandRegex': match_util.ExpandRegexIdentifierPlaceholder,
@@ -141,21 +142,44 @@ class _Session(object):
after = after if after is not None else self._size_infos[1]
return diff.Diff(before, after, sort=sort)
- def _SaveNdjsonFunc(self, filtered_symbols, size_info=None, to_file=None):
- """Saves a .ndjson file containing only filtered_symbols into to_file.
+ def _SaveSizeInfo(self, filtered_symbols=None, size_info=None, to_file=None):
+ """Saves a .size file containing only filtered_symbols into to_file.
Args:
- filtered_symbols: Which symbols to include
+ filtered_symbols: Which symbols to include. Defaults to all.
size_info: The size_info to filter. Defaults to size_infos[0].
- to_file: Defaults to default.ndjson
+ to_file: Defaults to default.size
"""
size_info = size_info or self._size_infos[0]
- to_file = to_file or 'default.ndjson'
+ to_file = to_file or 'default.size'
+ assert to_file.endswith('.size'), 'to_file should end with .size'
- old_raw_symbols = size_info.raw_symbols
- size_info.raw_symbols = filtered_symbols
- html_report.BuildReportFromSizeInfo(to_file, size_info)
- size_info.raw_symbols = old_raw_symbols
+ file_format.SaveSizeInfo(
+ size_info,
+ to_file,
+ include_padding=filtered_symbols is not None,
+ sparse_symbols=filtered_symbols)
+
+ shortname = os.path.basename(os.path.normpath(to_file))
+ msg = (
+ 'Saved locally to {local}. To share, run:\n'
+ '> gsutil.py cp {local} gs://chrome-supersize/oneoffs && gsutil.py -m '
+ 'acl ch -u AllUsers:R gs://chrome-supersize/oneoffs/{shortname}\n'
+ ' Then view it at https://storage.googleapis.com/chrome-supersize'
+ '/viewer.html?load_url=oneoffs%2F{shortname}')
+ print(msg.format(local=to_file, shortname=shortname))
+
+ def _SaveDeltaSizeInfo(self, size_info, to_file=None):
+ """Saves a .sizediff file containing only filtered_symbols into to_file.
+
+ Args:
+ delta_size_info: The delta_size_info to filter.
+ to_file: Defaults to default.sizediff
+ """
+ to_file = to_file or 'default.sizediff'
+ assert to_file.endswith('.sizediff'), 'to_file should end with .sizediff'
+
+ file_format.SaveDeltaSizeInfo(size_info, to_file)
shortname = os.path.basename(os.path.normpath(to_file))
msg = (
@@ -356,9 +380,9 @@ class _Session(object):
'# Diff two .size files and save result to a file:',
'Print(Diff(size_info1, size_info2), to_file="output.txt")',
'',
- '# Save a .ndjson containing only the filtered symbols',
+ '# Save a .size containing only the filtered symbols',
'filtered_symbols = size_info.raw_symbols.Filter(lambda l: l.IsPak())',
- 'SaveNdjson(filtered_symbols, size_info, to_file="oneoff_paks.ndjson")',
+ 'SaveSizeInfo(filtered_symbols, size_info, to_file="oneoff_paks.size")',
'',
'# View per-component breakdowns, then drill into the last entry.',
'c = canned_queries.CategorizeByChromeComponent()',
diff --git a/chromium/tools/binary_size/libsupersize/diff.py b/chromium/tools/binary_size/libsupersize/diff.py
index 948a496013d..728e087b52c 100644
--- a/chromium/tools/binary_size/libsupersize/diff.py
+++ b/chromium/tools/binary_size/libsupersize/diff.py
@@ -110,10 +110,10 @@ def _DiffSymbolGroups(before, after):
# Create a DeltaSymbol to represent the zero'd out padding of matched symbols.
for section_name, padding in padding_by_section_name.iteritems():
if padding != 0:
- after_sym = models.Symbol(
- section_name,
- padding,
- name="Overhead: aggregate padding of diff'ed symbols")
+ after_sym = models.Symbol(section_name, padding)
+ # This is after _NormalizeNames() is called, so set |full_name|,
+ # |template_name|, and |name|.
+ after_sym.SetName("Overhead: aggregate padding of diff'ed symbols")
after_sym.padding = padding
all_deltas.append(models.DeltaSymbol(None, after_sym))
diff --git a/chromium/tools/binary_size/libsupersize/file_format.py b/chromium/tools/binary_size/libsupersize/file_format.py
index db534e014c3..35a2812af1b 100644
--- a/chromium/tools/binary_size/libsupersize/file_format.py
+++ b/chromium/tools/binary_size/libsupersize/file_format.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Deals with loading & saving .size files.
+"""Deals with loading & saving .size and .sizediff files.
The .size file is written in the following format. There are no section
delimeters, instead the end of a section is usually determined by a row count
@@ -51,14 +51,20 @@ Sizes
~~~~~
The number of bytes this symbol takes up.
-Path indicies
+Padding
+~~~~~~~
+The number of padding bytes this symbol has.
+This section is only present if 'has_padding' is True in the metadata.
+
+Path indices
~~~~~~~~~~~~~
-Indicies that reference paths in the prior Path list section. Delta-encoded.
+Indices that reference paths in the prior Path list section. Delta-encoded.
-Component indicies
+Component indices
~~~~~~~~~~~~~~~~~~
-Indicies that reference components in the prior Component list section.
+Indices that reference components in the prior Component list section.
Delta-encoded.
+This section is only present if 'has_components' is True in the metadata.
Symbols
-------
@@ -67,6 +73,32 @@ a single symbol. Values are tab seperated and follow this format:
symbol.full_name, symbol.num_aliases, symbol.flags
|num_aliases| will be omitted if the aliases of the symbol are the same as the
previous line. |flags| will be omitted if there are no flags.
+
+
+
+The .sizediff file stores a sparse representation of a difference between .size
+files. Each .sizediff file stores two sparse .size files, before and after,
+containing only symbols that differed between "before" and "after". They can
+be rendered via the Tiger viewer. .sizediff files use the following format:
+
+Header
+------
+3 lines long.
+Line 0 of the file is a header comment.
+Line 1 is the number of characters in the metadata string.
+Line 2 is the metadata string, a stringified JSON object. This currently
+contains two fields, 'before_length' (the length in bytes of the 'before'
+section) and 'version', which is always 1.
+
+Before
+------
+The next |metadata.before_length| bytes are a valid gzipped sparse .size file
+containing the "before" snapshot.
+
+After
+-----
+All remaining bytes are a valid gzipped sparse .size file containing the
+"after" snapshot.
"""
import cStringIO
@@ -78,12 +110,54 @@ import logging
import os
import shutil
+import concurrent
import models
# File format version for .size files.
_SERIALIZATION_VERSION = 'Size File Format v1'
+# Header for .sizediff files
+_SIZEDIFF_HEADER = '# Created by //tools/binary_size\nDIFF\n'
+
+
+def CalculatePadding(raw_symbols):
+ """Populates the |padding| field based on symbol addresses. """
+ logging.info('Calculating padding')
+
+ # Padding not really required, but it is useful to check for large padding and
+ # log a warning.
+ seen_sections = set()
+ for i, symbol in enumerate(raw_symbols[1:]):
+ prev_symbol = raw_symbols[i]
+ if symbol.IsOverhead():
+ # Overhead symbols are not actionable so should be padding-only.
+ symbol.padding = symbol.size
+ if prev_symbol.section_name != symbol.section_name:
+ assert symbol.section_name not in seen_sections, (
+ 'Input symbols must be sorted by section, then address.')
+ seen_sections.add(symbol.section_name)
+ continue
+ if (symbol.address <= 0 or prev_symbol.address <= 0
+ or not symbol.IsNative() or not prev_symbol.IsNative()):
+ continue
+
+ if symbol.address == prev_symbol.address:
+ if symbol.aliases and symbol.aliases is prev_symbol.aliases:
+ symbol.padding = prev_symbol.padding
+ symbol.size = prev_symbol.size
+ continue
+ # Padding-only symbols happen for ** symbol gaps.
+ assert prev_symbol.size_without_padding == 0, (
+ 'Found duplicate symbols:\n%r\n%r' % (prev_symbol, symbol))
+
+ padding = symbol.address - prev_symbol.end_address
+ symbol.padding = padding
+ symbol.size += padding
+ assert symbol.size >= 0, (
+ 'Symbol has negative size (likely not sorted propertly): '
+ '%r\nprev symbol: %r' % (symbol, prev_symbol))
+
def _LogSize(file_obj, desc):
if not hasattr(file_obj, 'fileno'):
@@ -93,13 +167,20 @@ def _LogSize(file_obj, desc):
logging.debug('File size with %s: %d' % (desc, size))
-def _SaveSizeInfoToFile(size_info, file_obj):
+def _SaveSizeInfoToFile(size_info,
+ file_obj,
+ include_padding=False,
+ sparse_symbols=None):
"""Saves size info to a .size file.
Args:
size_info: Data to write to the file
file_object: File opened for writing
+ sparse_symbols: If present, only save these symbols to the file
"""
+ raw_symbols = sparse_symbols
+ if raw_symbols is None:
+ raw_symbols = size_info.raw_symbols
# Created by supersize header
file_obj.write('# Created by //tools/binary_size\n')
file_obj.write('%s\n' % _SERIALIZATION_VERSION)
@@ -108,6 +189,7 @@ def _SaveSizeInfoToFile(size_info, file_obj):
'metadata': size_info.metadata,
'section_sizes': size_info.section_sizes,
'has_components': True,
+ 'has_padding': include_padding,
}
metadata_str = json.dumps(headers, file_obj, indent=2, sort_keys=True)
file_obj.write('%d\n' % len(metadata_str))
@@ -116,26 +198,26 @@ def _SaveSizeInfoToFile(size_info, file_obj):
_LogSize(file_obj, 'header') # For libchrome: 570 bytes.
# Store a single copy of all paths and have them referenced by index.
- unique_path_tuples = sorted(set(
- (s.object_path, s.source_path) for s in size_info.raw_symbols))
+ unique_path_tuples = sorted(
+ set((s.object_path, s.source_path) for s in raw_symbols))
path_tuples = {tup: i for i, tup in enumerate(unique_path_tuples)}
file_obj.write('%d\n' % len(unique_path_tuples))
file_obj.writelines('%s\t%s\n' % pair for pair in unique_path_tuples)
_LogSize(file_obj, 'paths') # For libchrome, adds 200kb.
# Store a single copy of all components and have them referenced by index.
- unique_components = sorted(set(s.component for s in size_info.raw_symbols))
+ unique_components = sorted(set(s.component for s in raw_symbols))
components = {comp: i for i, comp in enumerate(unique_components)}
file_obj.write('%d\n' % len(unique_components))
file_obj.writelines('%s\n' % comp for comp in unique_components)
_LogSize(file_obj, 'components')
# Symbol counts by section.
- by_section = size_info.raw_symbols.GroupedBySectionName()
+ by_section = raw_symbols.GroupedBySectionName()
file_obj.write('%s\n' % '\t'.join(g.name for g in by_section))
file_obj.write('%s\n' % '\t'.join(str(len(g)) for g in by_section))
- # Addresses, sizes, path indicies, component indicies
+ # Addresses, sizes, path indices, component indices
def write_numeric(func, delta=False):
"""Write the result of func(symbol) for each symbol in each symbol group.
@@ -159,10 +241,13 @@ def _SaveSizeInfoToFile(size_info, file_obj):
write_numeric(lambda s: s.address, delta=True)
_LogSize(file_obj, 'addresses') # For libchrome, adds 300kb.
- # Do not write padding except for overhead symbols, it will be recalculated
- # from addresses on load.
write_numeric(lambda s: s.size if s.IsOverhead() else s.size_without_padding)
_LogSize(file_obj, 'sizes') # For libchrome, adds 300kb
+ # Padding for non-padding-only symbols is recalculated from addresses on
+ # load, so we only need to write it if we're writing a subset of symbols.
+ if include_padding:
+ write_numeric(lambda s: s.padding)
+ _LogSize(file_obj, 'paddings') # For libchrome, adds 300kb
write_numeric(lambda s: path_tuples[(s.object_path, s.source_path)],
delta=True)
_LogSize(file_obj, 'path indices') # For libchrome: adds 125kb.
@@ -229,6 +314,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
section_sizes = headers['section_sizes']
metadata = headers.get('metadata')
has_components = headers.get('has_components', False)
+ has_padding = headers.get('has_padding', False)
lines = iter(file_obj)
_ReadLine(lines)
@@ -247,7 +333,7 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
section_names = _ReadValuesFromLine(lines, split='\t')
section_counts = [int(c) for c in _ReadValuesFromLine(lines, split='\t')]
- # Addresses, sizes, path indicies, component indicies
+ # Addresses, sizes, paddings, path indices, component indices
def read_numeric(delta=False):
"""Read numeric values, where each line corresponds to a symbol group.
@@ -268,6 +354,10 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
addresses = read_numeric(delta=True)
sizes = read_numeric(delta=False)
+ if has_padding:
+ paddings = read_numeric(delta=False)
+ else:
+ paddings = [None] * len(section_names)
path_indices = read_numeric(delta=True)
if has_components:
component_indices = read_numeric(delta=True)
@@ -277,9 +367,9 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
raw_symbols = [None] * sum(section_counts)
symbol_idx = 0
for (cur_section_name, cur_section_count, cur_addresses, cur_sizes,
- cur_path_indicies, cur_component_indices) in itertools.izip(
- section_names, section_counts, addresses, sizes, path_indices,
- component_indices):
+ cur_paddings, cur_path_indices, cur_component_indices) in itertools.izip(
+ section_names, section_counts, addresses, sizes, paddings,
+ path_indices, component_indices):
alias_counter = 0
for i in xrange(cur_section_count):
parts = _ReadValuesFromLine(lines, split='\t')
@@ -312,13 +402,18 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
new_sym.full_name = full_name
new_sym.address = cur_addresses[i]
new_sym.size = cur_sizes[i]
- paths = path_tuples[cur_path_indicies[i]]
+ paths = path_tuples[cur_path_indices[i]]
new_sym.object_path, new_sym.source_path = paths
component = components[cur_component_indices[i]] if has_components else ''
new_sym.component = component
new_sym.flags = flags
# Derived
- new_sym.padding = 0
+ if cur_paddings:
+ new_sym.padding = cur_paddings[i]
+ new_sym.size += new_sym.padding
+ else:
+ # This will be computed during CreateSizeInfo()
+ new_sym.padding = 0
new_sym.template_name = ''
new_sym.name = ''
@@ -336,6 +431,9 @@ def _LoadSizeInfoFromFile(file_obj, size_path):
raw_symbols[symbol_idx] = new_sym
symbol_idx += 1
+ if not has_padding:
+ CalculatePadding(raw_symbols)
+
return models.SizeInfo(section_sizes, raw_symbols, metadata=metadata,
size_path=size_path)
@@ -352,15 +450,27 @@ def _OpenGzipForWrite(path, file_obj=None):
yield fz
-def SaveSizeInfo(size_info, path, file_obj=None):
- """Saves |size_info| to |path}."""
+def SaveSizeInfo(size_info,
+ path,
+ file_obj=None,
+ include_padding=False,
+ sparse_symbols=None):
+ """Saves |size_info| to |path|."""
if os.environ.get('SUPERSIZE_MEASURE_GZIP') == '1':
with _OpenGzipForWrite(path, file_obj=file_obj) as f:
- _SaveSizeInfoToFile(size_info, f)
+ _SaveSizeInfoToFile(
+ size_info,
+ f,
+ include_padding=include_padding,
+ sparse_symbols=sparse_symbols)
else:
# It is seconds faster to do gzip in a separate step. 6s -> 3.5s.
stringio = cStringIO.StringIO()
- _SaveSizeInfoToFile(size_info, stringio)
+ _SaveSizeInfoToFile(
+ size_info,
+ stringio,
+ include_padding=include_padding,
+ sparse_symbols=sparse_symbols)
logging.debug('Serialization complete. Gzipping...')
stringio.seek(0)
@@ -372,3 +482,50 @@ def LoadSizeInfo(filename, file_obj=None):
"""Returns a SizeInfo loaded from |filename|."""
with gzip.GzipFile(filename=filename, fileobj=file_obj) as f:
return _LoadSizeInfoFromFile(f, filename)
+
+
+def SaveDeltaSizeInfo(delta_size_info, path, file_obj=None):
+ """Saves |delta_size_info| to |path|."""
+
+ changed_symbols = delta_size_info.raw_symbols \
+ .WhereDiffStatusIs(models.DIFF_STATUS_UNCHANGED).Inverted()
+ before_symbols = models.SymbolGroup(
+ [sym.before_symbol for sym in changed_symbols if sym.before_symbol])
+ after_symbols = models.SymbolGroup(
+ [sym.after_symbol for sym in changed_symbols if sym.after_symbol])
+
+ before_size_file = cStringIO.StringIO()
+ after_size_file = cStringIO.StringIO()
+
+ after_promise = concurrent.CallOnThread(
+ SaveSizeInfo,
+ delta_size_info.after,
+ '',
+ file_obj=after_size_file,
+ include_padding=True,
+ sparse_symbols=after_symbols)
+ SaveSizeInfo(
+ delta_size_info.before,
+ '',
+ file_obj=before_size_file,
+ include_padding=True,
+ sparse_symbols=before_symbols)
+
+ with file_obj or open(path, 'wb') as output_file:
+ output_file.write(_SIZEDIFF_HEADER)
+ # JSON metadata
+ headers = {
+ 'version': 1,
+ 'before_length': before_size_file.tell(),
+ }
+ metadata_str = json.dumps(headers, output_file, indent=2, sort_keys=True)
+ output_file.write('%d\n' % len(metadata_str))
+ output_file.write(metadata_str)
+ output_file.write('\n')
+
+ before_size_file.seek(0)
+ shutil.copyfileobj(before_size_file, output_file)
+
+ after_promise.get()
+ after_size_file.seek(0)
+ shutil.copyfileobj(after_size_file, output_file)
diff --git a/chromium/tools/binary_size/libsupersize/function_signature.py b/chromium/tools/binary_size/libsupersize/function_signature.py
index 825a67aafcd..0cfe01e5fc7 100644
--- a/chromium/tools/binary_size/libsupersize/function_signature.py
+++ b/chromium/tools/binary_size/libsupersize/function_signature.py
@@ -2,52 +2,54 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Logic for parsing a function signatures."""
+"""Logic for parsing a function signatures.
+
+Much of this logic is duplicated at
+tools/binary_size/libsupersize/caspian/function_signature.cc."""
def _FindParameterListParen(name):
- """Finds index of the "(" that denotes the start of a paremeter list."""
+ """Finds index of the "(" that denotes the start of a parameter list."""
# This loops from left-to-right, but the only reason (I think) that this
# is necessary (rather than reusing _FindLastCharOutsideOfBrackets), is
# to capture the outer-most function in the case where classes are nested.
start_idx = 0
+ template_balance_count = 0
+ paren_balance_count = 0
while True:
- template_balance_count = 0
- paren_balance_count = 0
- while True:
- idx = name.find('(', start_idx)
- if idx == -1:
- return -1
- template_balance_count += (
- name.count('<', start_idx, idx) - name.count('>', start_idx, idx))
- # Special: operators with angle brackets.
- operator_idx = name.find('operator<', start_idx, idx)
+ idx = name.find('(', start_idx)
+ if idx == -1:
+ return -1
+ template_balance_count += (
+ name.count('<', start_idx, idx) - name.count('>', start_idx, idx))
+ # Special: operators with angle brackets.
+ operator_idx = name.find('operator<', start_idx, idx)
+ if operator_idx != -1:
+ if name[operator_idx + 9] == '<':
+ template_balance_count -= 2
+ else:
+ template_balance_count -= 1
+ else:
+ operator_idx = name.find('operator>', start_idx, idx)
if operator_idx != -1:
- if name[operator_idx + 9] == '<':
- template_balance_count -= 2
+ if name[operator_idx + 9] == '>':
+ template_balance_count += 2
else:
- template_balance_count -= 1
- else:
- operator_idx = name.find('operator>', start_idx, idx)
- if operator_idx != -1:
- if name[operator_idx + 9] == '>':
- template_balance_count += 2
- else:
- template_balance_count += 1
-
- paren_balance_count += (
- name.count('(', start_idx, idx) - name.count(')', start_idx, idx))
- if template_balance_count == 0 and paren_balance_count == 0:
- # Special case: skip "(anonymous namespace)".
- if -1 != name.find('(anonymous namespace)', idx, idx + 21):
- start_idx = idx + 21
- continue
- # Special case: skip "decltype (...)"
- # Special case: skip "{lambda(PaintOp*)#63}"
- if name[idx - 1] != ' ' and name[idx - 7:idx] != '{lambda':
- return idx
- start_idx = idx + 1
- paren_balance_count += 1
+ template_balance_count += 1
+
+ paren_balance_count += (
+ name.count('(', start_idx, idx) - name.count(')', start_idx, idx))
+ if template_balance_count == 0 and paren_balance_count == 0:
+ # Special case: skip "(anonymous namespace)".
+ if -1 != name.find('(anonymous namespace)', idx, idx + 21):
+ start_idx = idx + 21
+ continue
+ # Special case: skip "decltype (...)"
+ # Special case: skip "{lambda(PaintOp*)#63}"
+ if name[idx - 1] != ' ' and name[idx - 7:idx] != '{lambda':
+ return idx
+ start_idx = idx + 1
+ paren_balance_count += 1
def _FindLastCharOutsideOfBrackets(name, target_char, prev_idx=None):
@@ -79,12 +81,18 @@ def _FindReturnValueSpace(name, paren_idx):
space_idx = _FindLastCharOutsideOfBrackets(name, ' ', space_idx)
# Special cases: "operator new", "operator< <templ>", "operator<< <tmpl>".
# No space is added for operator>><tmpl>.
- if -1 == space_idx or (
- -1 == name.find('operator', space_idx - 8, space_idx) and
- -1 == name.find('operator<', space_idx - 9, space_idx) and
- -1 == name.find('operator<<', space_idx - 10, space_idx)):
+ if -1 == space_idx:
break
- space_idx -= 8
+
+ if -1 != name.find('operator', space_idx - 8, space_idx):
+ space_idx -= 8
+ elif -1 != name.find('operator<', space_idx - 9, space_idx):
+ space_idx -= 9
+ elif -1 != name.find('operator<<', space_idx - 10, space_idx):
+ space_idx -= 10
+ else:
+ break
+
return space_idx
@@ -183,9 +191,9 @@ def Parse(name):
assert right_paren_idx > left_paren_idx
space_idx = _FindReturnValueSpace(name, left_paren_idx)
name_no_params = name[space_idx + 1:left_paren_idx]
- # Special case for top-level lamdas.
+ # Special case for top-level lambdas.
if name_no_params.endswith('}::_FUN'):
- # Don't use name_no_params in here since prior _idx will be off if
+ # Don't use |name_no_params| in here since prior _idx will be off if
# there was a return value.
name = _NormalizeTopLevelGccLambda(name, left_paren_idx)
return Parse(name)
diff --git a/chromium/tools/binary_size/libsupersize/integration_test.py b/chromium/tools/binary_size/libsupersize/integration_test.py
index 24c636e31ca..78930c7cdd6 100755
--- a/chromium/tools/binary_size/libsupersize/integration_test.py
+++ b/chromium/tools/binary_size/libsupersize/integration_test.py
@@ -27,6 +27,7 @@ import test_util
_SCRIPT_DIR = os.path.dirname(__file__)
_TEST_DATA_DIR = os.path.join(_SCRIPT_DIR, 'testdata')
+_TEST_SDK_DIR = os.path.join(_TEST_DATA_DIR, 'mock_sdk')
_TEST_SOURCE_DIR = os.path.join(_TEST_DATA_DIR, 'mock_source_directory')
_TEST_OUTPUT_DIR = os.path.join(_TEST_SOURCE_DIR, 'out', 'Release')
_TEST_TOOL_PREFIX = os.path.join(
@@ -75,8 +76,13 @@ def _CompareWithGolden(name=None):
def _AddMocksToPath():
prev_path = os.environ['PATH']
os.environ['PATH'] = _TEST_TOOL_PREFIX[:-1] + os.path.pathsep + prev_path
- yield
- os.environ['PATH'] = prev_path
+ os.environ['APK_ANALYZER'] = os.path.join(_TEST_SDK_DIR, 'tools', 'bin',
+ 'apkanalyzer')
+ try:
+ yield
+ finally:
+ os.environ['PATH'] = prev_path
+ del os.environ['APK_ANALYZER']
def _RunApp(name, args, debug_measures=False):
@@ -191,25 +197,37 @@ class IntegrationTest(unittest.TestCase):
pak_info_file = _TEST_PAK_INFO_PATH
metadata = None
linker_name = 'gold'
- if use_elf:
- with _AddMocksToPath():
+ with _AddMocksToPath():
+ if use_elf:
metadata = archive.CreateMetadata(
_TEST_MAP_PATH, elf_path, apk_path, minimal_apks_path,
_TEST_TOOL_PREFIX, output_directory, linker_name)
- section_sizes, raw_symbols = archive.CreateSectionSizesAndSymbols(
- map_path=_TEST_MAP_PATH, tool_prefix=_TEST_TOOL_PREFIX,
- elf_path=elf_path, output_directory=output_directory,
- apk_path=apk_path or extracted_minimal_apk_path,
- apk_so_path=apk_so_path, metadata=metadata, pak_files=pak_files,
- pak_info_file=pak_info_file, linker_name=linker_name,
- size_info_prefix=size_info_prefix, knobs=knobs)
- IntegrationTest.cached_size_info[cache_key] = archive.CreateSizeInfo(
- section_sizes, raw_symbols, metadata=metadata)
+ section_sizes, raw_symbols = archive.CreateSectionSizesAndSymbols(
+ map_path=_TEST_MAP_PATH,
+ tool_prefix=_TEST_TOOL_PREFIX,
+ elf_path=elf_path,
+ output_directory=output_directory,
+ apk_path=apk_path or extracted_minimal_apk_path,
+ apk_so_path=apk_so_path,
+ metadata=metadata,
+ pak_files=pak_files,
+ pak_info_file=pak_info_file,
+ linker_name=linker_name,
+ size_info_prefix=size_info_prefix,
+ knobs=knobs)
+ IntegrationTest.cached_size_info[cache_key] = archive.CreateSizeInfo(
+ section_sizes, raw_symbols, metadata=metadata)
return copy.deepcopy(IntegrationTest.cached_size_info[cache_key])
- def _DoArchive(self, archive_path, use_output_directory=True, use_elf=True,
- use_apk=False, use_minimal_apks=False, use_pak=False,
- debug_measures=False):
+ def _DoArchive(self,
+ archive_path,
+ use_output_directory=True,
+ use_elf=True,
+ use_apk=False,
+ use_minimal_apks=False,
+ use_pak=False,
+ debug_measures=False,
+ include_padding=False):
args = [
archive_path,
'--map-file', _TEST_MAP_PATH,
@@ -234,16 +252,28 @@ class IntegrationTest(unittest.TestCase):
args += ['--pak-file', _TEST_APK_LOCALE_PAK_PATH,
'--pak-file', _TEST_APK_PAK_PATH,
'--pak-info-file', _TEST_PAK_INFO_PATH]
+ if include_padding:
+ args += ['--include-padding']
_RunApp('archive', args, debug_measures=debug_measures)
- def _DoArchiveTest(self, use_output_directory=True, use_elf=True,
- use_apk=False, use_minimal_apks=False, use_pak=False,
- debug_measures=False):
+ def _DoArchiveTest(self,
+ use_output_directory=True,
+ use_elf=True,
+ use_apk=False,
+ use_minimal_apks=False,
+ use_pak=False,
+ debug_measures=False,
+ include_padding=False):
with tempfile.NamedTemporaryFile(suffix='.size') as temp_file:
self._DoArchive(
- temp_file.name, use_output_directory=use_output_directory,
- use_elf=use_elf, use_apk=use_apk, use_minimal_apks=use_minimal_apks,
- use_pak=use_pak, debug_measures=debug_measures)
+ temp_file.name,
+ use_output_directory=use_output_directory,
+ use_elf=use_elf,
+ use_apk=use_apk,
+ use_minimal_apks=use_minimal_apks,
+ use_pak=use_pak,
+ debug_measures=debug_measures,
+ include_padding=include_padding)
size_info = archive.LoadAndPostProcessSizeInfo(temp_file.name)
# Check that saving & loading is the same as directly parsing.
expected_size_info = self._CloneSizeInfo(
@@ -293,6 +323,11 @@ class IntegrationTest(unittest.TestCase):
def test_Archive_Elf_DebugMeasures(self):
return self._DoArchiveTest(debug_measures=True)
+ @_CompareWithGolden(name='Archive')
+ def test_ArchiveSparse(self):
+ return self._DoArchiveTest(
+ use_output_directory=False, use_elf=False, include_padding=True)
+
@_CompareWithGolden()
def test_Console(self):
with tempfile.NamedTemporaryFile(suffix='.size') as size_file, \
diff --git a/chromium/tools/binary_size/libsupersize/linker_map_parser.py b/chromium/tools/binary_size/libsupersize/linker_map_parser.py
index dc3988aaa59..826bff20e11 100755
--- a/chromium/tools/binary_size/libsupersize/linker_map_parser.py
+++ b/chromium/tools/binary_size/libsupersize/linker_map_parser.py
@@ -495,11 +495,11 @@ class MapFileParserLld(object):
# PROVIDE_HIDDEN lines.
if level == 1:
# Ignore sections that belong to feature library partitions. Seeing a
- # library name is an indicator that we've entered a list of feature
+ # partition name is an indicator that we've entered a list of feature
# partitions. After these, a single .part.end section will follow to
# reserve memory at runtime. Seeing the .part.end section also marks the
# end of partition sections in the map file.
- if tok.startswith('lib') and tok.endswith('.so'):
+ if tok.endswith('_partition'):
in_partitions = True
elif tok == '.part.end':
# Note that we want to retain .part.end section, so it's fine to
diff --git a/chromium/tools/binary_size/libsupersize/main.py b/chromium/tools/binary_size/libsupersize/main.py
index e1c2bd2660b..66e303783ab 100755
--- a/chromium/tools/binary_size/libsupersize/main.py
+++ b/chromium/tools/binary_size/libsupersize/main.py
@@ -17,6 +17,8 @@ import sys
import archive
import console
+import diff
+import file_format
import html_report
import start_server
@@ -64,6 +66,32 @@ class _DiffAction(object):
console.Run(args, parser)
+class _SaveDiffAction(object):
+
+ @staticmethod
+ def AddArguments(parser):
+ parser.add_argument('before', help='Before-patch .size file.')
+ parser.add_argument('after', help='After-patch .size file.')
+ parser.add_argument(
+ 'output_file',
+ help='Write generated data to the specified .sizediff file.')
+
+ @staticmethod
+ def Run(args, parser):
+ if not args.before.endswith('.size'):
+ parser.error('Before input must end with ".size"')
+ if not args.after.endswith('.size'):
+ parser.error('After input must end with ".size"')
+ if not args.output_file.endswith('.sizediff'):
+ parser.error('Output must end with ".sizediff"')
+
+ before_size_info = archive.LoadAndPostProcessSizeInfo(args.before)
+ after_size_info = archive.LoadAndPostProcessSizeInfo(args.after)
+ delta_size_info = diff.Diff(before_size_info, after_size_info)
+
+ file_format.SaveDeltaSizeInfo(delta_size_info, args.output_file)
+
+
def main():
parser = argparse.ArgumentParser(description=__doc__)
sub_parsers = parser.add_subparsers()
@@ -80,6 +108,9 @@ def main():
_DiffAction(),
'Shorthand for console --query "Print(Diff())" (plus highlights static '
'initializers in diff)')
+ actions['save_diff'] = (
+ _SaveDiffAction(),
+ 'Create a stand-alone .sizediff diff report from two .size files.')
for name, tup in actions.iteritems():
sub_parser = sub_parsers.add_parser(name, help=tup[1])
diff --git a/chromium/tools/binary_size/libsupersize/models.py b/chromium/tools/binary_size/libsupersize/models.py
index 6ad2d5a3760..043211e1c36 100644
--- a/chromium/tools/binary_size/libsupersize/models.py
+++ b/chromium/tools/binary_size/libsupersize/models.py
@@ -44,6 +44,7 @@ METADATA_ELF_ARCHITECTURE = 'elf_arch' # "Machine" field from readelf -h
METADATA_ELF_FILENAME = 'elf_file_name' # Path relative to output_directory.
METADATA_ELF_MTIME = 'elf_mtime' # int timestamp in utc.
METADATA_ELF_BUILD_ID = 'elf_build_id'
+METADATA_ELF_RELOCATIONS_COUNT = 'elf_relocations_count'
METADATA_GN_ARGS = 'gn_args'
METADATA_LINKER_NAME = 'linker_name'
METADATA_TOOL_PREFIX = 'tool_prefix' # Path relative to SRC_ROOT.
@@ -421,6 +422,12 @@ class Symbol(BaseSymbol):
self.padding, self.full_name, self.object_path, self.source_path,
self.FlagsString(), self.num_aliases, self.component)
+ def SetName(self, full_name, template_name=None, name=None):
+ # Note that _NormalizeNames() will clobber these values.
+ self.full_name = full_name
+ self.template_name = full_name if template_name is None else template_name
+ self.name = full_name if name is None else name
+
@property
def pss(self):
return float(self.size) / self.num_aliases
diff --git a/chromium/tools/binary_size/libsupersize/path_util.py b/chromium/tools/binary_size/libsupersize/path_util.py
index 0a16c6edef9..c6d5ac0a1ba 100644
--- a/chromium/tools/binary_size/libsupersize/path_util.py
+++ b/chromium/tools/binary_size/libsupersize/path_util.py
@@ -112,7 +112,7 @@ class ToolPrefixFinder(_PathFinder):
err_lines = ['tool-prefix not found: %s' % ret]
if ret.endswith('llvm-'):
err_lines.append('Probably need to run: '
- 'tools/clang/scripts/download_objdump.py')
+ 'tools/clang/scripts/update.py --package=objdump')
raise Exception('\n'.join(err_lines))
from_path = distutils.spawn.find_executable(_SAMPLE_TOOL_SUFFIX)
if from_path:
@@ -163,16 +163,15 @@ def GetNmPath(tool_prefix):
return tool_prefix + 'nm'
-def GetApkAnalyzerPath(output_directory):
- build_vars = _LoadBuildVars(output_directory)
- sdk_analyzer = os.path.normpath(os.path.join(
- output_directory, build_vars['android_sdk_root'], 'tools', 'bin',
- 'apkanalyzer'))
- if os.path.exists(sdk_analyzer):
- return sdk_analyzer
- # Older SDKs do not contain the tool, so fall back to the one we know exists.
- return os.path.join(SRC_ROOT, 'third_party', 'android_sdk', 'public',
- 'tools', 'bin', 'apkanalyzer')
+def GetApkAnalyzerPath():
+ default_path = FromSrcRootRelative(
+ os.path.join('third_party', 'android_sdk', 'public', 'cmdline-tools',
+ 'latest', 'bin', 'apkanalyzer'))
+ return os.environ.get('APK_ANALYZER', default_path)
+
+
+def GetJavaHome():
+ return FromSrcRootRelative(os.path.join('third_party', 'jdk', 'current'))
def GetObjDumpPath(tool_prefix):
diff --git a/chromium/tools/binary_size/libsupersize/start_server.py b/chromium/tools/binary_size/libsupersize/start_server.py
index 88ffefa9f59..8db08d5c1c8 100644
--- a/chromium/tools/binary_size/libsupersize/start_server.py
+++ b/chromium/tools/binary_size/libsupersize/start_server.py
@@ -16,13 +16,16 @@ class SupersizeHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler,
serve_from = None
# Path to data file
data_file_path = None
+ before_file_path = None
#override
def translate_path(self, path):
f = super(SupersizeHTTPRequestHandler, self).translate_path(path)
relative_path = os.path.relpath(f, os.getcwd())
- if relative_path == 'data.ndjson':
+ if relative_path in ['data.ndjson', 'data.size']:
return SupersizeHTTPRequestHandler.data_file_path
+ if relative_path == 'before.size':
+ return SupersizeHTTPRequestHandler.before_file_path
else:
return os.path.join(SupersizeHTTPRequestHandler.serve_from, relative_path)
@@ -30,6 +33,13 @@ class SupersizeHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler,
def AddArguments(parser):
parser.add_argument('report_file',
help='Path to a custom html_report data file to load.')
+ parser.add_argument(
+ '-b',
+ '--before_file',
+ type=str,
+ default='',
+ help=('Path to a "before" .size file to diff against. If present, '
+ 'report_file should also be a .size file.'))
parser.add_argument('-p', '--port', type=int, default=8000,
help='Port for the HTTP server')
parser.add_argument('-a', '--address', default='localhost',
@@ -44,11 +54,15 @@ def Run(args, _parser):
SupersizeHTTPRequestHandler.serve_from = static_files
SupersizeHTTPRequestHandler.data_file_path = args.report_file
+ SupersizeHTTPRequestHandler.before_file_path = args.before_file
SupersizeHTTPRequestHandler.extensions_map['.wasm'] = 'application/wasm'
httpd = BaseHTTPServer.HTTPServer(server_addr, SupersizeHTTPRequestHandler)
sa = httpd.socket.getsockname()
+ is_ndjson = args.report_file.endswith('ndjson')
+ data_file = 'data.ndjson' if is_ndjson else 'data.size'
+ maybe_before_file = '&before_url=before.size' if args.before_file else ''
logging.warning(
- 'Server ready at http://%s:%d/viewer.html?load_url=data.ndjson',
- sa[0], sa[1])
+ 'Server ready at http://%s:%d/viewer.html?load_url=' + data_file +
+ maybe_before_file, sa[0], sa[1])
httpd.serve_forever()
diff --git a/chromium/tools/binary_size/libsupersize/static/index.html b/chromium/tools/binary_size/libsupersize/static/index.html
index 665e7701b21..5174dbd69a6 100644
--- a/chromium/tools/binary_size/libsupersize/static/index.html
+++ b/chromium/tools/binary_size/libsupersize/static/index.html
@@ -294,11 +294,9 @@ function setSubmitListener(form, fetchDataUrl) {
function getDataUrl() {
if (channelIsMilestone()) {
- let ret = `milestones/${apk.value}/`;
- if (selVersion2.value === DO_NOT_DIFF) {
- ret += `report_${selVersion1.value}.ndjson`;
- } else {
- ret += `report_${selVersion2.value}_${selVersion1.value}.ndjson`;
+ let ret = `milestones/${selVersion1.value}/${apk.value}.size`;
+ if (selVersion2.value !== DO_NOT_DIFF) {
+ ret += `&before_url=milestones/${selVersion2.value}/${apk.value}.size`;
}
return ret;
} else {
diff --git a/chromium/tools/binary_size/libsupersize/static/infocard-ui.js b/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
index 98deefab468..a8b8c0981e7 100644
--- a/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
+++ b/chromium/tools/binary_size/libsupersize/static/infocard-ui.js
@@ -80,21 +80,19 @@ const displayInfocard = (() => {
*/
_updatePaths(node) {
let pathFragment;
+ // 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.componet || '(No component)'),
+ document.createTextNode(node.component || '(No component)'),
]);
} else {
const path = node.idPath.slice(0, node.shortNameIndex);
const boldShortName = dom.textElement(
- 'span',
- shortName(node),
- 'symbol-name-info'
- );
+ 'span', node.fullName || shortName(node), 'symbol-name-info');
pathFragment = dom.createFragment([
document.createTextNode(path),
boldShortName,
@@ -193,6 +191,7 @@ const displayInfocard = (() => {
constructor(id) {
super(id);
this._tableBody = this._infocard.querySelector('tbody');
+ this._tableHeader = this._infocard.querySelector('thead');
this._ctx = this._infocard.querySelector('canvas').getContext('2d');
/**
@@ -291,6 +290,9 @@ const displayInfocard = (() => {
const countColumn = row.querySelector('.count');
const sizeColumn = row.querySelector('.size');
const percentColumn = row.querySelector('.percent');
+ const addedColumn = row.querySelector('.added');
+ const removedColumn = row.querySelector('.removed');
+ const changedColumn = row.querySelector('.changed');
const countString = stats.count.toLocaleString(_LOCALE, {
useGrouping: true,
@@ -306,6 +308,26 @@ const displayInfocard = (() => {
maximumFractionDigits: 2,
});
+ const diffMode = state.has('diff_mode');
+ if (diffMode && stats.added !== undefined) {
+ addedColumn.removeAttribute('hidden');
+ removedColumn.removeAttribute('hidden');
+ changedColumn.removeAttribute('hidden');
+ countColumn.setAttribute('hidden', '');
+
+ addedColumn.textContent =
+ stats.added.toLocaleString(_LOCALE, {useGrouping: true});
+ removedColumn.textContent =
+ stats.removed.toLocaleString(_LOCALE, {useGrouping: true});
+ changedColumn.textContent =
+ stats.changed.toLocaleString(_LOCALE, {useGrouping: true});
+ } else {
+ addedColumn.setAttribute('hidden', '');
+ removedColumn.setAttribute('hidden', '');
+ changedColumn.setAttribute('hidden', '');
+ countColumn.removeAttribute('hidden');
+ }
+
// Update DOM
countColumn.textContent = countString;
sizeColumn.textContent = sizeString;
@@ -323,12 +345,32 @@ const displayInfocard = (() => {
(a, b) => b[1].size - a[1].size
);
const diffMode = state.has('diff_mode');
- const highlightMode = state.has('highlight');
let totalSize = 0;
for (const [, stats] of statsEntries) {
totalSize += Math.abs(stats.size);
}
+ const countColumn = this._tableHeader.querySelector('.count');
+ const addedColumn = this._tableHeader.querySelector('.added');
+ const removedColumn = this._tableHeader.querySelector('.removed');
+ const changedColumn = this._tableHeader.querySelector('.changed');
+
+ // The WebAssembly worker supports added/removed/changed in diff view,
+ // so displaying count isn't useful.
+ // In non-diff view, and any .ndjson view, we don't have added/removed/
+ // changed information, so we just display a count.
+ if (diffMode && statsEntries[0][1].added !== undefined) {
+ addedColumn.removeAttribute('hidden');
+ removedColumn.removeAttribute('hidden');
+ changedColumn.removeAttribute('hidden');
+ countColumn.setAttribute('hidden', '');
+ } else {
+ addedColumn.setAttribute('hidden', '');
+ removedColumn.setAttribute('hidden', '');
+ changedColumn.setAttribute('hidden', '');
+ countColumn.removeAttribute('hidden');
+ }
+
// Update DOM
super._updateInfocard(containerNode);
let angleStart = 0;
@@ -343,13 +385,6 @@ const displayInfocard = (() => {
const angleEnd = angleStart + arcLength;
this._drawSlice(angleStart, angleEnd, color);
- if (highlightMode) {
- const highlightPercent = stats.highlight / totalSize;
- const highlightArcLength = Math.abs(highlightPercent) * 2 * Math.PI;
- const highlightEnd = (angleStart + highlightArcLength);
-
- this._drawBorder(angleStart, highlightEnd, '#feefc3', 32);
- }
if (diffMode) {
const strokeColor = stats.size > 0 ? '#ea4335' : '#34a853';
this._drawBorder(angleStart, angleEnd, strokeColor, 16);
diff --git a/chromium/tools/binary_size/libsupersize/static/main.css b/chromium/tools/binary_size/libsupersize/static/main.css
index 2cf729e0248..ce949d2a3b1 100644
--- a/chromium/tools/binary_size/libsupersize/static/main.css
+++ b/chromium/tools/binary_size/libsupersize/static/main.css
@@ -134,6 +134,14 @@ ul {
flex: none;
}
+.diff-status-icon {
+ display: block;
+ flex: none;
+ transform: scale(0.8);
+ position: absolute;
+ left: -26px;
+}
+
/** Tree nodes */
.node {
display: flex;
@@ -143,6 +151,7 @@ ul {
text-decoration: none;
color: inherit;
border-radius: 4px;
+ position: relative;
}
.node:hover {
background: #f1f3f4;
@@ -175,7 +184,10 @@ ul {
.count,
.size,
-.percent {
+.percent,
+.added,
+.removed,
+.changed {
margin-left: auto;
padding-left: 16px;
text-align: right;
@@ -188,9 +200,6 @@ ul {
.grew {
color: #ea4335;
}
-.highlight {
- background: #feefc3;
-}
.diff .size-header::after {
content: " diff";
diff --git a/chromium/tools/binary_size/libsupersize/static/shared.js b/chromium/tools/binary_size/libsupersize/static/shared.js
index e48aea1fe12..0eb4d498148 100644
--- a/chromium/tools/binary_size/libsupersize/static/shared.js
+++ b/chromium/tools/binary_size/libsupersize/static/shared.js
@@ -34,8 +34,6 @@
* a certain type.
* @prop {number} size Byte size
* @prop {number} count Number of symbols
- * @prop {number} highlight Byte size of children that should be
- * highlighted.
*/
/**
@@ -101,6 +99,16 @@ const _BYTE_UNITS = Object.freeze({
});
/**
+ * @enum {number} All possible states for a delta symbol.
+ */
+const _DIFF_STATUSES = Object.freeze({
+ UNCHANGED: 0,
+ CHANGED: 1,
+ ADDED: 2,
+ REMOVED: 3,
+});
+
+/**
* Special types used by containers, such as folders and files.
*/
const _CONTAINER_TYPES = {
diff --git a/chromium/tools/binary_size/libsupersize/static/start-worker.js b/chromium/tools/binary_size/libsupersize/static/start-worker.js
index 6c8680ab205..426a63a0b28 100644
--- a/chromium/tools/binary_size/libsupersize/static/start-worker.js
+++ b/chromium/tools/binary_size/libsupersize/static/start-worker.js
@@ -5,15 +5,6 @@
// @ts-check
'use strict';
-let _innerWorker = null;
-const urlParams = new URLSearchParams(window.location.search);
-if (urlParams.get('wasm')) {
- console.log("wasm=1; Using WebAssembly web worker");
- _innerWorker = new Worker('tree-worker-wasm.js');
-} else {
- _innerWorker = new Worker('tree-worker.js');
-}
-
/**
* We use a worker to keep large tree creation logic off the UI thread.
* This class is used to interact with the worker.
@@ -96,7 +87,26 @@ class TreeWorker {
}
}
-const worker = new TreeWorker(_innerWorker);
+let _innerWorker = null;
+let worker = null;
+
+// .size files and .ndjson files require different web workers.
+// Switch between the two dynamically.
+function startWorkerForFileName(fileName) {
+ if (fileName &&
+ (fileName.endsWith('.size') || fileName.endsWith('.sizediff'))) {
+ console.log('Using WebAssembly web worker');
+ _innerWorker = new Worker('tree-worker-wasm.js');
+ } else {
+ console.log('Using JavaScript web worker');
+ _innerWorker = new Worker('tree-worker.js');
+ }
+ worker = new TreeWorker(_innerWorker);
+}
+
+const urlParams = new URLSearchParams(window.location.search);
+startWorkerForFileName(urlParams.get('load_url'));
+
// Kick off the worker ASAP so it can start parsing data faster.
// Subsequent calls will just use a worker locally.
const treeReady = worker.loadTree('from-url://');
diff --git a/chromium/tools/binary_size/libsupersize/static/state.js b/chromium/tools/binary_size/libsupersize/static/state.js
index 9b69dfb4529..a14ca68fe26 100644
--- a/chromium/tools/binary_size/libsupersize/static/state.js
+++ b/chromium/tools/binary_size/libsupersize/static/state.js
@@ -273,6 +273,15 @@ function _makeIconTemplateGetter() {
o: _icons.querySelector('.othericon'), // used as default icon
};
+ const _statuses = document.getElementById('symbol-diff-status-icons');
+ const statusIcons = {
+ added: _statuses.querySelector('.addedicon'),
+ removed: _statuses.querySelector('.removedicon'),
+ changed: _statuses.querySelector('.changedicon'),
+ unchanged: _statuses.querySelector('.unchangedicon'),
+ };
+
+
/** @type {Map<string, {color:string,description:string}>} */
const iconInfoCache = new Map();
@@ -306,7 +315,37 @@ function _makeIconTemplateGetter() {
return info;
}
- return {getIconTemplate, getIconStyle};
+ /**
+ * Returns the SVG status icon template element corresponding to the diff
+ * status of the node. Only valid for leaf nodes.
+ * @param {TreeNode} node Leaf node whose diff status is used to select
+ * template.
+ * @param {boolean} readonly If true, the original template is returned.
+ * If false, a copy is returned that can be modified.
+ * @returns {SVGSVGElement}
+ */
+ function getDiffStatusTemplate(node) {
+ const isLeaf = node.children && node.children.length === 0;
+ const entries = Object.entries(node.childStats);
+ let key = 'unchanged';
+ if (isLeaf && entries.length != 0) {
+ const statsEntry = entries[0][1];
+ if (statsEntry.added) {
+ key = 'added';
+ } else if (statsEntry.removed) {
+ key = 'removed';
+ } else if (statsEntry.changed) {
+ key = 'changed';
+ }
+ } else if (node.diffStatus == _DIFF_STATUSES.ADDED) {
+ key = 'added';
+ } else if (node.diffStatus == _DIFF_STATUSES.REMOVED) {
+ key = 'removed';
+ }
+ return statusIcons[key].cloneNode(true);
+ }
+
+ return {getIconTemplate, getIconStyle, getDiffStatusTemplate};
}
function _makeSizeTextGetter() {
@@ -392,6 +431,7 @@ function _makeSizeTextGetter() {
/** Utilities for working with the state */
const state = _initState();
-const {getIconTemplate, getIconStyle} = _makeIconTemplateGetter();
+const {getIconTemplate, getIconStyle, getDiffStatusTemplate} =
+ _makeIconTemplateGetter();
const {getSizeContents, setSizeClasses} = _makeSizeTextGetter();
_startListeners();
diff --git a/chromium/tools/binary_size/libsupersize/static/tree-ui.js b/chromium/tools/binary_size/libsupersize/static/tree-ui.js
index c1980b11b82..a79e09e72f1 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-ui.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-ui.js
@@ -41,22 +41,6 @@ const newTreeElement = (() => {
const _uiNodeData = new WeakMap();
/**
- * Applies highlights to the tree element based on certain flags and state.
- * @param {HTMLSpanElement} symbolNameElement Element that displays the
- * short name of the tree item.
- * @param {TreeNode} node Data about this symbol name element's tree node.
- */
- function _highlightSymbolName(symbolNameElement, node) {
- const dexMethodStats = node.childStats[_DEX_METHOD_SYMBOL_TYPE];
- if (state.has('highlight')) {
- const stats = Object.values(node.childStats);
- if (stats.some(stat => stat.highlight > 0)) {
- symbolNameElement.classList.add('highlight');
- }
- }
- }
-
- /**
* Replace the contents of the size element for a tree node.
* @param {HTMLElement} sizeElement Element that should display the size
* @param {TreeNode} node Data about this size element's tree node.
@@ -339,6 +323,13 @@ const newTreeElement = (() => {
const symbolStyle = getIconStyle(data.type[1]);
icon.setAttribute('fill', symbolStyle.color);
}
+
+ // Insert an SVG icon at the start of the link to represent adds/removals.
+ const diffStatusIcon = getDiffStatusTemplate(data);
+ if (diffStatusIcon) {
+ link.insertBefore(diffStatusIcon, link.firstElementChild);
+ }
+
// Insert an SVG icon at the start of the link to represent type
link.insertBefore(icon, link.firstElementChild);
@@ -350,7 +341,6 @@ const newTreeElement = (() => {
_ZERO_WIDTH_SPACE
);
symbolName.title = data.idPath;
- _highlightSymbolName(symbolName, data);
// Set the byte size and hover text
_setSize(element.querySelector('.size'), data);
@@ -461,6 +451,7 @@ const newTreeElement = (() => {
const input = /** @type {HTMLInputElement} */ (event.currentTarget);
const file = input.files.item(0);
const fileUrl = URL.createObjectURL(file);
+ startWorkerForFileName(file.name)
_dataUrlInput.value = '';
_dataUrlInput.dispatchEvent(new Event('change'));
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 3baf830aa0b..bbca356e0d6 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-worker-wasm.js
@@ -7,6 +7,13 @@
importScripts('./shared.js');
importScripts('./caspian_web.js');
+const LoadWasm = new Promise(function(resolve, reject) {
+ Module['onRuntimeInitialized'] = function() {
+ console.log('Loaded WebAssembly runtime');
+ resolve();
+ }
+});
+
const _PATH_SEP = '/';
const _NAMES_TO_FLAGS = Object.freeze({
hot: _FLAGS.HOT,
@@ -58,63 +65,12 @@ class DataFetcher {
}
/**
- * Yields binary chunks as Uint8Arrays. After a complete run, the bytes are
- * cached and future calls will yield the cached Uint8Array instead.
- */
- async *arrayBufferStream() {
- if (this._cache) {
- yield this._cache;
- return;
- }
-
- const response = await this.fetch(this._input);
- let result;
- // Use streams, if supported, so that we can show in-progress data instead
- // of waiting for the entire data file to download. The file can be >100 MB,
- // so streams ensure slow connections still see some data.
- if (response.body) {
- const reader = response.body.getReader();
-
- /** @type {Uint8Array[]} Store received bytes to merge later */
- let buffer = [];
- /** Total size of received bytes */
- let byteSize = 0;
- while (true) {
- // Read values from the stream
- const {done, value} = await reader.read();
- if (done) break;
-
- const chunk = new Uint8Array(value, 0, value.length);
- yield chunk;
- buffer.push(chunk);
- byteSize += chunk.length;
- }
-
- // We just cache a single typed array to save some memory and make future
- // runs consistent with the no streams mode.
- result = new Uint8Array(byteSize);
- let i = 0;
- for (const chunk of buffer) {
- result.set(chunk, i);
- i += chunk.length;
- }
- } else {
- // In-memory version for browsers without stream support
- yield result;
- }
-
- this._cache = result;
- }
-
- /**
* Outputs a single UInt8Array containing the entire input .size file.
*/
async loadSizeBuffer() {
- // Flush cache.
- for await (const bytes of this.arrayBufferStream()) {
- if (this._controller.signal.aborted) {
- throw new DOMException('Request was aborted', 'AbortError');
- }
+ if (!this._cache) {
+ const response = await this.fetch(this._input);
+ this._cache = new Uint8Array(await response.arrayBuffer());
}
return this._cache;
}
@@ -127,24 +83,69 @@ function mallocBuffer(buf) {
return dataHeap;
}
-function freeBuffer(buf) {
- Module._free(buf.byteOffset);
+async function Open(name) {
+ return LoadWasm.then(() => {
+ _Open = Module.cwrap('Open', 'number', ['string']);
+ const stringPtr = _Open(name);
+ // Something has gone wrong if we get back a string longer than 67MB.
+ const ret = JSON.parse(Module.UTF8ToString(stringPtr, 2 ** 26));
+ return ret;
+ });
}
// Placeholder input name until supplied via setInput()
-const fetcher = new DataFetcher('data.size');
+const fetcher = new DataFetcher('data.ndjson');
+let beforeFetcher = null;
+let sizeFileLoaded = false;
+
+async function loadSizeFile(isBefore, fetcher) {
+ const sizeBuffer = await fetcher.loadSizeBuffer();
+ const heapBuffer = mallocBuffer(sizeBuffer);
+ const LoadSizeFile = Module.cwrap(
+ isBefore ? 'LoadBeforeSizeFile' : 'LoadSizeFile', 'bool',
+ ['number', 'number']);
+ const start_time = Date.now();
+ LoadSizeFile(heapBuffer.byteOffset, sizeBuffer.byteLength);
+ console.log(
+ 'Loaded size file in ' + (Date.now() - start_time) / 1000.0 + ' seconds');
+ Module._free(heapBuffer.byteOffset);
+}
async function buildTree(
- groupBy, filterTest, highlightTest, methodCountMode, onProgress) {
-
- let sizeBuffer = await fetcher.loadSizeBuffer();
- let heapBuffer = mallocBuffer(sizeBuffer);
- console.log('Passing ' + sizeBuffer.byteLength + ' bytes to WebAssembly');
- let LoadSizeFile = Module.cwrap('LoadSizeFile', 'bool', ['number', 'number']);
- let start_time = Date.now();
- console.log(LoadSizeFile(heapBuffer.byteOffset, sizeBuffer.byteLength));
- console.log('Loaded size file in ' + (Date.now() - start_time)/1000.0 + ' seconds');
- freeBuffer(heapBuffer);
+ groupBy, includeRegex, excludeRegex, includeSections, minSymbolSize,
+ flagToFilter, methodCountMode, onProgress) {
+
+ onProgress({percent: 0.1, id: 0});
+ return await LoadWasm.then(async () => {
+ if (!sizeFileLoaded) {
+ const current = loadSizeFile(false, fetcher);
+ const before =
+ beforeFetcher !== null ? loadSizeFile(true, beforeFetcher) : null;
+ await current;
+ await before;
+ onProgress({percent: 0.4, id: 0});
+ sizeFileLoaded = true;
+ }
+
+ const BuildTree = Module.cwrap(
+ 'BuildTree', 'void',
+ ['bool', 'string', 'string', 'string', 'string', 'number', 'number']);
+ const start_time = Date.now();
+ BuildTree(
+ methodCountMode, groupBy, includeRegex, excludeRegex,
+ includeSections, minSymbolSize, flagToFilter);
+ console.log(
+ 'Constructed tree in ' + (Date.now() - start_time) / 1000.0 +
+ ' seconds');
+ onProgress({percent: 0.8, id: 0});
+
+ const root = await Open('');
+ return {
+ root: root,
+ percent: 1.0,
+ diffMode: beforeFetcher !== null, // diff mode
+ };
+ });
}
/**
@@ -155,26 +156,58 @@ async function buildTree(
function parseOptions(options) {
const params = new URLSearchParams(options);
- const url = params.get('load_url');
const groupBy = params.get('group_by') || 'source_path';
const methodCountMode = params.has('method_count');
- const filterGeneratedFiles = params.has('generated_filter');
- const flagToHighlight = _NAMES_TO_FLAGS[params.get('highlight')];
- function filterTest(symbolNode) {
- return true;
+ const includeRegex = params.get('include');
+ const excludeRegex = params.get('exclude');
+
+ let includeSections = params.get('type');
+ if (methodCountMode) {
+ includeSections = _DEX_METHOD_SYMBOL_TYPE;
+ } else if (includeSections === null) {
+ // Exclude native symbols by default.
+ let includeSectionsSet = new Set(_SYMBOL_TYPE_SET);
+ includeSectionsSet.delete('b');
+ includeSections = Array.from(includeSectionsSet.values()).join('');
}
- function highlightTest(symbolNode) {
- return false;
+
+ const minSymbolSize = Number(params.get('min_size'));
+ if (Number.isNaN(minSymbolSize)) {
+ minSymbolSize = 0;
}
- return {groupBy, filterTest, highlightTest, url, methodCountMode};
+
+ const flagToFilter = _NAMES_TO_FLAGS[params.get('flag_filter')] || 0;
+ const url = params.get('load_url');
+ const beforeUrl = params.get('before_url');
+
+ return {
+ groupBy,
+ includeRegex,
+ excludeRegex,
+ includeSections,
+ minSymbolSize,
+ flagToFilter,
+ methodCountMode,
+ url,
+ beforeUrl,
+ };
}
const actions = {
/** @param {{input:string|null,options:string}} param0 */
load({input, options}) {
- const {groupBy, filterTest, highlightTest, url, methodCountMode} =
- parseOptions(options);
+ const {
+ groupBy,
+ includeRegex,
+ excludeRegex,
+ includeSections,
+ minSymbolSize,
+ flagToFilter,
+ methodCountMode,
+ url,
+ beforeUrl,
+ } = parseOptions(options);
if (input === 'from-url://' && url) {
// Display the data from the `load_url` query parameter
console.info('Displaying data from', url);
@@ -184,17 +217,20 @@ const actions = {
fetcher.setInput(input);
}
+ if (beforeUrl) {
+ beforeFetcher = new DataFetcher(beforeUrl);
+ }
+
return buildTree(
- groupBy, filterTest, highlightTest, methodCountMode, progress => {
+ groupBy, includeRegex, excludeRegex, includeSections, minSymbolSize,
+ flagToFilter, methodCountMode, progress => {
// @ts-ignore
self.postMessage(progress);
});
},
/** @param {string} path */
async open(path) {
- if (!builder) throw new Error('Called open before load');
- const node = builder.find(path);
- return builder.formatNode(node);
+ return Open(path);
},
};
diff --git a/chromium/tools/binary_size/libsupersize/static/tree-worker.js b/chromium/tools/binary_size/libsupersize/static/tree-worker.js
index c2e274c9512..79c83bb8cc1 100644
--- a/chromium/tools/binary_size/libsupersize/static/tree-worker.js
+++ b/chromium/tools/binary_size/libsupersize/static/tree-worker.js
@@ -40,7 +40,6 @@ const _PATH_SEP = '/';
const _NAMES_TO_FLAGS = Object.freeze({
hot: _FLAGS.HOT,
generated: _FLAGS.GENERATED_SOURCE,
- coverage: _FLAGS.COVERAGE,
uncompressed: _FLAGS.UNCOMPRESSED,
});
@@ -137,8 +136,6 @@ class TreeBuilder {
* @param {(symbolNode: TreeNode) => boolean} options.filterTest Called to see
* if a symbol should be included. If a symbol fails the test, it will not be
* attached to the tree.
- * @param {(symbolNode: TreeNode) => boolean} options.highlightTest Called to
- * see if a symbol should be highlighted.
* @param {boolean} options.methodCountMode Whether we're in "method count"
* mode.
* @param {string} options.sep Path seperator used to find parent names.
@@ -147,7 +144,6 @@ class TreeBuilder {
constructor(options) {
this._getPath = options.getPath;
this._filterTest = options.filterTest;
- this._highlightTest = options.highlightTest;
this._methodCountMode = options.methodCountMode;
this._sep = options.sep || _PATH_SEP;
this._meta = options.meta;
@@ -198,13 +194,12 @@ class TreeBuilder {
for (const [type, stat] of additionalStats) {
let parentStat = parent.childStats[type];
if (parentStat == null) {
- parentStat = {size: 0, count: 0, highlight: 0};
+ parentStat = {size: 0, count: 0};
parent.childStats[type] = parentStat;
}
parentStat.size += stat.size;
parentStat.count += stat.count;
- parentStat.highlight += stat.highlight;
const absSize = Math.abs(parentStat.size);
if (absSize > lastBiggestSize) {
@@ -229,7 +224,8 @@ class TreeBuilder {
const isFileNode = node.type[0] === _CONTAINER_TYPES.FILE;
const hasDex = node.childStats[_DEX_SYMBOL_TYPE] ||
node.childStats[_DEX_METHOD_SYMBOL_TYPE];
- if (!isFileNode || !hasDex || !node.children) return node;
+ const isNoPath = node.idPath === "";
+ if (!isFileNode || !hasDex || isNoPath || !node.children) return node;
/** @type {Map<string, TreeNode>} */
const javaClassContainers = new Map();
@@ -439,14 +435,10 @@ class TreeBuilder {
[type]: {
size,
count,
- highlight: 0,
},
},
});
- if (this._highlightTest(symbolNode)) {
- symbolNode.childStats[type].highlight = size;
- }
if (this._filterTest(symbolNode)) {
this._attachToParent(symbolNode, fileNode);
}
@@ -651,8 +643,7 @@ function parseOptions(options) {
const url = params.get('load_url');
const groupBy = params.get('group_by') || 'source_path';
const methodCountMode = params.has('method_count');
- const filterGeneratedFiles = params.has('generated_filter');
- const flagToHighlight = _NAMES_TO_FLAGS[params.get('highlight')];
+ const flagToFilter = _NAMES_TO_FLAGS[params.get('flag_filter')];
let minSymbolSize = Number(params.get('min_size'));
if (Number.isNaN(minSymbolSize)) {
@@ -690,9 +681,9 @@ function parseOptions(options) {
filters.push(s => typeFilter.has(s.type));
}
- // Only show generated files
- if (filterGeneratedFiles) {
- filters.push(s => hasFlag(_FLAGS.GENERATED_SOURCE, s));
+ // Only show symbols with attached flag
+ if (flagToFilter) {
+ filters.push(s => hasFlag(flagToFilter, s));
}
// Search symbol names using regex
@@ -721,15 +712,7 @@ function parseOptions(options) {
return filters.every(fn => fn(symbolNode));
}
- /** @type {(symbolNode: TreeNode) => boolean} */
- let highlightTest;
- if (flagToHighlight) {
- highlightTest = symbolNode => hasFlag(flagToHighlight, symbolNode);
- } else {
- highlightTest = () => false;
- }
-
- return {groupBy, filterTest, highlightTest, url, methodCountMode};
+ return {groupBy, filterTest, url, methodCountMode};
}
/** @type {TreeBuilder | null} */
@@ -741,14 +724,11 @@ const fetcher = new DataFetcher('data.ndjson');
* @param {string} groupBy Sets how the tree is grouped.
* @param {(symbolNode: TreeNode) => boolean} filterTest Filter function that
* each symbol is tested against
- * @param {(symbolNode: TreeNode) => boolean} highlightTest Filter function that
- * each symbol's flags are tested against
* @param {boolean} methodCountMode
* @param {(msg: TreeProgress) => void} onProgress
* @returns {Promise<TreeProgress>}
*/
-async function buildTree(
- groupBy, filterTest, highlightTest, methodCountMode, onProgress) {
+async function buildTree(groupBy, filterTest, methodCountMode, onProgress) {
/** @type {Meta | null} Object from the first line of the data file */
let meta = null;
@@ -812,7 +792,6 @@ async function buildTree(
builder = new TreeBuilder({
getPath: getPathMap[groupBy],
filterTest,
- highlightTest,
methodCountMode,
sep: groupBy === 'component' ? '>' : _PATH_SEP,
meta,
@@ -847,8 +826,7 @@ async function buildTree(
const actions = {
/** @param {{input:string|null,options:string}} param0 */
load({input, options}) {
- const {groupBy, filterTest, highlightTest, url, methodCountMode} =
- parseOptions(options);
+ const {groupBy, filterTest, url, methodCountMode} = parseOptions(options);
if (input === 'from-url://' && url) {
// Display the data from the `load_url` query parameter
console.info('Displaying data from', url);
@@ -859,7 +837,7 @@ const actions = {
}
return buildTree(
- groupBy, filterTest, highlightTest, methodCountMode, progress => {
+ groupBy, filterTest, methodCountMode, progress => {
// @ts-ignore
self.postMessage(progress);
});
diff --git a/chromium/tools/binary_size/libsupersize/static/viewer.html b/chromium/tools/binary_size/libsupersize/static/viewer.html
index 3852d433da8..5225e100961 100644
--- a/chromium/tools/binary_size/libsupersize/static/viewer.html
+++ b/chromium/tools/binary_size/libsupersize/static/viewer.html
@@ -34,7 +34,7 @@ if ('serviceWorker' in navigator) {
<header class="appbar">
<div class="appbar-inner">
<h1 class="headline">Super Size Tiger View</h1>
- <input type="file" name="upload" id="upload" accept=".ndjson" >
+ <input type="file" name="upload" id="upload" accept=".ndjson,.size,.sizediff" >
<label for="upload" class="text-button filled-button with-icon">
<svg class="icon" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="#fff">
<!--
@@ -87,6 +87,7 @@ if ('serviceWorker' in navigator) {
</header>
<input type="hidden" name="load_url" data-dynamic>
+ <input type="hidden" name="before_url">
<fieldset>
<legend class="subhead">Size options</legend>
@@ -115,12 +116,20 @@ if ('serviceWorker' in navigator) {
<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">Source path</label>
+ <label class="radio-label" for="sourcepath">Nothing</label>
</div>
<div class="radio-wrapper">
<input type="radio" id="component" name="group_by" value="component">
<label class="radio-label" for="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>
+ </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>
+ </div>
</fieldset>
<fieldset>
@@ -207,34 +216,25 @@ if ('serviceWorker' in navigator) {
<button type="button" class="text-button" id="type-none">Select none</button>
</fieldset>
- <fieldset id="highlight-container">
- <legend class="subhead">Highlight symbols</legend>
+ <fieldset id="flag-container">
+ <legend class="subhead">Filter symbols</legend>
<div class="radio-wrapper">
- <input type="radio" id="clearhighlight" name="highlight" value="clear" checked>
- <label class="radio-label" for="clearhighlight">None</label>
+ <input type="radio" id="clearflag" name="flag_filter" value="clear" checked>
+ <label class="radio-label" for="clearflag">All</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="hothighlight" name="highlight" value="hot">
- <label class="radio-label" for="hothighlight">Hot code</label>
+ <input type="radio" id="hotflag" name="flag_filter" value="hot">
+ <label class="radio-label" for="hotflag">Hot code</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="generatedhighlight" name="highlight" value="generated">
- <label class="radio-label" for="generatedhighlight">Generated files</label>
+ <input type="radio" id="generatedflag" name="flag_filter" value="generated">
+ <label class="radio-label" for="generatedflag">Generated files</label>
</div>
<div class="radio-wrapper">
- <input type="radio" id="coveragehightlight" name="highlight" value="coverage">
- <label class="radio-label" for="coveragehightlight">Code coverage (not implemented)</label>
- </div>
- <div class="radio-wrapper">
- <input type="radio" id="uncompressedhighlight" name="highlight" value="uncompressed">
- <label class="radio-label" for="uncompressedhighlight">Uncompressed .pak files</label>
+ <input type="radio" id="uncompressedflag" name="flag_filter" value="uncompressed">
+ <label class="radio-label" for="uncompressedflag">Uncompressed .pak files</label>
</div>
</fieldset>
-
- <p class="checkbox-wrapper">
- <input type="checkbox" id="generatedfilter" name="generated_filter" value="on">
- <label class="checkbox-label" for="generatedfilter">Show only generated files</label>
- </p>
</form>
<div class="symbols">
<!-- Icons for symbols are stored here and cloned. -->
@@ -313,6 +313,28 @@ if ('serviceWorker' in navigator) {
/>
</svg>
</div>
+ <div hidden id="symbol-diff-status-icons">
+ <svg class="diff-status-icon addedicon" height="24" width="24">
+ <title>Added</title>
+ <path d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z" fill="#ffffff"/>
+ <path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" fill="#388e3c"/>
+ </svg>
+ <svg class="diff-status-icon removedicon" height="24" width="24">
+ <title>Removed</title>
+ <path d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z" fill="#ffffff"/>
+ <path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" fill="#d32f2f"
+ />
+ </svg>
+ <svg class="diff-status-icon changedicon" height="24" width="24">
+ <title>Changed</title>
+ <path d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z" fill="#ffffff"/>
+ <path d="M 12,2 C 6.48,2 2,6.48 2,12 2,17.52 6.48,22 12,22 17.52,22 22,17.52 22,12 22,6.48 17.52,2 12,2 Z m 0,2 c 4.41,0 8,3.59 8,8 0,4.41 -3.59,8 -8,8 C 7.59,20 4,16.41 4,12 4,7.59 7.59,4 12,4 Z m 6.013672,5.0996094 c -0.864639,1.2275146 -1.84046,2.4119546 -2.97461,2.6171876 -1.62753,0.266321 -3.031358,-1.51476 -4.576171,-2.060547 -1.6000305,-0.6291486 -3.2358559,0.547346 -4.4765629,2.294922 v 2.949219 c 0.8441312,-1.258592 1.8238599,-2.395455 2.9472657,-2.613282 1.6489612,-0.286526 3.0751832,1.532994 4.6445312,2.056641 1.587066,0.590903 3.205095,-0.561821 4.435547,-2.294922 z" fill="#ffa000"/>
+ </svg>
+ <!--A default empty svg for spacing. Used in non-diff mode, since in diff mode unchanged symbols are pruned.-->
+ <svg class="diff-status-icon unchangedicon" height="24" width="24">
+ <title>Unchanged</title>
+ </svg>
+ </div>
<!-- Template for trees and leaves -->
<template id="treenode-container">
<li role="treeitem" aria-expanded="false" aria-describedby="infocard-container">
@@ -362,8 +384,12 @@ if ('serviceWorker' in navigator) {
<th class="subhead-2">Icon</th>
<th class="subhead-2">Type</th>
<th class="subhead-2 count">Count</th>
+ <th class="subhead-2 added">Added</th>
+ <th class="subhead-2 removed">Removed</th>
+ <th class="subhead-2 changed">Changed</th>
<th class="subhead-2 size">Total size</th>
<th class="subhead-2 percent">Percent</th>
+
</tr>
</thead>
<tbody>
@@ -376,8 +402,12 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">.bss</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
+
</tr>
<tr class="data-info">
<td>
@@ -387,6 +417,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">.data and .data.*</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -399,6 +432,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">.rodata</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -411,6 +447,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">.data.rel.ro (read-only after relocations)</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -422,6 +461,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">.text</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -434,6 +476,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">Dex non-method entries</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -446,6 +491,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">Dex methods</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -458,6 +506,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">Locale pak entries</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -470,6 +521,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">Non-locale pak entries</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
@@ -482,6 +536,9 @@ if ('serviceWorker' in navigator) {
</td>
<th scope="row">Other entries</th>
<td class="count"></td>
+ <td class="added"></td>
+ <td class="removed"></td>
+ <td class="changed"></td>
<td class="size"></td>
<td class="percent"></td>
</tr>
diff --git a/chromium/tools/binary_size/libsupersize/templates/sw.js b/chromium/tools/binary_size/libsupersize/templates/sw.js
index f1879790109..ea7743c7cd6 100644
--- a/chromium/tools/binary_size/libsupersize/templates/sw.js
+++ b/chromium/tools/binary_size/libsupersize/templates/sw.js
@@ -7,6 +7,9 @@
const cacheName = '{{cache_hash}}';
const filesToCache = [
+ 'caspian_web.wasm.map',
+ 'caspian_web.js',
+ 'caspian_web.wasm',
'favicon.ico',
'viewer.html',
'infocard-ui.js',
@@ -19,6 +22,7 @@ const filesToCache = [
'state.js',
'tree-ui.js',
'tree-worker.js',
+ 'tree-worker-wasm.js',
];
// On install, cache the items in the `filesToCache` list
diff --git a/chromium/tools/binary_size/trybot_commit_size_checker.py b/chromium/tools/binary_size/trybot_commit_size_checker.py
index 515c9c9a749..775ae705408 100755
--- a/chromium/tools/binary_size/trybot_commit_size_checker.py
+++ b/chromium/tools/binary_size/trybot_commit_size_checker.py
@@ -17,10 +17,10 @@ import archive
import diagnose_bloat
import diff
import describe
-import html_report
+import file_format
import models
-_NDJSON_FILENAME = 'supersize_diff.ndjson'
+_SIZEDIFF_FILENAME = 'supersize_diff.sizediff'
_TEXT_FILENAME = 'supersize_diff.txt'
_HTML_REPORT_BASE_URL = (
'https://storage.googleapis.com/chrome-supersize/viewer.html?load_url=')
@@ -28,41 +28,14 @@ _MAX_DEX_METHOD_COUNT_INCREASE = 50
_MAX_NORMALIZED_INCREASE = 16 * 1024
_MAX_PAK_INCREASE = 1024
-_FAILURE_GUIDANCE = """
-Please look at size breakdowns, try to understand the growth, and see if it can
-be mitigated.
-
-There is guidance at:
-
-https://chromium.googlesource.com/chromium/src/+/master/docs/speed/apk_size_regressions.md
-
-If the growth is expected / justified, then you can bypass this bot failure by
-adding "Binary-Size: $JUSTIFICATION" footer to your commit message (must go at
-the bottom of the message, similar to "Bug:").
-
-Here are some examples:
-
-Binary-Size: Increase is due to translations and so cannot be avoided.
-Binary-Size: Increase is due to new images, which are already optimally encoded.
-Binary-Size: Increase is temporary due to a "new way" / "old way" refactoring. \
-It should go away once the "old way" is removed.
-Binary-Size: Increase is temporary and will be reverted before next branch cut.
-Binary-Size: Increase needed to reduce RAM of a common user flow.
-Binary-Size: Increase needed to reduce runtime of a common user flow.
-Binary-Size: Increase needed to implement a feature, and I've already spent a \
-non-trivial amount of time trying to reduce its size.
-"""
-
class _SizeDelta(collections.namedtuple(
- 'SizeDelta', ['name', 'units', 'expected', 'actual', 'details'])):
+ 'SizeDelta', ['name', 'units', 'expected', 'actual'])):
@property
def explanation(self):
ret = '{}: {} {} (max is {} {})'.format(
self.name, self.actual, self.units, self.expected, self.units)
- if self.details and not self.IsAllowable():
- ret += '\n' + self.details
return ret
def IsAllowable(self):
@@ -91,48 +64,35 @@ def _CreateMutableConstantsDelta(symbols):
symbols = symbols.WhereInSection('d').WhereNameMatches(r'\bk[A-Z]|\b[A-Z_]+$')
lines, net_added = _SymbolDiffHelper(symbols)
- if net_added <= 0:
- details = """\
-Symbols within .data that are named like constants (crbug.com/747064).
-"""
- else:
- details = """\
-Detected new symbols within .data that are named like constants.
-Either:
- * Mark the symbols as const, or
- * Rename them.
-
-For more context: https://crbug.com/747064
-"""
-
- if net_added:
- details += """
-Refer to Mutable Constants Diff for list of symbols.
-"""
- return lines, _SizeDelta('Mutable Constants', 'symbols', 0, net_added,
- details)
+ return lines, _SizeDelta('Mutable Constants', 'symbols', 0, net_added)
def _CreateMethodCountDelta(symbols):
- symbols = symbols.WhereInSection(models.SECTION_DEX_METHOD)
- lines, net_added = _SymbolDiffHelper(symbols)
- details = 'Refer to Dex Method Diff for list of added/removed methods.'
+ method_symbols = symbols.WhereInSection(models.SECTION_DEX_METHOD)
+ method_lines, net_method_added = _SymbolDiffHelper(method_symbols)
+ class_symbols = symbols.WhereInSection(
+ models.SECTION_DEX).WhereNameMatches('#').Inverted()
+ class_lines, _ = _SymbolDiffHelper(class_symbols)
+ lines = []
+ if class_lines:
+ lines.append('===== Classes Added & Removed =====')
+ lines.extend(class_lines)
+ lines.extend(['', '']) # empty lines added for clarity
+ if method_lines:
+ lines.append('===== Methods Added & Removed =====')
+ lines.extend(method_lines)
return lines, _SizeDelta('Dex Methods Count', 'methods',
- _MAX_DEX_METHOD_COUNT_INCREASE, net_added, details)
+ _MAX_DEX_METHOD_COUNT_INCREASE, net_method_added)
def _CreateResourceSizesDelta(apk_name, before_dir, after_dir):
sizes_diff = diagnose_bloat.ResourceSizesDiff(apk_name)
sizes_diff.ProduceDiff(before_dir, after_dir)
- details = (
- 'See https://chromium.googlesource.com/chromium/src/+/master/docs/speed/'
- 'binary_size/metrics.md#Normalized-APK-Size '
- 'for an explanation of Normalized APK Size')
return sizes_diff.Summary(), _SizeDelta(
'Normalized APK Size', 'bytes', _MAX_NORMALIZED_INCREASE,
- sizes_diff.summary_stat.value, details)
+ sizes_diff.summary_stat.value)
def _CreateSupersizeDiff(apk_name, before_dir, after_dir):
@@ -153,11 +113,21 @@ def _CreateUncompressedPakSizeDeltas(symbols):
s.section_name == models.SECTION_PAK_NONTRANSLATED)
return [
_SizeDelta('Uncompressed Pak Entry "{}"'.format(pak.full_name), 'bytes',
- _MAX_PAK_INCREASE, pak.after_symbol.size, None)
+ _MAX_PAK_INCREASE, pak.after_symbol.size)
for pak in pak_symbols
]
+def _CreateTestingSymbolsDeltas(symbols):
+ testing_symbols = symbols.WhereIsDex().WhereNameMatches(
+ 'ForTest').WhereDiffStatusIs(models.DIFF_STATUS_ADDED)
+ lines = None
+ if len(testing_symbols):
+ lines = list(describe.GenerateLines(testing_symbols, summarize=False))
+ return lines, _SizeDelta('Added symbols named "ForTest"', 'symbols', 0,
+ len(testing_symbols))
+
+
def _FormatSign(number):
if number > 0:
return '+{}'.format(number)
@@ -214,6 +184,12 @@ def main():
_CreateMutableConstantsDelta(changed_symbols))
size_deltas.add(mutable_constants_delta)
+ # Look for symbols with 'ForTesting' in their name.
+ logging.info('Checking for symbols named "ForTest"')
+ testing_symbols_lines, test_symbols_delta = (
+ _CreateTestingSymbolsDeltas(changed_symbols))
+ size_deltas.add(test_symbols_delta)
+
# Check for uncompressed .pak file entries being added to avoid unnecessary
# bloat.
logging.info('Checking pak symbols')
@@ -225,10 +201,10 @@ def main():
_CreateResourceSizesDelta(args.apk_name, args.before_dir, args.after_dir))
size_deltas.add(resource_sizes_delta)
- # .ndjson can be consumed by the html viewer.
+ # .sizediff can be consumed by the html viewer.
logging.info('Creating HTML Report')
- ndjson_path = os.path.join(args.staging_dir, _NDJSON_FILENAME)
- html_report.BuildReportFromSizeInfo(ndjson_path, delta_size_info)
+ sizediff_path = os.path.join(args.staging_dir, _SIZEDIFF_FILENAME)
+ file_format.SaveDeltaSizeInfo(delta_size_info, sizediff_path)
passing_deltas = set(m for m in size_deltas if m.IsAllowable())
failing_deltas = size_deltas - passing_deltas
@@ -237,15 +213,16 @@ def main():
failing_checks_text = '\n'.join(d.explanation for d in sorted(failing_deltas))
passing_checks_text = '\n'.join(d.explanation for d in sorted(passing_deltas))
checks_text = """\
-FAILING:
+FAILING Checks:
{}
-PASSING:
+PASSING Checks:
{}
-""".format(failing_checks_text, passing_checks_text)
- if failing_deltas:
- checks_text += _FAILURE_GUIDANCE
+To understand what those checks are and how to pass them, see:
+https://chromium.googlesource.com/chromium/src/+/master/docs/speed/binary_size/android_binary_size_trybot.md
+
+""".format(failing_checks_text, passing_checks_text)
status_code = int(bool(failing_deltas))
@@ -255,25 +232,22 @@ PASSING:
if is_roller and mutable_constants_delta not in failing_deltas:
status_code = 0
- summary = '<br>' + '<br>'.join(resource_sizes_lines)
- if 'Empty Resource Sizes Diff' in summary:
- summary = '<br>No size metrics were affected.'
- if failing_deltas:
- summary += '<br><br>Failed Size Checks:<br>'
- summary += failing_checks_text.replace('\n', '<br>')
- summary += '<br>Look at "Size Assertion Results" for guidance.'
-
+ summary = '<br>' + checks_text.replace('\n', '<br>')
links_json = [
{
- 'name': '>>> Size Assertion Results <<<',
- 'lines': checks_text.splitlines(),
+ 'name': '>>> Binary Size Details <<<',
+ 'lines': resource_sizes_lines,
},
{
'name': '>>> Mutable Constants Diff <<<',
'lines': mutable_constants_lines,
},
{
- 'name': '>>> Dex Method Diff <<<',
+ 'name': '>>> "ForTest" Symbols Diff <<<',
+ 'lines': testing_symbols_lines,
+ },
+ {
+ 'name': '>>> Dex Class and Method Diff <<<',
'lines': dex_delta_lines,
},
{
@@ -282,10 +256,10 @@ PASSING:
},
{
'name': '>>> SuperSize HTML Diff <<<',
- 'url': _HTML_REPORT_BASE_URL + '{{' + _NDJSON_FILENAME + '}}',
+ 'url': _HTML_REPORT_BASE_URL + '{{' + _SIZEDIFF_FILENAME + '}}',
},
]
- # Remove empty diffs (Mutable Constants or Dex Method).
+ # Remove empty diffs (Mutable Constants, Dex Method, ...).
links_json = [o for o in links_json if o.get('lines') or o.get('url')]
binary_size_listings = []
@@ -303,7 +277,7 @@ PASSING:
binary_size_extras = [
{
'text': 'SuperSize HTML Diff',
- 'url': _HTML_REPORT_BASE_URL + '{{' + _NDJSON_FILENAME + '}}',
+ 'url': _HTML_REPORT_BASE_URL + '{{' + _SIZEDIFF_FILENAME + '}}',
},
{
'text': 'SuperSize Text Diff',
@@ -319,7 +293,7 @@ PASSING:
results_json = {
'status_code': status_code,
'summary': summary,
- 'archive_filenames': [_NDJSON_FILENAME, _TEXT_FILENAME],
+ 'archive_filenames': [_SIZEDIFF_FILENAME, _TEXT_FILENAME],
'links': links_json,
'gerrit_plugin_details': binary_size_plugin_json,
}
diff --git a/chromium/tools/bisect_repackage/bisect_repackage.py b/chromium/tools/bisect_repackage/bisect_repackage.py
index 9a8500a3fa7..ac35986e1e5 100644
--- a/chromium/tools/bisect_repackage/bisect_repackage.py
+++ b/chromium/tools/bisect_repackage/bisect_repackage.py
@@ -55,7 +55,6 @@ CHROME_REQUIRED_FILES = {
'nacl_helper_bootstrap',
'nacl_helper_nonsfi',
'nacl_irt_x86_64.nexe',
- 'natives_blob.bin',
'pnacl/',
'product_logo_48.png',
'resources/',
@@ -80,7 +79,6 @@ CHROME_REQUIRED_FILES = {
'libGLESv2.dll',
'locales',
'nacl_irt_x86_64.nexe',
- 'natives_blob.bin',
'PepperFlash',
'resources.pak',
'SecondaryTile.png',
diff --git a/chromium/tools/cfi/blacklist.txt b/chromium/tools/cfi/blacklist.txt
index cbf922e5e43..8ece9727218 100644
--- a/chromium/tools/cfi/blacklist.txt
+++ b/chromium/tools/cfi/blacklist.txt
@@ -166,6 +166,7 @@ src:*components/os_crypt/*
src:*content/browser/accessibility/browser_accessibility_auralinux.cc
src:*ui/accessibility/platform/ax_platform_node_auralinux.cc
src:*ui/accessibility/platform/ax_platform_atk_hyperlink.cc
+src:*ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
src:*chrome/browser/ui/zoom/chrome_zoom_level_prefs.cc
src:*third_party/webrtc/modules/desktop_capture/linux/x_server_pixel_buffer.cc
@@ -189,6 +190,8 @@ src:*third_party/breakpad/breakpad/src/common/linux/http_upload.cc
# Indirect call to Xlib.
fun:*XImageDeleter*
+src:*mojo/public/c/system/thunks.cc
+
# The follow entries are speculatively disabled. They're included in the
# chromium build and include calls to dynamically resolved symbols; however,
# they do not trigger cfi-icall failures in unit tests or normal chrome usage.
diff --git a/chromium/tools/checkteamtags/checkteamtags.py b/chromium/tools/checkteamtags/checkteamtags.py
index f4d8695665b..f168a4f9cbe 100755
--- a/chromium/tools/checkteamtags/checkteamtags.py
+++ b/chromium/tools/checkteamtags/checkteamtags.py
@@ -11,13 +11,14 @@ import json
import logging
import optparse
import os
+import posixpath
import re
import sys
import urllib2
from collections import defaultdict
-from owners_file_tags import parse
+from owners_file_tags import parse, uniform_path_format
DEFAULT_MAPPING_URL = \
@@ -105,7 +106,9 @@ def validate_mappings(options, args):
deleted.append(os.path.dirname(rel))
# Update component mapping with current changes.
- for rel_path, tags in affected.iteritems():
+ for rel_path_native, tags in affected.iteritems():
+ # Make the path use forward slashes always.
+ rel_path = uniform_path_format(rel_path_native)
component = tags.get('component')
team = tags.get('team')
os_tag = tags.get('os')
@@ -147,8 +150,8 @@ def validate_mappings(options, args):
warnings = ''
for component, teams in affected_component_to_teams.iteritems():
if len(teams) > 1:
- warnings += '\nComponent %s will map to %s' % (
- component, ', '.join(teams))
+ warnings += ('\nThe set of all OWNERS files with COMPONENT: %s list '
+ "multiple TEAM's: %s") % (component, ', '.join(teams))
if warnings:
warnings = ('Are you sure these are correct? After landing this patch:%s'
% warnings)
diff --git a/chromium/tools/checkteamtags/extract_components_test.py b/chromium/tools/checkteamtags/extract_components_test.py
index a9af972d594..e0debb4bb30 100644
--- a/chromium/tools/checkteamtags/extract_components_test.py
+++ b/chromium/tools/checkteamtags/extract_components_test.py
@@ -183,7 +183,7 @@ class ExtractComponentsTest(unittest.TestCase):
with mock.patch('sys.stdout', saved_output):
extract_components.main(['%prog', '-v', 'src'])
output = saved_output.getvalue()
- self.assertIn('./OWNERS has no COMPONENT tag', output)
+ self.assertIn('OWNERS has no COMPONENT tag', output)
def testCoverage(self):
with mock.patch('extract_components.scrape_owners', return_value={
@@ -253,4 +253,4 @@ class ExtractComponentsTest(unittest.TestCase):
self.assertIn('OWNERS files that have missing team and component '
'by depth:', output)
self.assertIn('at depth 0', output)
- self.assertIn('[\'./OWNERS\']', output)
+ self.assertIn('[\'OWNERS\']', output)
diff --git a/chromium/tools/checkteamtags/owners_file_tags.py b/chromium/tools/checkteamtags/owners_file_tags.py
index 68fe8ca86aa..77ac4ef3a5f 100644
--- a/chromium/tools/checkteamtags/owners_file_tags.py
+++ b/chromium/tools/checkteamtags/owners_file_tags.py
@@ -3,11 +3,16 @@
# found in the LICENSE file.
import os
+import posixpath
import re
from collections import defaultdict
+def uniform_path_format(native_path):
+ """Alters the path if needed to be separated by forward slashes."""
+ return posixpath.normpath(native_path.replace(os.sep, posixpath.sep))
+
def parse(filename):
"""Searches the file for lines that start with `# TEAM:` or `# COMPONENT:`.
@@ -77,10 +82,10 @@ def aggregate_components_from_owners(all_owners_data, root):
dir_missing_info_by_depth = defaultdict(list)
dir_to_team = {}
for rel_dirname, owners_data in all_owners_data.iteritems():
- # We apply relpath to remove any possible `.` and `..` chunks and make
- # counting separators work correctly as a means of obtaining the file_depth.
- rel_path = os.path.relpath(rel_dirname, root)
- file_depth = 0 if rel_path == '.' else rel_path.count(os.path.sep) + 1
+ # Normalize this relative path to posix-style to make counting separators
+ # work correctly as a means of obtaining the file_depth.
+ rel_path = uniform_path_format(os.path.relpath(rel_dirname, root))
+ file_depth = 0 if rel_path == '.' else rel_path.count(posixpath.sep) + 1
num_total += 1
num_total_by_depth[file_depth] += 1
component = owners_data.get('component')
@@ -102,7 +107,7 @@ def aggregate_components_from_owners(all_owners_data, root):
component]['depth']:
topmost_team[component] = {'depth': file_depth, 'team': team}
else:
- rel_owners_path = os.path.join(rel_dirname, 'OWNERS')
+ rel_owners_path = uniform_path_format(os.path.join(rel_dirname, 'OWNERS'))
warnings.append('%s has no COMPONENT tag' % rel_owners_path)
if not team and not os_tag:
dir_missing_info_by_depth[file_depth].append(rel_owners_path)
@@ -175,7 +180,7 @@ def scrape_owners(root, include_subdirs):
""" Find the value of tag in the nearest ancestor that defines it."""
ancestor = os.path.dirname(dirname)
while ancestor:
- rel_ancestor = os.path.relpath(ancestor, root)
+ rel_ancestor = uniform_path_format(os.path.relpath(ancestor, root))
if rel_ancestor in data and data[rel_ancestor].get(tag):
return data[rel_ancestor][tag]
if rel_ancestor == '.':
@@ -186,7 +191,7 @@ def scrape_owners(root, include_subdirs):
for dirname, _, files in os.walk(root):
# Proofing against windows casing oddities.
owners_file_names = [f for f in files if f.upper() == 'OWNERS']
- rel_dirname = os.path.relpath(dirname, root)
+ rel_dirname = uniform_path_format(os.path.relpath(dirname, root))
if owners_file_names or include_subdirs:
if owners_file_names:
owners_full_path = os.path.join(dirname, owners_file_names[0])
diff --git a/chromium/tools/chrome_proxy/webdriver/html5.py b/chromium/tools/chrome_proxy/webdriver/html5.py
index b08edc5cff0..36fdf32fe95 100644
--- a/chromium/tools/chrome_proxy/webdriver/html5.py
+++ b/chromium/tools/chrome_proxy/webdriver/html5.py
@@ -8,7 +8,6 @@ from common import IntegrationTest
class HTML5(IntegrationTest):
-
# This test site has a div with id="pointsPanel" that is rendered if the
# browser is capable of using HTML5.
def testHTML5(self):
diff --git a/chromium/tools/chrome_proxy/webdriver/video.py b/chromium/tools/chrome_proxy/webdriver/video.py
index 720975a0c59..653f2a1c9cf 100644
--- a/chromium/tools/chrome_proxy/webdriver/video.py
+++ b/chromium/tools/chrome_proxy/webdriver/video.py
@@ -74,7 +74,7 @@ class Video(IntegrationTest):
def testRangeRequest(self):
with TestDriver() as t:
t.AddChromeArg('--enable-spdy-proxy-auth')
- t.LoadURL('http://check.googlezip.net/connect')
+ t.LoadURL('http://check.googlezip.net/report')
time.sleep(2) # wait for page load
t.ExecuteJavascript(
'var xhr = new XMLHttpRequest();'
diff --git a/chromium/tools/clang/scripts/build.py b/chromium/tools/clang/scripts/build.py
index f3e047a9b41..dafb1bb185e 100755
--- a/chromium/tools/clang/scripts/build.py
+++ b/chromium/tools/clang/scripts/build.py
@@ -52,6 +52,9 @@ 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'
+
+
def RunCommand(command, msvc_arch=None, env=None, fail_hard=True):
"""Run command and return success (True) or failure; or if fail_hard is
@@ -104,9 +107,11 @@ def CheckoutLLVM(commit, dir):
if os.path.isdir(dir):
os.chdir(dir)
# git diff-index --quiet returns success when there is no diff.
+ # 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', 'checkout', commit], fail_hard=False)
+ and RunCommand(['git', 'show', FIRST_LLVM_COMMIT], fail_hard=False)):
return
# If we can't use the current repo, delete it.
@@ -114,12 +119,7 @@ def CheckoutLLVM(commit, dir):
print('Removing %s.' % dir)
RmTree(dir)
- # Do a somewhat shallow clone to save on bandwidth for GitHub and for us.
- # The depth was chosen to be deep enough to contain the version we're
- # building, and shallow enough to save significantly on bandwidth compared to
- # a full clone.
- clone_cmd = ['git', 'clone', '--depth', '10000',
- 'https://github.com/llvm/llvm-project/', dir]
+ clone_cmd = ['git', 'clone', 'https://github.com/llvm/llvm-project/', dir]
if RunCommand(clone_cmd, fail_hard=False):
os.chdir(dir)
@@ -147,12 +147,12 @@ def GetLatestLLVMCommit():
return ref['object']['sha']
-def GetSvnRevision(commit):
- """Get the svn revision corresponding to a git commit in the LLVM repo."""
- commit = json.loads(UrlOpen(('https://api.github.com/repos/llvm/'
- 'llvm-project/git/commits/' + commit)))
- revision = re.search("llvm-svn: ([0-9]+)$", commit['message']).group(1)
- return revision
+def GetCommitCount(commit):
+ """Get the number of commits from FIRST_LLVM_COMMIT to commit.
+
+ Needs to be called from inside the git repository dir."""
+ return subprocess.check_output(['git', 'rev-list', '--count',
+ FIRST_LLVM_COMMIT + '..' + commit]).rstrip()
def DeleteChromeToolsShim():
@@ -371,6 +371,9 @@ def main():
return 1
+ # Don't buffer stdout, so that print statements are immediately flushed.
+ sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+
# The gnuwin package also includes curl, which is needed to interact with the
# github API below.
# TODO(crbug.com/965937): Use urllib once our Python is recent enough, and
@@ -384,11 +387,13 @@ def main():
global CLANG_REVISION, PACKAGE_VERSION
if args.llvm_force_head_revision:
CLANG_REVISION = GetLatestLLVMCommit()
- PACKAGE_VERSION = '%s-%s-0' % (GetSvnRevision(CLANG_REVISION),
- CLANG_REVISION[:8])
- # Don't buffer stdout, so that print statements are immediately flushed.
- sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+ if not args.skip_checkout:
+ CheckoutLLVM(CLANG_REVISION, LLVM_DIR);
+
+ if args.llvm_force_head_revision:
+ PACKAGE_VERSION = 'n%s-%s-0' % (GetCommitCount(CLANG_REVISION),
+ CLANG_REVISION[:8])
print('Locally building clang %s...' % PACKAGE_VERSION)
WriteStampFile('', STAMP_FILE)
@@ -397,8 +402,6 @@ def main():
AddCMakeToPath(args)
DeleteChromeToolsShim()
- if not args.skip_checkout:
- CheckoutLLVM(CLANG_REVISION, LLVM_DIR);
if args.skip_build:
return 0
@@ -424,7 +427,7 @@ def main():
targets = 'AArch64;ARM;Mips;PowerPC;SystemZ;WebAssembly;X86'
- projects = 'clang;compiler-rt;lld;chrometools'
+ projects = 'clang;compiler-rt;lld;chrometools;clang-tools-extra'
if sys.platform == 'darwin':
# clang needs libc++, else -stdlib=libc++ won't find includes
@@ -609,6 +612,10 @@ def main():
# C++-y "Hello World" program only resulted in 14% faster builds.)
# See https://crbug.com/966403#c16 for all numbers.
#
+ # NOTE: Tidy uses binaries built with this profile, but doesn't seem to
+ # gain much from it. If tidy's execution time becomes a concern, it might
+ # be good to investigate that.
+ #
# TODO(hans): Enhance the training, perhaps by including preprocessed code
# from more platforms, and by doing some linking so that lld can benefit
# from PGO as well. Perhaps the training could be done asynchronously by
diff --git a/chromium/tools/clang/scripts/download_lld_mac.py b/chromium/tools/clang/scripts/download_lld_mac.py
deleted file mode 100755
index 3bb2b68a7ef..00000000000
--- a/chromium/tools/clang/scripts/download_lld_mac.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Script to download lld/mac from google storage."""
-
-import os
-import re
-import subprocess
-import sys
-
-import update
-
-LLVM_BUILD_DIR = update.LLVM_BUILD_DIR
-LLD_LINK_PATH = os.path.join(LLVM_BUILD_DIR, 'bin', 'lld-link')
-
-
-def AlreadyUpToDate():
- if not os.path.exists(LLD_LINK_PATH):
- return False
- lld_rev = subprocess.check_output([LLD_LINK_PATH, '--version'])
- # Version output example:
- # LLD 9.0.0 (https://github.com/llvm/llvm-project/ 342571e8d6eb1afb151ae1103431798e3d24054f)
- return (re.match(r'LLD.*\(.*git.*llvm.* ([0-9a-f]+)\)', lld_rev).group(1) ==
- update.CLANG_REVISION)
-
-
-def main():
- if AlreadyUpToDate():
- return 0
- remote_path = '%s/Mac/lld-%s.tgz' % (update.CDS_URL, update.PACKAGE_VERSION)
- update.DownloadAndUnpack(remote_path, update.LLVM_BUILD_DIR)
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/chromium/tools/clang/scripts/download_objdump.py b/chromium/tools/clang/scripts/download_objdump.py
index f892227f51a..9ecae96129d 100755
--- a/chromium/tools/clang/scripts/download_objdump.py
+++ b/chromium/tools/clang/scripts/download_objdump.py
@@ -3,47 +3,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Script to download llvm-objdump and related utils from google storage."""
-
-from __future__ import print_function
-
-import os
-import re
-import subprocess
import sys
-import urllib2
import update
-LLVM_BUILD_DIR = update.LLVM_BUILD_DIR
-OBJDUMP_PATH = os.path.join(LLVM_BUILD_DIR, 'bin', 'llvm-objdump')
-STAMP_FILE = os.path.normpath(
- os.path.join(LLVM_BUILD_DIR, 'llvmobjdump_build_revision'))
-
-
-def AlreadyUpToDate():
- if not os.path.exists(OBJDUMP_PATH) or not os.path.exists(STAMP_FILE):
- return False
- stamp = update.ReadStampFile(STAMP_FILE)
- return stamp.rstrip() == update.PACKAGE_VERSION
-
-
-def DownloadAndUnpackLlvmObjDumpPackage(platform):
- cds_file = 'llvmobjdump-%s.tgz' % update.PACKAGE_VERSION
- cds_full_url = update.GetPlatformUrlPrefix(platform) + cds_file
- try:
- update.DownloadAndUnpack(cds_full_url, update.LLVM_BUILD_DIR)
- except urllib2.URLError:
- print('Failed to download prebuilt utils %s' % cds_file)
- print('Use --force-local-build if you want to build locally.')
- print('Exiting.')
- sys.exit(1)
-
-
-def main():
- if not AlreadyUpToDate():
- DownloadAndUnpackLlvmObjDumpPackage(sys.platform)
- return 0
-
+# TODO(hans): Remove this forwarding hack after all callers of this script have
+# been updated to call update.py instead.
if __name__ == '__main__':
- sys.exit(main())
+ sys.argv = [sys.argv[0], '--package=objdump']
+ sys.exit(update.main())
diff --git a/chromium/tools/clang/scripts/package.py b/chromium/tools/clang/scripts/package.py
index 5d7c1f92c0a..6b3fc376a3a 100755
--- a/chromium/tools/clang/scripts/package.py
+++ b/chromium/tools/clang/scripts/package.py
@@ -104,7 +104,7 @@ def MaybeUpload(do_upload, filename, platform, extra_gsutil_args=[]):
print('gsutil %s' % ' '.join(gsutil_args))
-def UploadPDBToSymbolServer():
+def UploadPDBsToSymbolServer(binaries):
assert sys.platform == 'win32'
# Upload PDB and binary to the symbol server on Windows. Put them into the
# chromium-browser-symsrv bucket, since chrome devs have that in their
@@ -117,7 +117,7 @@ def UploadPDBToSymbolServer():
# can compute this ABCDEFAB01234 string for us, so use that.
# The .ex_ instead of .exe at the end means that the file is compressed.
# PDB:
- # gs://chromium-browser-symsrv/clang-cl.exe.pdb/AABBCCDD/clang-cl.dll.pd_
+ # gs://chromium-browser-symsrv/clang-cl.exe.pdb/AABBCCDD/clang-cl.exe.pd_
# AABBCCDD here is computed from the output of
# dumpbin /all mybinary.exe | find "Format: RSDS"
# but tools/symsrc/pdb_fingerprint_from_img.py can compute it already, so
@@ -125,7 +125,6 @@ def UploadPDBToSymbolServer():
sys.path.insert(0, os.path.join(CHROMIUM_DIR, 'tools', 'symsrc'))
import img_fingerprint, pdb_fingerprint_from_img
- binaries = [ 'bin/clang-cl.exe', 'bin/lld-link.exe' ]
for binary_path in binaries:
binary_path = os.path.join(LLVM_RELEASE_DIR, binary_path)
binary_id = img_fingerprint.GetImgFingerprint(binary_path)
@@ -239,6 +238,10 @@ def main():
# Profile runtime (used by profiler and code coverage).
'lib/clang/$V/lib/darwin/libclang_rt.profile_iossim.a',
'lib/clang/$V/lib/darwin/libclang_rt.profile_osx.a',
+
+ # UndefinedBehaviorSanitizer runtime.
+ 'lib/clang/$V/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib',
+ 'lib/clang/$V/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib',
])
elif sys.platform.startswith('linux'):
want.extend([
@@ -446,6 +449,17 @@ def main():
filter=PrintTarProgress)
MaybeUpload(args.upload, objdumpdir + '.tgz', platform)
+ # Zip up clang-tidy for users who opt into it, and Tricium.
+ clang_tidy_dir = 'clang-tidy-' + stamp
+ shutil.rmtree(clang_tidy_dir, ignore_errors=True)
+ os.makedirs(os.path.join(clang_tidy_dir, 'bin'))
+ shutil.copy(os.path.join(LLVM_RELEASE_DIR, 'bin', 'clang-tidy' + exe_ext),
+ os.path.join(clang_tidy_dir, 'bin'))
+ with tarfile.open(clang_tidy_dir + '.tgz', 'w:gz') as tar:
+ tar.add(os.path.join(clang_tidy_dir, 'bin'), arcname='bin',
+ filter=PrintTarProgress)
+ MaybeUpload(args.upload, clang_tidy_dir + '.tgz', platform)
+
# On Mac, lld isn't part of the main zip. Upload it in a separate zip.
if sys.platform == 'darwin':
llddir = 'lld-' + stamp
@@ -487,8 +501,30 @@ def main():
filter=PrintTarProgress)
MaybeUpload(args.upload, translation_unit_dir + '.tgz', platform)
+ # Zip up the libclang binaries.
+ libclang_dir = 'libclang-' + stamp
+ shutil.rmtree(libclang_dir, ignore_errors=True)
+ os.makedirs(os.path.join(libclang_dir, 'bin'))
+ os.makedirs(os.path.join(libclang_dir, 'bindings', 'python', 'clang'))
+ if sys.platform == 'win32':
+ shutil.copy(os.path.join(LLVM_RELEASE_DIR, 'bin', 'libclang.dll'),
+ os.path.join(libclang_dir, 'bin'))
+ for filename in ['__init__.py', 'cindex.py', 'enumerations.py']:
+ shutil.copy(os.path.join(LLVM_DIR, 'clang', 'bindings', 'python', 'clang',
+ filename),
+ os.path.join(libclang_dir, 'bindings', 'python', 'clang'))
+ tar_entries = ['bin', 'bindings' ]
+ with tarfile.open(libclang_dir + '.tgz', 'w:gz') as tar:
+ for entry in tar_entries:
+ tar.add(os.path.join(libclang_dir, entry), arcname=entry,
+ filter=PrintTarProgress)
+ MaybeUpload(args.upload, libclang_dir + '.tgz', platform)
+
if sys.platform == 'win32' and args.upload:
- UploadPDBToSymbolServer()
+ binaries = [f for f in want if f.endswith('.exe') or f.endswith('.dll')]
+ assert 'bin/clang-cl.exe' in binaries
+ assert 'bin/lld-link.exe' in binaries
+ UploadPDBsToSymbolServer(binaries)
# FIXME: Warn if the file already exists on the server.
diff --git a/chromium/tools/clang/scripts/update.py b/chromium/tools/clang/scripts/update.py
index 2bc1145ae25..5205546def3 100755
--- a/chromium/tools/clang/scripts/update.py
+++ b/chromium/tools/clang/scripts/update.py
@@ -9,7 +9,9 @@
It can also be run stand-alone as a convenient way of installing a well-tested
near-tip-of-tree clang version:
- $ curl -s https://raw.githubusercontent.com/chromium/chromium/master/tools/clang/scripts/update.py | python - --clang-dir=.
+ $ curl -s https://raw.githubusercontent.com/chromium/chromium/master/tools/clang/scripts/update.py | python - --output-dir=/tmp/clang
+
+(Note that the output dir may be deleted and re-created if it exists.)
"""
# TODO: Running stand-alone won't work on Windows due to the dia dll copying.
@@ -37,8 +39,8 @@ import zipfile
# Do NOT CHANGE this if you don't know what you're doing -- see
# https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md
# Reverting problematic clang rolls is safe, though.
-CLANG_REVISION = '64a362e7216a43e3ad44e50a89265e72aeb14294'
-CLANG_SVN_REVISION = '373424'
+CLANG_REVISION = 'c2443155a0fb245c8f17f2c1c72b6ea391e86e81'
+CLANG_SVN_REVISION = 'n332890'
CLANG_SUB_REVISION = 1
PACKAGE_VERSION = '%s-%s-%s' % (CLANG_SVN_REVISION, CLANG_REVISION[:8],
@@ -167,14 +169,29 @@ def GetPlatformUrlPrefix(platform):
return CDS_URL + '/Linux_x64/'
-def DownloadAndUnpackClangPackage(platform, output_dir, path_prefixes=None):
+def DownloadAndUnpackPackage(package_file, output_dir):
+ cds_file = "%s-%s.tgz" % (package_file, PACKAGE_VERSION)
+ cds_full_url = GetPlatformUrlPrefix(sys.platform) + cds_file
+ try:
+ DownloadAndUnpack(cds_full_url, output_dir)
+ except URLError:
+ print('Failed to download prebuilt clang package %s' % cds_file)
+ print('Use build.py if you want to build locally.')
+ print('Exiting.')
+ sys.exit(1)
+
+
+# TODO(hans): Create a clang-win-runtime package instead.
+def DownloadAndUnpackClangWinRuntime(output_dir):
cds_file = "clang-%s.tgz" % PACKAGE_VERSION
- cds_full_url = GetPlatformUrlPrefix(platform) + cds_file
+ cds_full_url = GetPlatformUrlPrefix('win32') + cds_file
+ path_prefixes = [ 'lib/clang/' + RELEASE_VERSION + '/lib/',
+ 'bin/llvm-symbolizer.exe' ]
try:
DownloadAndUnpack(cds_full_url, output_dir, path_prefixes)
except URLError:
print('Failed to download prebuilt clang %s' % cds_file)
- print('Use --force-local-build if you want to build locally.')
+ print('Use build.py if you want to build locally.')
print('Exiting.')
sys.exit(1)
@@ -231,19 +248,46 @@ def CopyDiaDllTo(target_dir):
CopyFile(dia_dll, target_dir)
-def UpdateClang():
- GCLIENT_CONFIG = os.path.join(os.path.dirname(CHROMIUM_DIR), '.gclient')
+def UpdatePackage(package_name):
+ stamp_file = None
+ package_file = None
+
+ stamp_file = os.path.join(LLVM_BUILD_DIR, package_name + '_revision')
+ if package_name == 'clang':
+ stamp_file = STAMP_FILE
+ package_file = 'clang'
+ elif package_name == 'lld_mac':
+ package_file = 'lld'
+ if sys.platform != 'darwin':
+ print('The lld_mac package cannot be downloaded on non-macs.')
+ print('On non-mac, lld is included in the clang package.')
+ return 1
+ elif package_name == 'objdump':
+ package_file = 'llvmobjdump'
+ elif package_name == 'translation_unit':
+ package_file = 'translation_unit'
+ elif package_name == 'coverage_tools':
+ stamp_file = os.path.join(LLVM_BUILD_DIR, 'cr_coverage_revision')
+ package_file = 'llvm-code-coverage'
+ elif package_name == 'libclang':
+ package_file = 'libclang'
+ else:
+ print('Unknown package: "%s".' % package_name)
+ return 1
- # Read target_os from .gclient so we know which non-native runtimes we need.
- # TODO(pcc): See if we can download just the runtimes instead of the entire
- # clang package, and do that from DEPS instead of here.
+ assert stamp_file is not None
+ assert package_file is not None
+
+ # TODO(hans): Create a clang-win-runtime package and use separate DEPS hook.
target_os = []
- try:
- env = {}
- execfile(GCLIENT_CONFIG, env, env)
- target_os = env.get('target_os', target_os)
- except:
- pass
+ if package_name == 'clang':
+ try:
+ GCLIENT_CONFIG = os.path.join(os.path.dirname(CHROMIUM_DIR), '.gclient')
+ env = {}
+ execfile(GCLIENT_CONFIG, env, env)
+ target_os = env.get('target_os', target_os)
+ except:
+ pass
if os.path.exists(OLD_STAMP_FILE):
# Delete the old stamp file so it doesn't look like an old version of clang
@@ -252,34 +296,35 @@ def UpdateClang():
os.remove(OLD_STAMP_FILE)
expected_stamp = ','.join([PACKAGE_VERSION] + target_os)
- if ReadStampFile(STAMP_FILE) == expected_stamp:
+ if ReadStampFile(stamp_file) == expected_stamp:
return 0
- if os.path.exists(LLVM_BUILD_DIR):
+ # Updating the main clang package nukes the output dir. Any other packages
+ # need to be updated *after* the clang package.
+ if package_name == 'clang' and os.path.exists(LLVM_BUILD_DIR):
RmTree(LLVM_BUILD_DIR)
- DownloadAndUnpackClangPackage(sys.platform, LLVM_BUILD_DIR)
- if 'win' in target_os:
- # When doing win/cross builds on other hosts, get the Windows runtime
- # libraries, and llvm-symbolizer.exe (needed in asan builds).
- path_prefixes = [ 'lib/clang/' + RELEASE_VERSION + '/lib/',
- 'bin/llvm-symbolizer.exe' ]
- DownloadAndUnpackClangPackage('win32', LLVM_BUILD_DIR,
- path_prefixes=path_prefixes)
- if sys.platform == 'win32':
- CopyDiaDllTo(os.path.join(LLVM_BUILD_DIR, 'bin'))
- WriteStampFile(expected_stamp, STAMP_FILE)
+ DownloadAndUnpackPackage(package_file, LLVM_BUILD_DIR)
+
+ if package_name == 'clang':
+ if sys.platform == 'win32':
+ CopyDiaDllTo(os.path.join(LLVM_BUILD_DIR, 'bin'))
+ if 'win' in target_os:
+ # When doing win/cross builds on other hosts, get the Windows runtime
+ # libraries, and llvm-symbolizer.exe (needed in asan builds).
+ DownloadAndUnpackClangWinRuntime(LLVM_BUILD_DIR)
+ WriteStampFile(expected_stamp, stamp_file)
return 0
def main():
- # TODO: Add an argument to download optional packages and remove the various
- # download_ scripts we currently have for that.
-
parser = argparse.ArgumentParser(description='Update clang.')
- parser.add_argument('--clang-dir',
- help='Where to extract the clang package.')
+ parser.add_argument('--output-dir',
+ help='Where to extract the package.')
+ parser.add_argument('--package',
+ help='What package to update (default: clang)',
+ default='clang')
parser.add_argument('--force-local-build', action='store_true',
help='(no longer used)')
parser.add_argument('--print-revision', action='store_true',
@@ -324,12 +369,12 @@ def main():
print('--llvm-force-head-revision can only be used for --print-revision')
return 1
- if args.clang_dir:
+ if args.output_dir:
global LLVM_BUILD_DIR, STAMP_FILE
- LLVM_BUILD_DIR = os.path.abspath(args.clang_dir)
+ LLVM_BUILD_DIR = os.path.abspath(args.output_dir)
STAMP_FILE = os.path.join(LLVM_BUILD_DIR, 'cr_build_revision')
- return UpdateClang()
+ return UpdatePackage(args.package)
if __name__ == '__main__':
diff --git a/chromium/tools/clang/scripts/upload_revision.py b/chromium/tools/clang/scripts/upload_revision.py
index 5f0a53f3ded..367dc7bd71a 100755
--- a/chromium/tools/clang/scripts/upload_revision.py
+++ b/chromium/tools/clang/scripts/upload_revision.py
@@ -18,7 +18,8 @@ import shutil
import subprocess
import sys
-from build import GetSvnRevision
+from build import GetCommitCount, CheckoutLLVM, LLVM_DIR
+from update import CHROMIUM_DIR
# Path constants.
THIS_DIR = os.path.dirname(__file__)
@@ -32,7 +33,7 @@ def PatchRevision(clang_git_revision, clang_svn_revision, clang_sub_revision):
content = f.read()
m = re.search("CLANG_REVISION = '([0-9a-f]+)'", content)
clang_old_git_revision = m.group(1)
- m = re.search("CLANG_SVN_REVISION = '([0-9]+)'", content)
+ 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)
@@ -40,7 +41,7 @@ def PatchRevision(clang_git_revision, clang_svn_revision, clang_sub_revision):
content = re.sub("CLANG_REVISION = '[0-9a-f]+'",
"CLANG_REVISION = '{}'".format(clang_git_revision),
content, count=1)
- content = re.sub("CLANG_SVN_REVISION = '[0-9]+'",
+ content = re.sub("CLANG_SVN_REVISION = 'n[0-9]+'",
"CLANG_SVN_REVISION = '{}'".format(clang_svn_revision),
content, count=1)
content = re.sub("CLANG_SUB_REVISION = [0-9]+",
@@ -66,10 +67,14 @@ def main():
args = parser.parse_args()
clang_git_revision = args.clang_git_revision[0]
- clang_svn_revision = GetSvnRevision(clang_git_revision)
+
+ # To get the commit count, we need a checkout.
+ CheckoutLLVM(clang_git_revision, LLVM_DIR);
+ clang_svn_revision = 'n' + GetCommitCount(clang_git_revision)
clang_sub_revision = args.clang_sub_revision
# Needs shell=True on Windows due to git.bat in depot_tools.
+ os.chdir(CHROMIUM_DIR)
git_revision = subprocess.check_output(
["git", "rev-parse", "origin/master"], shell=is_win).strip()
@@ -95,7 +100,7 @@ def main():
old_rev_string, rev_string, commit_message)])
Git(["cl", "upload", "-f", "--bypass-hooks"])
- Git(["cl", "try", "-B", "luci.chromium.try",
+ Git(["cl", "try", "-B", "chromium/try",
"-b", "linux_upload_clang",
"-b", "mac_upload_clang",
"-b", "win_upload_clang",
diff --git a/chromium/tools/clang/translation_unit/TranslationUnitGenerator.cpp b/chromium/tools/clang/translation_unit/TranslationUnitGenerator.cpp
index 64f3e912efd..b402137a205 100644
--- a/chromium/tools/clang/translation_unit/TranslationUnitGenerator.cpp
+++ b/chromium/tools/clang/translation_unit/TranslationUnitGenerator.cpp
@@ -248,8 +248,7 @@ class CompilationIndexerAction : public clang::PreprocessorFrontendAction {
};
void CompilationIndexerAction::ExecuteAction() {
- vector<clang::FrontendInputFile> inputs =
- getCompilerInstance().getFrontendOpts().Inputs;
+ auto inputs = getCompilerInstance().getFrontendOpts().Inputs;
assert(inputs.size() == 1);
main_source_file_ = inputs[0].getFile();
diff --git a/chromium/tools/code_coverage/OWNERS b/chromium/tools/code_coverage/OWNERS
index 9d226754168..c67e1ea3801 100644
--- a/chromium/tools/code_coverage/OWNERS
+++ b/chromium/tools/code_coverage/OWNERS
@@ -1,5 +1,7 @@
liaoyuke@chromium.org
+robertocn@chromium.org
+nodir@chromium.org
mmoroz@chromium.org
inferno@chromium.org
-# COMPONENT: Tools>CodeCoverage
+# COMPONENT: Infra>Test>CodeCoverage
# TEAM: code-coverage@chromium.org
diff --git a/chromium/tools/code_coverage/coverage.py b/chromium/tools/code_coverage/coverage.py
index 8573b1aa26d..126f48c7309 100755
--- a/chromium/tools/code_coverage/coverage.py
+++ b/chromium/tools/code_coverage/coverage.py
@@ -84,7 +84,7 @@ sys.path.append(
os.path.join(
os.path.dirname(__file__), os.path.pardir, os.path.pardir, 'tools',
'clang', 'scripts'))
-from update import LLVM_BUILD_DIR
+import update
sys.path.append(
os.path.join(
@@ -93,11 +93,10 @@ sys.path.append(
from collections import defaultdict
import coverage_utils
-import update_clang_coverage_tools
# Absolute path to the code coverage tools binary. These paths can be
# overwritten by user specified coverage tool paths.
-LLVM_BIN_DIR = os.path.join(LLVM_BUILD_DIR, 'bin')
+LLVM_BIN_DIR = os.path.join(update.LLVM_BUILD_DIR, 'bin')
LLVM_COV_PATH = os.path.join(LLVM_BIN_DIR, 'llvm-cov')
LLVM_PROFDATA_PATH = os.path.join(LLVM_BIN_DIR, 'llvm-profdata')
@@ -158,7 +157,7 @@ def _ConfigureLLVMCoverageTools(args):
LLVM_COV_PATH = os.path.join(llvm_bin_dir, 'llvm-cov')
LLVM_PROFDATA_PATH = os.path.join(llvm_bin_dir, 'llvm-profdata')
else:
- update_clang_coverage_tools.DownloadCoverageToolsIfNeeded()
+ update.UpdatePackage('coverage_tools')
coverage_tools_exist = (
os.path.exists(LLVM_COV_PATH) and os.path.exists(LLVM_PROFDATA_PATH))
@@ -932,7 +931,7 @@ def Main():
# Setup coverage binaries even when script is called with empty params. This
# is used by coverage bot for initial setup.
if len(sys.argv) == 1:
- update_clang_coverage_tools.DownloadCoverageToolsIfNeeded()
+ update.UpdatePackage('coverage_tools')
print(__doc__)
return
diff --git a/chromium/tools/code_coverage/test_suite.txt b/chromium/tools/code_coverage/test_suite.txt
index bc81231fe26..d444b1284a8 100644
--- a/chromium/tools/code_coverage/test_suite.txt
+++ b/chromium/tools/code_coverage/test_suite.txt
@@ -17,7 +17,6 @@ capture_unittests
cast_unittests
cc_unittests
chrome_app_unittests
-color_unittests
components_browsertests
components_unittests
compositor_unittests
diff --git a/chromium/tools/code_coverage/update_clang_coverage_tools.py b/chromium/tools/code_coverage/update_clang_coverage_tools.py
deleted file mode 100755
index 34257b87deb..00000000000
--- a/chromium/tools/code_coverage/update_clang_coverage_tools.py
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Download clang coverage tools (llvm-cov + llvm-profdata)"""
-
-import os
-import sys
-import urllib2
-
-sys.path.append(
- os.path.join(
- os.path.dirname(__file__), os.path.pardir, os.path.pardir,
- 'third_party'))
-import coverage_utils
-
-sys.path.append(
- os.path.join(
- os.path.dirname(__file__), os.path.pardir, os.path.pardir, 'tools',
- 'clang', 'scripts'))
-import update as clang_update
-
-
-# TODO(crbug.com/759794): remove this function once tools get included to
-# Clang bundle:
-# https://chromium-review.googlesource.com/c/chromium/src/+/688221
-def DownloadCoverageToolsIfNeeded():
- """Temporary solution to download llvm-profdata and llvm-cov tools."""
-
- def _GetRevisionFromStampFile(stamp_file_path):
- """Returns revision by reading the build stamp file.
-
- Args:
- stamp_file_path: A path the build stamp file created by
- tools/clang/scripts/update.py.
- Returns:
- A string represeting the revision of the tool, such as 361212-67510fac-2.
- """
- if not os.path.exists(stamp_file_path):
- return ''
-
- with open(stamp_file_path) as stamp_file:
- stamp_file_line = stamp_file.readline()
- if ',' in stamp_file_line:
- package_version = stamp_file_line.rstrip().split(',')[0]
- else:
- package_version = stamp_file_line.rstrip()
-
- return package_version
-
- cov_path = os.path.join(clang_update.LLVM_BUILD_DIR, 'llvm-cov')
- profdata_path = os.path.join(clang_update.LLVM_BUILD_DIR, 'llvm-profdata')
-
- host_platform = coverage_utils.GetHostPlatform()
- clang_revision = _GetRevisionFromStampFile(clang_update.STAMP_FILE)
- coverage_revision_stamp_file = os.path.join(
- os.path.dirname(clang_update.STAMP_FILE), 'cr_coverage_revision')
- coverage_revision = _GetRevisionFromStampFile(coverage_revision_stamp_file)
-
- has_coverage_tools = (
- os.path.exists(cov_path) and os.path.exists(profdata_path))
-
- if (has_coverage_tools and clang_revision == coverage_revision):
- # LLVM coverage tools are up to date, bail out.
- return
-
- package_version = clang_revision
- coverage_tools_file = 'llvm-code-coverage-%s.tgz' % package_version
-
- # The code below follows the code from tools/clang/scripts/update.py.
- if host_platform == 'mac':
- coverage_tools_url = clang_update.CDS_URL + '/Mac/' + coverage_tools_file
- elif host_platform == 'linux':
- coverage_tools_url = (
- clang_update.CDS_URL + '/Linux_x64/' + coverage_tools_file)
- else:
- assert host_platform == 'win'
- coverage_tools_url = (clang_update.CDS_URL + '/Win/' + coverage_tools_file)
-
- try:
- clang_update.DownloadAndUnpack(coverage_tools_url,
- clang_update.LLVM_BUILD_DIR)
- with open(coverage_revision_stamp_file, 'w') as file_handle:
- file_handle.write('%s,%s' % (package_version, host_platform))
- file_handle.write('\n')
- except urllib2.URLError:
- raise Exception(
- 'Failed to download coverage tools: %s.' % coverage_tools_url)
-
-
-if __name__ == '__main__':
- DownloadCoverageToolsIfNeeded()
- sys.exit(0)
diff --git a/chromium/tools/cygprofile/orderfile_generator_backend.py b/chromium/tools/cygprofile/orderfile_generator_backend.py
index 3daebb767fd..6a9c9b81942 100755
--- a/chromium/tools/cygprofile/orderfile_generator_backend.py
+++ b/chromium/tools/cygprofile/orderfile_generator_backend.py
@@ -364,19 +364,15 @@ class OrderfileUpdater(object):
_CLOUD_STORAGE_BUCKET = None
_UPLOAD_TO_CLOUD_COMMAND = 'upload_to_google_storage.py'
- def __init__(self, repository_root, step_recorder, branch, netrc):
+ def __init__(self, repository_root, step_recorder):
"""Constructor.
Args:
repository_root: (str) Root of the target repository.
step_recorder: (StepRecorder) Step recorder, for logging.
- branch: (str) Branch to commit to.
- netrc: (str) Path to the .netrc file to use.
"""
self._repository_root = repository_root
self._step_recorder = step_recorder
- self._branch = branch
- self._netrc = netrc
def CommitStashedFileHashes(self, files):
"""Commits unpatched and patched orderfiles hashes if changed.
@@ -397,34 +393,6 @@ class OrderfileUpdater(object):
if files_to_commit:
self._CommitStashedFiles(files_to_commit)
- def LegacyCommitFileHashes(self,
- unpatched_orderfile_filename,
- orderfile_filename):
- """Commits unpatched and patched orderfiles hashes, if provided.
-
- DEPRECATED. Left in place during transition.
-
- Files must have been successfilly uploaded to cloud storage first.
-
- Args:
- unpatched_orderfile_filename: (str or None) Unpatched orderfile path.
- orderfile_filename: (str or None) Orderfile path.
-
- Raises:
- NotImplementedError when the commit logic hasn't been overridden.
- """
- files_to_commit = []
- commit_message_lines = ['Update Orderfile.']
- for filename in [unpatched_orderfile_filename, orderfile_filename]:
- if not filename:
- continue
- (relative_path, sha1) = self._GetHashFilePathAndContents(filename)
- commit_message_lines.append('Profile: %s: %s' % (
- os.path.basename(relative_path), sha1))
- files_to_commit.append(relative_path)
- if files_to_commit:
- self._CommitFiles(files_to_commit, commit_message_lines)
-
def UploadToCloudStorage(self, filename, use_debug_location):
"""Uploads a file to cloud storage.
@@ -633,9 +601,7 @@ class OrderfileGenerator(object):
orderfile_updater_class = OrderfileUpdater
assert issubclass(orderfile_updater_class, OrderfileUpdater)
self._orderfile_updater = orderfile_updater_class(self._clank_dir,
- self._step_recorder,
- options.branch,
- options.netrc)
+ self._step_recorder)
assert os.path.isdir(constants.DIR_SOURCE_ROOT), 'No src directory found'
symbol_extractor.SetArchitecture(options.arch)
@@ -855,40 +821,32 @@ class OrderfileGenerator(object):
'--device={}'.format(
self._profiler._device.serial),
'--browser=exact',
- '--output-format=chartjson',
+ '--output-format=csv',
'--output-dir={}'.format(out_dir),
'--reset-results',
'--browser-executable={}'.format(apk),
'orderfile.memory_mobile'])
- out_file_path = os.path.join(out_dir, 'results-chart.json')
+ out_file_path = os.path.join(out_dir, 'results.csv')
if not os.path.exists(out_file_path):
raise Exception('Results file not found!')
+ results = {}
with open(out_file_path, 'r') as f:
- json_results = json.load(f)
-
- if not json_results:
- raise Exception('Results file is empty')
-
- if not 'charts' in json_results:
- raise Exception('charts can not be found in results!')
-
- charts = json_results['charts']
- results = dict()
- for story in charts:
- if not story.endswith("NativeCodeResidentMemory_avg"):
- continue
-
- results[story] = dict()
- for substory in charts[story]:
- if substory == 'summary':
+ reader = csv.DictReader(f)
+ for row in reader:
+ if not row['name'].endswith('NativeCodeResidentMemory'):
continue
- if not 'values' in charts[story][substory]:
- raise Exception(
- 'Values can not be found in charts:%s:%s' % (story, substory))
+ # Note: NativeCodeResidentMemory records a single sample from each
+ # story run, so this average (reported as 'avg') is exactly the value
+ # of that one sample. Each story is run multiple times, so this loop
+ # will accumulate into a list all values for all runs of each story.
+ results.setdefault(row['name'], {}).setdefault(
+ row['stories'], []).append(row['avg'])
+
+ if not results:
+ raise Exception('Could not find relevant results')
- results[story][substory] = charts[story][substory]['values']
return results
except Exception as e:
@@ -995,9 +953,6 @@ class OrderfileGenerator(object):
def Generate(self):
"""Generates and maybe upload an order."""
- profile_uploaded = False
- orderfile_uploaded = False
-
assert (bool(self._options.profile) ^
bool(self._options.manual_symbol_offsets))
if self._options.system_health_orderfile and not self._options.profile:
@@ -1025,7 +980,6 @@ class OrderfileGenerator(object):
self._options.use_call_graph)
self._GenerateAndProcessProfile()
self._MaybeArchiveOrderfile(self._GetUnpatchedOrderfileFilename())
- profile_uploaded = True
finally:
_StashOutputDirectory(self._instrumented_out_dir)
elif self._options.manual_symbol_offsets:
@@ -1071,7 +1025,6 @@ class OrderfileGenerator(object):
self._MaybeArchiveOrderfile(self._GetPathToOrderfile())
finally:
_StashOutputDirectory(self._uninstrumented_out_dir)
- orderfile_uploaded = True
if self._options.benchmark:
self._output_data['orderfile_benchmark_results'] = self.RunBenchmark(
@@ -1079,17 +1032,7 @@ class OrderfileGenerator(object):
self._output_data['no_orderfile_benchmark_results'] = self.RunBenchmark(
self._no_orderfile_out_dir, no_orderfile=True)
- if self._options.new_commit_flow:
- self._orderfile_updater._GitStash()
- else:
- if (self._options.buildbot and self._options.netrc
- and not self._step_recorder.ErrorRecorded()):
- unpatched_orderfile_filename = (
- self._GetUnpatchedOrderfileFilename() if profile_uploaded else None)
- orderfile_filename = (
- self._GetPathToOrderfile() if orderfile_uploaded else None)
- self._orderfile_updater.LegacyCommitFileHashes(
- unpatched_orderfile_filename, orderfile_filename)
+ self._orderfile_updater._GitStash()
self._step_recorder.EndStep()
return not self._step_recorder.ErrorRecorded()
@@ -1105,7 +1048,7 @@ class OrderfileGenerator(object):
Returns: true on success.
"""
- if not (self._options.buildbot and self._options.netrc):
+ if not self._options.buildbot:
logging.error('Trying to commit when not running on the buildbot')
return False
self._orderfile_updater._CommitStashedFiles([
@@ -1142,18 +1085,6 @@ def CreateArgumentParser():
parser.add_argument(
'--skip-patch', action='store_false', dest='patch', default=True,
help='Only generate the raw (unpatched) orderfile, don\'t patch it.')
- parser.add_argument(
- '--netrc', action='store',
- help='A custom .netrc file to use for git checkin. Only used on bots.')
- parser.add_argument(
- '--branch', action='store', default='master',
- help='When running on buildbot with a netrc, the branch orderfile '
- 'hashes get checked into.')
- # Obsolete (Autoninja is now used, and this argument is ignored).
- parser.add_argument(
- '-j', '--jobs', help='Obsolete. Number of jobs to use for compilation.')
- # Obsolete (Autoninja is now used, and this argument is ignored).
- parser.add_argument('-l', '--max-load', help='Obsolete. Max cpu load.')
parser.add_argument('--goma-dir', help='GOMA directory.')
parser.add_argument(
'--use-goma', action='store_true', help='Enable GOMA.', default=False)
@@ -1170,7 +1101,6 @@ def CreateArgumentParser():
parser.add_argument(
'--use-legacy-chrome-apk', action='store_true', default=False,
help=('Compile and instrument chrome for [L, K] devices.'))
-
parser.add_argument('--manual-symbol-offsets', default=None, type=str,
help=('File of list of ordered symbol offsets generated '
'by manual profiling. Must set other --manual* '
@@ -1205,7 +1135,7 @@ def CreateArgumentParser():
parser.add_argument('--commit-hashes', action='store_true',
help=('Commit any orderfile hash files in the current '
'checkout; performs no other action'))
- parser.add_argument('--new-commit-flow', action='store_true',
+ parser.add_argument('--new-commit-flow', action='store_true', default=True,
help='Use the new two-step commit flow.')
parser.add_argument('--use-call-graph', action='store_true', default=False,
help='Use call graph instrumentation.')
@@ -1234,8 +1164,6 @@ def CreateOrderfile(options, orderfile_updater_class=None):
if options.verify:
generator._VerifySymbolOrder()
elif options.commit_hashes:
- if not options.new_commit_flow:
- raise Exception('--commit-hashes requries --new-commit-flow')
return generator.CommitStashedOrderfileHashes()
elif options.upload_ready_orderfiles:
return generator.UploadReadyOrderfiles()
diff --git a/chromium/tools/cygprofile/symbol_extractor.py b/chromium/tools/cygprofile/symbol_extractor.py
index b0dc2a8cd89..01fe1265a7c 100644
--- a/chromium/tools/cygprofile/symbol_extractor.py
+++ b/chromium/tools/cygprofile/symbol_extractor.py
@@ -236,8 +236,8 @@ _NM_PATH = os.path.join(_SRC_PATH, 'third_party', 'llvm-build',
def CheckLlvmNmExists():
assert os.path.exists(_NM_PATH), (
- 'llvm-nm not found. Please run //tools/clang/scripts/download_objdump.py'
- ' to install it.')
+ 'llvm-nm not found. Please run '
+ '//tools/clang/scripts/update.py --package=objdump to install it.')
def SymbolNamesFromLlvmBitcodeFile(filename):
diff --git a/chromium/tools/determinism/compare_build_artifacts.py b/chromium/tools/determinism/compare_build_artifacts.py
index 97faa40cdad..ed806fa94f2 100755
--- a/chromium/tools/determinism/compare_build_artifacts.py
+++ b/chromium/tools/determinism/compare_build_artifacts.py
@@ -29,8 +29,9 @@ def get_files_to_compare(build_dir, recursive=False):
allowed = frozenset((
'.aab',
'.apk',
+ '.apks',
'.app',
- '.bin', # V8 snapshot files natives_blob.bin, snapshot_blob.bin
+ '.bin', # V8 snapshot file snapshot_blob.bin
'.dll',
'.dylib',
'.exe',
diff --git a/chromium/tools/determinism/deterministic_build_whitelist.pyl b/chromium/tools/determinism/deterministic_build_whitelist.pyl
index 3f2f93c0e8b..3461292e55e 100644
--- a/chromium/tools/determinism/deterministic_build_whitelist.pyl
+++ b/chromium/tools/determinism/deterministic_build_whitelist.pyl
@@ -16,8 +16,6 @@
# TODO(thakis): Move android det bots to use two distinct build dirs,
# https://crbug.com/899438
'android': [
- # https://crbug.com/939984
- 'apks/ChromeModernPublic.aab',
],
'fuchsia': [
@@ -27,9 +25,6 @@
],
'linux_component': [
- # https://crbug.com/900696
- 'remoting-webapp.v2.zip',
-
# https://crbug.com/937268
'swiftshader/libGLESv2.so',
'swiftshader_vertex_routine_fuzzer',
@@ -58,6 +53,16 @@
'ppapi_nacl_tests_pnacl_newlib_x32.nexe',
'ppapi_nacl_tests_pnacl_newlib_x64.nexe',
+ # https://crbug.com/429358
+ 'nacl_test_data\\extension_vcache_test\\glibc\\extension_validation_cache_libs\\lib32\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\extension_vcache_test\\glibc\\extension_validation_cache_libs\\lib64\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\pm_exit_status_test_libs\\lib32\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\pm_exit_status_test_libs\\lib64\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\simple_libs\\lib32\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\simple_libs\\lib64\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\sysconf_nprocessors_onln_test_libs\\lib32\\libppapi_cpp_lib.dll',
+ 'nacl_test_data\\glibc\\sysconf_nprocessors_onln_test_libs\\lib64\\libppapi_cpp_lib.dll',
+
# TODO(thakis): Figure out what's up with these three (and their isolate).
'mini_installer.exe',
'mini_installer.exe.pdb',
@@ -66,6 +71,5 @@
# These probably have mtimes in the zip headers and the scripts creating
# them probably should use build_utils.ZipDir() instead.
'mini_installer_tests.zip',
- 'policy_templates.zip',
],
}
diff --git a/chromium/tools/gdb/gdb_chrome.py b/chromium/tools/gdb/gdb_chrome.py
index 116a83b797b..4490fc70723 100644
--- a/chromium/tools/gdb/gdb_chrome.py
+++ b/chromium/tools/gdb/gdb_chrome.py
@@ -228,6 +228,19 @@ class LockPrinter(Printer):
pp_set.add_printer('base::Lock', '^base::Lock$', LockPrinter)
+class BaseOptionalPrinter(Printer):
+
+ def to_string(self):
+ if self.val['storage_']['is_populated_']:
+ return "%s: %s" % (str(self.val.type.tag), self.val['storage_']['value_'])
+ else:
+ return "%s: is empty" % str(self.val.type.tag)
+
+
+pp_set.add_printer('base::Optional', '^base::Optional<.*>$',
+ BaseOptionalPrinter)
+
+
class TimeDeltaPrinter(object):
def __init__(self, val):
diff --git a/chromium/tools/gn/bootstrap/libc++.ninja b/chromium/tools/gn/bootstrap/libc++.ninja
index a22d0ded115..c3c2cb21b8f 100644
--- a/chromium/tools/gn/bootstrap/libc++.ninja
+++ b/chromium/tools/gn/bootstrap/libc++.ninja
@@ -23,8 +23,10 @@ rule link
build $libcxx/algorithm.o: cxx_libcxx $buildtools/$libcxx/algorithm.cpp
build $libcxx/any.o: cxx_libcxx $buildtools/$libcxx/any.cpp
build $libcxx/bind.o: cxx_libcxx $buildtools/$libcxx/bind.cpp
+build $libcxx/charconv.o: cxx_libcxx $buildtools/$libcxx/charconv.cpp
build $libcxx/chrono.o: cxx_libcxx $buildtools/$libcxx/chrono.cpp
build $libcxx/condition_variable.o: cxx_libcxx $buildtools/$libcxx/condition_variable.cpp
+build $libcxx/condition_variable_destructor.o: cxx_libcxx $buildtools/$libcxx/condition_variable_destructor.cpp
build $libcxx/debug.o: cxx_libcxx $buildtools/$libcxx/debug.cpp
build $libcxx/exception.o: cxx_libcxx $buildtools/$libcxx/exception.cpp
build $libcxx/functional.o: cxx_libcxx $buildtools/$libcxx/functional.cpp
@@ -35,6 +37,7 @@ build $libcxx/iostream.o: cxx_libcxx $buildtools/$libcxx/iostream.cpp
build $libcxx/locale.o: cxx_libcxx $buildtools/$libcxx/locale.cpp
build $libcxx/memory.o: cxx_libcxx $buildtools/$libcxx/memory.cpp
build $libcxx/mutex.o: cxx_libcxx $buildtools/$libcxx/mutex.cpp
+build $libcxx/mutex_destructor.o: cxx_libcxx $buildtools/$libcxx/mutex_destructor.cpp
build $libcxx/new.o: cxx_libcxx $buildtools/$libcxx/new.cpp
build $libcxx/optional.o: cxx_libcxx $buildtools/$libcxx/optional.cpp
build $libcxx/random.o: cxx_libcxx $buildtools/$libcxx/random.cpp
@@ -68,4 +71,4 @@ build $libcxxabi/stdlib_exception.o: cxx_libcxxabi $buildtools/$libcxxabi/stdlib
build $libcxxabi/stdlib_stdexcept.o: cxx_libcxxabi $buildtools/$libcxxabi/stdlib_stdexcept.cpp
build $libcxxabi/stdlib_typeinfo.o: cxx_libcxxabi $buildtools/$libcxxabi/stdlib_typeinfo.cpp
-build ../libc++.gn.so: link $libcxx/algorithm.o $libcxx/any.o $libcxx/bind.o $libcxx/chrono.o $libcxx/condition_variable.o $libcxx/debug.o $libcxx/exception.o $libcxx/functional.o $libcxx/future.o $libcxx/hash.o $libcxx/ios.o $libcxx/iostream.o $libcxx/locale.o $libcxx/memory.o $libcxx/mutex.o $libcxx/new.o $libcxx/optional.o $libcxx/random.o $libcxx/regex.o $libcxx/shared_mutex.o $libcxx/stdexcept.o $libcxx/string.o $libcxx/strstream.o $libcxx/system_error.o $libcxx/thread.o $libcxx/typeinfo.o $libcxx/utility.o $libcxx/valarray.o $libcxx/variant.o $libcxx/vector.o $libcxxabi/abort_message.o $libcxxabi/cxa_aux_runtime.o $libcxxabi/cxa_default_handlers.o $libcxxabi/cxa_demangle.o $libcxxabi/cxa_exception_storage.o $libcxxabi/cxa_guard.o $libcxxabi/cxa_handlers.o $libcxxabi/cxa_noexception.o $libcxxabi/cxa_unexpected.o $libcxxabi/cxa_vector.o $libcxxabi/cxa_virtual.o $libcxxabi/fallback_malloc.o $libcxxabi/private_typeinfo.o $libcxxabi/stdlib_exception.o $libcxxabi/stdlib_stdexcept.o $libcxxabi/stdlib_typeinfo.o
+build ../libc++.gn.so: link $libcxx/algorithm.o $libcxx/any.o $libcxx/bind.o $libcxx/charconv.o $libcxx/chrono.o $libcxx/condition_variable.o $libcxx/condition_variable_destructor.o $libcxx/debug.o $libcxx/exception.o $libcxx/functional.o $libcxx/future.o $libcxx/hash.o $libcxx/ios.o $libcxx/iostream.o $libcxx/locale.o $libcxx/memory.o $libcxx/mutex.o $libcxx/mutex_destructor.o $libcxx/new.o $libcxx/optional.o $libcxx/random.o $libcxx/regex.o $libcxx/shared_mutex.o $libcxx/stdexcept.o $libcxx/string.o $libcxx/strstream.o $libcxx/system_error.o $libcxx/thread.o $libcxx/typeinfo.o $libcxx/utility.o $libcxx/valarray.o $libcxx/variant.o $libcxx/vector.o $libcxxabi/abort_message.o $libcxxabi/cxa_aux_runtime.o $libcxxabi/cxa_default_handlers.o $libcxxabi/cxa_demangle.o $libcxxabi/cxa_exception_storage.o $libcxxabi/cxa_guard.o $libcxxabi/cxa_handlers.o $libcxxabi/cxa_noexception.o $libcxxabi/cxa_unexpected.o $libcxxabi/cxa_vector.o $libcxxabi/cxa_virtual.o $libcxxabi/fallback_malloc.o $libcxxabi/private_typeinfo.o $libcxxabi/stdlib_exception.o $libcxxabi/stdlib_stdexcept.o $libcxxabi/stdlib_typeinfo.o
diff --git a/chromium/tools/grit/OWNERS b/chromium/tools/grit/OWNERS
index e94bc00d77a..6a8f447b823 100644
--- a/chromium/tools/grit/OWNERS
+++ b/chromium/tools/grit/OWNERS
@@ -2,3 +2,7 @@ agrieve@chromium.org
flackr@chromium.org
thakis@chromium.org
thestig@chromium.org
+
+# Admin policy related grit tools.
+per-file *policy*=file://components/policy/tools/OWNERS
+per-file *admin_template*=file://components/policy/tools/OWNERS
diff --git a/chromium/tools/grit/grit.py b/chromium/tools/grit/grit.py
index 98b99bbc390..c0e81eaf251 100755
--- a/chromium/tools/grit/grit.py
+++ b/chromium/tools/grit/grit.py
@@ -8,10 +8,16 @@
from __future__ import print_function
+import os
import sys
import grit.grit_runner
+sys.path.append(os.path.abspath(
+ os.path.join(os.path.dirname(__file__), '..', 'diagnosis')))
+import crbug_1001171
+
if __name__ == '__main__':
- sys.exit(grit.grit_runner.Main(sys.argv[1:]))
+ with crbug_1001171.DumpStateOnLookupError():
+ sys.exit(grit.grit_runner.Main(sys.argv[1:]))
diff --git a/chromium/tools/grit/grit/format/data_pack.py b/chromium/tools/grit/grit/format/data_pack.py
index 02b51b3ec3b..986b068dd71 100755
--- a/chromium/tools/grit/grit/format/data_pack.py
+++ b/chromium/tools/grit/grit/format/data_pack.py
@@ -215,7 +215,8 @@ def ReadGrdInfo(grd_file):
def RePack(output_file, input_files, whitelist_file=None,
- suppress_removed_key_output=False):
+ suppress_removed_key_output=False,
+ output_info_filepath=None):
"""Write a new data pack file by combining input pack files.
Args:
@@ -226,6 +227,7 @@ def RePack(output_file, input_files, whitelist_file=None,
all resources.
suppress_removed_key_output: allows the caller to suppress the output from
RePackFromDataPackStrings.
+ output_info_file: If not None, specify the output .info filepath.
Raises:
KeyError: if there are duplicate keys or resource encoding is
@@ -243,7 +245,9 @@ def RePack(output_file, input_files, whitelist_file=None,
resources, encoding = RePackFromDataPackStrings(
inputs, whitelist, suppress_removed_key_output)
WriteDataPack(resources, output_file, encoding)
- with open(output_file + '.info', 'w') as output_info_file:
+ if output_info_filepath is None:
+ output_info_filepath = output_file + '.info'
+ with open(output_info_filepath, 'w') as output_info_file:
for filename in input_info_files:
with open(filename, 'r') as info_file:
output_info_file.writelines(info_file.readlines())
diff --git a/chromium/tools/grit/grit/format/html_inline.py b/chromium/tools/grit/grit/format/html_inline.py
index 9e7aff05671..c4286007f63 100755
--- a/chromium/tools/grit/grit/format/html_inline.py
+++ b/chromium/tools/grit/grit/format/html_inline.py
@@ -49,8 +49,8 @@ _STYLESHEET_RE = lazy_re.compile(
r'<link rel="stylesheet"[^>]+?href="(?P<filename>[^"]*)".*?>(\s*</link>)?',
re.DOTALL)
_INCLUDE_RE = lazy_re.compile(
- r'<include[^>]+?src=("(?P<file1>[^">]*)"|\'(?P<file2>[^\'>]*)\').*?>'
- r'(\s*</include>)?',
+ r'(?P<comment>\/\/ )?<include[^>]+?'
+ r'src=("(?P<file1>[^">]*)"|\'(?P<file2>[^\'>]*)\').*?>(\s*</include>)?',
re.DOTALL)
_SRC_RE = lazy_re.compile(
r'<(?!script)(?:[^>]+?\s)src="(?!\[\[|{{)(?P<filename>[^"\']*)"',
diff --git a/chromium/tools/grit/grit/format/html_inline_unittest.py b/chromium/tools/grit/grit/format/html_inline_unittest.py
index 891586234da..f3a8d5180c8 100755
--- a/chromium/tools/grit/grit/format/html_inline_unittest.py
+++ b/chromium/tools/grit/grit/format/html_inline_unittest.py
@@ -538,7 +538,7 @@ class HtmlInlineUnittest(unittest.TestCase):
'other.js': '// Copyright somebody\nalert(1);',
}
- expected_inlined = '// // Copyright somebody\nalert(1);'
+ expected_inlined = '// Copyright somebody\nalert(1);'
source_resources = set()
tmp_dir = util.TempDir(files)
diff --git a/chromium/tools/grit/grit/format/minifier.py b/chromium/tools/grit/grit/format/minifier.py
index 011cbea47e3..9bbb2ad2a39 100644
--- a/chromium/tools/grit/grit/format/minifier.py
+++ b/chromium/tools/grit/grit/format/minifier.py
@@ -10,19 +10,27 @@ import subprocess
import sys
__js_minifier = None
-
+__css_minifier = None
def SetJsMinifier(minifier):
global __js_minifier
__js_minifier = minifier.split()
+def SetCssMinifier(minifier):
+ global __css_minifier
+ __css_minifier = minifier.split()
def Minify(source, filename):
file_type = path.splitext(filename)[1]
- if not file_type == '.js' or not __js_minifier:
+ minifier = None
+ if file_type == '.js':
+ minifier = __js_minifier
+ elif file_type == '.css':
+ minifier = __css_minifier
+ if not minifier:
return source
p = subprocess.Popen(
- __js_minifier,
+ minifier,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
diff --git a/chromium/tools/grit/grit/format/policy_templates_json_unittest.py b/chromium/tools/grit/grit/format/policy_templates_json_unittest.py
index 8373c07d38b..e252c94e2c1 100755
--- a/chromium/tools/grit/grit/format/policy_templates_json_unittest.py
+++ b/chromium/tools/grit/grit/format/policy_templates_json_unittest.py
@@ -45,6 +45,7 @@ class PolicyTemplatesJsonUnittest(unittest.TestCase):
{
'name': 'MainPolicy',
'type': 'main',
+ 'owners': ['foo@bar.com'],
'schema': {
'properties': {
'default_launch_container': {
@@ -155,6 +156,7 @@ class PolicyTemplatesJsonUnittest(unittest.TestCase):
"example_value": true,
"features": {"can_be_recommended": true, "dynamic_refresh": true},
"name": "MainPolicy",
+ "owners": ["foo@bar.com"],
"schema": {
"properties": {
"default_launch_container": {
diff --git a/chromium/tools/grit/grit/gather/policy_json.py b/chromium/tools/grit/grit/gather/policy_json.py
index f95647e299b..6621c5f3c43 100644
--- a/chromium/tools/grit/grit/gather/policy_json.py
+++ b/chromium/tools/grit/grit/gather/policy_json.py
@@ -164,12 +164,14 @@ class PolicyJson(skeleton_gatherer.SkeletonGatherer):
'arc_support': 'Information about the effect on Android apps'
}
if item_type == 'policy':
- return '%s of the policy named %s' % (key_map[key], item['name'])
- elif item_type == 'enum_item':
- return ('%s of the option named %s in policy %s' %
- (key_map[key], item['name'], parent_item['name']))
- else:
- raise Exception('Unexpected type %s' % item_type)
+ return ('%s of the policy named %s [owner(s): %s]' %
+ (key_map[key], item['name'],
+ ','.join(item['owners'] if 'owners' in item else 'unknown')))
+ if item_type == 'enum_item':
+ return ('%s of the option named %s in policy %s [owner(s): %s]' %
+ (key_map[key], item['name'], parent_item['name'],
+ ','.join(parent_item['owners'] if 'owners' in parent_item else 'unknown')))
+ raise Exception('Unexpected type %s' % item_type)
def _AddSchemaKeys(self, obj, depth):
obj_type = type(obj)
diff --git a/chromium/tools/grit/grit/gather/policy_json_unittest.py b/chromium/tools/grit/grit/gather/policy_json_unittest.py
index 1aee9941925..214cd276aa2 100755
--- a/chromium/tools/grit/grit/gather/policy_json_unittest.py
+++ b/chromium/tools/grit/grit/gather/policy_json_unittest.py
@@ -46,6 +46,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" {"
" 'name': 'HomepageLocation',"
" 'type': 'string',"
+ " 'owners': ['foo@bar.com'],"
" 'supported_on': ['chrome.*:8-'],"
" 'features': {'dynamic_refresh': 1},"
" 'example_value': 'http://chromium.org',"
@@ -74,6 +75,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" 'policy_definitions': ["
" {"
" 'name': 'Policy1',"
+ " 'owners': ['a@b'],"
" 'items': ["
" {"
" 'name': 'Item1',"
@@ -116,6 +118,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" },"
" },"
" 'caption': 'nothing special',"
+ " 'owners': ['a@b']"
" },"
" ],"
" 'policy_atomic_group_definitions': [],"
@@ -132,6 +135,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" 'policy_definitions': ["
" {"
" 'name': 'Policy1',"
+ " 'owners': ['a@b'],"
" 'validation_schema': {"
" 'type': 'object',"
" 'properties': {"
@@ -155,6 +159,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" 'policy_definitions': ["
" {"
" 'name': 'Policy1',"
+ " 'owners': ['a@b'],"
" 'description_schema': {"
" 'type': 'object',"
" 'properties': {"
@@ -184,6 +189,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" {"
" 'name': 'Policy1',"
" 'caption': 'nothing special',"
+ " 'owners': ['a@b']"
" }"
" ]"
" }"
@@ -208,6 +214,7 @@ class PolicyJsonUnittest(unittest.TestCase):
" {"
" 'name': 'Policy1',"
" 'caption': 'nothing special',"
+ " 'owners': ['a@b']"
" }"
" ],"
" 'policy_atomic_group_definitions': [],"
@@ -268,7 +275,8 @@ with a newline?''',
"policy_definitions": [
{
"name": "Policy1",
- "caption": "Please install\\n<ph name=\\"PRODUCT_NAME\\">$1<ex>Google Chrome</ex></ph>."
+ "caption": "Please install\\n<ph name=\\"PRODUCT_NAME\\">$1<ex>Google Chrome</ex></ph>.",
+ "owners": "a@b"
}
],
"policy_atomic_group_definitions": [],
@@ -293,7 +301,8 @@ with a newline?''',
"policy_definitions": [
{
"name": "Policy1",
- "caption": "Please install\\n<ph name=\\"PRODUCT_NAME\\">$1<ex>Google Chrome</ex></ph>."
+ "caption": "Please install\\n<ph name=\\"PRODUCT_NAME\\">$1<ex>Google Chrome</ex></ph>.",
+ "owners": "a@b"
}
],
"policy_atomic_group_definitions": [],
@@ -317,18 +326,21 @@ with a newline?''',
gatherer = policy_json.PolicyJson({})
gatherer.SetDefines({'_google_chrome': True})
self.assertEquals(
- gatherer._GetDescription({'name': 'Policy1'}, 'policy', None, 'desc'),
- 'Description of the policy named Policy1')
+ gatherer._GetDescription({'name': 'Policy1', 'owners': ['a@b']},
+ 'policy', None, 'desc'),
+ 'Description of the policy named Policy1 [owner(s): a@b]')
self.assertEquals(
- gatherer._GetDescription({'name': 'Plcy2'}, 'policy', None, 'caption'),
- 'Caption of the policy named Plcy2')
+ gatherer._GetDescription({'name': 'Plcy2', 'owners': ['a@b', 'c@d']},
+ 'policy', None, 'caption'),
+ 'Caption of the policy named Plcy2 [owner(s): a@b,c@d]')
self.assertEquals(
- gatherer._GetDescription({'name': 'Plcy3'}, 'policy', None, 'label'),
- 'Label of the policy named Plcy3')
+ gatherer._GetDescription({'name': 'Plcy3', 'owners': ['a@b']},
+ 'policy', None, 'label'),
+ 'Label of the policy named Plcy3 [owner(s): a@b]')
self.assertEquals(
gatherer._GetDescription({'name': 'Item'}, 'enum_item',
- {'name': 'Policy'}, 'caption'),
- 'Caption of the option named Item in policy Policy')
+ {'name': 'Plcy', 'owners': ['a@b']}, 'caption'),
+ 'Caption of the option named Item in policy Plcy [owner(s): a@b]')
if __name__ == '__main__':
diff --git a/chromium/tools/grit/grit/grit_runner.py b/chromium/tools/grit/grit/grit_runner.py
index 7b2b500c755..5bb93efc5f9 100755
--- a/chromium/tools/grit/grit/grit_runner.py
+++ b/chromium/tools/grit/grit/grit_runner.py
@@ -66,6 +66,12 @@ def ToolFactoryUnit():
import grit.tool.unit
return grit.tool.unit.UnitTestTool()
+
+def ToolFactoryUpdateResourceIds():
+ import grit.tool.update_resource_ids
+ return grit.tool.update_resource_ids.UpdateResourceIds()
+
+
def ToolFactoryXmb():
import grit.tool.xmb
return grit.tool.xmb.OutputXmb()
@@ -82,28 +88,73 @@ _HIDDEN = 3 # optional key - presence indicates tool is hidden
# Maps tool names to the tool's module. Done as a list of (key, value) tuples
# instead of a map to preserve ordering.
_TOOLS = [
- ['android2grd', {
- _FACTORY: ToolAndroid2Grd,
- _REQUIRES_INPUT : False }],
- ['build', { _FACTORY : ToolFactoryBuild, _REQUIRES_INPUT : True }],
- ['buildinfo', { _FACTORY : ToolFactoryBuildInfo, _REQUIRES_INPUT : True }],
- ['count', { _FACTORY : ToolFactoryCount, _REQUIRES_INPUT : True }],
- ['menufromparts', {
- _FACTORY: ToolFactoryMenuTranslationsFromParts,
- _REQUIRES_INPUT : True, _HIDDEN : True }],
- ['newgrd', { _FACTORY : ToolFactoryNewGrd, _REQUIRES_INPUT : False }],
- ['rc2grd', { _FACTORY : ToolFactoryRc2Grd, _REQUIRES_INPUT : False }],
- ['resize', {
- _FACTORY : ToolFactoryResizeDialog, _REQUIRES_INPUT : True }],
- ['sdiff', { _FACTORY : ToolFactoryDiffStructures,
- _REQUIRES_INPUT : False }],
- ['test', {
- _FACTORY: ToolFactoryTest, _REQUIRES_INPUT : True,
- _HIDDEN : True }],
- ['transl2tc', { _FACTORY : ToolFactoryTranslationToTc,
- _REQUIRES_INPUT : False }],
- ['unit', { _FACTORY : ToolFactoryUnit, _REQUIRES_INPUT : False }],
- ['xmb', { _FACTORY : ToolFactoryXmb, _REQUIRES_INPUT : True }],
+ ['android2grd', {
+ _FACTORY: ToolAndroid2Grd,
+ _REQUIRES_INPUT: False
+ }],
+ ['build', {
+ _FACTORY: ToolFactoryBuild,
+ _REQUIRES_INPUT: True
+ }],
+ ['buildinfo', {
+ _FACTORY: ToolFactoryBuildInfo,
+ _REQUIRES_INPUT: True
+ }],
+ ['count', {
+ _FACTORY: ToolFactoryCount,
+ _REQUIRES_INPUT: True
+ }],
+ [
+ 'menufromparts',
+ {
+ _FACTORY: ToolFactoryMenuTranslationsFromParts,
+ _REQUIRES_INPUT: True,
+ _HIDDEN: True
+ }
+ ],
+ ['newgrd', {
+ _FACTORY: ToolFactoryNewGrd,
+ _REQUIRES_INPUT: False
+ }],
+ ['rc2grd', {
+ _FACTORY: ToolFactoryRc2Grd,
+ _REQUIRES_INPUT: False
+ }],
+ ['resize', {
+ _FACTORY: ToolFactoryResizeDialog,
+ _REQUIRES_INPUT: True
+ }],
+ ['sdiff', {
+ _FACTORY: ToolFactoryDiffStructures,
+ _REQUIRES_INPUT: False
+ }],
+ ['test', {
+ _FACTORY: ToolFactoryTest,
+ _REQUIRES_INPUT: True,
+ _HIDDEN: True
+ }],
+ [
+ 'transl2tc',
+ {
+ _FACTORY: ToolFactoryTranslationToTc,
+ _REQUIRES_INPUT: False
+ }
+ ],
+ ['unit', {
+ _FACTORY: ToolFactoryUnit,
+ _REQUIRES_INPUT: False
+ }],
+ [
+ 'update_resource_ids',
+ {
+ _FACTORY: ToolFactoryUpdateResourceIds,
+ _REQUIRES_INPUT: False
+ }
+ ],
+ ['xmb', {
+ _FACTORY: ToolFactoryXmb,
+ _REQUIRES_INPUT: True
+ }],
]
diff --git a/chromium/tools/grit/grit/node/misc.py b/chromium/tools/grit/grit/node/misc.py
index 3631750d717..4293a4911fd 100644
--- a/chromium/tools/grit/grit/node/misc.py
+++ b/chromium/tools/grit/grit/node/misc.py
@@ -145,21 +145,21 @@ def _ComputeIds(root, predetermined_tids):
elif ('offset' in item.attrs and group and
group.attrs.get('first_id', '') != ''):
- offset_text = item.attrs['offset']
- parent_text = group.attrs['first_id']
+ offset_text = item.attrs['offset']
+ parent_text = group.attrs['first_id']
- try:
- offset_id = long(offset_text)
- except ValueError:
- offset_id = tids[offset_text]
+ try:
+ offset_id = long(offset_text)
+ except ValueError:
+ offset_id = tids[offset_text]
- try:
- parent_id = long(parent_text)
- except ValueError:
- parent_id = tids[parent_text]
+ try:
+ parent_id = long(parent_text)
+ except ValueError:
+ parent_id = tids[parent_text]
- id = parent_id + offset_id
- reason = 'first_id %d + offset %d' % (parent_id, offset_id)
+ id = parent_id + offset_id
+ reason = 'first_id %d + offset %d' % (parent_id, offset_id)
# We try to allocate IDs sequentially for blocks of items that might
# be related, for instance strings in a stringtable (as their IDs might be
@@ -513,7 +513,8 @@ class GritNode(base.Node):
"""Returns the distinct (language, context, fallback_to_default_layout)
triples from the output nodes.
"""
- return set((n.GetLanguage(), n.GetContext(), n.GetFallbackToDefaultLayout()) for n in self.GetOutputFiles())
+ return set((n.GetLanguage(), n.GetContext(), n.GetFallbackToDefaultLayout())
+ for n in self.GetOutputFiles())
def GetSubstitutionMessages(self):
"""Returns the list of <message sub_variable="true"> nodes."""
diff --git a/chromium/tools/grit/grit/tool/build.py b/chromium/tools/grit/grit/tool/build.py
index c868f2da580..7de2f1a13d2 100644
--- a/chromium/tools/grit/grit/tool/build.py
+++ b/chromium/tools/grit/grit/tool/build.py
@@ -136,6 +136,12 @@ Options:
minified Javascript to standard output. A non-zero exit
status will be taken as indicating failure.
+ --css-minifier A command to run the CSS minifier. If not set then CSS won't
+ be minified. The command should read the original CSS from
+ standard input, and output the minified CSS to standard
+ output. A non-zero exit status will be taken as indicating
+ failure.
+
--brotli The full path to the brotli executable generated by
third_party/brotli/BUILD.gn, required if any entries use
compress="brotli".
@@ -165,13 +171,14 @@ are exported to translation interchange files (e.g. XMB files), etc.
write_only_new = False
depend_on_stamp = False
js_minifier = None
+ css_minifier = None
replace_ellipsis = True
(own_opts, args) = getopt.getopt(
args, 'a:p:o:D:E:f:w:t:',
('depdir=', 'depfile=', 'assert-file-list=', 'help',
'output-all-resource-defines', 'no-output-all-resource-defines',
'no-replace-ellipsis', 'depend-on-stamp', 'js-minifier=',
- 'write-only-new=', 'whitelist-support', 'brotli='))
+ 'css-minifier=', 'write-only-new=', 'whitelist-support', 'brotli='))
for (key, val) in own_opts:
if key == '-a':
assert_output_files.append(val)
@@ -209,6 +216,8 @@ are exported to translation interchange files (e.g. XMB files), etc.
depend_on_stamp = True
elif key == '--js-minifier':
js_minifier = val
+ elif key == '--css-minifier':
+ css_minifier = val
elif key == '--whitelist-support':
whitelist_support = True
elif key == '--brotli':
@@ -235,6 +244,9 @@ are exported to translation interchange files (e.g. XMB files), etc.
if js_minifier:
minifier.SetJsMinifier(js_minifier)
+ if css_minifier:
+ minifier.SetCssMinifier(css_minifier)
+
self.write_only_new = write_only_new
self.res = grd_reader.Parse(opts.input,
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/__init__.py b/chromium/tools/grit/grit/tool/update_resource_ids/__init__.py
new file mode 100644
index 00000000000..45a0c08eb24
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/__init__.py
@@ -0,0 +1,254 @@
+# 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.
+"""Package grit.tool.update_resource_ids
+
+Updates GRID resource_ids from linked GRD files, while preserving structure.
+
+A resource_ids file is a JSON dict (with Python comments) that maps GRD paths
+to *items*. Item order is ignored by GRIT, but is important since it establishes
+a narrative of item dependency (needs non-overlapping IDs) and mutual exclusion
+(allows ID overlap). Example:
+
+{
+ # The first entry in the file, SRCDIR, is special: It is a relative path from
+ # this file to the base of your checkout.
+ "SRCDIR": "../..",
+
+ # First GRD file. This entry is an "Item".
+ "1.grd": {
+ "messages": [400], # "Tag".
+ },
+ # Depends on 1.grd, i.e., 500 >= 400 + (# of IDs used in 1.grd).
+ "2a.grd": {
+ "includes": [500], # "Tag".
+ "structures": [510], # "Tag" (etc.).
+ },
+ # Depends on 2a.grd.
+ "3a.grd": {
+ "includes": [1000],
+ },
+ # Depends on 2a.grd, but overlaps with 3b.grd due to mutually exclusivity.
+ "3b.grd": {
+ "includes": [1000],
+ },
+ # Depends on {3a.grd, 3b.grd}.
+ "4.grd": {
+ "META": {"join": 2}, # Hint for update_resource_ids.
+ "structures": [1500],
+ },
+ # Depends on 1.grd but overlaps with 2a.grd.
+ "2b.grd": {
+ "includes": [500],
+ "structures": [540],
+ },
+ # Depends on {4.grd, 2b.grd}.
+ "5.grd": {
+ "META": {"join": 2}, # Hint for update_resource_ids.
+ "includes": [600],
+ },
+ # Depends on 5.grd. File is generated, so hint is needed for sizes.
+ "<(SHARED_INTERMEDIATE_DIR)/6.grd": {
+ "META": {"sizes": {"includes": [10]}},
+ "includes": [700],
+ },
+}
+
+The "structure" within a resouces_ids file are as follows:
+1. Comments and spacing.
+2. Item ordering, to establish dependency and grouping.
+3. Special provision to allow ID overlaps from mutual exclusion.
+
+This module parses a resource_ids file, reads ID usages from GRD files it refers
+to, and generates an updated version of the resource_ids file while preserving
+structure elements 1-3 stated above.
+"""
+
+from __future__ import print_function
+
+import collections
+import getopt
+import os
+import sys
+
+from grit.tool import interface
+from grit.tool.update_resource_ids import assigner, common, parser, reader
+
+
+def _ReadData(input_file):
+ if input_file == '-':
+ data = sys.stdin.read()
+ file_dir = os.getcwd()
+ else:
+ with open(input_file, 'rt') as f:
+ data = f.read()
+ file_dir = os.path.dirname(input_file)
+ return data, file_dir
+
+
+def _MultiReplace(data, repl):
+ """Multi-replacement of text |data| by ranges and replacement text.
+
+ Args:
+ data: Original text.
+ repl: List of (lo, hi, s) tuples, specifying that |data[lo:hi]| should be
+ replaced with |s|. The ranges must be inside |data|, and not overlap.
+ Returns: New text.
+ """
+ res = []
+ prev = 0
+ for (lo, hi, s) in sorted(repl):
+ if prev < lo:
+ res.append(data[prev:lo])
+ res.append(s)
+ prev = hi
+ res.append(data[prev:])
+ return ''.join(res)
+
+
+def _CreateAndOutputResult(data, repl, output):
+ new_data = _MultiReplace(data, repl)
+ if output:
+ with open(output, 'wt') as fh:
+ fh.write(new_data)
+ else:
+ sys.stdout.write(new_data)
+
+
+class _Args:
+ """Encapsulated arguments for this module."""
+ def __init__(self):
+ self.input = None
+ self.output = None
+ self.count = False
+ self.fake = False
+ self.naive = False
+ self.parse = False
+ self.tokenize = False
+
+ @staticmethod
+ def Parse(raw_args):
+ own_opts, raw_args = getopt.getopt(raw_args, 'o:cpt', [
+ 'count',
+ 'fake',
+ 'naive',
+ 'parse',
+ 'tokenize',
+ ])
+ args = _Args();
+ if not len(raw_args) == 1:
+ print('grit update_resource_ids takes exactly one argument, the path to '
+ 'the resource ids file.')
+ return 2
+ args.input = raw_args[0]
+ for (key, val) in own_opts:
+ if key == '-o':
+ args.output = val
+ elif key in ('--count', '-c'):
+ args.count = True
+ elif key == '--fake':
+ args.fake = True
+ elif key == '--naive':
+ args.naive = True
+ elif key in ('--parse', '-p'):
+ args.parse = True
+ elif key in ('--tokenize', '-t'):
+ args.tokenize = True
+ return args
+
+
+class UpdateResourceIds(interface.Tool):
+ """Updates all start IDs in an resource_ids file by reading all GRD files it
+refers to, estimating the number of required IDs of each type, then rewrites
+start IDs while preserving structure.
+
+Usage: grit update_resource_ids [--parse|-p] [--read-grd|-r] [--tokenize|-t]
+ [--naive] [--fake] [-o OUTPUT_FILE]
+ RESOURCE_IDS_FILE
+
+RESOURCE_IDS_FILE is the path of the input resource_ids file.
+
+The -o option redirects output (default stdout) to OUPTUT_FILE, which can also
+be RESOURCE_IDS_FILE.
+
+Other options:
+
+ -E NAME=VALUE Sets environment variable NAME to VALUE (within grit).
+
+ --count|-c Parses RESOURCE_IDS_FILE, reads the GRD files, and prints
+ required sizes.
+
+ --fake For testing: Skips reading GRD files, and assigns 10 as the
+ usage of every tag.
+
+ --naive Use naive coarse assigner.
+
+ --parse|-p Parses RESOURCE_IDS_FILE and dumps its nodes to console.
+
+ --tokenize|-t Tokenizes RESOURCE_IDS_FILE and reprints it as syntax-
+ highlighted output.
+
+"""
+
+ def __init(self):
+ super(UpdateResourceIds, self).__init__()
+
+ def ShortDescription(self):
+ return 'Updates a resource_ids file based on usage, preserving structure'
+
+ def _DumpTokens(self, data, tok_gen):
+ # Reprint |data| with syntax highlight.
+ color_map = {
+ '#': common.Color.GRAY,
+ 'S': common.Color.CYAN,
+ '0': common.Color.RED,
+ '{': common.Color.YELLOW,
+ '}': common.Color.YELLOW,
+ '[': common.Color.GREEN,
+ ']': common.Color.GREEN,
+ ':': common.Color.MAGENTA,
+ ',': common.Color.MAGENTA,
+ }
+ for t, lo, hi in tok_gen:
+ c = color_map.get(t, common.Color.NONE)
+ sys.stdout.write(c(data[lo:hi]))
+
+ def _DumpRootObj(self, root_obj):
+ print(root_obj)
+
+ def _DumpResourceCounts(self, usage_gen):
+ tot = collections.Counter()
+ for item, tag_name_to_usage in usage_gen:
+ c = common.Color.YELLOW if item.grd.startswith('<') else common.Color.CYAN
+ print('%s: %r' % (c(item.grd), dict(tag_name_to_usage)))
+ tot += collections.Counter(tag_name_to_usage)
+ print(common.Color.GRAY('-' * 80))
+ print('%s: %r' % (common.Color.GREEN('Total'), dict(tot)))
+ print('%s: %d' % (common.Color.GREEN('Grand Total'), sum(tot.values())))
+
+ def Run(self, opts, raw_args):
+ self.SetOptions(opts)
+
+ args = _Args.Parse(raw_args)
+ data, file_dir = _ReadData(args.input)
+
+ tok_gen = parser.Tokenize(data)
+ if args.tokenize:
+ return self._DumpTokens(data, tok_gen)
+
+ root_obj = parser.ResourceIdParser(data, tok_gen).Parse()
+ if args.parse:
+ return self._DumpRootObj(root_obj)
+ item_list = common.BuildItemList(root_obj)
+
+ src_dir = os.path.abspath(os.sep.join([file_dir, root_obj['SRCDIR'].val]))
+ usage_gen = reader.GenerateResourceUsages(item_list, src_dir, args.fake)
+ if args.count:
+ return self._DumpResourceCounts(usage_gen)
+ for item, tag_name_to_usage in usage_gen:
+ item.SetUsages(tag_name_to_usage)
+
+ new_ids_gen = assigner.GenerateNewIds(item_list, args.naive)
+ # Create replacement specs usable by _MultiReplace().
+ repl = [(tag.lo, tag.hi, str(new_id)) for tag, new_id in new_ids_gen]
+ _CreateAndOutputResult(data, repl, args.output)
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/assigner.py b/chromium/tools/grit/grit/tool/update_resource_ids/assigner.py
new file mode 100644
index 00000000000..6cd46031a64
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/assigner.py
@@ -0,0 +1,286 @@
+# 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.
+"""Assign IDs to resource_ids file based on usage, while preserving structure.
+
+resource_ids assignment is divided into two parts:
+(A) Coarse assignment: Assigns start IDs of items.
+(B) Quota assignment: Assigns per-tag ID allotments for a given item, allowing
+ padding for IDs.
+
+These parts are interdependent: Start IDs (A) of an item depends on ID
+allotments (B) of *other* items; and ID allotment (B) of an item depends on its
+start IDs (A) to compute alignment.
+
+(B) hides padding and alignment details of tags so that (A) can be abstracted
+into the graph construction and traversal problem in DagCoarseIdAssigner.
+"""
+
+import math
+
+from grit.tool.update_resource_ids import common
+
+
+class Aligner:
+ """Helper to allot IDs, given start ID and ID usage.
+
+ Args:
+ expand: Scale factor relative to ID usage. Must be >= 1.0.
+ slack: Minimum number of reserved ID at end. Must be >= 0.
+ align: ID alignment of results. Must be >= 1.
+ """
+
+ def __init__(self, expand=1.0, slack=0, align=1):
+ assert expand >= 1.0 and slack >= 0 and align >= 1
+ self._expand = expand
+ self._slack = slack
+ self._align = align
+
+ def Calc(self, cur_id, usage):
+ quota = max(int(math.ceil(usage * self._expand)), usage + self._slack)
+ return common.AlignUp(cur_id + quota, self._align)
+
+
+class QuotaAssigner:
+ """Main class for (B), for ID allotment of tags for an item."""
+
+ def __init__(self, aligner):
+ self._aligner = aligner
+
+ def Gen(self, item, start_id):
+ """Generates per-tag *end* ID in |item|, succeeding |start_id|."""
+ cur_id = start_id
+ for tag in item.tags: # Sorted by |tag.lo|.
+ cur_id = self._aligner.Calc(cur_id, tag.usage)
+ yield tag, cur_id
+
+
+class BaseCoarseIdAssigner(object):
+ """Base class for coarse assignment."""
+
+ def __init__(self, item_list, align):
+ self._item_list = item_list
+ self._align = align
+
+ def GenStartIds(self):
+ """Visits |_item_list| and yields (|item|, new |start_id|).
+
+ Visit follows dependency order: If item B succeeds item A, then A is visited
+ before B. Caller must call FeedWeight() to assign ID allotment.
+ """
+ raise NotImplementedError()
+
+ def FeedWeight(self, item, weight):
+ """Callback to assign number of IDs allotted to |item|."""
+ raise NotImplementedError()
+
+
+class NaiveCoarseIdAssigner(BaseCoarseIdAssigner):
+ """CoarseIdAssigner that assigns item with non-overlapping start IDs."""
+
+ def __init__(self, item_list, align):
+ super(NaiveCoarseIdAssigner, self).__init__(item_list, align)
+ first_id = self._item_list[0].tags[0].id
+ self._cur_id = common.AlignUp(first_id, self._align)
+
+ def GenStartIds(self):
+ """Visits items in array order."""
+ for item in self._item_list:
+ yield item, self._cur_id
+
+ def FeedWeight(self, item, weight):
+ self._cur_id = common.AlignUp(self._cur_id + weight, self._align)
+
+
+class DagCoarseIdAssigner(BaseCoarseIdAssigner):
+ """CoarseIdAssigner that preserves existing structure.
+
+Start ID assignment in resource_ids is structured a Series-Parallel Graph, which
+is a directed, acyclic multi-graph generated by the following:
+* Start: Single directed edge. S <-- T.
+* Operation 1: A <-- B becomes A <-- C <-- B.
+* Operation 2: A <-- B becomes A <== B (add parallel edge).
+
+Each vertex (A, B, ...) is a start ID. S = globally minimal ID. T = \infty is an
+implicit sentinel. Each edge maps to an item, and edge weight is ID allotment.
+The edge A <-- B means "A's ID assignment needs to be determined before B's"
+(i.e., "B depends on A"), and requires A < B.
+
+resource_ids stores a "flattened" representation of the graph, as a list of
+items (with meta data). Thus coarse ID assignment consists of the following:
+(1) Process list of items (with old start ID and meta data) to rebuild graph.
+(2) Traverse graph in an order that satisfies dependencies.
+(3) When vertex A has its ID assigned, the weight of each edge "A <--" (i.e., an
+ item) can have its weight (ID allotment) computed via quota assignment of A.
+(4) New start IDs satisfy A + w <= B for each edge A <-- B with weight w > 0.
+
+The key algorithm challenge is (1). Note that it does not need weight details,
+so we only assume A < B whenever A <-- B. Now we're faced with 2 subproblems:
+(1a) How to represent the graph as a list of integers (with meta data)?
+(1b) Given the list representation, how to recover the graph?
+
+For (1a), we start with DFS traversal of the (transposed, i.e., reversed) graph
+starting from S, and apply the following:
+* For each edge A <-- B traversed, emit A into sequence,
+* Traverse a B <-- Y only when all X <-- B have been traversed.
+
+The resulting sequence has the length as the number of edges, and has the useful
+property that a vertex's dependencies always appear before the vertex itself!
+Note this the sentinel T is omitted.
+
+Example 1:
+ S <-- A <-- B <-- C <-- T => "SABC".
+
+Example 2:
+ S <-- A <-- B <-- C <-- T => "SA|AB|SDEC|SF",
+ | | | | | or "SF|SA|AB|SDEC",
+ | + <-- + | | or "SDE|SA|ABC|SF",
+ | | | or "SF|SDE|SA|ABC".
+ + <---D <-- E <---+ |
+ | |
+ + <-- F <---------------+
+
+Here, "X|Y" denotes backtracking between visiting X and visiting Y. This appears
+if and only if X >= Y, so "|" an optional (but illustrative) character that's
+not in the actual output. We will use it consistently in comments, and so the
+absence of "|" denotes the converse. For example, "XY" implies X < Y.
+
+In terms of the basic operations:
+* Start: S <-- T => "S".
+* Operation 1: "...AB..." => "...ACB..." (or "...A" => "...AB").
+* Operation 2: "...AB..." => "...A|AB..." (or "...A" => "...A|A").
+
+For Example 2, a viable "evolution path" is:
+"S" => "S|S" => "SC|S" => "S|SC|S" => "SA|SC|S" => "SAB|SC|S" => "SA|AB|SC|S"
+ => "SA|AB|SDC|S" => "SA|AB|SDEC|S" => "SA|AB|SDEC|SF".
+(Alternative: "S|S" => "S|SC" => etc.).
+
+Note: {A, ...} are *unlabelled* integers, and "spurious equalities" such as
+A = D or A = F can occur!
+
+For (1b), we wish to build the graph from the sequence. This requires (1a) to be
+injective (up to isomorphism). Unfortunately, this does not always hold.
+Example:
+ S <-- A <-- C <-- D <-- T => "SA|SBCD".
+ | |
+ + <-- B <---+
+vs.
+ S <----- A <----- D <-- T => "SA|SBCD".
+ | |
+ + <-- B <-- C <---+
+
+To fix this, we prepend a "join" label (*) to each vertex that has multiple
+dependencies. With this, the example above produce different results:
+ "SA|SB*CD" != "SA|SBC*D".
+
+Unfortunately, this is also inadequate. Example:
+ S <-------- B <-- T => "S|S|S|S*A*B",
+ | |
+ + <---------+
+ | |
+ + <-- A <---+
+ | |
+ + <---+
+vs.
+ S <-------- B <-- T => "S|S|S|S*A*B".
+ | |
+ + <---A <---+
+ | |
+ + <---+
+ | |
+ + <---+
+
+To fix this, we also label the number of dependencies. In text representation,
+we just show multiple (#dependencies - 1) copies of '*'. Now we have:
+ "S|S|S|S*A**B" != "S|S|S|S**A*B".
+
+The "join" label with count adequately addresses the issue (proof omitted). In
+the resource_ids files, these are stored as the "join" field of an item's meta
+data.
+
+Additional comments for (1b) and other steps are detailed below.
+"""
+
+ class DagNode:
+ """An element of the implicit graph, corresponding to an item.
+
+ This actually represents an edge-vertex pair, corresponding to an item.
+ A vertex is represented by a collection of DagNode that uses |sib| to link
+ to a "representative node". The representative node, in turn, holds the list
+ of all |deps| (dependencies) of the vertex.
+ """
+
+ def __init__(self, item, old_id):
+ self.item = item
+ self.old_id = old_id
+ self.new_id = None
+ self.weight = None
+
+ def __init__(self, item_list, align):
+ super(DagCoarseIdAssigner, self).__init__(item_list, align)
+ self._node_dict = {} # Maps from |lo| to item.
+
+ def GenStartIds(self):
+ """Traverses implicit graph and yields new IDs.
+
+ Algorithm: Process |old_id| of items sequentially. Successive items A and B
+ can be "AB" (A < B), "A*...B" (A < B), or "A|B" (A >= B). "AB" and "A*...B"
+ imply A <-- B, and are accumulated in |trace|. "A|B" are jumps that rewinds
+ |trace| to the latest B (must exist), and A is pushed into |jumps|. A join
+ "A*...B" also pops |num_join - 1| items {X_i} in |jump|, and X_i <-- B. In
+ the end, unprocessed elements in |jumps| all link to sentinel T, and can be
+ ignored.
+ """
+ # DagNode stack of "A" when "AB" is found (increasing |old_id|).
+ trace = []
+ # DagNode stack of "A" when "A|B" jumps is found.
+ jumps = []
+ for item in self._item_list: # Sorted by |lo|.
+ meta = item.meta
+ # |num_join| indicates "*" in "A*...B", and specify B's dependencies: +1
+ # from A, and +count("*") from |jumps|.
+ num_join = meta['join'].val if meta and 'join' in meta else None
+ node = DagCoarseIdAssigner.DagNode(item, item.tags[0].id)
+ self._node_dict[item.lo] = node
+ if trace:
+ if trace[-1].old_id >= node.old_id: # "A|B".
+ if num_join:
+ raise ValueError('Cannot join on jump: %d' % node.old_id)
+ jumps.append(trace[-1]) # Add A to |jumps|, for later join.
+ while trace and trace[-1].old_id > node.old_id: # Rewind to find B.
+ trace.pop()
+ if not trace or trace[-1].old_id != node.old_id: #
+ raise ValueError('Cannot jump to unvisited: %d' % node.old_id)
+ node.new_id = trace.pop().new_id # Copy B & remove. Will re-add B.
+ else: # "AB" or "A*...B".
+ node.new_id = trace[-1].new_id + trace[-1].weight # A --> B
+ if num_join: # "A*...B".
+ for _ in range(1, num_join):
+ t = jumps.pop()
+ node.new_id = max(node.new_id, t.new_id + t.weight) # X_i --> B.
+ else:
+ node.new_id = node.old_id # Initial S.
+ trace.append(node) # Add B.
+ align = meta['align'].val if meta and 'align' in meta else self._align
+ node.new_id = common.AlignUp(node.new_id, align)
+ yield node.item, node.new_id
+ # Expect caller to calling FreedWeight() and update |node.weight|.
+
+ def FeedWeight(self, item, weight):
+ self._node_dict[item.lo].weight = weight
+
+
+def GenerateNewIds(item_list, use_naive):
+ """Visits all tags in |item_list| and generates new ids.
+
+ New ids are generated based on old ids and usages.
+ """
+ Assigner = NaiveCoarseIdAssigner if use_naive else DagCoarseIdAssigner
+ coarse_id_assigner = Assigner(item_list, 10)
+ quota_assigner = QuotaAssigner(Aligner(expand=1.15, slack=3, align=10))
+ for item, start_id in coarse_id_assigner.GenStartIds(): # Topo-sorted.
+ cur_id = start_id
+ for tag, next_id in quota_assigner.Gen(item, start_id): # Sorted by |lo|.
+ yield tag, cur_id
+ cur_id = next_id
+ coarse_id_assigner.FeedWeight(item, next_id - start_id)
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/assigner_unittest.py b/chromium/tools/grit/grit/tool/update_resource_ids/assigner_unittest.py
new file mode 100755
index 00000000000..164d8207625
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/assigner_unittest.py
@@ -0,0 +1,154 @@
+#!/usr/bin/env python
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from __future__ import print_function
+
+import os
+import sys
+import traceback
+import unittest
+if __name__ == '__main__':
+ sys.path.append(os.path.join(os.path.dirname(__file__), '../../..'))
+
+from grit.tool.update_resource_ids import assigner, common, parser
+
+# |spec| format: A comma-separated list of (old) start IDs. Modifiers:
+# * Prefix with n '*' to assign the item's META "join" field to n + 1.
+# * Suffix with "+[usage]" to assign |usage| for the item (else default=10)
+
+
+def _RenderTestResourceId(spec):
+ """Renders barebone resource_ids data based on |spec|."""
+ data = '{"SRCDIR": ".",'
+ for i, tok in enumerate(spec.split(',')):
+ num_star = len(tok) - len(tok.lstrip('*'))
+ tok = tok[num_star:]
+ meta = '"META":{"join": %d},' % (num_star + 1) if num_star else ''
+ start_id = tok.split('+')[0] # Strip '+usage'.
+ data += '"foo%d.grd": {%s"includes": [%s]},' % (i, meta, start_id)
+ data += '}'
+ return data
+
+
+def _CreateTestItemList(spec):
+ """Creates list of ItemInfo based on |spec|."""
+ data = _RenderTestResourceId(spec)
+ item_list = common.BuildItemList(
+ parser.ResourceIdParser(data, parser.Tokenize(data)).Parse())
+ # Assign usages from "id+usage", default to 10.
+ for i, tok in enumerate(spec.split(',')):
+ item_list[i].tags[0].usage = int((tok.split('+') + ['10'])[1])
+ return item_list
+
+
+def _RunCoarseIdAssigner(spec):
+ item_list = _CreateTestItemList(spec)
+ coarse_id_assigner = assigner.DagCoarseIdAssigner(item_list, 1)
+ new_id_list = [] # List of new IDs, to check ID assignment.
+ new_spec_list = [] # List of new tokens to construct new |spec|.
+ for item, start_id in coarse_id_assigner.GenStartIds(): # Topo-sorted..
+ new_id_list.append(str(start_id))
+ meta = item.meta
+ num_join = meta['join'].val if meta and 'join' in meta else 0
+ t = '*' * max(0, num_join - 1)
+ t += str(start_id)
+ t += '' if item.tags[0].usage == 10 else '+' + str(item.tags[0].usage)
+ new_spec_list.append((item.lo, t))
+ coarse_id_assigner.FeedWeight(item, item.tags[0].usage)
+ new_spec = ','.join(s for _, s in sorted(new_spec_list))
+ return ','.join(new_id_list), new_spec
+
+
+class AssignerUnittest(unittest.TestCase):
+
+ def testDagAssigner(self):
+ test_cases = [
+ # Trivial.
+ ('0', '0'),
+ ('137', '137'),
+ ('5,15', '5,6'),
+ ('11,18', '11+7,12'),
+ ('5,5', '5,5'),
+ # Series only.
+ ('0,10,20,30,40', '0,1,2,3,4'),
+ ('5,15,25,35,45,55', '5,6,7,8,9,10'),
+ ('5,15,25,35,45,55', '5,7,100,101,256,1001'),
+ ('0,10,20,45,85', '0,1,2+25,3+40,4'),
+ # Branching with and without join.
+ ('0,0,10,20,20,30,40', '0,0,1,2,2,3,4'),
+ ('0,0,10,20,20,30,40', '0,0,*1,2,2,*3,4'),
+ ('0,0,2,12,12,16,26', '0+4,0+2,1,2+8,2+4,3,4'),
+ ('0,0,4,14,14,22,32', '0+4,0+2,*1,2+8,2+4,*3,4'),
+ # Wide branching with and without join.
+ ('0,10,10,10,10,10,10,20,30', '0,1,1,1,1,1,1,2,3'),
+ ('0,10,10,10,10,10,10,20,30', '0,1,1,1,1,1,1,*****2,3'),
+ ('0,2,2,2,2,2,2,7,17', '0+2,1+4,1+19,1,1+4,1+2,1+5,2,3'),
+ ('0,2,2,2,2,2,2,21,31', '0+2,1+4,1+19,1,1+4,1+2,1+5,*****2,3'),
+ # Expanding different branch, without join.
+ ('0,10,10,10,60,70,80', '0,1+15,1+15,1+50,2,3,4'),
+ ('0,10,10,10,25,35,45', '0,1+15,1+50,1+15,2,3,4'),
+ ('0,10,10,10,25,35,45', '0,1+50,1+15,1+15,2,3,4'),
+ # ... with join.
+ ('0,10,10,10,60,70,80', '0,1+15,1+15,1+50,**2,3,4'),
+ ('0,10,10,10,60,70,80', '0,1+15,1+50,1+15,**2,3,4'),
+ ('0,10,10,10,60,70,80', '0,1+50,1+15,1+15,**2,3,4'),
+ # ... with alternative join.
+ ('0,10,10,10,60,70,80', '0,1+15,1+15,1+50,2,**3,4'),
+ ('0,10,10,10,25,60,70', '0,1+15,1+50,1+15,2,**3,4'),
+ ('0,10,10,10,25,60,70', '0,1+50,1+15,1+15,2,**3,4'),
+ # Examples from assigner.py.
+ ('0,10,10,20,0,10,20,30,0,10',
+ '0,1,1,*2,0,4,5,*6,0,7'), # SA|AB|SDEC|SF
+ ('0,10,0,10,20,30', '0,1,0,2,*3,4'), # SA|SB*CD
+ ('0,10,0,10,20,30', '0,1,0,2,3,*4'), # SA|SBC*D
+ ('0,7,0,5,11,21', '0+7,1+4,0+5,2+3,*3,4'), # SA|SB*CD
+ ('0,7,0,5,8,18', '0+7,1+4,0+5,2+3,3,*4'), # SA|SBC*D
+ ('0,0,0,0,10,20', '0,0,0,0,*1,**2'), # S|S|S|S*A**B
+ ('0,0,0,0,10,20', '0,0,0,0,**1,*2'), # S|S|S|S**A*B
+ ('0,0,0,0,6,16', '0+8,0+7,0+6,0+5,*1,**2'), # S|S|S|S*A**B
+ ('0,0,0,0,7,17', '0+8,0+7,0+6,0+5,**1,*2'), # S|S|S|S**A*B
+ # Long branches without join.
+ ('0,10,0,0,10,20,0,10,20,30', '0,1,0,0,1,2,0,1,2,3'),
+ ('0,30,0,0,20,30,0,10,13,28', '0+30,1,0+50,0+20,1,2+17,0,1+3,2+15,3'),
+ # Long branches with join.
+ ('0,10,0,0,10,20,0,10,20,30', '0,1,0,0,1,2,0,1,2,***3'),
+ ('0,30,0,0,20,30,0,10,13,50',
+ '0+30,1,0+50,0+20,1,2+17,0,1+3,2+15,***3'),
+ # 2-level hierarchy.
+ ('0,10,10,20,0,10,10,20,30', '0,1,1,*2,0,1,1,*2,*3'),
+ ('0,2,2,10,0,3,3,6,34', '0+2,1+5,1+8,*2+24,0+3,1+2,1+3,*2+27,*3'),
+ ('0,2,2,10,0,3,3,6,34', '0+2,1+5,1+8,*2+24,0+3,1+2,1+3,*2+28,*3'),
+ ('0,2,2,10,0,3,3,6,35', '0+2,1+5,1+8,*2+24,0+3,1+2,1+3,*2+29,*3'),
+ # Binary hierarchy.
+ ('0,0,10,0,0,10,20,0,0,10,0,0,10,20,30',
+ '0,0,*1,0,0,*1,*2,0,0,*1,0,0,*1,*2,*3'),
+ ('0,0,2,0,0,5,11,0,0,8,0,0,5,14,18',
+ '0+1,0+2,*1+3,0+4,0+5,*1+6,*2+7,0+8,0+7,*1+6,0+5,0+4,*1+3,*2+2,*3+1'),
+ # Joining from different heads.
+ ('0,10,20,30,40,30,20,10,0,50', '0,1,2,3,4,3,2,1,0,****5'),
+ # Miscellaneous.
+ ('0,1,0,11', '0+1,1,0,*1'),
+ ]
+ for exp, spec in test_cases:
+ try:
+ actual, new_spec = _RunCoarseIdAssigner(spec)
+ self.failUnlessEqual(exp, actual)
+ # Test that assignment is idempotent.
+ actual2, new_spec2 = _RunCoarseIdAssigner(new_spec)
+ self.failUnlessEqual(actual, actual2)
+ self.failUnlessEqual(new_spec, new_spec2)
+ except Exception as e:
+ print(common.Color.RED(traceback.format_exc().rstrip()))
+ print('Failed spec: %s' % common.Color.CYAN(spec))
+ print(' Expected: %s' % common.Color.YELLOW(exp))
+ print(' Actual: %s' % common.Color.YELLOW(actual))
+ if new_spec != new_spec2:
+ print('Not idempotent')
+ if isinstance(e, AssertionError):
+ raise e
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/common.py b/chromium/tools/grit/grit/tool/update_resource_ids/common.py
new file mode 100644
index 00000000000..287bb6afb3e
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/common.py
@@ -0,0 +1,101 @@
+# 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.
+
+
+def AlignUp(v, align):
+ return (v + align - 1) // align * align
+
+
+def StripPlural(s):
+ assert s.endswith('s'), 'Expect %s to be plural' % s
+ return s[:-1]
+
+
+class Color:
+
+ def _MakeColor(code):
+ t = '\033[' + code + 'm%s\033[0m'
+ return lambda s: t % s
+
+ NONE = staticmethod(lambda s: s)
+ RED = staticmethod(_MakeColor('31'))
+ GREEN = staticmethod(_MakeColor('32'))
+ YELLOW = staticmethod(_MakeColor('33'))
+ BLUE = staticmethod(_MakeColor('34'))
+ MAGENTA = staticmethod(_MakeColor('35'))
+ CYAN = staticmethod(_MakeColor('36'))
+ WHITE = staticmethod(_MakeColor('37'))
+ GRAY = staticmethod(_MakeColor('30;1'))
+
+
+class TagInfo:
+ """Stores resource_ids tag entry (e.g., {"includes": 100} pair)."""
+
+ def __init__(self, raw_key, raw_value):
+ """TagInfo Constructor.
+
+ Args:
+ raw_key: parser.AnnotatedValue for the parsed key, e.g., "includes".
+ raw_value: parser.AnnotatedValue for the parsed value, e.g., 100.
+ """
+ # Tag name, e.g., 'include' (no "s" at end).
+ self.name = StripPlural(raw_key.val)
+ # |len(raw_value) > 1| is possible, e.g., see grd_reader_unittest.py's
+ # testAssignFirstIdsMultipleMessages. This feature seems unused though.
+ # TODO(huangs): Reconcile this (may end up removing multi-value feature).
+ assert len(raw_value) == 1
+ # Inclusive start *position* of the tag's start ID in resource_ids.
+ self.lo = raw_value[0].lo
+ # Exclusive end *position* of the tag's start ID in resource_ids.
+ self.hi = raw_value[0].hi
+ # The tag's start ID. Initially the old value, but may be reassigned to new.
+ self.id = raw_value[0].val
+ # The number of IDs the tag uses, to be assigned by ItemInfo.SetUsages().
+ self.usage = None
+
+
+class ItemInfo:
+ """resource_ids item, containing multiple TagInfo."""
+
+ def __init__(self, lo, grd, raw_item):
+ # Inclusive start position of the item's key. Serve as unique identifier.
+ self.lo = lo
+ # The GRD filename for the item.
+ self.grd = grd
+ # Optional META information for the item.
+ self.meta = None
+ # List of TagInfo associated witih the item.
+ self.tags = []
+ for k, v in raw_item.items():
+ if k.val == 'META':
+ assert self.meta is None
+ self.meta = v # Not flattened.
+ else:
+ self.tags.append(TagInfo(k, v))
+ self.tags.sort(key=lambda tag: tag.lo)
+
+ def SetUsages(self, tag_name_to_usage):
+ for tag in self.tags:
+ tag.usage = tag_name_to_usage.get(tag.name, 0)
+
+
+def BuildItemList(root_obj):
+ """Extracts ID assignments and structure from parsed resource_ids.
+
+ Returns: A list of ItemInfo, ordered by |lo|.
+ """
+ item_list = []
+ grd_seen = set()
+ for raw_key, raw_item in root_obj.iteritems(): # Unordered.
+ grd = raw_key.val
+ if grd == 'SRCDIR':
+ continue
+ if not grd.endswith('.grd'):
+ raise ValueError('Invalid GRD file: %s' % grd)
+ if grd in grd_seen:
+ raise ValueError('Duplicate GRD: %s' % grd)
+ grd_seen.add(grd)
+ item_list.append(ItemInfo(raw_key.lo, grd, raw_item))
+ item_list.sort(key=lambda item: item.lo)
+ return item_list
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/parser.py b/chromium/tools/grit/grit/tool/update_resource_ids/parser.py
new file mode 100644
index 00000000000..93d3c403e08
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/parser.py
@@ -0,0 +1,231 @@
+# 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.
+"""Structure-preserving parser for resource_ids files.
+
+Naive usage of eval() destroys resource_ids structure. This module provides a
+custom parser that annotates source byte ranges of "leaf values" (strings and
+integers).
+"""
+
+from __future__ import print_function
+
+_isWhitespace = lambda ch: ch in ' \t\n'
+_isNotNewline = lambda ch: ch != '\n'
+_isDigit = lambda ch: ch.isdigit()
+
+
+def _RenderLineCol(data, pos):
+ """Renders |pos| within text |data| in as text showing line and column."""
+ # This is used to pinpoint fatal parse errors, so okay to be inefficient.
+ new_lines = [i for i in range(pos) if data[i] == '\n']
+ row = 1 + len(new_lines)
+ col = (pos - new_lines[-1]) if new_lines else 1 + pos
+ return 'line %d, column %d' % (row, col)
+
+
+def Tokenize(data):
+ """Generator to split |data| into tokens.
+
+ Each token is specified as |(t, lo, hi)|:
+ * |t|: Type, with '#' = space / comments, '0' = int, 'S' = string, 'E' = end,
+ and other characters denoting themselves.
+ * |lo, hi|: Token's range within |data| (as |data[lo:hi]|).
+ """
+
+ class ctx: # Local context for mutable data shared across inner functions.
+ pos = 0
+
+ def _HasData():
+ return ctx.pos < len(data)
+
+ # Returns True if ended by |not pred()|, or False if ended by EOF.
+ def _EatWhile(pred):
+ while _HasData():
+ if pred(data[ctx.pos]):
+ ctx.pos += 1
+ else:
+ return True
+ return False
+
+ def _NextBlank():
+ lo = ctx.pos
+ while True:
+ if not _EatWhile(_isWhitespace) or data[ctx.pos] != '#':
+ break
+ ctx.pos += 1
+ if not _EatWhile(_isNotNewline):
+ break
+ ctx.pos += 1
+ return None if ctx.pos == lo else (lo, ctx.pos)
+
+ def _EatString():
+ lo = ctx.pos
+ delim = data[ctx.pos]
+ is_escaped = False
+ ctx.pos += 1
+ while _HasData():
+ ch = data[ctx.pos]
+ ctx.pos += 1
+ if is_escaped:
+ is_escaped = False
+ elif ch == '\\':
+ is_escaped = True
+ elif ch == delim:
+ return
+ raise ValueError('Unterminated string at %s' % _RenderLineCol(data, lo))
+
+ while _HasData():
+ blank = _NextBlank()
+ if blank is not None:
+ yield ('#', blank[0], blank[1])
+ if not _HasData():
+ break
+ lo = ctx.pos
+ ch = data[ctx.pos]
+ if ch in '{}[],:':
+ ctx.pos += 1
+ t = ch
+ elif ch.isdigit():
+ _EatWhile(_isDigit)
+ t = '0'
+ elif ch in '+-':
+ ctx.pos += 1
+ if not _HasData() or not data[ctx.pos].isdigit():
+ raise ValueError('Invalid int at %s' % _RenderLineCol(data, lo))
+ _EatWhile(_isDigit)
+ t = '0'
+ elif ch in '"\'':
+ _EatString()
+ t = 'S'
+ else:
+ raise ValueError(
+ 'Unknown char \'%s\' at %s' % (ch, _RenderLineCol(data, lo)))
+ yield (t, lo, ctx.pos)
+ yield ('E', ctx.pos, ctx.pos) # End sentinel.
+
+
+def _SkipBlanks(toks):
+ """Generator to remove whitespace and comments from Tokenize()."""
+ for t, lo, hi in toks:
+ if t != '#':
+ yield t, lo, hi
+
+
+class AnnotatedValue:
+ """Container for leaf values (ints or strings) with an annotated range."""
+
+ def __init__(self, val, lo, hi):
+ self.val = val
+ self.lo = lo
+ self.hi = hi
+
+ def __str__(self):
+ return '<%s@%d:%d>' % (str(self.val), self.lo, self.hi)
+
+ def __repr__(self):
+ return '<%r@%d:%d>' % (self.val, self.lo, self.hi)
+
+ def __hash__(self):
+ return hash(self.val)
+
+ def __eq__(self, other):
+ return self.val == other
+
+
+class ResourceIdParser:
+ """resource_ids parser that stores leaf values as AnnotatedValue.
+
+ Algorithm: Use Tokenize() to split |data| into tokens and _SkipBlanks() to
+ ignore comments and spacing, then apply a recursive parsing, using a one-token
+ look-ahead for decision making.
+ """
+
+ def __init__(self, data, tok_gen):
+ self.data = data
+ self.state = []
+ self.toks = _SkipBlanks(tok_gen)
+ self.tok_look_ahead = None
+
+ def _MakeErr(self, msg, pos):
+ return ValueError(msg + ' at ' + _RenderLineCol(self.data, pos))
+
+ def _PeekTok(self):
+ if self.tok_look_ahead is None:
+ self.tok_look_ahead = self.toks.next()
+ return self.tok_look_ahead
+
+ def _NextTok(self):
+ if self.tok_look_ahead is None:
+ return self.toks.next()
+ ret = self.tok_look_ahead
+ self.tok_look_ahead = None
+ return ret
+
+ def _EatTok(self, exp_t, tok_name=None):
+ t, lo, _ = self._NextTok()
+ if t != exp_t:
+ raise self._MakeErr('Bad token: Expect \'%s\'' % (tok_name or exp_t), lo)
+
+ def _NextIntOrString(self):
+ t, lo, hi = self._NextTok()
+ if t != '0' and t != 'S':
+ raise self._MakeErr('Expected number or string', lo)
+ value = eval(self.data[lo:hi])
+ return AnnotatedValue(value, lo, hi)
+
+ # Consumes separator ',' and returns whether |end_ch| is encountered.
+ def _EatSep(self, end_ch):
+ t, lo, _ = self._PeekTok()
+ if t == ',':
+ self._EatTok(',')
+ # Allow trailing ','.
+ t, _, _ = self._PeekTok()
+ return t == end_ch
+ elif t == end_ch:
+ return True
+ else:
+ raise self._MakeErr('Expect \',\' or \'%s\'' % end_ch, lo)
+
+ def _NextList(self):
+ self._EatTok('[')
+ ret = []
+ t, _, _ = self._PeekTok()
+ if t != ']':
+ while True:
+ ret.append(self._NextObject())
+ if self._EatSep(']'):
+ break
+ self._EatTok(']')
+ return ret
+
+ def _NextDict(self):
+ self._EatTok('{')
+ ret = {}
+ t, _, _ = self._PeekTok()
+ if t != '}':
+ while True:
+ k = self._NextIntOrString()
+ self._EatTok(':')
+ v = self._NextObject()
+ ret[k] = v
+ if self._EatSep('}'):
+ break
+ self._EatTok('}')
+ return ret
+
+ def _NextObject(self):
+ t, lo, _ = self._PeekTok()
+ if t == '[':
+ return self._NextList()
+ elif t == '{':
+ return self._NextDict()
+ elif t == '0' or t == 'S':
+ return self._NextIntOrString()
+ else:
+ raise self._MakeErr('Bad token: Type = %s' % t, lo)
+
+ def Parse(self):
+ root_obj = self._NextObject()
+ self._EatTok('E', 'EOF')
+ return root_obj
diff --git a/chromium/tools/grit/grit/tool/update_resource_ids/reader.py b/chromium/tools/grit/grit/tool/update_resource_ids/reader.py
new file mode 100644
index 00000000000..a5666cc620e
--- /dev/null
+++ b/chromium/tools/grit/grit/tool/update_resource_ids/reader.py
@@ -0,0 +1,75 @@
+# 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.
+"""Helpers to read GRD files and estimate resource ID usages.
+
+This module uses grit.grd_reader to estimate resource ID usages in GRD
+(and GRDP) files by counting the occurrences of {include, message, structure}
+tags. This approach avoids the complexties of conditional inclusions, but
+produces a conservative estimate of ID usages.
+"""
+
+from __future__ import print_function
+
+import collections
+import os
+
+from grit import grd_reader
+from grit.tool.update_resource_ids import common
+
+TAGS_OF_INTEREST = set(['include', 'message', 'structure'])
+
+
+def _CountResourceUsage(grd):
+ tag_name_to_count = {tag: set() for tag in TAGS_OF_INTEREST}
+ # Pass '_chromium', but '_google_chrome' would produce the same result.
+ root = grd_reader.Parse(grd, defines={'_chromium': True})
+ # Count all descendant tags, regardless of whether they're active.
+ for node in root.Preorder():
+ if node.name in TAGS_OF_INTEREST:
+ tag_name_to_count[node.name].add(node.attrs['name'])
+ return {k: len(v) for k, v in tag_name_to_count.iteritems() if v}
+
+
+def GenerateResourceUsages(item_list, src_dir, fake):
+ """Visits a list of ItemInfo to generate maps from tag name to usage.
+
+ Args:
+ root_obj: Root dict of a resource_ids file.
+ src_dir: Absolute directory of Chrome's src/ directory.
+ fake: For testing: Sets 10 as usages for all tags, to avoid reading GRD.
+ Yields:
+ Tuple (item, tag_name_to_usage), where |item| is from |item_list| and
+ |tag_name_to_usage| is a dict() mapping tag name to (int) usage.
+ """
+ if fake:
+ for item in item_list:
+ tag_name_to_usage = collections.Counter({t.name: 10 for t in item.tags})
+ yield item, tag_name_to_usage
+ return
+ for item in item_list:
+ supported_tag_names = set(tag.name for tag in item.tags)
+ if item.meta and 'sizes' in item.meta:
+ # If META has "sizes" field, use it instead of reading GRD.
+ tag_name_to_usage = collections.Counter()
+ for k, vlist in item.meta['sizes'].iteritems():
+ tag_name_to_usage[common.StripPlural(k.val)] = sum(v.val for v in vlist)
+ tag_names = set(tag_name_to_usage.keys())
+ if tag_names != supported_tag_names:
+ raise ValueError('META "sizes" field have identical fields as actual '
+ '"sizes" field.')
+ else:
+ # Generated GRD start with '<(SHARED_INTERMEDIATE_DIR)'. Just check '<'.
+ if item.grd.startswith('<'):
+ raise ValueError('%s: Generated GRD must use META with "sizes" field '
+ 'to specify size bounds.' % item.grd)
+ grd_file = os.sep.join([src_dir, item.grd])
+ if not os.path.isfile(grd_file):
+ raise ValueError('Nonexistent GRD provided: %s' % item.grd)
+ tag_name_to_usage = _CountResourceUsage(grd_file)
+ tag_names = set(tag_name_to_usage.keys())
+ if not tag_names.issubset(supported_tag_names):
+ missing = [t + 's' for t in tag_names - supported_tag_names]
+ raise ValueError(
+ 'Resource ids for %s needs entry for %s' % (item.grd, missing))
+ yield item, tag_name_to_usage
diff --git a/chromium/tools/grit/grit_rule.gni b/chromium/tools/grit/grit_rule.gni
index 002d8dc92ce..9a30ada59ab 100644
--- a/chromium/tools/grit/grit_rule.gni
+++ b/chromium/tools/grit/grit_rule.gni
@@ -98,7 +98,6 @@ import("//build/config/features.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/ui.gni")
import("//build/toolchain/gcc_toolchain.gni") # For enable_resource_whitelist_generation
-import("//third_party/closure_compiler/closure_args.gni")
if (enable_resource_whitelist_generation) {
assert(target_os == "android" || target_os == "win",
"unsupported platform for resource whitelist generation")
@@ -226,6 +225,7 @@ if (current_toolchain != host_toolchain) {
_strip_resource_files = is_android && is_official_build
_js_minifier = "//tools/grit/minify_with_uglify.py"
+_css_minifier = "//tools/grit/minimize_css.py"
grit_resource_id_file = "//tools/gritsettings/resource_ids"
grit_info_script = "//tools/grit/grit_info.py"
@@ -314,13 +314,11 @@ template("grit") {
get_path_info(rebase_path(invoker.outputs, ".", output_dir), "abspath")
# Add .info output for all pak files
- set_sources_assignment_filter([ "*.pak" ])
- sources = grit_outputs
- pak_grit_outputs = grit_outputs - sources
- sources = []
pak_info_outputs = []
- foreach(output, pak_grit_outputs) {
- pak_info_outputs += [ "${output}.info" ]
+ foreach(output, grit_outputs) {
+ if (get_path_info(output, "extension") == "pak") {
+ pak_info_outputs += [ output + ".info" ]
+ }
}
grit_custom_target = target_name + "_grit"
@@ -391,29 +389,34 @@ template("grit") {
args += define_args + grit_flags + assert_files_flags
if (enable_resource_whitelist_generation) {
- set_sources_assignment_filter([ "*.rc" ])
- sources = grit_outputs
- rc_grit_outputs = grit_outputs - sources
- sources = []
+ rc_grit_outputs = []
+ foreach(output, grit_outputs) {
+ if (get_path_info(output, "extension") == "rc") {
+ rc_grit_outputs += [ output ]
+ }
+ }
if (rc_grit_outputs != []) {
# Resource whitelisting cannot be used with .rc files.
# Make sure that there aren't any .pak outputs which would require
# whitelist annotations.
- assert(pak_grit_outputs == [], "can't combine .pak and .rc outputs")
+ assert(pak_info_outputs == [], "can't combine .pak and .rc outputs")
} else {
args += [ "--whitelist-support" ]
}
}
if (_strip_resource_files) {
js_minifier_command = rebase_path(_js_minifier, root_build_dir)
+ css_minifier_command = rebase_path(_css_minifier, root_build_dir)
args += [
"--js-minifier",
js_minifier_command,
+ "--css-minifier",
+ css_minifier_command,
]
inputs += [
_js_minifier,
- "//third_party/closure_compiler/compiler/compiler.jar",
+ _css_minifier,
]
}
@@ -474,13 +477,13 @@ template("grit") {
# Since we generate a file, we need to be run before the targets that
# depend on us.
- set_sources_assignment_filter([
- "*.json",
- "*.pak",
- "*.xml",
- ])
- sources = grit_outputs
- set_sources_assignment_filter(sources_assignment_filter)
+ sources = []
+ foreach(output, grit_outputs) {
+ extension = get_path_info(output, "extension")
+ if (extension != "json" && extension != "pak" && extension != "xml") {
+ sources += [ output ]
+ }
+ }
# Deps set on the template invocation will go on the action that runs
# grit above rather than this library. This target needs to depend on the
diff --git a/chromium/tools/grit/minimize_css.py b/chromium/tools/grit/minimize_css.py
new file mode 100755
index 00000000000..2c3b8aeb1ef
--- /dev/null
+++ b/chromium/tools/grit/minimize_css.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+# Copyright 2016 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 re
+import sys
+
+class CSSMinimizer(object):
+
+ INITIAL = 0
+ MAYBE_COMMENT_START = 1
+ INSIDE_COMMENT = 2
+ MAYBE_COMMENT_END = 3
+ INSIDE_SINGLE_QUOTE = 4
+ INSIDE_SINGLE_QUOTE_ESCAPE = 5
+ INSIDE_DOUBLE_QUOTE = 6
+ INSIDE_DOUBLE_QUOTE_ESCAPE = 7
+
+ def __init__(self):
+ self._output = ''
+ self._codeblock = ''
+
+ def flush_codeblock(self):
+ stripped = re.sub(r"\s+", ' ', self._codeblock)
+ stripped = re.sub(r";?\s*(?P<op>[{};])\s*", r'\g<op>', stripped)
+ self._output += stripped
+ self._codeblock = ''
+
+ def parse(self, content):
+ state = self.INITIAL
+ for char in content:
+ if state == self.INITIAL:
+ if char == '/':
+ state = self.MAYBE_COMMENT_START
+ elif char == "'":
+ self.flush_codeblock()
+ self._output += char
+ state = self.INSIDE_SINGLE_QUOTE
+ elif char == '"':
+ self.flush_codeblock()
+ self._output += char
+ state = self.INSIDE_DOUBLE_QUOTE
+ else:
+ self._codeblock += char
+ elif state == self.MAYBE_COMMENT_START:
+ if char == '*':
+ self.flush_codeblock()
+ state = self.INSIDE_COMMENT
+ else:
+ self._codeblock += '/' + char
+ state = self.INITIAL
+ elif state == self.INSIDE_COMMENT:
+ if char == '*':
+ state = self.MAYBE_COMMENT_END
+ else:
+ pass
+ elif state == self.MAYBE_COMMENT_END:
+ if char == '/':
+ state = self.INITIAL
+ else:
+ state = self.INSIDE_COMMENT
+ elif state == self.INSIDE_SINGLE_QUOTE:
+ if char == '\\':
+ self._output += char
+ state = self.INSIDE_SINGLE_QUOTE_ESCAPE
+ elif char == "'":
+ self._output += char
+ state = self.INITIAL
+ else:
+ self._output += char
+ elif state == self.INSIDE_SINGLE_QUOTE_ESCAPE:
+ self._output += char
+ state = self.INSIDE_SINGLE_QUOTE
+ elif state == self.INSIDE_DOUBLE_QUOTE:
+ if char == '\\':
+ self._output += char
+ state = self.INSIDE_DOUBLE_QUOTE_ESCAPE
+ elif char == '"':
+ self._output += char
+ state = self.INITIAL
+ else:
+ self._output += char
+ elif state == self.INSIDE_DOUBLE_QUOTE_ESCAPE:
+ self._output += char
+ state = self.INSIDE_DOUBLE_QUOTE
+
+ self.flush_codeblock()
+ self._output = self._output.strip()
+ return self._output
+
+ @classmethod
+ def minimize_css(cls, content):
+ minimizer = CSSMinimizer()
+ return minimizer.parse(content)
+
+def main():
+ result = ''
+ try:
+ result = CSSMinimizer.minimize_css(sys.stdin.read())
+ finally:
+ print(result)
+
+if __name__ == '__main__':
+ main()
diff --git a/chromium/tools/grit/minimize_css_unittest.py b/chromium/tools/grit/minimize_css_unittest.py
new file mode 100755
index 00000000000..cddc3130788
--- /dev/null
+++ b/chromium/tools/grit/minimize_css_unittest.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import unittest
+
+import minimize_css
+
+
+class CSSMinimizerTest(unittest.TestCase):
+
+ def test_simple(self):
+ source = """
+ div {
+ color: blue;
+ }
+ """
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(minimized, "div{color: blue}")
+
+ def test_attribute_selectors(self):
+ source = """
+ input[type="search" i]::-webkit-textfield-decoration-container {
+ direction: ltr;
+ }
+ """
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(
+ minimized,
+ # pylint: disable=line-too-long
+ """input[type="search" i]::-webkit-textfield-decoration-container{direction: ltr}""")
+
+ def test_strip_comment(self):
+ source = """
+ /* header */
+ html {
+ /* inside block */
+ display: block;
+ }
+ /* footer */
+ """
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(minimized, "html{ display: block}")
+
+ def test_no_strip_inside_quotes(self):
+ source = """div[foo=' bar ']"""
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(minimized, source)
+
+ source = """div[foo=" bar "]"""
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(minimized, source)
+
+ def test_escape_string(self):
+ source = """content: " <a onclick=\\\"javascript: alert ( 'foobar' ); \\\">";"""
+ minimized = minimize_css.CSSMinimizer.minimize_css(source)
+ self.assertEquals(minimized, source)
diff --git a/chromium/tools/grit/pak_util.py b/chromium/tools/grit/pak_util.py
index d32e539a603..ede638bbe1c 100755
--- a/chromium/tools/grit/pak_util.py
+++ b/chromium/tools/grit/pak_util.py
@@ -12,9 +12,12 @@ https://dev.chromium.org/developers/design-documents/linuxresourcesandlocalizeds
from __future__ import print_function
import argparse
+import gzip
import hashlib
import os
+import shutil
import sys
+import tempfile
# Import grit first to get local third_party modules.
import grit # pylint: disable=ungrouped-imports,unused-import
@@ -25,8 +28,25 @@ from grit.format import data_pack
def _RepackMain(args):
- data_pack.RePack(args.output_pak_file, args.input_pak_files, args.whitelist,
- args.suppress_removed_key_output)
+ output_info_filepath = args.output_pak_file + '.info'
+ if args.compress:
+ # If the file needs to be compressed, call RePack with a tempfile path,
+ # then compress the tempfile to args.output_pak_file.
+ temp_outfile = tempfile.NamedTemporaryFile()
+ out_path = temp_outfile.name
+ # Strip any non .pak extension from the .info output file path.
+ splitext = os.path.splitext(args.output_pak_file)
+ if splitext[1] != '.pak':
+ output_info_filepath = splitext[0] + '.info'
+ else:
+ out_path = args.output_pak_file
+ data_pack.RePack(out_path, args.input_pak_files, args.whitelist,
+ args.suppress_removed_key_output,
+ output_info_filepath=output_info_filepath)
+ if args.compress:
+ with open(args.output_pak_file, 'wb') as out:
+ with gzip.GzipFile(filename='', mode='wb', fileobj=out, mtime=0) as outgz:
+ shutil.copyfileobj(temp_outfile, outgz)
def _ExtractMain(args):
@@ -140,6 +160,8 @@ def main():
help='Path to a whitelist used to filter output pak file resource IDs.')
sub_parser.add_argument('--suppress-removed-key-output', action='store_true',
help='Do not log which keys were removed by the whitelist.')
+ sub_parser.add_argument('--compress', dest='compress', action='store_true',
+ default=False, help='Compress output_pak_file using gzip.')
sub_parser.set_defaults(func=_RepackMain)
sub_parser = sub_parsers.add_parser('extract', help='Extracts pak file')
diff --git a/chromium/tools/grit/repack.gni b/chromium/tools/grit/repack.gni
index fba90db4230..268edc8368d 100644
--- a/chromium/tools/grit/repack.gni
+++ b/chromium/tools/grit/repack.gni
@@ -20,6 +20,9 @@ import("//tools/grit/grit_rule.gni")
# Path of the file in the application bundle, defaults to
# {{bundle_resources_dir}}/{{source_file_part}}.
#
+# compress [optional]
+# Gzip the resulting bundle (and append .gz to the output name).
+#
# deps [optional]
# public_deps [optional]
# visibility [optional]
@@ -32,6 +35,8 @@ template("repack") {
_repack_target_name = "${target_name}__repack"
}
+ _compress = defined(invoker.compress) && invoker.compress
+
action(_repack_target_name) {
forward_variables_from(invoker,
[
@@ -66,6 +71,9 @@ template("repack") {
}
args += [ rebase_path(invoker.output, root_build_dir) ]
args += rebase_path(invoker.sources, root_build_dir)
+ if (_compress) {
+ args += [ "--compress" ]
+ }
}
if (_copy_data_to_bundle) {
@@ -153,6 +161,7 @@ template("repack_locales") {
[
"copy_data_to_bundle",
"bundle_output",
+ "compress",
"deps",
"repack_whitelist",
"testonly",
diff --git a/chromium/tools/gritsettings/resource_ids b/chromium/tools/gritsettings/resource_ids
index 60aa21e9e27..12bbb5759e6 100644
--- a/chromium/tools/gritsettings/resource_ids
+++ b/chromium/tools/gritsettings/resource_ids
@@ -12,13 +12,28 @@
#
# - chrome/app/
# - chrome/browser/
+# - chrome/ WebUI
# - chrome/ miscellaneous
+# - chromeos/
# - components/
+# - ios/ (overlaps with chrome/)
# - content/
-# - ios/ (overlaps with chrome/ and content/)
+# - ios/web/ (overlaps with content/)
# - everything else
#
# The range of ID values, which is used by pak files, is from 0 to 2^16 - 1.
+#
+# IMPORTANT: Update instructions:
+# * If adding items, manually assign draft start IDs so that numerical order is
+# preserved. Usually it suffices to +1 from previous tag.
+# * If updating items with repeated, be sure to add / update
+# "META": {"join": <duplicate count>},
+# for the item following duplicates. Be sure to look for duplicates that
+# may appear earlier than those that immediately precede the item.
+# * To update IDs, run the following (from src/):
+#
+# python tools/grit/grit.py update_resource_ids \
+# -o tools/gritsettings/resource_ids tools/gritsettings/resource_ids
{
# The first entry in the file, SRCDIR, is special: It is a relative path from
# this file to the base of your checkout.
@@ -43,166 +58,242 @@
# Leave lots of space for generated_resources since it has most of our
# strings.
"chrome/app/generated_resources.grd": {
+ # Big alignment since strings (previous item) are frequently added.
+ "META": {"join": 2, "align": 200},
"messages": [800],
},
"chrome/app/resources/locale_settings.grd": {
- "messages": [10000],
+ # Big alignment since strings (previous item) are frequently added.
+ "META": {"align": 1000},
+ "messages": [9000],
},
# These each start with the same resource id because we only use one
# file for each build (chromiumos, google_chromeos, linux, mac, or win).
"chrome/app/resources/locale_settings_chromiumos.grd": {
- "messages": [10100],
+ # Big alignment since strings (previous item) are frequently added.
+ "META": {"align": 100},
+ "messages": [9100],
},
"chrome/app/resources/locale_settings_google_chromeos.grd": {
- "messages": [10100],
+ "messages": [9100],
},
"chrome/app/resources/locale_settings_linux.grd": {
- "messages": [10100],
+ "messages": [9100],
},
"chrome/app/resources/locale_settings_mac.grd": {
- "messages": [10100],
+ "messages": [9100],
},
"chrome/app/resources/locale_settings_win.grd": {
- "messages": [10100],
+ "messages": [9100],
},
"chrome/app/theme/chrome_unscaled_resources.grd": {
- "includes": [10150],
+ "META": {"join": 5},
+ "includes": [9150],
},
# Leave space for theme_resources since it has many structures.
"chrome/app/theme/theme_resources.grd": {
- "structures": [10250],
+ "structures": [9230],
},
# END chrome/app section.
# START chrome/browser section.
"chrome/browser/browser_resources.grd": {
- "includes": [11000],
- "structures": [11800],
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "includes": [9500],
+ "structures": [9900],
+ },
+ "chrome/browser/resources/bookmarks/bookmarks_resources.grd": {
+ "includes": [9930],
+ "structures": [9950],
+ },
+ "chrome/browser/resources/bookmarks/bookmarks_resources_vulcanized.grd": {
+ "includes": [9970],
},
"chrome/browser/resources/chromeos/camera/camera_resources.grd": {
- "includes": [11870],
- "structures": [11930],
+ "includes": [9980],
+ "structures": [10040],
},
"chrome/browser/resources/chromeos/camera/src/strings/camera_strings.grd": {
- "messages": [11970],
+ "messages": [10100],
},
"chrome/browser/resources/chromeos/cellular_setup/cellular_setup_resources.grd": {
- "structures": [12040],
+ "structures": [10190],
},
"chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd": {
- "structures": [12050],
+ "structures": [10200],
},
"chrome/browser/resources/component_extension_resources.grd": {
- "includes": [12060],
- "structures": [12200],
+ "includes": [10210],
+ "structures": [10350],
},
"chrome/browser/resources/downloads/downloads_resources_vulcanized.grd": {
- "includes": [12240],
+ "includes": [10360],
},
"chrome/browser/resources/downloads/downloads_resources.grd": {
- "includes": [12250],
- "structures": [12260],
+ "includes": [10370],
+ "structures": [10380],
},
"chrome/browser/resources/extensions/extensions_resources_vulcanized.grd": {
- "includes": [12340],
+ "includes": [10390],
},
"chrome/browser/resources/extensions/extensions_resources.grd": {
- "structures": [12350],
+ "includes": [10400],
+ "structures": [10440],
+ },
+ "chrome/browser/resources/history/history_resources_vulcanized.grd": {
+ "includes": [10460],
},
- "chrome/browser/resources/invalidations_resources.grd": {
- "includes": [12440],
+ "chrome/browser/resources/history/history_resources.grd": {
+ "includes": [10480],
},
"chrome/browser/resources/local_ntp/local_ntp_resources.grd": {
- "includes": [12480],
+ "includes": [10520],
},
- "chrome/browser/resources/net_internals/net_internals_resources.grd": {
- "includes": [12540],
+ "chrome/browser/resources/new_tab_page/new_tab_page_resources.grd": {
+ "includes": [10560],
+ "structures": [10570],
},
"chrome/browser/resources/print_preview/print_preview_resources_vulcanized.grd": {
- "includes": [12550],
+ "includes": [10580],
},
"chrome/browser/resources/print_preview/print_preview_resources.grd": {
- "structures": [12560],
- },
- "chrome/browser/resources/quota_internals/quota_internals_resources.grd": {
- "includes": [12750],
+ "includes": [10590],
+ "structures": [10640],
},
"chrome/browser/resources/settings/os_settings_resources_vulcanized.grd": {
- "includes": [12770],
+ "includes": [10680],
},
"chrome/browser/resources/settings/os_settings_resources.grd": {
- "structures": [12780],
+ "structures": [10690],
},
"chrome/browser/resources/settings/settings_resources_vulcanized.grd": {
- "includes": [13280],
+ "includes": [11230],
},
"chrome/browser/resources/settings/settings_resources.grd": {
- "structures": [13290],
- },
- "chrome/browser/resources/sync_file_system_internals/sync_file_system_internals_resources.grd": {
- "includes": [13800],
+ "structures": [11240],
},
"chrome/browser/resources/tab_strip/tab_strip_resources.grd": {
- "structures": [13820],
- "includes": [13840],
- },
- "chrome/browser/resources/webapks/webapks_ui_resources.grd": {
- "includes": [13850],
+ "structures": [11830],
+ "includes": [11850],
},
"chrome/browser/resources/welcome/welcome_resources.grd": {
- "includes": [13860],
- "structures": [13910],
+ "includes": [11870],
+ "structures": [11900],
},
"chrome/browser/vr/testapp/vr_testapp_resources.grd": {
- "includes": [13950],
+ "includes": [11920],
},
# END chrome/browser section.
# START chrome/ WebUI resources section
+ "chrome/browser/media/kaleidoscope/internal/kaleidoscope_resources.grd": {
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "includes": [12000],
+ },
"chrome/browser/resources/bluetooth_internals/resources.grd": {
- "includes": [13970],
+ "includes": [12010],
+ },
+ "chrome/browser/resources/invalidations/invalidations_resources.grd": {
+ "includes": [12050],
+ },
+ "chrome/browser/resources/media/webrtc_logs_resources.grd": {
+ "includes": [12060],
+ },
+ "chrome/browser/resources/net_internals/net_internals_resources.grd": {
+ "includes": [12070],
},
"chrome/browser/resources/omnibox/resources.grd": {
- "includes": [14000],
+ "includes": [12080],
+ },
+ "chrome/browser/resources/quota_internals/quota_internals_resources.grd": {
+ "includes": [12100],
+ },
+ "chrome/browser/resources/sync_file_system_internals/sync_file_system_internals_resources.grd": {
+ "includes": [12110],
},
"chrome/browser/resources/usb_internals/resources.grd": {
- "includes": [14030],
+ "includes": [12120],
+ },
+ "chrome/browser/resources/webapks/webapks_ui_resources.grd": {
+ "includes": [12130],
},
"components/sync/driver/resources.grd": {
- "includes": [14050],
+ "includes": [12140],
+ },
+ "content/browser/resources/media/media_internals_resources.grd": {
+ "includes": [12160],
+ },
+ "content/browser/webrtc/resources/resources.grd": {
+ "includes": [12170],
},
# END chrome/ WebUI resources section
# START chrome/ miscellaneous section.
"chrome/android/features/test_dummy/internal/resources/resources.grd": {
- "includes": [14090],
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "includes": [12200],
},
"chrome/common/common_resources.grd": {
- "includes": [14180],
+ "includes": [12210],
},
"chrome/credential_provider/gaiacp/gaia_resources.grd": {
- "includes": [14200],
- "messages": [14210],
+ "includes": [12220],
+ "messages": [12230],
},
"chrome/renderer/resources/renderer_resources.grd": {
- "includes": [14250],
- "structures": [14360],
+ "includes": [12270],
+ "structures": [12350],
},
"chrome/test/data/webui_test_resources.grd": {
- "includes": [14400],
+ "includes": [12360],
},
# END chrome/ miscellaneous section.
# START chromeos/ section.
"chromeos/chromeos_strings.grd": {
- "messages": [14530],
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "messages": [12400],
+ },
+ "chromeos/components/help_app_ui/resources/help_app_resources.grd": {
+ "includes": [12450],
+ },
+ # Both help_app_bundle_resources.grd and help_app_bundle_mock_resources.grd
+ # start with the same id because only one of them is built depending on if
+ # src_internal is available. Lower bound for number of resource ids is number
+ # of languages (74).
+ "chromeos/components/help_app_ui/resources/app/help_app_bundle_resources.grd": {
+ "META": {"sizes": {"includes": [100],}}, # Relies on src-internal.
+ "includes": [12460],
+ },
+ "chromeos/components/help_app_ui/resources/mock/help_app_bundle_mock_resources.grd": {
+ "includes": [12460],
+ },
+ "chromeos/components/media_app_ui/resources/media_app_resources.grd": {
+ "META": {"join": 2},
+ "includes": [12580],
+ },
+ # Both media_app_bundle_resources.grd and media_app_bundle_mock_resources.grd
+ # start with the same id because only one of them is built depending on if
+ # src_internal is available. Lower bound for number of resource ids is number
+ # of languages (74).
+ "chromeos/components/media_app_ui/resources/app/app/media_app_bundle_resources.grd": {
+ "META": {"sizes": {"includes": [100],}}, # Relies on src-internal.
+ "includes": [12590],
+ },
+ "chromeos/components/media_app_ui/resources/mock/media_app_bundle_mock_resources.grd": {
+ "includes": [12590],
},
"chromeos/resources/chromeos_resources.grd": {
- "includes": [14580],
+ "META": {"join": 2},
+ "includes": [12710],
},
# END chromeos/ section.
@@ -211,36 +302,39 @@
# We only use one file depending on whether we're building Chromium or
# Google Chrome.
"components/components_chromium_strings.grd": {
- "messages": [15060],
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "messages": [12800],
},
"components/components_google_chrome_strings.grd": {
- "messages": [15060],
+ "messages": [12800],
},
"components/components_locale_settings.grd": {
- "includes": [15080],
- "messages": [15090],
+ "META": {"join": 2},
+ "includes": [12820],
+ "messages": [12830],
},
"components/components_strings.grd": {
- "messages": [15120],
+ "messages": [12840],
},
"components/omnibox/resources/omnibox_resources.grd": {
- "includes": [17210],
+ "includes": [14770],
},
"components/policy/resources/policy_templates.grd": {
- "structures": [17220],
+ "structures": [14780],
},
"components/resources/components_resources.grd": {
- "includes": [17230],
+ "includes": [14790],
},
"components/resources/components_scaled_resources.grd": {
- "structures": [17400],
+ "structures": [14870],
},
"components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd": {
- "messages": [17600],
+ "messages": [14910],
},
"components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
- "includes": [18000]
+ "includes": [14930]
},
# END components/ section.
@@ -250,61 +344,72 @@
# App only use one file depending on whether it is iOS or other platform.
"ios/chrome/app/resources/ios_resources.grd": {
"includes": [400],
- "structures": [1000],
+ "structures": [420],
},
# Chromium strings and Google Chrome strings must start at the same id.
# We only use one file depending on whether we're building Chromium or
# Google Chrome.
"ios/chrome/app/strings/ios_chromium_strings.grd": {
- "messages": [1500],
+ # Big alignment to make start IDs look nicer.
+ "META": {"align": 100},
+ "messages": [500],
},
"ios/chrome/app/strings/ios_google_chrome_strings.grd": {
- "messages": [1500],
+ "messages": [500],
},
"ios/chrome/app/strings/ios_strings.grd": {
- "messages": [2000],
+ # Big alignment since strings (previous item) are frequently added.
+ "META": {"join": 2, "align": 200},
+ "messages": [600],
},
"ios/chrome/app/theme/ios_theme_resources.grd": {
- "structures": [2500],
+ # Big alignment since strings (previous item) are frequently added.
+ "META": {"align": 100},
+ "structures": [1400],
},
"ios/chrome/share_extension/strings/ios_share_extension_strings.grd": {
- "messages": [3000],
+ "messages": [1440],
},
"ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd": {
- "messages": [3050],
+ "messages": [1450],
},
"ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd": {
- "messages": [3070],
+ "messages": [1470],
},
"ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd": {
- "messages": [3070],
+ "messages": [1470],
},
"ios/chrome/content_widget_extension/strings/ios_content_widget_extension_chromium_strings.grd": {
- "messages": [3080],
+ "META": {"join": 2},
+ "messages": [1480],
},
"ios/chrome/content_widget_extension/strings/ios_content_widget_extension_google_chrome_strings.grd": {
- "messages": [3080],
+ "messages": [1480],
},
+
# END ios/ section.
# START content/ section.
# content/ and ios/web/ must start at the same id.
# App only use one file depending on whether it is iOS or other platform.
"content/app/resources/content_resources.grd": {
- "structures": [20000],
+ # Big alignment at start of section.
+ "META": {"join": 3, "align": 100},
+ "structures": [15000],
},
"content/content_resources.grd": {
- "includes": [20400],
+ "includes": [15030],
},
"content/shell/shell_resources.grd": {
- "includes": [20500],
+ "includes": [15070],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
- "includes": [20550],
+ "META": {"sizes": {"includes": [20],}},
+ "includes": [15080],
},
# END content/ section.
@@ -312,152 +417,157 @@
# content/ and ios/web/ must start at the same id.
# App only use one file depending on whether it is iOS or other platform.
"ios/web/ios_web_resources.grd": {
- "includes": [20000],
+ # Big alignment at start of section.
+ "META": {"align": 100},
+ "includes": [15000],
},
"ios/web/test/test_resources.grd": {
- "includes": [22000],
+ "includes": [15010],
},
# END ios/web/ section.
# START "everything else" section.
- # Everything but chrome/, components/, content/, and ios/
+ # Everything but chrome/, chromeos/, components/, content/, and ios/
"android_webview/ui/aw_resources.grd": {
- "includes": [23100],
+ # Big alignment at start of section.
+ "META": {"join": 2, "align": 100},
+ "includes": [15200],
},
"android_webview/ui/aw_strings.grd": {
- "messages": [23110],
+ "messages": [15210],
},
"ash/app_list/resources/app_list_resources.grd": {
- "structures": [23120],
+ "structures": [15220],
},
"ash/ash_strings.grd": {
- "messages": [23125],
+ "messages": [15230],
},
"ash/components/ash_components_strings.grd": {
- "messages": [23740],
+ "messages": [15970],
},
"ash/keyboard/ui/keyboard_resources.grd": {
- "includes": [23960],
+ "includes": [16220],
},
"ash/login/resources/login_resources.grd": {
- "structures": [24060],
+ "structures": [16300],
},
"ash/public/cpp/resources/ash_public_unscaled_resources.grd": {
- "includes": [24070],
+ "includes": [16310],
},
"chromecast/renderer/resources/extensions_renderer_resources.grd": {
- "includes": [24110],
+ "includes": [16320],
},
"cloud_print/virtual_driver/win/install/virtual_driver_setup_resources.grd": {
- "includes": [24150],
- "messages": [24160],
+ "includes": [16230],
+ "messages": [16235],
},
"device/bluetooth/bluetooth_strings.grd": {
- "messages": [24200],
+ "messages": [16240],
},
"device/fido/fido_strings.grd": {
- "messages": [24240],
+ "messages": [16275],
},
"extensions/browser/resources/extensions_browser_resources.grd": {
- "structures": [24250],
+ "structures": [16380],
},
"extensions/extensions_resources.grd": {
- "includes": [24260],
+ "includes": [16390],
},
"extensions/renderer/resources/extensions_renderer_resources.grd": {
- "includes": [24270],
- "structures": [24400],
+ "includes": [16400],
+ "structures": [16470],
},
"extensions/shell/app_shell_resources.grd": {
- "includes": [24410],
+ "includes": [16480],
},
"extensions/strings/extensions_strings.grd": {
- "messages": [24420],
+ "messages": [16490],
},
"headless/lib/resources/headless_lib_resources.grd": {
- "includes": [24500],
+ "includes": [16570],
},
"mojo/public/js/mojo_bindings_resources.grd": {
- "includes": [24550],
+ "includes": [16580],
},
"net/base/net_resources.grd": {
- "includes": [24590],
+ "includes": [16600],
},
"remoting/resources/remoting_strings.grd": {
- "messages": [24600],
+ "messages": [16610],
},
"services/services_strings.grd": {
- "messages": [25000],
+ "messages": [16990],
},
"third_party/blink/public/blink_image_resources.grd": {
- "structures": [25100],
+ "structures": [17000],
},
"third_party/blink/public/blink_resources.grd": {
- "includes": [25200],
+ "includes": [17010],
},
"third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd": {
- "includes": [25300],
- "structures": [25400],
+ "includes": [17090],
+ "structures": [17100],
},
"third_party/blink/public/strings/blink_strings.grd": {
- "messages": [25600],
+ "messages": [17110],
},
"third_party/ink/ink_resources.grd": {
- "includes": [25900],
+ "includes": [17420],
},
"third_party/libaddressinput/chromium/address_input_strings.grd": {
- "messages": [25910],
+ "messages": [17430],
},
"ui/base/test/ui_base_test_resources.grd": {
- "messages": [26000],
+ "messages": [17480],
},
"ui/chromeos/resources/ui_chromeos_resources.grd": {
- "structures": [26010],
+ "structures": [17490],
},
"ui/chromeos/ui_chromeos_strings.grd": {
- "messages": [26100],
+ "messages": [17590],
},
"ui/file_manager/file_manager_resources.grd": {
- "includes": [26550],
+ "includes": [18510],
},
"ui/resources/ui_resources.grd": {
- "structures": [27000],
+ "structures": [18730],
},
"ui/resources/ui_unscaled_resources.grd": {
- "includes": [27250],
+ "includes": [18870],
},
"ui/strings/app_locale_settings.grd": {
- "messages": [27300],
+ "messages": [18900],
},
"ui/strings/ui_strings.grd": {
- "messages": [27350],
+ "messages": [18910],
},
"ui/views/resources/views_resources.grd": {
- "structures": [27600],
+ "structures": [19210],
},
"ui/webui/resources/webui_resources.grd": {
- "includes": [27880],
- "structures": [28080],
+ "includes": [19270],
+ "structures": [19430],
},
"weblayer/weblayer_resources.grd": {
- "includes": [28700],
+ "includes": [20050],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd": {
- "includes": [28880],
+ "META": {"sizes": {"includes": [500],}},
+ "includes": [20060],
},
# END "everything else" section.
diff --git a/chromium/tools/gritsettings/translation_expectations.pyl b/chromium/tools/gritsettings/translation_expectations.pyl
index 7dc85b2ddb3..ba0d3871328 100644
--- a/chromium/tools/gritsettings/translation_expectations.pyl
+++ b/chromium/tools/gritsettings/translation_expectations.pyl
@@ -13,18 +13,19 @@
{
"desktop_grds": {
"languages": [
- "am", "ar", "bg", "bn", "ca", "cs", "da", "de", "el", "en-GB", "es",
- "es-419", "et", "fa", "fi", "fil", "fr", "gu", "hi", "hr", "hu", "id",
- "it", "iw", "ja", "kn", "ko", "lt", "lv", "ml", "mr", "ms", "nl", "no",
- "pl", "pt-BR", "pt-PT", "ro", "ru", "sk", "sl", "sr", "sv", "sw", "ta",
- "te", "th", "tr", "uk", "vi", "zh-CN", "zh-TW",
+ "af", "am", "ar", "as", "az", "be", "bg", "bn", "bs", "ca", "cs", "da",
+ "de", "el", "en-GB", "es", "es-419", "et", "eu", "fa", "fi", "fil", "fr",
+ "fr-CA", "gl", "gu", "hi", "hr", "hu", "hy", "id", "is", "it", "iw", "ja",
+ "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml", "mn",
+ "mr", "ms", "my", "ne", "nl", "no", "or", "pa", "pl", "pt-BR", "pt-PT",
+ "ro", "ru", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th",
+ "tr", "uk", "ur", "uz", "vi", "zh-CN", "zh-HK", "zh-TW", "zu",
],
"files": [
"android_webview/java/strings/android_webview_strings.grd",
"android_webview/ui/aw_strings.grd",
"ash/ash_strings.grd",
"ash/components/ash_components_strings.grd",
- "chrome/android/java/strings/android_chrome_strings.grd",
"chrome/android/features/vr/java/strings/android_chrome_vr_strings.grd",
"chrome/android/features/media_router/java/strings/android_chrome_media_router_strings.grd",
"chrome/android/features/keyboard_accessory/internal/java/strings/android_keyboard_accessory_strings.grd",
@@ -36,11 +37,11 @@
"chrome/app/generated_resources.grd",
"chrome/app/google_chrome_strings.grd",
"chrome/browser/resources/chromeos/camera/src/strings/camera_strings.grd",
- "chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd",
- "chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd",
- "chrome/browser/resources/chromeos/switch_access/strings/switch_access_strings.grd",
+ "chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings.grd",
+ "chrome/browser/resources/chromeos/accessibility/select_to_speak/strings/select_to_speak_strings.grd",
+ "chrome/browser/resources/chromeos/accessibility/switch_access/strings/switch_access_strings.grd",
"chrome/browser/touch_to_fill/android/internal/java/strings/android_touch_to_fill_strings.grd",
- "chrome/browser/ui/android/widget/java/strings/android_ui_widget_strings.grd",
+ "chrome/browser/ui/android/strings/android_chrome_strings.grd",
"chrome/credential_provider/gaiacp/gaia_resources.grd",
"chromeos/chromeos_strings.grd",
"components/autofill/android/java/strings/autofill_strings.grd",
@@ -95,7 +96,6 @@
"cloud_print/virtual_driver/win/install/virtual_driver_setup_resources.grd": "Separate release process",
"components/components_locale_settings.grd": "Not UI strings; localized separately",
"components/omnibox/resources/omnibox_resources.grd": "Not UI strings; localized separately",
- "third_party/blink/renderer/devtools/front_end/langpacks/devtools_ui_strings.grd" : "Devtools UI strings that are optionally enabled by browser.",
"tools/grit/grit/testdata/buildinfo.grd": "Test data",
"tools/grit/grit/testdata/chrome/app/generated_resources.grd": "Test data",
"tools/grit/grit/testdata/substitute.grd": "Test data",
diff --git a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn b/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn
index 9fe6ae9d8e9..125ec3e7e39 100644
--- a/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn
+++ b/chromium/tools/ipc_fuzzer/get_accessible_interfaces/BUILD.gn
@@ -6,6 +6,7 @@ executable("get_accessible_interfaces") {
deps = [
"//base",
"//chrome/app:chrome_service_manifests",
+ "//chrome/common",
"//content/public/app:service_manifests",
]
}
diff --git a/chromium/tools/ipc_fuzzer/message_lib/BUILD.gn b/chromium/tools/ipc_fuzzer/message_lib/BUILD.gn
index d352eca751c..7c42fcc28c5 100644
--- a/chromium/tools/ipc_fuzzer/message_lib/BUILD.gn
+++ b/chromium/tools/ipc_fuzzer/message_lib/BUILD.gn
@@ -14,7 +14,6 @@ static_library("ipc_message_lib") {
"//chrome/common/safe_browsing:proto",
"//components/guest_view/common",
"//components/nacl/common:buildflags",
- "//components/network_hints/common",
"//components/safe_browsing/common",
"//components/spellcheck/common",
"//components/subresource_filter/content/common",
@@ -29,7 +28,7 @@ static_library("ipc_message_lib") {
"//skia",
"//third_party/blink/public:blink",
"//third_party/blink/public:blink_headers",
- "//third_party/webrtc_overrides",
+ "//third_party/webrtc_overrides:webrtc_component",
"//ui/accessibility:ax_enums_mojo",
]
if (is_win) {
diff --git a/chromium/tools/ipc_fuzzer/message_lib/DEPS b/chromium/tools/ipc_fuzzer/message_lib/DEPS
index fbbb05a1085..2dee4c963a1 100644
--- a/chromium/tools/ipc_fuzzer/message_lib/DEPS
+++ b/chromium/tools/ipc_fuzzer/message_lib/DEPS
@@ -3,7 +3,6 @@ include_rules = [
"+components/dns_prefetch/common",
"+components/guest_view/common",
"+components/nacl/common",
- "+components/network_hints/common",
"+components/password_manager/content/common",
"+components/pdf/common",
"+components/safe_browsing",
diff --git a/chromium/tools/ipc_fuzzer/message_lib/all_messages.h b/chromium/tools/ipc_fuzzer/message_lib/all_messages.h
index 68df5e2d5b2..acfaef7b35a 100644
--- a/chromium/tools/ipc_fuzzer/message_lib/all_messages.h
+++ b/chromium/tools/ipc_fuzzer/message_lib/all_messages.h
@@ -22,7 +22,6 @@
#include "components/nacl/common/nacl_host_messages.h"
#endif
#include "components/guest_view/common/guest_view_message_generator.h"
-#include "components/network_hints/common/network_hints_message_generator.h"
#include "components/subresource_filter/content/common/subresource_filter_messages.h"
#include "content/common/all_messages.h"
#include "extensions/common/extension_message_generator.h"
diff --git a/chromium/tools/ipc_fuzzer/message_replay/BUILD.gn b/chromium/tools/ipc_fuzzer/message_replay/BUILD.gn
index cff5180fa20..8086f208ac0 100644
--- a/chromium/tools/ipc_fuzzer/message_replay/BUILD.gn
+++ b/chromium/tools/ipc_fuzzer/message_replay/BUILD.gn
@@ -6,11 +6,13 @@ executable("ipc_fuzzer_replay") {
testonly = true
configs += [ "//tools/ipc_fuzzer:ipc_fuzzer_tool_config" ]
deps = [
+ "//content/common",
"//mojo/core/embedder",
"//tools/ipc_fuzzer/message_lib:ipc_message_lib",
]
public_deps = [
"//ipc",
+ "//mojo/public/cpp/bindings",
]
sources = [
"replay.cc",
diff --git a/chromium/tools/ipc_fuzzer/message_replay/DEPS b/chromium/tools/ipc_fuzzer/message_replay/DEPS
index f69c943f559..9af6d1d3b25 100644
--- a/chromium/tools/ipc_fuzzer/message_replay/DEPS
+++ b/chromium/tools/ipc_fuzzer/message_replay/DEPS
@@ -1,5 +1,6 @@
include_rules = [
"+chrome/common",
+ "+content/common",
"+content/public/common",
"+mojo/core/embedder",
"+mojo/public",
diff --git a/chromium/tools/ipc_fuzzer/message_replay/replay_process.cc b/chromium/tools/ipc_fuzzer/message_replay/replay_process.cc
index bf561454a2a..7ca93cd0ef5 100644
--- a/chromium/tools/ipc_fuzzer/message_replay/replay_process.cc
+++ b/chromium/tools/ipc_fuzzer/message_replay/replay_process.cc
@@ -17,14 +17,17 @@
#include "base/run_loop.h"
#include "build/build_config.h"
#include "chrome/common/chrome_switches.h"
-#include "content/public/common/connection_filter.h"
+#include "content/common/child_process.mojom-test-utils.h"
#include "content/public/common/content_switches.h"
-#include "content/public/common/service_manager_connection.h"
#include "ipc/ipc.mojom.h"
#include "ipc/ipc_channel_mojo.h"
#include "mojo/core/embedder/configuration.h"
#include "mojo/core/embedder/embedder.h"
#include "mojo/core/embedder/scoped_ipc_support.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/pending_remote.h"
+#include "mojo/public/cpp/bindings/remote.h"
+#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/platform/platform_channel.h"
#include "mojo/public/cpp/platform/platform_channel_endpoint.h"
#include "mojo/public/cpp/system/invitation.h"
@@ -36,30 +39,39 @@
#endif
namespace ipc_fuzzer {
+
namespace {
-class IPCChannelBootstrapper : public content::ConnectionFilter {
+// Used to simulate a basic child process IPC endpoint and bootstrap the legacy
+// IPC channel driven by this process.
+class FakeChildProcessImpl
+ : public content::mojom::ChildProcessInterceptorForTesting {
public:
- explicit IPCChannelBootstrapper(
- mojo::ScopedMessagePipeHandle bootstrap_handle)
- : bootstrap_handle_(std::move(bootstrap_handle)) {}
+ explicit FakeChildProcessImpl(
+ mojo::PendingRemote<IPC::mojom::ChannelBootstrap> legacy_ipc_bootstrap)
+ : legacy_ipc_bootstrap_(std::move(legacy_ipc_bootstrap)) {
+ ignore_result(disconnected_process_.BindNewPipeAndPassReceiver());
+ }
- private:
- void OnBindInterface(const service_manager::BindSourceInfo& source_info,
- const std::string& interface_name,
- mojo::ScopedMessagePipeHandle* interface_pipe,
- service_manager::Connector* connector) override {
- if (interface_name != IPC::mojom::ChannelBootstrap::Name_)
- return;
-
- DCHECK(bootstrap_handle_.is_valid());
- mojo::FuseMessagePipes(std::move(*interface_pipe),
- std::move(bootstrap_handle_));
+ // content::mojom::ChildProcessInterceptorForTesting overrides:
+ content::mojom::ChildProcess* GetForwardingInterface() override {
+ return disconnected_process_.get();
}
- mojo::ScopedMessagePipeHandle bootstrap_handle_;
+ void Initialize(mojo::PendingRemote<content::mojom::ChildProcessHostBootstrap>
+ bootstrap) override {
+ bootstrap_.Bind(std::move(bootstrap));
+ }
- DISALLOW_COPY_AND_ASSIGN(IPCChannelBootstrapper);
+ void BootstrapLegacyIpc(
+ mojo::PendingReceiver<IPC::mojom::ChannelBootstrap> receiver) override {
+ mojo::FusePipes(std::move(receiver), std::move(legacy_ipc_bootstrap_));
+ }
+
+ private:
+ mojo::PendingRemote<IPC::mojom::ChannelBootstrap> legacy_ipc_bootstrap_;
+ mojo::Remote<content::mojom::ChildProcessHostBootstrap> bootstrap_;
+ mojo::Remote<content::mojom::ChildProcess> disconnected_process_;
};
} // namespace
@@ -140,19 +152,15 @@ bool ReplayProcess::Initialize(int argc, const char** argv) {
void ReplayProcess::OpenChannel() {
DCHECK(mojo_invitation_);
- service_manager_connection_ = content::ServiceManagerConnection::Create(
- service_manager::mojom::ServiceRequest(
- mojo_invitation_->ExtractMessagePipe(
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- service_manager::switches::kServiceRequestChannelToken))),
- io_thread_.task_runner());
- mojo::MessagePipe ipc_pipe;
- service_manager_connection_->AddConnectionFilter(
- std::make_unique<IPCChannelBootstrapper>(std::move(ipc_pipe.handle0)));
- service_manager_connection_->Start();
+ mojo::PendingRemote<IPC::mojom::ChannelBootstrap> bootstrap;
+ auto bootstrap_receiver = bootstrap.InitWithNewPipeAndPassReceiver();
+ mojo::MakeSelfOwnedReceiver(
+ std::make_unique<FakeChildProcessImpl>(std::move(bootstrap)),
+ mojo::PendingReceiver<content::mojom::ChildProcess>(
+ mojo_invitation_->ExtractMessagePipe(0)));
channel_ = IPC::ChannelProxy::Create(
IPC::ChannelMojo::CreateClientFactory(
- std::move(ipc_pipe.handle1), io_thread_.task_runner(),
+ bootstrap_receiver.PassPipe(), io_thread_.task_runner(),
base::ThreadTaskRunnerHandle::Get()),
this, io_thread_.task_runner(), base::ThreadTaskRunnerHandle::Get());
}
diff --git a/chromium/tools/ipc_fuzzer/message_replay/replay_process.h b/chromium/tools/ipc_fuzzer/message_replay/replay_process.h
index f8ba5fb7b54..7f855ccc9dc 100644
--- a/chromium/tools/ipc_fuzzer/message_replay/replay_process.h
+++ b/chromium/tools/ipc_fuzzer/message_replay/replay_process.h
@@ -19,10 +19,6 @@
#include "ipc/ipc_message.h"
#include "tools/ipc_fuzzer/message_lib/message_file.h"
-namespace content {
-class ServiceManagerConnection;
-}
-
namespace mojo {
class IncomingInvitation;
namespace core {
@@ -60,8 +56,6 @@ class ReplayProcess : public IPC::Listener {
std::unique_ptr<mojo::core::ScopedIPCSupport> mojo_ipc_support_;
std::unique_ptr<mojo::IncomingInvitation> mojo_invitation_;
- std::unique_ptr<content::ServiceManagerConnection>
- service_manager_connection_;
std::unique_ptr<IPC::ChannelProxy> channel_;
base::SingleThreadTaskExecutor main_task_executor_;
base::Thread io_thread_;
diff --git a/chromium/tools/ipc_fuzzer/message_tools/message_list.cc b/chromium/tools/ipc_fuzzer/message_tools/message_list.cc
index 81d43bba007..2f68a76365d 100644
--- a/chromium/tools/ipc_fuzzer/message_tools/message_list.cc
+++ b/chromium/tools/ipc_fuzzer/message_tools/message_list.cc
@@ -49,7 +49,6 @@ static bool check_msgtable() {
exemptions.push_back(TestMsgStart);
exemptions.push_back(BlinkTestMsgStart);
exemptions.push_back(WebTestMsgStart);
- exemptions.push_back(IPCTestMsgStart);
exemptions.push_back(WorkerMsgStart); // Now only used by tests.
exemptions.push_back(ChromeUtilityPrintingMsgStart); // BUILDFLAGS, sigh.
@@ -63,7 +62,6 @@ static bool check_msgtable() {
exemptions.push_back(GinJavaBridgeMsgStart);
exemptions.push_back(AndroidWebViewMsgStart);
exemptions.push_back(ExtensionWorkerMsgStart);
- exemptions.push_back(SurfaceViewManagerMsgStart);
#endif // !defined(OS_ANDROID)
#if !defined(USE_OZONE)
diff --git a/chromium/tools/json_schema_compiler/feature_compiler.py b/chromium/tools/json_schema_compiler/feature_compiler.py
index d643e29d9ff..f98f165ffba 100644
--- a/chromium/tools/json_schema_compiler/feature_compiler.py
+++ b/chromium/tools/json_schema_compiler/feature_compiler.py
@@ -194,6 +194,7 @@ FEATURE_GRAMMAR = (
'component': 'SimpleFeature::COMPONENT_LOCATION',
'external_component': 'SimpleFeature::EXTERNAL_COMPONENT_LOCATION',
'policy': 'SimpleFeature::POLICY_LOCATION',
+ 'unpacked': 'SimpleFeature::UNPACKED_LOCATION',
}
}
},
diff --git a/chromium/tools/json_schema_compiler/json_schema_api.gni b/chromium/tools/json_schema_compiler/json_schema_api.gni
index d1d6ea18153..3ace2ec5e13 100644
--- a/chromium/tools/json_schema_compiler/json_schema_api.gni
+++ b/chromium/tools/json_schema_compiler/json_schema_api.gni
@@ -61,6 +61,14 @@ compiler_sources = [
# A string to prepend to generated bundle class names, so that multiple
# bundle rules can be used without conflicting. Only used with one of
# the cpp-bundle generators.
+#
+# root [optional]
+# base directory of the source json file(s)
+# defaults to "//"
+#
+# target_prefix [optional]
+# subdir below root_gen_dir that is the base directory for the generated
+# output files, defaults to empty string (no subdir)
template("generated_json_strings") {
assert(defined(invoker.sources),
"\"sources\" must be defined for the $target_name template.")
@@ -68,18 +76,32 @@ template("generated_json_strings") {
"\"root_namespace\" must be defined for the $target_name template.")
assert(defined(invoker.bundle_name),
"\"bundle_name\" must be defined for bundles")
+ assert(!defined(invoker.root) || defined(invoker.target_prefix),
+ "\"target_prefix\" is required when \"root\" is specified")
schema_include_rules = ""
if (defined(invoker.schema_include_rules)) {
schema_include_rules = invoker.schema_include_rules
}
+ include_dir = root_gen_dir
+ destdir = rebase_path(root_gen_dir, root_build_dir)
+ if (defined(invoker.target_prefix)) {
+ destdir += "/${invoker.target_prefix}"
+ include_dir += "/${invoker.target_prefix}"
+ }
+
generated_config_name = target_name + "_generated_config"
config(generated_config_name) {
- include_dirs = [ root_gen_dir ]
+ include_dirs = [ include_dir ]
}
root_namespace = invoker.root_namespace
+ if (defined(invoker.root)) {
+ root_folder = invoker.root
+ } else {
+ root_folder = "//"
+ }
# Save the target_name, since other targets (like the action() and
# action_foreach() below) need to reference them, but would have their own
@@ -96,8 +118,8 @@ template("generated_json_strings") {
"$target_gen_dir/generated_schemas.h",
]
args = [
- "--root=" + rebase_path("//", root_build_dir),
- "--destdir=" + rebase_path(root_gen_dir, root_build_dir),
+ "--root=" + rebase_path(root_folder, root_build_dir),
+ "--destdir=$destdir",
"--namespace=$root_namespace",
"--bundle-name=" + invoker.bundle_name,
"--generator=cpp-bundle-schema",
@@ -148,6 +170,14 @@ template("generated_json_strings") {
# used as the root path when looking for {schema}/{schema}_api.h headers
# when generating API registration bundles. Such headers, if found, are
# automatically included by the generated code.
+#
+# root [optional]
+# base directory of the source json file(s)
+# defaults to "//"
+#
+# target_prefix [optional]
+# subdir below root_gen_dir that is the base directory for the generated
+# output files, defaults to empty string (no subdir)
template("function_registration") {
assert(defined(invoker.sources),
"\"sources\" must be defined for the $target_name template.")
@@ -157,15 +187,24 @@ template("function_registration") {
"\"bundle_name\" must be defined for bundle registrations")
assert(defined(invoker.impl_dir),
"\"impl_dir\" must be defined for the $target_name template.")
+ assert(!defined(invoker.root) || defined(invoker.target_prefix),
+ "\"target_prefix\" is required when \"root\" is specified")
schema_include_rules = ""
if (defined(invoker.schema_include_rules)) {
schema_include_rules = invoker.schema_include_rules
}
+ include_dir = root_gen_dir
+ destdir = rebase_path(root_gen_dir, root_build_dir)
+ if (defined(invoker.target_prefix)) {
+ destdir += "/${invoker.target_prefix}"
+ include_dir += "/${invoker.target_prefix}"
+ }
+
generated_config_name = target_name + "_generated_config"
config(generated_config_name) {
- include_dirs = [ root_gen_dir ]
+ include_dirs = [ include_dir ]
}
root_namespace = invoker.root_namespace
@@ -175,8 +214,14 @@ template("function_registration") {
# target_name variable.
root_target_name = target_name
+ if (defined(invoker.root)) {
+ root_folder = invoker.root
+ } else {
+ root_folder = "//"
+ }
+
# Child directory inside the generated file tree.
- gen_child_dir = rebase_path(invoker.impl_dir, "//")
+ gen_child_dir = get_path_info(invoker.impl_dir+"/", "gen_dir")
bundle_generator_registration_name =
target_name + "_bundle_generator_registration"
@@ -185,16 +230,16 @@ template("function_registration") {
script = compiler_script
inputs = compiler_sources + invoker.sources
outputs = [
- "$root_gen_dir/$gen_child_dir/generated_api_registration.cc",
- "$root_gen_dir/$gen_child_dir/generated_api_registration.h",
+ "$gen_child_dir/generated_api_registration.cc",
+ "$gen_child_dir/generated_api_registration.h",
]
args = [
- "--root=" + rebase_path("//", root_build_dir),
- "--destdir=" + rebase_path(root_gen_dir, root_build_dir),
+ "--root=" + rebase_path(root_folder, root_build_dir),
+ "--destdir=$destdir",
"--namespace=$root_namespace",
"--bundle-name=" + invoker.bundle_name,
"--generator=cpp-bundle-registration",
- "--impl-dir=$gen_child_dir",
+ "--impl-dir=" + rebase_path(invoker.impl_dir, root_folder),
"--include-rules=$schema_include_rules",
] + rebase_path(invoker.sources, root_build_dir)
}
@@ -225,20 +270,43 @@ template("function_registration") {
}
# Generates the C++ types for the given APIs.
+#
+# root [optional]
+# base directory of the source json file(s)
+# defaults to "//"
+#
+# target_prefix [optional]
+# subdir below root_gen_dir that is the base directory for the generated
+# output files, defaults to empty string (no subdir)
template("generated_types") {
assert(defined(invoker.sources),
"\"sources\" must be defined for the $target_name template.")
assert(defined(invoker.root_namespace),
"\"root_namespace\" must be defined for the $target_name template.")
+ assert(!defined(invoker.root) || defined(invoker.target_prefix),
+ "\"target_prefix\" is required when \"root\" is specified")
schema_include_rules = ""
if (defined(invoker.schema_include_rules)) {
schema_include_rules = invoker.schema_include_rules
}
+ include_dir = root_gen_dir
+ destdir = rebase_path(root_gen_dir, root_build_dir)
+ if (defined(invoker.target_prefix)) {
+ destdir += "/${invoker.target_prefix}"
+ include_dir += "/${invoker.target_prefix}"
+ }
+
generated_config_name = target_name + "_generated_config"
config(generated_config_name) {
- include_dirs = [ root_gen_dir ]
+ include_dirs = [ include_dir ]
+ }
+
+ if (defined(invoker.root)) {
+ root_folder = invoker.root
+ } else {
+ root_folder = "//"
}
root_namespace = invoker.root_namespace
@@ -260,8 +328,8 @@ template("generated_types") {
]
args = [
"{{source}}",
- "--root=" + rebase_path("//", root_build_dir),
- "--destdir=" + rebase_path(root_gen_dir, root_build_dir),
+ "--root=" + rebase_path(root_folder, root_build_dir),
+ "--destdir=$destdir",
"--namespace=$root_namespace",
"--generator=cpp",
"--include-rules=$schema_include_rules",
diff --git a/chromium/tools/luci-go/OWNERS b/chromium/tools/luci-go/OWNERS
index 8e289664f73..e1411a376cf 100644
--- a/chromium/tools/luci-go/OWNERS
+++ b/chromium/tools/luci-go/OWNERS
@@ -1,4 +1,4 @@
maruel@chromium.org
-tandrii@chromium.org
+tandrii@google.com
vadimsh@chromium.org
# COMPONENT: Infra>Platform
diff --git a/chromium/tools/mb/docs/user_guide.md b/chromium/tools/mb/docs/user_guide.md
index fd5823b5ee9..cc00ee13bf2 100644
--- a/chromium/tools/mb/docs/user_guide.md
+++ b/chromium/tools/mb/docs/user_guide.md
@@ -166,6 +166,25 @@ information on isolates and swarming.
In either case, any flags past `--` will be passed on to the command
to be run inside the isolate.
+### mb try
+
+Tries your change on the trybots. Right now this is essentially a fancy tryjob,
+like one you could trigger via `git cl try` or via CQ dry runs. Basic usage is
+
+`mb.py try -m tryserver.chromium.linux -b linux-rel base_unittests`
+
+Your change must be uploaded to Gerrit. Local changes will not be uploaded for
+you. It uses the gerrit CL associated with your given git branch.
+
+You still have to specify the mastername (`-m`) and buildername (`-b`) arguments.
+See [trybots.py](https://cs.chromium.org/chromium/build/scripts/slave/recipe_modules/chromium_tests/trybots.py)
+for a mapping of which bots are on which tryservers, and what those bots mirror.
+Any trybot in `trybots.py` is supported; you can test your code on windows, for
+example. The tryjob will compile and run your code on windows.
+
+The target (`base_unittests`) in the example is a ninja build target. Most ninja
+unittest targets can be put here which currently runs on the bots.
+
### mb validate
Does internal checking to make sure the config file is syntactically
diff --git a/chromium/tools/mb/mb.py b/chromium/tools/mb/mb.py
index 6d2784a0c58..da847969ebe 100755
--- a/chromium/tools/mb/mb.py
+++ b/chromium/tools/mb/mb.py
@@ -64,7 +64,6 @@ def main(args):
mbw = MetaBuildWrapper()
return mbw.Main(args)
-
class MetaBuildWrapper(object):
def __init__(self):
self.chromium_src_dir = CHROMIUM_SRC_DIR
@@ -170,8 +169,10 @@ class MetaBuildWrapper(object):
description='Generate a new set of build files.')
AddCommonOptions(subp)
subp.add_argument('--swarming-targets-file',
- help='save runtime dependencies for targets listed '
- 'in file.')
+ help='generates runtime dependencies for targets listed '
+ 'in file as .isolate and .isolated.gen.json files. '
+ 'Targets should be listed by name, separated by '
+ 'newline.')
subp.add_argument('--json-output',
help='Write errors to json.output')
subp.add_argument('path',
@@ -214,6 +215,17 @@ class MetaBuildWrapper(object):
'implies --quiet')
subp.set_defaults(func=self.CmdLookup)
+ subp = subps.add_parser('try',
+ description='Try your change on a remote builder')
+ AddCommonOptions(subp)
+ subp.add_argument('target',
+ help='ninja target to build and run')
+ subp.add_argument('--force', default=False, action='store_true',
+ help='Force the job to run. Ignores local checkout state;'
+ ' by default, the tool doesn\'t trigger jobs if there are'
+ ' local changes which are not present on Gerrit.')
+ subp.set_defaults(func=self.CmdTry)
+
subp = subps.add_parser(
'run', formatter_class=argparse.RawDescriptionHelpFormatter)
subp.description = (
@@ -377,6 +389,62 @@ class MetaBuildWrapper(object):
self.PrintCmd(cmd, env)
return 0
+ def CmdTry(self):
+ ninja_target = self.args.target
+ if ninja_target.startswith('//'):
+ self.Print("Expected a ninja target like base_unittests, got %s" % (
+ ninja_target))
+ return 1
+
+ _, out, _ = self.Run(['git', 'cl', 'diff', '--stat'], force_verbose=False)
+ if out:
+ self.Print("Your checkout appears to local changes which are not uploaded"
+ " to Gerrit. Changes must be committed and uploaded to Gerrit"
+ " to be tested using this tool.")
+ if not self.args.force:
+ return 1
+
+ json_path = self.PathJoin(self.chromium_src_dir, 'out.json')
+ try:
+ ret, out, err = self.Run(
+ ['git', 'cl', 'issue', '--json=out.json'], force_verbose=False)
+ if ret != 0:
+ self.Print(
+ "Unable to fetch current issue. Output and error:\n%s\n%s" % (
+ out, err
+ ))
+ return ret
+ with open(json_path) as f:
+ issue_data = json.load(f)
+ finally:
+ if self.Exists(json_path):
+ os.unlink(json_path)
+
+ if not issue_data['issue']:
+ self.Print("Missing issue data. Upload your CL to Gerrit and try again.")
+ return 1
+
+ def run_cmd(previous_res, cmd):
+ res, out, err = self.Run(cmd, force_verbose=False, stdin=previous_res)
+ if res != 0:
+ self.Print("Err while running", cmd)
+ self.Print("Output", out)
+ raise Exception(err)
+ return out
+
+ result = LedResult(None, run_cmd).then(
+ # TODO(martiniss): maybe don't always assume the bucket?
+ 'led', 'get-builder', 'luci.chromium.try:%s' % self.args.builder).then(
+ 'led', 'edit', '-r', 'chromium_trybot_experimental',
+ '-p', 'tests=["%s"]' % ninja_target).then(
+ 'led', 'edit-system', '--tag=purpose:user-debug-mb-try').then(
+ 'led', 'edit-cr-cl', issue_data['issue_url']).then(
+ 'led', 'launch').result
+
+ swarming_data = json.loads(result)['swarming']
+ self.Print("Launched task at https://%s/task?id=%s" % (
+ swarming_data['host_name'], swarming_data['task_id']))
+
def CmdRun(self):
vals = self.GetConfig()
if not vals:
@@ -441,9 +509,9 @@ class MetaBuildWrapper(object):
('infra/tools/luci/logdog/butler/${platform}',
'git_revision:e1abc57be62d198b5c2f487bfb2fa2d2eb0e867c'),
('infra/tools/luci/vpython-native/${platform}',
- 'git_revision:98a268c6432f18aedd55d62b9621765316dc2a16'),
+ 'git_revision:e317c7d2c17d4c3460ee37524dfce4e1dee4306a'),
('infra/tools/luci/vpython/${platform}',
- 'git_revision:98a268c6432f18aedd55d62b9621765316dc2a16'),
+ 'git_revision:e317c7d2c17d4c3460ee37524dfce4e1dee4306a'),
]
for pkg, vers in cipd_packages:
cmd.append('--cipd-package=.swarming_module:%s:%s' % (pkg, vers))
@@ -548,7 +616,7 @@ class MetaBuildWrapper(object):
else:
raise MBErr('unrecognized platform string "%s"' % self.platform)
- return [('pool', 'Chrome'),
+ return [('pool', 'chromium.tests'),
('cpu', 'x86-64'),
os_dim]
@@ -1130,12 +1198,15 @@ class MetaBuildWrapper(object):
'chromevox_test_data/',
'gen/ui/file_manager/file_manager/',
'resources/chromeos/',
- 'resources/chromeos/autoclick/',
- 'resources/chromeos/chromevox/',
- 'resources/chromeos/select_to_speak/',
- 'test_data/chrome/browser/resources/chromeos/autoclick/',
- 'test_data/chrome/browser/resources/chromeos/chromevox/',
- 'test_data/chrome/browser/resources/chromeos/select_to_speak/',
+ 'resources/chromeos/accessibility/autoclick/',
+ 'resources/chromeos/accessibility/chromevox/',
+ 'resources/chromeos/accessibility/select_to_speak/',
+ 'test_data/chrome/browser/resources/chromeos/accessibility/'
+ 'autoclick/',
+ 'test_data/chrome/browser/resources/chromeos/accessibility/'
+ 'chromevox/',
+ 'test_data/chrome/browser/resources/chromeos/accessibility/'
+ 'select_to_speak/',
)) or
(is_mac and f in ( # https://crbug.com/1000667
'AlertNotificationService.xpc/',
@@ -1305,6 +1376,7 @@ class MetaBuildWrapper(object):
msan = 'is_msan=true' in vals['gn_args']
tsan = 'is_tsan=true' in vals['gn_args']
cfi_diag = 'use_cfi_diag=true' in vals['gn_args']
+ 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']
@@ -1352,7 +1424,7 @@ class MetaBuildWrapper(object):
'--target', target,
'--logdog-bin-cmd', '../../bin/logdog_butler',
'--store-tombstones']
- if java_coverage:
+ if clang_coverage or java_coverage:
cmdline += ['--coverage-dir', '${ISOLATED_OUTDIR}']
elif is_fuchsia and test_type != 'script':
cmdline += [
@@ -1658,14 +1730,16 @@ class MetaBuildWrapper(object):
ret, _, _ = self.Run(ninja_cmd, buffer_output=False)
return ret
- def Run(self, cmd, env=None, force_verbose=True, buffer_output=True):
+ def Run(self, cmd, env=None, force_verbose=True, buffer_output=True,
+ stdin=None):
# This function largely exists so it can be overridden for testing.
if self.args.dryrun or self.args.verbose or force_verbose:
self.PrintCmd(cmd, env)
if self.args.dryrun:
return 0, '', ''
- ret, out, err = self.Call(cmd, env=env, buffer_output=buffer_output)
+ ret, out, err = self.Call(cmd, env=env, buffer_output=buffer_output,
+ stdin=stdin)
if self.args.verbose or force_verbose:
if ret:
self.Print(' -> returned %d' % ret)
@@ -1676,12 +1750,12 @@ class MetaBuildWrapper(object):
self.Print(err, end='', file=sys.stderr)
return ret, out, err
- def Call(self, cmd, env=None, buffer_output=True):
+ def Call(self, cmd, env=None, buffer_output=True, stdin=None):
if buffer_output:
p = subprocess.Popen(cmd, shell=False, cwd=self.chromium_src_dir,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- env=env)
- out, err = p.communicate()
+ env=env, stdin=subprocess.PIPE)
+ out, err = p.communicate(input=stdin)
else:
p = subprocess.Popen(cmd, shell=False, cwd=self.chromium_src_dir,
env=env)
@@ -1761,6 +1835,28 @@ class MetaBuildWrapper(object):
return fp.write(contents)
+class LedResult(object):
+ """Holds the result of a led operation. Can be chained using |then|."""
+
+ def __init__(self, result, run_cmd):
+ self._result = result
+ self._run_cmd = run_cmd
+
+ @property
+ def result(self):
+ """The mutable result data of the previous led call as decoded JSON."""
+ return self._result
+
+ def then(self, *cmd):
+ """Invoke led, passing it the current `result` data as input.
+
+ Returns another LedResult object with the output of the command.
+ """
+ return self.__class__(
+ self._run_cmd(self._result, cmd), self._run_cmd)
+
+
+
class MBErr(Exception):
pass
diff --git a/chromium/tools/mb/mb_config.pyl b/chromium/tools/mb/mb_config.pyl
index fb662fe2cc9..09052c219b3 100644
--- a/chromium/tools/mb/mb_config.pyl
+++ b/chromium/tools/mb/mb_config.pyl
@@ -14,15 +14,13 @@
# below). MB uses this dict to look up which config to use for a given bot.
'masters': {
'chrome': {
- 'chromeos-amd64-generic-google-rel': 'official_cros_chrome_sdk',
- 'chromeos-betty-google-rel': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-betty-pi-arc-google-rel': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-eve-google-rel': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-kevin-google-rel': 'official_cros_chrome_sdk_headless_ozone',
+ 'chromeos-betty-google-rel': 'official_cros_chrome_sdk',
+ 'chromeos-betty-pi-arc-google-rel': 'official_cros_chrome_sdk',
+ 'chromeos-eve-google-rel': 'official_cros_chrome_sdk',
+ 'chromeos-kevin-google-rel': 'official_cros_chrome_sdk',
'linux-chromeos-google-rel': 'official_goma_chromeos_minimal_symbols',
'linux-google-rel': 'official_goma',
'mac-google-rel': 'official_goma',
- 'win-celab-rel': 'official_celab_release_bot',
'win-google-rel': 'official_goma_x86',
},
@@ -59,6 +57,7 @@
'Deterministic Android': 'android_without_codecs_release_bot_minimal_symbols',
'Deterministic Android (dbg)': 'android_debug_bot',
+ 'android-arm64-proguard-rel': 'android_release_bot_minimal_symbols_arm64',
'android-cronet-arm-dbg': 'android_cronet_debug_static_bot_arm_no_neon',
'android-cronet-arm-rel': 'android_cronet_release_bot_minimal_symbols_arm_no_neon',
'android-cronet-arm64-dbg': 'android_cronet_debug_static_bot_arm64',
@@ -68,12 +67,11 @@
'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-jumbo-rel': 'android_jumbo_release_bot_minimal_symbols',
- 'android-kitkat-arm-rel': 'android_release_bot_minimal_symbols',
+ 'android-kitkat-arm-rel': 'android_release_bot_minimal_symbols_fastbuild',
# 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.
- 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_bot_minimal_symbols_arm64',
+ 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild',
'android-pie-arm64-rel': 'android_release_bot_minimal_symbols_arm64_webview_google',
},
@@ -81,10 +79,9 @@
'chromium.android.fyi': {
'Android WebView P FYI (rel)': 'android_release_bot_minimal_symbols_arm64_webview_google',
'Android WebView P OOR-CORS FYI (rel)': 'android_release_bot_minimal_symbols_arm64_webview_google',
- 'Memory Infra Tester': 'android_release_thumb_bot',
'android-marshmallow-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86_resource_whitelisting',
'android-pie-x86-fyi-rel': 'android_release_bot_minimal_symbols_x86',
- 'android-bfcache-debug': 'android_debug_bot',
+ 'android-bfcache-debug': 'android_debug_static_bot',
},
'chromium.chromedriver': {
@@ -98,12 +95,12 @@
'Linux ChromiumOS Full': 'chromeos_with_codecs_release_bot',
'chromeos-amd64-generic-asan-rel': 'cros_chrome_sdk_asan',
- 'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_headless_ozone_cfi_thin_lto',
+ 'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_cfi_thin_lto',
'chromeos-amd64-generic-dbg': 'cros_chrome_sdk_dbg',
- 'chromeos-amd64-generic-rel': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-amd64-generic-rel': 'cros_chrome_sdk',
'chromeos-arm-generic-dbg': 'cros_chrome_sdk_dbg',
'chromeos-arm-generic-rel': 'cros_chrome_sdk',
- 'chromeos-kevin-rel': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-kevin-rel': 'cros_chrome_sdk',
'linux-chromeos-rel': 'chromeos_with_codecs_release_bot',
'linux-chromeos-dbg': 'chromeos_with_codecs_debug_bot',
},
@@ -125,7 +122,7 @@
'ToTAndroid x64': 'android_clang_tot_x64',
'ToTLinuxOfficial': 'clang_tot_official',
'ToTLinux': 'clang_tot_linux_full_symbols_shared_release',
- 'ToTLinuxCoverage': 'clang_tot_coverage_minimal_symbols_release_with_libfuzzer',
+ 'ToTLinuxCoverage': 'clang_tot_coverage_minimal_symbols_release',
'ToTLinux (dbg)': 'clang_tot_shared_debug',
'ToTLinuxASan': 'clang_tot_asan_lsan_static_release',
'ToTLinuxASanLibfuzzer': 'libfuzzer_asan_clang_tot_release',
@@ -204,10 +201,11 @@
'chromium.fyi': {
'Afl Upload Linux ASan': 'afl_asan_shared_release_bot',
- 'android-code-coverage': 'android_debug_static_bot_arm64_minimal_symbols_coverage',
- 'chromeos-amd64-generic-rel-vm-tests': 'cros_chrome_sdk_headless_ozone_dcheck_always_on',
- 'chromeos-kevin-rel-hw-tests': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-vm-code-coverage': 'cros_chrome_sdk_headless_ozone_coverage',
+ 'android-code-coverage': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_java_coverage',
+ 'android-code-coverage-native': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_native_coverage',
+ 'chromeos-amd64-generic-rel-vm-tests': 'cros_chrome_sdk_dcheck_always_on',
+ 'chromeos-kevin-rel-hw-tests': 'cros_chrome_sdk',
+ 'chromeos-vm-code-coverage': 'cros_chrome_sdk_coverage',
'linux-bfcache-debug': 'debug_bot',
'linux-oor-cors-rel': 'release_bot_minimal_symbols',
'linux-chromeos-code-coverage': 'chromeos_with_codecs_release_bot_coverage',
@@ -251,6 +249,7 @@
'Mac Builder (dbg) Goma Latest Client (clobber)': 'gpu_tests_debug_bot',
'Mac Builder (dbg) Goma RBE Canary (clobber)': 'gpu_tests_debug_bot',
'Mac Builder (dbg) Goma RBE Latest Client (clobber)': 'gpu_tests_debug_bot',
+ 'Mac Builder Next': 'gpu_tests_release_bot_minimal_symbols',
'mac-archive-rel-goma-canary': 'release_bot_mac_strip_minimal_symbols',
'mac-archive-rel-goma-latest': 'release_bot_mac_strip_minimal_symbols',
'mac-archive-rel-goma-rbe-canary': 'release_bot_mac_strip_minimal_symbols',
@@ -259,20 +258,22 @@
'mac-archive-rel-goma-canary-localoutputcache': 'release_bot_mac_strip_minimal_symbols',
'mac-archive-rel-goma-latest-localoutputcache': 'release_bot_mac_strip_minimal_symbols',
- 'chromeos-amd64-generic-rel-goma-canary': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-amd64-generic-rel-goma-latest': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-amd64-generic-rel-goma-rbe-canary': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-amd64-generic-rel-goma-rbe-latest': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-amd64-generic-rel-goma-canary': 'cros_chrome_sdk',
+ 'chromeos-amd64-generic-rel-goma-latest': 'cros_chrome_sdk',
+ 'chromeos-amd64-generic-rel-goma-rbe-canary': 'cros_chrome_sdk',
+ 'chromeos-amd64-generic-rel-goma-rbe-latest': 'cros_chrome_sdk',
'android-archive-dbg-goma-canary': 'android_without_codecs_debug_bot',
'android-archive-dbg-goma-latest': 'android_without_codecs_debug_bot',
'android-archive-dbg-goma-rbe-canary': 'android_without_codecs_debug_bot',
'android-archive-dbg-goma-rbe-latest': 'android_without_codecs_debug_bot',
'android-archive-dbg-goma-rbe-ats-latest': 'android_without_codecs_debug_bot',
'android-archive-dbg-goma-rbe-ats-canary': 'android_without_codecs_debug_bot',
+
'ios-device-goma-canary-clobber': 'ios_error',
'ios-device-goma-latest-clobber': 'ios_error',
'ios-device-goma-rbe-canary-clobber': 'ios_error',
'ios-device-goma-rbe-latest-clobber': 'ios_error',
+ 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot',
# TODO(yyanagisawa): deprecate cl.exe.
'Win cl.exe Goma Canary LocalOutputCache': 'release_bot_x86_minimal_symbols_enable_archive_compression_no_clang',
@@ -288,9 +289,6 @@
'ios-simulator-code-coverage': 'clang_code_coverage_ios',
'ios-simulator': 'ios_error',
- 'Jumbo Linux x64': 'jumbo_large_chunks_release_bot_compile_only',
- 'Jumbo Mac': 'jumbo_release_bot_compile_only',
- 'Jumbo Win x64': 'jumbo_release_bot_compile_only',
'Libfuzzer Upload Chrome OS ASan': 'libfuzzer_chromeos_asan_release_bot',
'Libfuzzer Upload Linux ASan': 'libfuzzer_asan_release_bot',
'Libfuzzer Upload Linux ASan Debug': 'libfuzzer_asan_debug_bot',
@@ -312,6 +310,7 @@
'Mac deterministic': 'release_bot_mac_strip_minimal_symbols_deterministic',
'Mac deterministic (dbg)': 'debug_bot_deterministic',
'mac-autofill-captured-sites-rel': 'release_bot',
+ 'mac-code-coverage': 'clang_code_coverage',
'android-mojo-webview-rel': 'android_release_bot_minimal_symbols_arm64',
'Mojo ChromiumOS': 'chromeos_with_codecs_release_trybot',
@@ -325,10 +324,11 @@
'Win 10 Fast Ring': 'release_trybot',
'win-annotator-rel': 'release_bot',
'win-autofill-captured-sites-rel': 'release_bot',
+ 'win-celab-builder-rel': 'celab_release_bot',
'win-password-manager-captured-sites-rel': 'release_bot',
'win-pixel-builder-rel': 'release_bot',
'win32-arm64-rel': 'win32_arm64_release_bot',
- 'win10-code-coverage': 'clang_code_coverage_nofuzzer',
+ 'win10-code-coverage': 'clang_code_coverage',
},
'chromium.goma': {
@@ -369,7 +369,7 @@
'Chromium Android ARM 32-bit Goma RBE Prod (dbg) (clobber)': 'android_debug_static_bot',
# RBE FYI
- 'chromeos-amd64-generic-rel (Goma RBE FYI)': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-amd64-generic-rel (Goma RBE FYI)': 'cros_chrome_sdk',
'fuchsia-fyi-arm64-rel (Goma RBE FYI)': 'release_bot_fuchsia_arm64',
'fuchsia-fyi-x64-rel (Goma RBE FYI)': 'release_bot_fuchsia',
},
@@ -382,7 +382,7 @@
'GPU Linux Builder (dbg)': 'gpu_tests_debug_trybot',
'GPU Win x64 Builder': 'gpu_tests_release_trybot_resource_whitelisting',
'GPU Win x64 Builder (dbg)': 'gpu_tests_debug_trybot',
- 'Android Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
+ 'Android Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64_fastbuild',
},
'chromium.gpu.fyi': {
@@ -396,10 +396,10 @@
'Android FYI Release (Nexus 9)': 'gpu_tests_android_release_trybot_arm64',
'Android FYI Release (NVIDIA Shield TV)': 'gpu_tests_android_release_trybot_arm64',
'Android FYI Release (Pixel 2)': 'gpu_tests_android_release_trybot',
- 'Android FYI 32 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot',
- 'Android FYI 64 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot_arm64',
- 'Android FYI 32 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot',
- 'Android FYI 64 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot_arm64',
+ 'Android FYI 32 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_ndk_release_trybot',
+ 'Android FYI 64 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_ndk_release_trybot_arm64',
+ 'Android FYI 32 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_ndk_release_trybot',
+ 'Android FYI 64 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_ndk_release_trybot_arm64',
'Android FYI SkiaRenderer GL (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
'Android FYI SkiaRenderer Vulkan (Pixel 2)': 'gpu_tests_android_release_trybot',
'GPU FYI Linux Builder': 'gpu_fyi_tests_release_trybot',
@@ -409,13 +409,15 @@
'GPU FYI Mac Builder': 'gpu_fyi_tests_release_trybot',
'GPU FYI Mac Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
'GPU FYI Mac dEQP Builder': 'deqp_release_trybot',
- 'GPU FYI Perf Android 64 Builder': 'gpu_tests_android_vulkan_release_trybot_arm64',
+ 'GPU FYI Perf Android 64 Builder': 'gpu_tests_android_vulkan_ndk_release_trybot_arm64',
'GPU FYI Win Builder': 'gpu_fyi_tests_release_trybot_x86',
'GPU FYI Win Builder (dbg)': 'gpu_fyi_tests_debug_trybot_x86',
'GPU FYI Win dEQP Builder': 'deqp_release_trybot_x86',
'GPU FYI Win x64 Builder': 'gpu_fyi_tests_release_trybot',
'GPU FYI Win x64 Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
'GPU FYI Win x64 dEQP Builder': 'deqp_release_trybot',
+ 'GPU FYI Win x64 DX12 Vulkan Builder': 'gpu_fyi_tests_dx12vk_release_trybot',
+ 'GPU FYI Win x64 DX12 Vulkan Builder (dbg)': 'gpu_fyi_tests_dx12vk_debug_trybot',
'GPU FYI XR Win x64 Builder': 'gpu_fyi_tests_release_trybot',
'Linux FYI GPU TSAN Release': 'gpu_fyi_tests_release_trybot_tsan',
'Mac FYI GPU ASAN Release': 'gpu_fyi_tests_release_trybot_asan',
@@ -449,9 +451,6 @@
'fuchsia-x64-cast': 'release_bot_fuchsia_cast',
'fuchsia-x64-dbg': 'debug_bot_fuchsia_compile_only',
'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11',
- # linux-jumbo-rel is identical to linux-rel for perf comparisons, except
- # for the jumbo part.
- 'linux-jumbo-rel': 'gpu_tests_release_bot_jumbo_no_symbols_use_dummy_lastchange',
'linux-ozone-rel': 'ozone_linux_release_bot',
'linux-trusty-rel': 'gpu_tests_release_bot',
},
@@ -479,7 +478,6 @@
'chromium.mac': {
'Mac Builder': 'gpu_tests_release_bot_minimal_symbols',
'Mac Builder (dbg)': 'gpu_tests_debug_bot',
- 'mac-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
'ios-device': 'ios_error',
'ios-device-xcode-clang': 'ios_error',
'ios-simulator': 'ios_error',
@@ -522,6 +520,21 @@
'chromeos-kevin-builder-perf-fyi': 'official_cros_chrome_sdk',
},
+ 'chromium.swangle': {
+ 'linux-swangle-tot-angle-x64': 'deqp_release_trybot',
+ 'linux-swangle-tot-angle-x86': 'deqp_release_trybot_x86',
+ 'linux-swangle-tot-swiftshader-x64': 'deqp_release_trybot',
+ 'linux-swangle-tot-swiftshader-x86': 'deqp_release_trybot_x86',
+ 'linux-swangle-x64': 'deqp_release_trybot',
+ 'linux-swangle-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-tot-angle-x64': 'deqp_release_trybot',
+ 'win-swangle-tot-angle-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-tot-swiftshader-x64': 'deqp_release_trybot',
+ 'win-swangle-tot-swiftshader-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-x64': 'deqp_release_trybot',
+ 'win-swangle-x86': 'deqp_release_trybot_x86',
+ },
+
'chromium.swarm': {
'Android N5 Swarm': 'android_release_bot_minimal_symbols',
'Android N5X Swarm': 'android_release_bot_minimal_symbols_arm64',
@@ -613,11 +626,13 @@
# Windows bots take too long to link w/ full symbols and time out.
'Win Builder': 'gpu_tests_release_bot_x86_minimal_symbols',
'Win Builder (dbg)': 'gpu_tests_debug_bot_x86',
- 'win-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
'Win x64 Builder': 'gpu_tests_release_bot_minimal_symbols',
'Win x64 Builder (dbg)': 'gpu_tests_debug_bot',
'Windows deterministic': 'release_bot_x86_minimal_symbols',
- 'win-celab-builder-rel': 'celab_release_bot',
+ },
+
+ 'internal.chrome.fyi': {
+ 'win-celab-rel': 'official_celab_release_bot',
},
'internal.client.kitchensync': {
@@ -651,13 +666,15 @@
},
'tryserver.chromium.android': {
+ 'android-asan': 'android_clang_asan_release_trybot',
+ 'android-bfcache-debug': 'android_debug_static_bot',
'android-opus-kitkat-arm-rel': 'android_release_trybot',
# 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-kitkat-arm-rel': 'android_release_trybot',
- 'android-marshmallow-arm64-coverage-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_java_coverage',
- 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting',
+ 'android-kitkat-arm-rel': 'android_release_trybot_fastbuild',
+ 'android-marshmallow-arm64-coverage-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_fastbuild_java_coverage',
+ 'android-marshmallow-arm64-rel': 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_fastbuild_java_coverage',
'android-marshmallow-x86-fyi-rel': 'android_release_trybot_x86_resource_whitelisting',
'android-oreo-arm64-cts-networkservice-dbg': 'android_debug_trybot_arm64',
'android-pie-arm64-rel': 'android_release_trybot_arm64_webview_google',
@@ -668,11 +685,11 @@
'android-webview-oreo-arm64-dbg': 'android_release_trybot_arm64_webview_google',
'android-webview-pie-arm64-dbg': 'android_release_trybot_arm64_webview_google',
'android_archive_rel_ng': 'android_release_trybot',
- 'android_arm64_dbg_recipe': 'android_debug_trybot_compile_only_arm64',
+ 'android_arm64_dbg_recipe': 'android_debug_trybot_compile_only_arm64_fastbuild',
'android-binary-size': 'android_binary_size',
'android_blink_rel': 'android_release_trybot',
'android_cfi_rel_ng': 'android_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_goma',
- 'android_clang_dbg_recipe': 'android_clang_asan_debug_trybot_compile_only',
+ 'android_clang_dbg_recipe': 'android_clang_asan_debug_trybot_compile_only_fastbuild',
'android_compile_dbg': 'android_debug_trybot_compile_only',
'android_compile_x64_dbg': 'android_debug_trybot_compile_only_x64',
'android_compile_x86_dbg': 'android_debug_trybot_compile_only_x86',
@@ -698,10 +715,10 @@
'gpu-fyi-try-android-n-nvidia-shield-tv-64': 'gpu_tests_android_release_trybot_arm64',
'gpu-fyi-try-android-p-pixel-2-32': 'gpu_tests_android_release_trybot',
'gpu-fyi-try-android-p-pixel-2-skv-32': 'gpu_tests_android_release_trybot',
- 'gpu-fyi-try-android-q-pixel-2-deqp-vk-32': 'deqp_android_vulkan_release_trybot',
- 'gpu-fyi-try-android-q-pixel-2-deqp-vk-64': 'deqp_android_vulkan_release_trybot_arm64',
- 'gpu-fyi-try-android-q-pixel-2-vk-32': 'gpu_tests_android_vulkan_release_trybot',
- 'gpu-fyi-try-android-q-pixel-2-vk-64': 'gpu_tests_android_vulkan_release_trybot_arm64',
+ 'gpu-fyi-try-android-q-pixel-2-deqp-vk-32': 'deqp_android_vulkan_ndk_release_trybot',
+ 'gpu-fyi-try-android-q-pixel-2-deqp-vk-64': 'deqp_android_vulkan_ndk_release_trybot_arm64',
+ 'gpu-fyi-try-android-q-pixel-2-vk-32': 'gpu_tests_android_vulkan_ndk_release_trybot',
+ 'gpu-fyi-try-android-q-pixel-2-vk-64': 'gpu_tests_android_vulkan_ndk_release_trybot_arm64',
'gpu-try-android-m-nexus-5x-64': 'gpu_tests_android_release_trybot_arm64',
'linux_android_dbg_ng': 'android_debug_trybot',
'try-nougat-phone-tester': 'android_debug_trybot_arm64',
@@ -711,11 +728,11 @@
'tryserver.chromium.angle': {
'android_angle_rel_ng': 'gpu_tests_android_release_trybot_arm64',
- 'android_angle_vk32_rel_ng': 'gpu_tests_android_vulkan_release_trybot',
- 'android_angle_vk64_rel_ng': 'gpu_tests_android_vulkan_release_trybot_arm64',
+ 'android_angle_vk32_rel_ng': 'gpu_tests_android_vulkan_ndk_release_trybot',
+ 'android_angle_vk64_rel_ng': 'gpu_tests_android_vulkan_ndk_release_trybot_arm64',
'android_angle_deqp_rel_ng': 'deqp_android_release_trybot_arm64',
- 'android_angle_vk32_deqp_rel_ng': 'deqp_android_vulkan_release_trybot',
- 'android_angle_vk64_deqp_rel_ng': 'deqp_android_vulkan_release_trybot_arm64',
+ 'android_angle_vk32_deqp_rel_ng': 'deqp_android_vulkan_ndk_release_trybot',
+ 'android_angle_vk64_deqp_rel_ng': 'deqp_android_vulkan_ndk_release_trybot_arm64',
'fuchsia-angle-rel': 'gpu_fyi_tests_release_trybot_fuchsia',
'linux-angle-rel': 'gpu_fyi_tests_release_trybot',
'linux_angle_ozone_rel_ng': 'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot',
@@ -728,12 +745,12 @@
},
'tryserver.chrome': {
- 'chromeos-betty-chrome': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-betty-pi-arc-chrome': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-eve-chrome': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-eve-compile-chrome': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-kevin-chrome': 'official_cros_chrome_sdk_headless_ozone',
- 'chromeos-kevin-compile-chrome': 'official_cros_chrome_sdk_headless_ozone',
+ 'chromeos-betty-chrome': 'official_cros_chrome_sdk',
+ 'chromeos-betty-pi-arc-chrome': 'official_cros_chrome_sdk',
+ 'chromeos-eve-chrome': 'official_cros_chrome_sdk',
+ 'chromeos-eve-compile-chrome': 'official_cros_chrome_sdk',
+ 'chromeos-kevin-chrome': 'official_cros_chrome_sdk',
+ 'chromeos-kevin-compile-chrome': 'official_cros_chrome_sdk',
'linux-chrome': 'official_goma',
'linux-chromeos-chrome': 'official_goma_chromeos_minimal_symbols',
'win_chrome_official': 'official_goma_x86',
@@ -743,14 +760,13 @@
'tryserver.chromium.chromiumos': {
# TODO(crbug.com/913750): Enable DCHECKS on the two amd64-generic bots
# and two kevin bots when the PFQ has it enabled.
- 'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_headless_ozone_cfi_thin_lto',
+ 'chromeos-amd64-generic-cfi-thin-lto-rel': 'cros_chrome_sdk_cfi_thin_lto',
'chromeos-amd64-generic-dbg': 'cros_chrome_sdk_dbg',
- 'chromeos-amd64-generic-rel': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-amd64-generic-rel': 'cros_chrome_sdk',
'chromeos-arm-generic-dbg': 'cros_chrome_sdk_dbg',
- 'chromeos-arm-generic-rel': 'cros_chrome_sdk_dchecks_always_on',
- 'chromeos-kevin-compile-rel': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-kevin-experimental-rel': 'cros_chrome_sdk_headless_ozone',
- 'chromeos-kevin-rel': 'cros_chrome_sdk_headless_ozone',
+ 'chromeos-arm-generic-rel': 'cros_chrome_sdk_dcheck_always_on',
+ 'chromeos-kevin-compile-rel': 'cros_chrome_sdk',
+ 'chromeos-kevin-rel': 'cros_chrome_sdk',
'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',
@@ -796,11 +812,11 @@
'linux-annotator-rel': 'release_trybot',
'linux-blink-heap-concurrent-marking-tsan-rel': 'release_trybot_tsan',
'linux-blink-heap-verification-try': 'release_trybot_enable_blink_heap_verification',
+ 'linux-bfcache-debug': 'debug_bot',
'linux-clang-tidy-dbg': 'debug_trybot',
'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-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
'linux-libfuzzer-asan-rel': 'libfuzzer_asan_release_trybot',
'linux-ozone-rel': 'ozone_linux_release_trybot',
'linux-rel': 'gpu_tests_release_trybot_no_symbols_use_dummy_lastchange_code_coverage',
@@ -833,6 +849,8 @@
'linux_layout_tests_composite_after_paint': 'release_trybot',
'linux_layout_tests_layout_ng_disabled': 'release_trybot',
+ 'linux-layout-tests-fragment-item': 'release_trybot',
+ 'linux-layout-tests-fragment-paint': 'release_trybot',
'linux_mojo': 'release_trybot',
'linux_mojo_chromeos': 'chromeos_with_codecs_release_trybot',
'linux_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot',
@@ -861,12 +879,13 @@
'ios-simulator': 'ios_error',
'ios-simulator-full-configs': 'ios_error',
'ios-simulator-cronet': 'ios_error',
+ 'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot',
'ios-simulator-xcode-clang': 'ios_error',
- 'mac-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
'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',
'mac_chromium_10.13_rel_ng': 'release_trybot',
+ 'mac_chromium_10.14_rel_ng': 'release_trybot',
'mac_chromium_archive_rel_ng': 'release_bot_mac_strip_minimal_symbols',
'mac_chromium_asan_rel_ng': 'asan_dcheck_disable_nacl_release_bot',
'mac_chromium_compile_dbg_ng': 'gpu_tests_debug_trybot',
@@ -886,6 +905,21 @@
'Win x64 Builder Perf': 'official_goma',
},
+ 'tryserver.chromium.swangle': {
+ 'linux-swangle-try-tot-angle-x64': 'deqp_release_trybot',
+ 'linux-swangle-try-tot-angle-x86': 'deqp_release_trybot_x86',
+ 'linux-swangle-try-tot-swiftshader-x64': 'deqp_release_trybot',
+ 'linux-swangle-try-tot-swiftshader-x86': 'deqp_release_trybot_x86',
+ 'linux-swangle-try-x64': 'deqp_release_trybot',
+ 'linux-swangle-try-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-try-tot-angle-x64': 'deqp_release_trybot',
+ 'win-swangle-try-tot-angle-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-try-tot-swiftshader-x64': 'deqp_release_trybot',
+ 'win-swangle-try-tot-swiftshader-x86': 'deqp_release_trybot_x86',
+ 'win-swangle-try-x64': 'deqp_release_trybot',
+ 'win-swangle-try-x86': 'deqp_release_trybot_x86',
+ },
+
'tryserver.chromium.win': {
'gpu-fyi-try-win-xr-builder-64': 'gpu_fyi_tests_release_trybot',
'gpu-fyi-try-win7-amd-dbg-32': 'gpu_fyi_tests_debug_trybot_x86',
@@ -899,6 +933,8 @@
'gpu-fyi-try-win10-intel-rel-64': 'gpu_fyi_tests_release_trybot',
'gpu-fyi-try-win10-nvidia-dbg-64': 'gpu_fyi_tests_debug_trybot',
'gpu-fyi-try-win10-nvidia-dqp-64': 'deqp_release_trybot',
+ 'gpu-fyi-try-win10-nvidia-dx12vk-dbg-64': 'gpu_fyi_tests_dx12vk_debug_trybot',
+ 'gpu-fyi-try-win10-nvidia-dx12vk-rel-64': 'gpu_fyi_tests_dx12vk_release_trybot',
'gpu-fyi-try-win10-nvidia-exp-64': 'gpu_fyi_tests_release_trybot',
'gpu-fyi-try-win10-nvidia-rel-32': 'gpu_tests_release_trybot_x86_resource_whitelisting',
'gpu-fyi-try-win10-nvidia-rel-64': 'gpu_fyi_tests_release_trybot',
@@ -909,7 +945,6 @@
'win-annotator-rel': 'release_trybot',
'win-asan': 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release',
'win-celab-try-rel': 'celab_release_bot',
- 'win-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
'win-libfuzzer-asan-rel': 'libfuzzer_windows_asan_release_trybot',
'win7-rel': 'gpu_tests_release_trybot_x86_resource_whitelisting',
'win_x64_archive': 'release_trybot',
@@ -923,6 +958,12 @@
'win_upload_clang': 'release_bot',
},
+ 'tryserver.devtools-frontend': {
+ # Use pure release as CI doesn't have a debug builder.
+ 'devtools_frontend_linux_blink_light_rel': 'release_bot',
+ 'devtools_frontend_linux_blink_rel': 'release_bot',
+ },
+
'tryserver.v8': {
'v8_linux_blink_rel': 'release_trybot',
'v8_linux_chromium_gn_rel': 'release_trybot',
@@ -930,8 +971,10 @@
'tryserver.webrtc': {
'win_chromium_compile': 'gpu_tests_release_trybot_resource_whitelisting',
+ 'win_chromium_compile_dbg': 'gpu_tests_debug_trybot_x86_compile_only',
'mac_chromium_compile': 'gpu_tests_release_trybot',
'linux_chromium_compile': 'release_trybot',
+ 'linux_chromium_compile_dbg': 'debug_trybot',
'android_chromium_compile': 'android_release_trybot',
},
},
@@ -969,14 +1012,19 @@
'android', 'clang', 'asan', 'debug_bot', 'strip_debug_info',
],
- 'android_clang_asan_debug_trybot_compile_only': [
+ 'android_clang_asan_debug_trybot_compile_only_fastbuild': [
'android', 'clang', 'asan', 'debug_trybot', 'compile_only',
+ 'android_fastbuild',
],
'android_clang_asan_release_bot': [
'android', 'clang', 'asan', 'release_bot', 'strip_debug_info', 'minimal_symbols',
],
+ 'android_clang_asan_release_trybot': [
+ 'android', 'clang', 'asan', 'release_trybot', 'strip_debug_info', 'minimal_symbols',
+ ],
+
'android_clang_tot_asan': [
'android_without_codecs', 'clang_tot', 'asan', 'shared', 'debug', 'minimal_symbols',
'strip_debug_info',
@@ -1062,11 +1110,6 @@
'android', 'debug_static_bot', 'arm64',
],
- 'android_debug_static_bot_arm64_minimal_symbols_coverage': [
- 'android', 'debug_static_bot', 'arm64', 'minimal_symbols', 'java_coverage',
- 'strip_debug_info',
- ],
-
'android_debug_static_bot_x64': [
'android', 'debug_static_bot', 'x64',
],
@@ -1084,11 +1127,11 @@
],
'android_debug_trybot_compile_only': [
- 'android', 'debug_trybot', 'compile_only',
+ 'android', 'debug_trybot', 'compile_only', 'java_warnings_as_errors',
],
- 'android_debug_trybot_compile_only_arm64': [
- 'android', 'debug_trybot', 'compile_only', 'arm64',
+ 'android_debug_trybot_compile_only_arm64_fastbuild': [
+ 'android', 'debug_trybot', 'compile_only', 'arm64', 'android_fastbuild'
],
'android_debug_trybot_compile_only_x64': [
@@ -1100,17 +1143,13 @@
],
'android_debug_trybot_java_coverage': [
- 'android', 'debug_trybot', 'java_coverage', 'strip_debug_info',
+ 'android', 'debug_trybot', 'use_java_coverage', 'strip_debug_info',
],
'android_incremental_debug_bot': [
'android', 'incremental', 'debug_bot',
],
- 'android_jumbo_release_bot_minimal_symbols': [
- 'android', 'jumbo', 'release_bot', 'minimal_symbols',
- ],
-
'android_release_bot_minimal_symbols': [
'android', 'release_bot', 'minimal_symbols',
'strip_debug_info',
@@ -1126,6 +1165,11 @@
'strip_debug_info', 'webview_google',
],
+ 'android_release_bot_minimal_symbols_fastbuild': [
+ 'android', 'release_bot', 'minimal_symbols',
+ 'strip_debug_info', 'android_fastbuild',
+ ],
+
'android_release_bot_minimal_symbols_x86': [
'android', 'release_bot', 'minimal_symbols', 'x86',
'strip_debug_info',
@@ -1136,10 +1180,6 @@
'resource_whitelisting',
],
- 'android_release_thumb_bot': [
- 'android', 'release_bot', 'arm_thumb',
- ],
-
'android_release_trybot': [
'android', 'release_trybot', 'strip_debug_info',
],
@@ -1153,6 +1193,10 @@
'webview_google',
],
+ 'android_release_trybot_fastbuild': [
+ 'android', 'release_trybot', 'strip_debug_info', 'android_fastbuild'
+ ],
+
'android_release_trybot_x86': [
'android', 'release_trybot', 'strip_debug_info', 'x86',
],
@@ -1318,17 +1362,13 @@
],
'clang_code_coverage': [
- 'release_bot', 'clang', 'use_clang_coverage', 'no_symbols', 'libfuzzer',
+ 'release_bot', 'clang', 'use_clang_coverage', 'no_symbols',
],
'clang_code_coverage_ios': [
'use_clang_coverage', 'debug_static_bot', 'x64', 'ios'
],
- 'clang_code_coverage_nofuzzer': [
- 'release_bot', 'clang', 'use_clang_coverage', 'no_symbols',
- ],
-
'clang_tot_asan_lsan_static_release': [
'clang_tot', 'asan', 'lsan', 'static', 'release',
],
@@ -1369,10 +1409,6 @@
'clang_tot', 'minimal_symbols', 'shared', 'release',
],
- 'clang_tot_coverage_minimal_symbols_release_with_libfuzzer': [
- 'clang_tot', 'use_clang_coverage', 'minimal_symbols', 'release', 'libfuzzer',
- ],
-
'clang_tot_coverage_minimal_symbols_release': [
'clang_tot', 'use_clang_coverage', 'minimal_symbols', 'release',
],
@@ -1421,6 +1457,10 @@
'clang_tot', 'tsan', 'release',
],
+ 'clang_tot_win_release_cross': [
+ 'clang_tot', 'win_cross', 'minimal_symbols', 'shared', 'release', 'dcheck_always_on',
+ ],
+
'closure_compilation': [
# The closure bots run their own recipe and shouldn't go through MB.
'error',
@@ -1457,24 +1497,16 @@
'cros_chrome_sdk', 'debug',
],
- 'cros_chrome_sdk_dchecks_always_on': [
+ 'cros_chrome_sdk_dcheck_always_on': [
'cros_chrome_sdk', 'dcheck_always_on',
],
- 'cros_chrome_sdk_headless_ozone': [
- 'cros_chrome_sdk', 'ozone_platform_headless',
+ 'cros_chrome_sdk_coverage': [
+ 'cros_chrome_sdk', 'use_clang_coverage',
],
- 'cros_chrome_sdk_headless_ozone_coverage': [
- 'cros_chrome_sdk', 'ozone_platform_headless', 'use_clang_coverage',
- ],
-
- 'cros_chrome_sdk_headless_ozone_cfi_thin_lto': [
- 'cros_chrome_sdk', 'ozone_platform_headless', 'cfi_full', 'thin_lto',
- ],
-
- 'cros_chrome_sdk_headless_ozone_dcheck_always_on': [
- 'cros_chrome_sdk', 'ozone_platform_headless', 'dcheck_always_on',
+ 'cros_chrome_sdk_cfi_thin_lto': [
+ 'cros_chrome_sdk', 'cfi_full', 'thin_lto',
],
'dawn_tests_release_trybot': [
@@ -1517,18 +1549,6 @@
'debug_bot', 'x86', 'no_com_init_hooks', 'chrome_with_codecs'
],
- 'libfuzzer_asan_debug_bot_v8_arm64': [
- 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'v8_simulate_arm64', 'disable_seed_corpus',
- ],
-
- 'libfuzzer_asan_debug_bot_x86': [
- 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'x86', 'x86_host', 'disable_seed_corpus',
- ],
-
- 'libfuzzer_asan_debug_bot_x86_v8_arm': [
- 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'x86_host', 'v8_simulate_arm', 'disable_seed_corpus',
- ],
-
'debug_trybot': [
'debug_trybot',
],
@@ -1549,12 +1569,12 @@
'angle_deqp_tests', 'android', 'release_trybot', 'arm64',
],
- 'deqp_android_vulkan_release_trybot': [
- 'angle_deqp_tests', 'android', 'vulkan', 'release_trybot',
+ 'deqp_android_vulkan_ndk_release_trybot': [
+ 'angle_deqp_tests', 'android', 'vulkan_ndk', 'release_trybot',
],
- 'deqp_android_vulkan_release_trybot_arm64': [
- 'angle_deqp_tests', 'android', 'vulkan', 'release_trybot', 'arm64',
+ 'deqp_android_vulkan_ndk_release_trybot_arm64': [
+ 'angle_deqp_tests', 'android', 'vulkan_ndk', 'release_trybot', 'arm64',
],
'deqp_release_trybot_x86': [
@@ -1569,6 +1589,10 @@
'gpu_fyi_tests', 'debug_trybot',
],
+ 'gpu_fyi_tests_dx12vk_debug_trybot': [
+ 'gpu_fyi_tests', 'dx12vk', 'debug_trybot',
+ ],
+
'gpu_fyi_tests_debug_trybot_x86': [
'gpu_fyi_tests', 'debug_trybot', 'x86',
],
@@ -1597,9 +1621,27 @@
'gpu_fyi_tests', 'release_trybot', 'fuchsia',
],
- 'gpu_tests_android_release_bot_minimal_symbols_arm64': [
- 'android', 'release_bot', 'minimal_symbols', 'arm64',
- 'resource_whitelisting', 'static_angle',
+ 'gpu_fyi_tests_dx12vk_release_trybot': [
+ 'gpu_fyi_tests', 'dx12vk', 'release_trybot',
+ ],
+
+ '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',
+ ],
+
+ 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_java_coverage': [
+ 'gpu_tests', 'android', 'release_bot', 'minimal_symbols', 'arm64',
+ 'resource_whitelisting', 'static_angle', 'android_fastbuild', 'webview_google',
+ 'android_no_proguard', 'use_java_coverage',
+ ],
+
+ # TODO(crbug/1018431): Add 'resource_whitelisting' back once bug fixed.
+ 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild_native_coverage': [
+ 'gpu_tests', 'android', 'release_bot', 'minimal_symbols', 'arm64',
+ 'static_angle', 'android_fastbuild', 'webview_google',
+ 'android_no_proguard', 'use_clang_coverage',
],
'gpu_tests_android_release_trybot': [
@@ -1610,21 +1652,24 @@
'gpu_tests', 'android', 'release_trybot', 'arm64', 'static_angle',
],
- 'gpu_tests_android_release_trybot_arm64_resource_whitelisting': [
- 'android', 'release_trybot', 'arm64', 'static_angle', 'resource_whitelisting',
+ 'gpu_tests_android_release_trybot_arm64_fastbuild': [
+ 'gpu_tests', 'android', 'release_trybot', 'arm64', 'static_angle',
+ 'android_fastbuild',
],
- 'gpu_tests_android_release_trybot_arm64_resource_whitelisting_java_coverage': [
- 'android', 'release_trybot', 'arm64', 'static_angle', 'resource_whitelisting',
- 'java_coverage', 'partial_code_coverage_instrumentation',
+ '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',
],
- 'gpu_tests_android_vulkan_release_trybot': [
- 'gpu_tests', 'android', 'vulkan', 'release_trybot', 'static_angle',
+ 'gpu_tests_android_vulkan_ndk_release_trybot': [
+ 'gpu_tests', 'android', 'vulkan_ndk', 'release_trybot', 'static_angle',
],
- 'gpu_tests_android_vulkan_release_trybot_arm64': [
- 'gpu_tests', 'android', 'vulkan', 'release_trybot', 'arm64', 'static_angle',
+ 'gpu_tests_android_vulkan_ndk_release_trybot_arm64': [
+ 'gpu_tests', 'android', 'vulkan_ndk', 'release_trybot', 'arm64', 'static_angle',
],
'gpu_tests_debug_bot': [
@@ -1680,11 +1725,6 @@
'use_clang_coverage', 'partial_code_coverage_instrumentation',
],
- 'gpu_tests_release_bot_jumbo_no_symbols_use_dummy_lastchange': [
- 'gpu_tests', 'release_bot', 'jumbo_non_goma_chunks', 'no_symbols',
- 'use_dummy_lastchange',
- ],
-
'gpu_tests_release_trybot': [
'gpu_tests', 'release_trybot',
],
@@ -1712,18 +1752,26 @@
# build files.
'ios_error': [ 'error'],
- 'jumbo_release_bot_compile_only': [
- 'jumbo', 'release_bot', 'compile_only',
- ],
-
- 'jumbo_large_chunks_release_bot_compile_only': [
- 'jumbo_non_goma_chunks', 'release_bot', 'compile_only',
+ 'ios_simulator_debug_static_bot': [
+ 'ios_simulator', 'debug_static_bot',
],
'libfuzzer_asan_debug_bot': [
'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'disable_seed_corpus',
],
+ 'libfuzzer_asan_debug_bot_v8_arm64': [
+ 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'v8_simulate_arm64', 'disable_seed_corpus',
+ ],
+
+ 'libfuzzer_asan_debug_bot_x86': [
+ 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'x86', 'x86_host', 'disable_seed_corpus',
+ ],
+
+ 'libfuzzer_asan_debug_bot_x86_v8_arm': [
+ 'libfuzzer', 'asan', 'debug_bot', 'shared', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'x86_host', 'v8_simulate_arm', 'disable_seed_corpus',
+ ],
+
'libfuzzer_chromeos_asan_release_bot': [
'libfuzzer', 'asan', 'shared_release_bot', 'chromeos_with_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing', 'disable_seed_corpus',
],
@@ -1802,9 +1850,6 @@
'official_cros_chrome_sdk': [
'cros_chrome_sdk',
],
- 'official_cros_chrome_sdk_headless_ozone': [
- 'cros_chrome_sdk', 'ozone_platform_headless',
- ],
'official_goma': [
'official', 'goma',
@@ -1965,6 +2010,7 @@
'release_bot_x86_minimal_symbols_no_clang_cxx11': [
'release_bot', 'x86', 'minimal_symbols', 'no_clang', 'use_cxx11',
+ 'no_goma',
],
'tsan_disable_nacl_debug_bot': [
@@ -2014,10 +2060,6 @@
'win32_arm64_release_bot': [
'arm64', 'disable_nacl', 'minimal_symbols', 'release_bot',
],
-
- 'clang_tot_win_release_cross': [
- 'clang_tot', 'win_cross', 'minimal_symbols', 'shared', 'release', 'dcheck_always_on',
- ],
},
# This is a dict mapping a given 'mixin' name to a dict of settings that
@@ -2037,6 +2079,21 @@
'gn_args': 'check_android_configuration = true'
},
+ # It's significantly faster to build without lint and errorprone.
+ 'android_fastbuild': {
+ 'gn_args': ('use_errorprone_java_compiler=false '
+ 'disable_android_lint=true'),
+ },
+
+ # TODO(https://crbug.com/1020714): This is temporary. We'd like to run a
+ # smoke test on android_binary_sizes to ensure coverage of proguard, at
+ # which point we can merge this into android_fastbuild. Until then, only
+ # disable proguard on a few bots to gather metrics on the effect on build
+ # times.
+ 'android_no_proguard': {
+ 'gn_args': 'is_java_debug=true',
+ },
+
'android_without_codecs': {
'gn_args': 'target_os="android"',
},
@@ -2058,22 +2115,10 @@
'gn_args': 'arm_use_neon=false',
},
- 'arm_thumb': {
- 'gn_args': 'arm_use_thumb=true',
- },
-
'asan': {
'gn_args': 'is_asan=true',
},
- 'ffmpeg_branding_chrome': {
- 'gn_args': 'ffmpeg_branding="Chrome"',
- },
-
- 'ffmpeg_branding_chromeos': {
- 'gn_args': 'ffmpeg_branding="ChromeOS"',
- },
-
'cast': {
'gn_args': 'is_chromecast=true'
},
@@ -2132,18 +2177,6 @@
'gn_args': 'is_clang=true',
},
- 'no_clang': {
- 'gn_args': 'is_clang=false',
- },
-
- 'use_clang_coverage': {
- 'gn_args': 'use_clang_coverage=true',
- },
-
- 'use_cxx11': {
- 'gn_args': 'use_cxx11=true',
- },
-
# Settings used by the codesearch builders to generate cross-references.
'codesearch': {
'gn_args': 'clang_use_chrome_plugins=false enable_kythe_annotations=true',
@@ -2177,6 +2210,7 @@
# and that GYP_DEFINES has chromeos=1 and GN_ARGS has
# target_os="chromeos" in it.
'cros_passthrough': True,
+ 'gn_args': 'ozone_platform_headless=true',
},
'dawn_tests': {
@@ -2219,6 +2253,11 @@
'gn_args': 'archive_seed_corpus=false',
},
+ 'dx12vk': {
+ # TODO(https://crbug.com/1010584): Explicitly enable DirectX 12.
+ 'mixins': ['enable_vulkan'],
+ },
+
'enable_blink_animation_use_time_delta': {
'gn_args': 'blink_animation_use_time_delta=true',
},
@@ -2234,6 +2273,14 @@
'gn_args': 'skip_archive_compression=false',
},
+ 'java_warnings_as_errors': {
+ 'gn_args': ('java_warnings_as_errors=true'),
+ },
+
+ 'enable_vulkan': {
+ 'gn_args': 'enable_vulkan=true',
+ },
+
# This mixin is used to force configs that use it to fail. It
# is used in two cases: when we have bots that we haven't looked
# at yet and don't know whether they need MB or not, and for bots
@@ -2242,6 +2289,10 @@
'gn_args': 'error',
},
+ 'ffmpeg_branding_chrome': {
+ 'gn_args': 'ffmpeg_branding="Chrome"',
+ },
+
'ffmpeg_branding_chromeos': {
'gn_args': 'ffmpeg_branding="ChromeOS"',
},
@@ -2267,10 +2318,7 @@
},
'goma': {
- # strip_absolute_paths_from_debug_symbols is on by default on Linux and
- # Windows, but not elsewhere. Since it helps goma's cache, set this to
- # help Android builds.
- 'gn_args': 'use_goma=true strip_absolute_paths_from_debug_symbols=true',
+ 'gn_args': 'use_goma=true',
},
'gpu_fyi_tests': {
@@ -2287,7 +2335,7 @@
},
'incremental': {
- 'gn_args': 'disable_incremental_isolated_processes=true incremental_apk_by_default=true',
+ 'gn_args': 'incremental_install=true',
},
'internal_gles_conform_tests': {
@@ -2298,16 +2346,9 @@
'gn_args': 'target_os="ios"',
},
- 'java_coverage': {
- 'gn_args': 'use_jacoco_coverage=true',
- },
-
- 'jumbo': {
- 'gn_args': 'use_jumbo_build=true',
- },
-
- 'jumbo_non_goma_chunks': {
- 'gn_args': 'use_jumbo_build=true jumbo_file_merge_limit=50',
+ 'ios_simulator': {
+ 'mixins': ['ios'],
+ 'gn_args': 'target_cpu="x64"',
},
'libcxx': {
@@ -2344,10 +2385,18 @@
'gn_args': 'is_msan=true msan_track_origins=0',
},
+ 'no_clang': {
+ 'gn_args': 'is_clang=false',
+ },
+
'no_com_init_hooks': {
'gn_args': 'com_init_check_hook_disabled=true',
},
+ 'no_goma': {
+ 'gn_args': 'use_goma=false',
+ },
+
'no_gnome_keyring': {
'gn_args': 'use_gnome_keyring=false',
},
@@ -2378,14 +2427,7 @@
},
'ozone_linux': {
- 'gn_args': ('ozone_auto_platforms=false ozone_platform_wayland=true '
- 'ozone_platform_headless=true ozone_platform_x11=true '
- 'ozone_platform_gbm=true '
- 'use_xkbcommon=true use_ozone=true'),
- },
-
- 'ozone_platform_headless': {
- 'gn_args': 'ozone_platform_headless=true',
+ 'gn_args': 'use_ozone=true ozone_platform="headless"',
},
# Used to pass the list of files to instrument for coverage to the compile
@@ -2425,6 +2467,10 @@
'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'],
},
+ 'resource_whitelisting': {
+ 'gn_args': 'enable_resource_whitelist_generation=true',
+ },
+
'shared': {
'gn_args': 'is_component_build=true',
},
@@ -2437,6 +2483,10 @@
'mixins': ['shared_release_bot', 'minimal_symbols', 'dcheck_always_on'],
},
+ 'stable_channel': {
+ 'gn_args': 'android_channel="stable"',
+ },
+
'static': {
'gn_args': 'is_component_build=false',
},
@@ -2461,18 +2511,6 @@
'gn_args': 'use_thin_lto=true thin_lto_enable_optimizations=true',
},
- 'win_linker_timing': {
- 'gn_args': 'win_linker_timing=true',
- },
-
- 'resource_whitelisting': {
- 'gn_args': 'enable_resource_whitelist_generation=true',
- },
-
- 'stable_channel': {
- 'gn_args': 'android_channel="stable"',
- },
-
'tsan': {
'gn_args': 'is_tsan=true',
},
@@ -2494,12 +2532,24 @@
'gn_args': 'is_ubsan_vptr=true',
},
+ 'use_clang_coverage': {
+ 'gn_args': 'use_clang_coverage=true',
+ },
+
+ 'use_cxx11': {
+ 'gn_args': 'use_cxx11=true',
+ },
+
# TODO(crbug.com/869348): Remove this if we set this by default or don't use
# this feature.
'use_dummy_lastchange': {
'gn_args': 'use_dummy_lastchange=true',
},
+ 'use_java_coverage': {
+ 'gn_args': 'use_jacoco_coverage=true',
+ },
+
'v8_simulate_arm': {
'gn_args': 'target_cpu="x86" v8_target_cpu="arm"',
},
@@ -2528,7 +2578,7 @@
'gn_args': 'enable_vr=true',
},
- 'vulkan': {
+ 'vulkan_ndk': {
'gn_args': 'android32_ndk_api_level=26 android64_ndk_api_level=26',
},
@@ -2540,6 +2590,10 @@
'gn_args': 'target_os="win"',
},
+ 'win_linker_timing': {
+ 'gn_args': 'win_linker_timing=true',
+ },
+
'x64': {
'gn_args': 'target_cpu="x64"',
},
diff --git a/chromium/tools/mb/mb_unittest.py b/chromium/tools/mb/mb_unittest.py
index 35957e8ebf8..c8431f10a33 100755
--- a/chromium/tools/mb/mb_unittest.py
+++ b/chromium/tools/mb/mb_unittest.py
@@ -70,7 +70,7 @@ class FakeMBW(mb.MetaBuildWrapper):
abpath = self._AbsPath(path)
self.files[abpath] = contents
- def Call(self, cmd, env=None, buffer_output=True):
+ def Call(self, cmd, env=None, buffer_output=True, stdin=None):
self.calls.append(cmd)
if self.cmds:
return self.cmds.pop(0)
@@ -273,7 +273,7 @@ class UnitTest(unittest.TestCase):
}'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True, stdin=None: (0, '', '')
self.check(['analyze', '-c', 'debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
@@ -297,7 +297,7 @@ class UnitTest(unittest.TestCase):
}'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True, stdin=None: (0, '', '')
self.check(['analyze', '-c', 'debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
@@ -320,7 +320,7 @@ class UnitTest(unittest.TestCase):
}'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True, stdin=None: (0, '', '')
self.check(['analyze', '-c', 'debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
@@ -347,7 +347,7 @@ class UnitTest(unittest.TestCase):
}'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True, stdin=None: (0, '', '')
self.check(['analyze', '-c', 'debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
@@ -407,7 +407,7 @@ class UnitTest(unittest.TestCase):
def test_gen_fails(self):
mbw = self.fake_mbw()
- mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True, stdin=None: (1, '', '')
self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1)
def test_gen_swarming(self):
@@ -424,10 +424,11 @@ class UnitTest(unittest.TestCase):
mbw = self.fake_mbw(files)
- def fake_call(cmd, env=None, buffer_output=True):
+ def fake_call(cmd, env=None, buffer_output=True, stdin=None):
del cmd
del env
del buffer_output
+ del stdin
mbw.files['/fake_src/out/Default/base_unittests.runtime_deps'] = (
'base_unittests\n')
return 0, '', ''
@@ -457,10 +458,11 @@ class UnitTest(unittest.TestCase):
}
mbw = self.fake_mbw(files=files)
- def fake_call(cmd, env=None, buffer_output=True):
+ def fake_call(cmd, env=None, buffer_output=True, stdin=None):
del cmd
del env
del buffer_output
+ del stdin
mbw.files['/fake_src/out/Default/cc_perftests.runtime_deps'] = (
'cc_perftests\n')
return 0, '', ''
@@ -491,10 +493,11 @@ class UnitTest(unittest.TestCase):
mbw = self.fake_mbw(files=files)
- def fake_call(cmd, env=None, buffer_output=True):
+ def fake_call(cmd, env=None, buffer_output=True, stdin=None):
del cmd
del env
del buffer_output
+ del stdin
mbw.files['/fake_src/out/Default/cc_perftests_fuzzer.runtime_deps'] = (
'cc_perftests_fuzzer\n')
return 0, '', ''
@@ -533,10 +536,11 @@ class UnitTest(unittest.TestCase):
}
mbw = self.fake_mbw(files=files)
- def fake_call(cmd, env=None, buffer_output=True):
+ def fake_call(cmd, env=None, buffer_output=True, stdin=None):
del cmd
del env
del buffer_output
+ del stdin
mbw.files['/fake_src/out/Default/cc_perftests.runtime_deps'] = (
'cc_perftests_fuzzer\n')
return 0, '', ''
diff --git a/chromium/tools/measure_page_load_time/ff_ext/chrome.manifest b/chromium/tools/measure_page_load_time/ff_ext/chrome.manifest
deleted file mode 100644
index 064fae49f1c..00000000000
--- a/chromium/tools/measure_page_load_time/ff_ext/chrome.manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-content measurepageloadtimeextension content/
-overlay chrome://browser/content/browser.xul chrome://measurepageloadtimeextension/content/firefoxOverlay.xul
diff --git a/chromium/tools/measure_page_load_time/ff_ext/content/firefoxOverlay.xul b/chromium/tools/measure_page_load_time/ff_ext/content/firefoxOverlay.xul
deleted file mode 100644
index 32fbf4904b9..00000000000
--- a/chromium/tools/measure_page_load_time/ff_ext/content/firefoxOverlay.xul
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://measurepageloadtimeextension/skin/overlay.css" type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://measurepageloadtimeextension/locale/measurepageloadtimeextension.dtd">
-<overlay id="measurepageloadtimeextension-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script src="measure_page_load_time.js"/>
-</overlay>
diff --git a/chromium/tools/measure_page_load_time/ff_ext/content/measure_page_load_time.js b/chromium/tools/measure_page_load_time/ff_ext/content/measure_page_load_time.js
deleted file mode 100644
index 44473ccb105..00000000000
--- a/chromium/tools/measure_page_load_time/ff_ext/content/measure_page_load_time.js
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright (c) 2012 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.
-
-/**
- * @fileoverview measure_page_load_time.js implements a Firefox extension
- * for measuring how long a page takes to load. It waits on TCP port
- * 42492 for connections, then accepts URLs and returns strings of the
- * form url,time, where "time" is the load time in milliseconds or the
- * string "timeout" or "error". Load time is measured from the call to
- * loadURI until the load event fires, or until the status changes to
- * STATUS_STOP if the load event doesn't fire (there's an error.)
- * @author jhaas@google.com (Jonathan Haas) */
-
-// Shorthand reference to nsIWebProgress[Listener] interfaces
-var IWP = Components.interfaces.nsIWebProgress;
-var IWPL = Components.interfaces.nsIWebProgressListener;
-
-
-var MPLT = {
- /**
- * Constants
- */
- PORT_NUMBER : 42492, // port to listen for connections on
- TIME_OUT : 4 * 60 * 1000, // timeout in 4 minutes
-
- /**
- * Incoming URL buffer
- * @type {string}
- */
- textBuffer : '',
-
- /**
- * URL we're currently visiting
- * @type {string}
- */
- URL : '',
-
- /**
- * Listener to accept incoming connections
- * @type {nsIServerSocketListener}
- */
- acceptListener :
- {
- onSocketAccepted : function(serverSocket, transport)
- {
- MPLT.streamInput = transport.openInputStream(0,0,0);
- MPLT.streamOutput = transport.openOutputStream(0,0,0);
-
- MPLT.scriptStream = Components.classes['@mozilla.org/scriptableinputstream;1']
- .createInstance(Components.interfaces.nsIScriptableInputStream);
- MPLT.scriptStream.init(MPLT.streamInput);
- MPLT.pump = Components.classes['@mozilla.org/network/input-stream-pump;1']
- .createInstance(Components.interfaces.nsIInputStreamPump);
- MPLT.pump.init(MPLT.streamInput, -1, -1, 0, 0, false);
- MPLT.pump.asyncRead(MPLT.dataListener,null);
- },
-
- onStopListening : function(){}
- },
-
- /**
- * Listener for network input
- * @type {nsIStreamListener}
- */
- dataListener :
- {
- onStartRequest: function(){},
- onStopRequest: function(){},
- onDataAvailable: function(request, context, inputStream, offset, count){
- // Add the received data to the buffer, then process it
- // Change CRLF to newline while we're at it
- MPLT.textBuffer += MPLT.scriptStream.read(count).replace('\r\n', '\n');
-
- MPLT.process();
- }
- },
-
- /**
- * Process the incoming data buffer
- */
- process : function()
- {
- // If we're waiting for a page to finish loading, wait
- if (MPLT.timeLoadStarted)
- return;
-
- // Look for a carriage return
- var firstCR = MPLT.textBuffer.indexOf('\n');
-
- // If we haven't received a carriage return yet, wait
- if (firstCR < 0)
- return;
-
- // If the first character was a carriage return, we're done!
- if (firstCR == 0) {
- MPLT.textBuffer = '';
- MPLT.streamInput.close();
- MPLT.streamOutput.close();
-
- return;
- }
-
- // Remove the URL from the buffer
- MPLT.URL = MPLT.textBuffer.substr(0, firstCR);
- MPLT.textBuffer = MPLT.textBuffer.substr(firstCR + 1);
-
- // Remember the current time and navigate to the new URL
- MPLT.timeLoadStarted = new Date();
- gBrowser.loadURIWithFlags(MPLT.URL, gBrowser.LOAD_FLAGS_BYPASS_CACHE);
- setTimeout('MPLT.onTimeOut()', MPLT.TIME_OUT);
- },
-
- /**
- * Page load completion handler
- */
- onPageLoad : function(e) {
- // Ignore loads of non-HTML documents
- if (!(e.originalTarget instanceof HTMLDocument))
- return;
-
- // Also ignore subframe loads
- if (e.originalTarget.defaultView.frameElement)
- return;
-
- clearTimeout();
- var timeElapsed = new Date() - MPLT.timeLoadStarted;
-
- MPLT.outputResult(timeElapsed);
- },
-
- /**
- * Timeout handler
- */
- onTimeOut : function() {
- gBrowser.stop();
-
- MPLT.outputResult('timeout');
- },
-
-
- /**
- * Sends a properly-formatted result to the client
- * @param {string} result The value to send along with the URL
- */
- outputResult : function(result) {
-
- if (MPLT.URL) {
- var outputString = MPLT.URL + ',' + result + '\n';
- MPLT.streamOutput.write(outputString, outputString.length);
- MPLT.URL = '';
- }
-
- MPLT.timeLoadStarted = null;
- MPLT.process();
- },
-
- /**
- * Time the page load started. If null, we're waiting for the
- * initial page load, or otherwise don't care about the page
- * that's currently loading
- * @type {number}
- */
- timeLoadStarted : null,
-
- /*
- * TODO(jhaas): add support for nsIWebProgressListener
- * If the URL being visited died as part of a network error
- * (host not found, connection reset by peer, etc), the onload
- * event doesn't fire. The only way to catch it would be in
- * a web progress listener. However, nsIWebProgress is not
- * behaving according to documentation. More research is needed.
- * For now, omitting it means that if any of our URLs are "dirty"
- * (do not point to real web servers with real responses), we'll log
- * them as timeouts. This doesn't affect pages where the server
- * exists but returns an error code.
- */
-
- /**
- * Initialize the plugin, create the socket and listen
- */
- initialize: function() {
- // Register for page load events
- gBrowser.addEventListener('load', this.onPageLoad, true);
-
- // Set a timeout to wait for the initial page to load
- MPLT.timeLoadStarted = new Date();
- setTimeout('MPLT.onTimeOut()', MPLT.TIME_OUT);
-
- // Create the listening socket
- MPLT.serverSocket = Components.classes['@mozilla.org/network/server-socket;1']
- .createInstance(Components.interfaces.nsIServerSocket);
-
- MPLT.serverSocket.init(MPLT.PORT_NUMBER, true, 1);
- MPLT.serverSocket.asyncListen(this.acceptListener);
- },
-
- /**
- * Close the socket(s)
- */
- deinitialize: function() {
- if (MPLT.streamInput) MPLT.streamInput.close();
- if (MPLT.streamOutput) MPLT.streamOutput.close();
- if (MPLT.serverSocket) MPLT.serverSocket.close();
- }
-};
-
-window.addEventListener('load', function(e) { MPLT.initialize(); }, false);
-window.addEventListener('unload', function(e) { MPLT.deinitialize(); }, false);
diff --git a/chromium/tools/measure_page_load_time/ff_ext/install.rdf b/chromium/tools/measure_page_load_time/ff_ext/install.rdf
deleted file mode 100644
index 6085f425e23..00000000000
--- a/chromium/tools/measure_page_load_time/ff_ext/install.rdf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>measurepageloadtimeextension@google.com</em:id>
- <em:name>MeasurePageLoadTime</em:name>
- <em:version>1.0</em:version>
- <em:creator>Jonathan Haas</em:creator>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->
- <em:minVersion>1.5</em:minVersion>
- <em:maxVersion>3.0.*</em:maxVersion>
- </Description>
- </em:targetApplication>
- </Description>
-</RDF>
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.cpp b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.cpp
deleted file mode 100644
index d3a8d542519..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (c) 2012 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.
-
-// MeasurePageLoadTime.cpp : Implementation of DLL Exports.
-
-#include "stdafx.h"
-#include "resource.h"
-#include "MeasurePageLoadTime.h"
-
-
-class CMeasurePageLoadTimeModule : public CAtlDllModuleT< CMeasurePageLoadTimeModule >
-{
-public :
- DECLARE_LIBID(LIBID_MeasurePageLoadTimeLib)
- DECLARE_REGISTRY_APPID_RESOURCEID(IDR_MEASUREPAGELOADTIME, "{56C6D9F9-643C-4F6E-906C-5F7CECB23C24}")
-};
-
-CMeasurePageLoadTimeModule _AtlModule;
-
-
-#ifdef _MANAGED
-#pragma managed(push, off)
-#endif
-
-// DLL Entry Point
-extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
-{
- if (dwReason == DLL_PROCESS_ATTACH)
- {
- DisableThreadLibraryCalls(hInstance);
- }
- return _AtlModule.DllMain(dwReason, lpReserved);
-}
-
-#ifdef _MANAGED
-#pragma managed(pop)
-#endif
-
-
-
-
-// Used to determine whether the DLL can be unloaded by OLE
-STDAPI DllCanUnloadNow(void)
-{
- return _AtlModule.DllCanUnloadNow();
-}
-
-
-// Returns a class factory to create an object of the requested type
-STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
-{
- return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
-}
-
-
-// DllRegisterServer - Adds entries to the system registry
-STDAPI DllRegisterServer(void)
-{
- // registers object, typelib and all interfaces in typelib
- HRESULT hr = _AtlModule.DllRegisterServer();
- return hr;
-}
-
-
-// DllUnregisterServer - Removes entries from the system registry
-STDAPI DllUnregisterServer(void)
-{
- HRESULT hr = _AtlModule.DllUnregisterServer();
- return hr;
-}
-
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.def b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.def
deleted file mode 100644
index 5552923379d..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.def
+++ /dev/null
@@ -1,9 +0,0 @@
-; MeasurePageLoadTime.def : Declares the module parameters.
-
-LIBRARY "MeasurePageLoadTime.DLL"
-
-EXPORTS
- DllCanUnloadNow PRIVATE
- DllGetClassObject PRIVATE
- DllRegisterServer PRIVATE
- DllUnregisterServer PRIVATE
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.idl b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.idl
deleted file mode 100644
index d2f98da3089..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.idl
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2012 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.
-
-// MeasurePageLoadTime.idl : IDL source for MeasurePageLoadTime
-//
-
-// This file will be processed by the MIDL tool to
-// produce the type library (MeasurePageLoadTime.tlb) and marshalling code.
-
-import "oaidl.idl";
-import "ocidl.idl";
-
-[
- object,
- uuid(019637EB-B865-485B-9A66-419477EE55A0),
- dual,
- nonextensible,
- helpstring("IMeasurePageLoadTimeBHO Interface"),
- pointer_default(unique)
-]
-interface IMeasurePageLoadTimeBHO : IDispatch{
-};
-[
- uuid(61AC7AC4-B715-4955-A238-5F9AEA80DF4B),
- version(1.0),
- helpstring("MeasurePageLoadTime 1.0 Type Library")
-]
-library MeasurePageLoadTimeLib
-{
- importlib("stdole2.tlb");
- [
- uuid(807E68BC-238F-4163-AE4B-0A3604F3E145),
- helpstring("MeasurePageLoadTimeBHO Class")
- ]
- coclass MeasurePageLoadTimeBHO
- {
- [default] interface IMeasurePageLoadTimeBHO;
- };
-};
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rc b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rc
deleted file mode 100644
index 9285a705062..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rc
+++ /dev/null
@@ -1,121 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "winres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""winres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "1 TYPELIB ""MeasurePageLoadTime.tlb""\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904e4"
- BEGIN
- VALUE "CompanyName", "Google"
- VALUE "FileDescription", "Measures page load times"
- VALUE "FileVersion", "1.0.0.1"
- VALUE "LegalCopyright", "(c) 2008 Google. All rights reserved."
- VALUE "InternalName", "MeasurePageLoadTime.dll"
- VALUE "OriginalFilename", "MeasurePageLoadTime.dll"
- VALUE "ProductName", "MeasurePageLoadTime"
- VALUE "ProductVersion", "1.0.0.1"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1252
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// REGISTRY
-//
-
-IDR_MEASUREPAGELOADTIME REGISTRY "MeasurePageLoadTime.rgs"
-IDR_MEASUREPAGELOADTIMEBHO REGISTRY "MeasurePageLoadTimeBHO.rgs"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_PROJNAME "MeasurePageLoadTime"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-1 TYPELIB "MeasurePageLoadTime.tlb"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rgs b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rgs
deleted file mode 100644
index 62f249bb628..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.rgs
+++ /dev/null
@@ -1,29 +0,0 @@
-HKCR
-{
- NoRemove AppID
- {
- '%APPID%' = s 'MeasurePageLoadTime'
- 'MeasurePageLoadTime.DLL'
- {
- val AppID = s '%APPID%'
- }
- }
-}
-
-HKLM {
- NoRemove SOFTWARE {
- NoRemove Microsoft {
- NoRemove Windows {
- NoRemove CurrentVersion {
- NoRemove Explorer {
- NoRemove 'Browser Helper Objects' {
- ForceRemove '{807E68BC-238F-4163-AE4B-0A3604F3E145}' = s 'MeasurePageLoadTimeBHO' {
- val 'NoExplorer' = d '1'
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.vcproj b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.vcproj
deleted file mode 100644
index 9ed8327bf95..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTime.vcproj
+++ /dev/null
@@ -1,320 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="MeasurePageLoadTime"
- ProjectGUID="{151243DF-25BE-4A88-B566-8B7AE8970E86}"
- RootNamespace="MeasurePageLoadTime"
- Keyword="AtlProj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- UseOfATL="2"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="false"
- TargetEnvironment="1"
- GenerateStublessProxies="true"
- TypeLibraryName="$(IntDir)/MeasurePageLoadTime.tlb"
- HeaderFileName="MeasurePageLoadTime.h"
- DLLDataFileName=""
- InterfaceIdentifierFileName="MeasurePageLoadTime_i.c"
- ProxyFileName="MeasurePageLoadTime_p.c"
- ValidateParameters="false"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="2"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- RegisterOutput="true"
- IgnoreImportLibrary="true"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="2"
- ModuleDefinitionFile=".\MeasurePageLoadTime.def"
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- UseOfATL="1"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="false"
- TargetEnvironment="1"
- GenerateStublessProxies="true"
- TypeLibraryName="$(IntDir)/MeasurePageLoadTime.tlb"
- HeaderFileName="MeasurePageLoadTime.h"
- DLLDataFileName=""
- InterfaceIdentifierFileName="MeasurePageLoadTime_i.c"
- ProxyFileName="MeasurePageLoadTime_p.c"
- ValidateParameters="false"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL"
- RuntimeLibrary="0"
- UsePrecompiledHeader="2"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"
- AdditionalIncludeDirectories="$(IntDir)"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- RegisterOutput="true"
- IgnoreImportLibrary="true"
- AdditionalDependencies="ws2_32.lib"
- LinkIncremental="1"
- ModuleDefinitionFile=".\MeasurePageLoadTime.def"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\MeasurePageLoadTime.cpp"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTime.def"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTime.idl"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTimeBHO.cpp"
- >
- </File>
- <File
- RelativePath=".\stdafx.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\MeasurePageLoadTimeBHO.h"
- >
- </File>
- <File
- RelativePath=".\stdafx.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath=".\MeasurePageLoadTime.rc"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTime.rgs"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTimeBHO.rgs"
- >
- </File>
- </Filter>
- <Filter
- Name="Generated Files"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\MeasurePageLoadTime.h"
- >
- </File>
- <File
- RelativePath=".\MeasurePageLoadTime_i.c"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <File
- RelativePath=".\ReadMe.txt"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.cpp b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.cpp
deleted file mode 100644
index 3de87f3c803..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-// Copyright (c) 2012 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.
-
-// Implements a Browser Helper Object (BHO) which opens a socket
-// and waits to receive URLs over it. Visits those URLs, measuring
-// how long it takes between the start of navigation and the
-// DocumentComplete event, and returns the time in milliseconds as
-// a string to the caller.
-
-#include "stdafx.h"
-#include "MeasurePageLoadTimeBHO.h"
-
-#define MAX_URL 1024 // size of URL buffer
-#define MAX_PAGELOADTIME (4*60*1000) // assume all pages take < 4 minutes
-#define PORT 42492 // port to listen on. Also jhaas's
- // old MSFT employee number
-
-
-// Static function to serve as thread entry point, takes a "this"
-// pointer as pParam and calls the method in the object
-static DWORD WINAPI ProcessPageTimeRequests(LPVOID pThis) {
- reinterpret_cast<CMeasurePageLoadTimeBHO*>(pThis)->ProcessPageTimeRequests();
-
- return 0;
-}
-
-
-STDMETHODIMP CMeasurePageLoadTimeBHO::SetSite(IUnknown* pUnkSite)
-{
- if (pUnkSite != NULL)
- {
- // Cache the pointer to IWebBrowser2.
- HRESULT hr = pUnkSite->QueryInterface(IID_IWebBrowser2, (void **)&m_spWebBrowser);
- if (SUCCEEDED(hr))
- {
- // Register to sink events from DWebBrowserEvents2.
- hr = DispEventAdvise(m_spWebBrowser);
- if (SUCCEEDED(hr))
- {
- m_fAdvised = TRUE;
- }
-
- // Stash the interface in the global interface table
- CComGITPtr<IWebBrowser2> git(m_spWebBrowser);
- m_dwCookie = git.Detach();
-
- // Create the event to be signaled when navigation completes.
- // Start it in nonsignaled state, and allow it to be triggered
- // when the initial page load is done.
- m_hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
-
- // Create a thread to wait on the socket
- HANDLE hThread = CreateThread(NULL, 0, ::ProcessPageTimeRequests, this, 0, NULL);
- }
- }
- else
- {
- // Unregister event sink.
- if (m_fAdvised)
- {
- DispEventUnadvise(m_spWebBrowser);
- m_fAdvised = FALSE;
- }
-
- // Release cached pointers and other resources here.
- m_spWebBrowser.Release();
- }
-
- // Call base class implementation.
- return IObjectWithSiteImpl<CMeasurePageLoadTimeBHO>::SetSite(pUnkSite);
-}
-
-
-void STDMETHODCALLTYPE CMeasurePageLoadTimeBHO::OnDocumentComplete(IDispatch *pDisp, VARIANT *pvarURL)
-{
- if (pDisp == m_spWebBrowser)
- {
- // Fire the event when the page is done loading
- // to unblock the other thread.
- SetEvent(m_hEvent);
- }
-}
-
-
-void CMeasurePageLoadTimeBHO::ProcessPageTimeRequests()
-{
- CoInitialize(NULL);
-
- // The event will start in nonsignaled state, meaning that
- // the initial page load isn't done yet. Wait for that to
- // finish before doing anything.
- //
- // It seems to be the case that the BHO will get loaded
- // and SetSite called always before the initial page load
- // even begins, but just to be on the safe side, we won't
- // wait indefinitely.
- WaitForSingleObject(m_hEvent, MAX_PAGELOADTIME);
-
- // Retrieve the web browser interface from the global table
- CComGITPtr<IWebBrowser2> git(m_dwCookie);
- IWebBrowser2* browser;
- git.CopyTo(&browser);
-
- // Create a listening socket
- m_sockListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (m_sockListen == SOCKET_ERROR)
- ErrorExit();
-
- BOOL on = TRUE;
- if (setsockopt(m_sockListen, SOL_SOCKET, SO_REUSEADDR,
- (const char*)&on, sizeof(on)))
- ErrorExit();
-
- // Bind the listening socket
- SOCKADDR_IN addrBind;
-
- addrBind.sin_family = AF_INET;
- addrBind.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
- addrBind.sin_port = htons(PORT);
-
- if (bind(m_sockListen, (sockaddr*)&addrBind, sizeof(addrBind)))
- ErrorExit();
-
- // Listen for incoming connections
- if (listen(m_sockListen, 1))
- ErrorExit();
-
- // Ensure the socket is blocking... it should be by default, but
- // it can't hurt to make sure
- unsigned long nNonblocking = 0;
- if (ioctlsocket(m_sockListen, FIONBIO, &nNonblocking))
- ErrorExit();
-
- m_sockTransport = 0;
-
- // Loop indefinitely waiting for connections
- while(1)
- {
- SOCKADDR_IN addrConnected;
- int sConnected = sizeof(addrConnected);
-
- // Wait for a client to connect and send a URL
- m_sockTransport = accept(
- m_sockListen, (sockaddr*)&addrConnected, &sConnected);
-
- if (m_sockTransport == SOCKET_ERROR)
- ErrorExit();
-
- char pbBuffer[MAX_URL], strURL[MAX_URL];
- DWORD cbRead, cbWritten;
-
- bool fDone = false;
-
- // Loop until we're done with this client
- while (!fDone)
- {
- *strURL = '\0';
- bool fReceivedCR = false;
-
- do
- {
- // Only receive up to the first carriage return
- cbRead = recv(m_sockTransport, pbBuffer, MAX_URL-1, MSG_PEEK);
-
- // An error on read most likely means that the remote peer
- // closed the connection. Go back to waiting
- if (cbRead == 0)
- {
- fDone = true;
- break;
- }
-
- // Null terminate the received characters so strchr() is safe
- pbBuffer[cbRead] = '\0';
-
- if(char* pchFirstCR = strchr(pbBuffer, '\n'))
- {
- cbRead = (DWORD)(pchFirstCR - pbBuffer + 1);
- fReceivedCR = true;
- }
-
- // The below call will not block, since we determined with
- // MSG_PEEK that at least cbRead bytes are in the TCP receive buffer
- recv(m_sockTransport, pbBuffer, cbRead, 0);
- pbBuffer[cbRead] = '\0';
-
- strcat_s(strURL, sizeof(strURL), pbBuffer);
- } while (!fReceivedCR);
-
- // If an error occurred while reading, exit this loop
- if (fDone)
- break;
-
- // Strip the trailing CR and/or LF
- int i;
- for (i = (int)strlen(strURL)-1; i >= 0 && isspace(strURL[i]); i--)
- {
- strURL[i] = '\0';
- }
-
- if (i < 0)
- {
- // Sending a carriage return on a line by itself means that
- // the client is done making requests
- fDone = true;
- }
- else
- {
- // Send the browser to the requested URL
- CComVariant vNavFlags( navNoReadFromCache );
- CComVariant vTargetFrame("_self");
- CComVariant vPostData("");
- CComVariant vHTTPHeaders("");
-
- ResetEvent(m_hEvent);
- DWORD dwStartTime = GetTickCount();
-
- HRESULT hr = browser->Navigate(
- CComBSTR(strURL),
- &vNavFlags,
- &vTargetFrame, // TargetFrameName
- &vPostData, // PostData
- &vHTTPHeaders // Headers
- );
-
- // The main browser thread will call OnDocumentComplete() when
- // the page is done loading, which will in turn trigger
- // m_hEvent. Wait here until then; the event will reset itself
- // once this thread is released
- if (WaitForSingleObject(m_hEvent, MAX_PAGELOADTIME) == WAIT_TIMEOUT)
- {
- sprintf_s(pbBuffer, sizeof(pbBuffer), "%s,timeout\n", strURL);
-
- browser->Stop();
- }
- else
- {
- // Format the elapsed time as a string
- DWORD dwLoadTime = GetTickCount() - dwStartTime;
- sprintf_s(
- pbBuffer, sizeof(pbBuffer), "%s,%d\n", strURL, dwLoadTime);
- }
-
- // Send the result. Just in case the TCP buffer can't handle
- // the whole thing, send in parts if necessary
- char *chSend = pbBuffer;
-
- while (*chSend)
- {
- cbWritten = send(
- m_sockTransport, chSend, (int)strlen(chSend), 0);
-
- // Error on send probably means connection reset by peer
- if (cbWritten == 0)
- {
- fDone = true;
- break;
- }
-
- chSend += cbWritten;
- }
- }
- }
-
- // Close the transport socket and wait for another connection
- closesocket(m_sockTransport);
- m_sockTransport = 0;
- }
-}
-
-
-void CMeasurePageLoadTimeBHO::ErrorExit()
-{
- // Unlink from IE, close the sockets, then terminate this
- // thread
- SetSite(NULL);
-
- if (m_sockTransport && m_sockTransport != SOCKET_ERROR)
- {
- closesocket(m_sockTransport);
- m_sockTransport = 0;
- }
-
- if (m_sockListen && m_sockListen != SOCKET_ERROR)
- {
- closesocket(m_sockListen);
- m_sockListen = 0;
- }
-
- TerminateThread(GetCurrentThread(), -1);
-}
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.h b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.h
deleted file mode 100644
index cabb02401f5..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright (c) 2006-2008 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.
-
-// MeasurePageLoadTimeBHO.h : Declaration of the CMeasurePageLoadTimeBHO
-
-#include "resource.h" // main symbols
-
-#include <shlguid.h> // IID_IWebBrowser2, DIID_DWebBrowserEvents2, et
-#include <exdispid.h> // DISPID_DOCUMENTCOMPLETE, etc.
-
-#include <string>
-
-#include "MeasurePageLoadTime.h"
-
-
-#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
-#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM objects and allow use of its single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
-#endif
-
-
-
-// CMeasurePageLoadTimeBHO
-
-class ATL_NO_VTABLE CMeasurePageLoadTimeBHO :
- public CComObjectRootEx<CComSingleThreadModel>,
- public CComCoClass<CMeasurePageLoadTimeBHO, &CLSID_MeasurePageLoadTimeBHO>,
- public IObjectWithSiteImpl<CMeasurePageLoadTimeBHO>,
- public IDispatchImpl<IMeasurePageLoadTimeBHO, &IID_IMeasurePageLoadTimeBHO, &LIBID_MeasurePageLoadTimeLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
- public IDispEventImpl<1, CMeasurePageLoadTimeBHO, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw, 1, 1>
-{
-public:
- CMeasurePageLoadTimeBHO()
- {
- }
-
-DECLARE_REGISTRY_RESOURCEID(IDR_MEASUREPAGELOADTIMEBHO)
-
-DECLARE_NOT_AGGREGATABLE(CMeasurePageLoadTimeBHO)
-
-BEGIN_COM_MAP(CMeasurePageLoadTimeBHO)
- COM_INTERFACE_ENTRY(IMeasurePageLoadTimeBHO)
- COM_INTERFACE_ENTRY(IDispatch)
- COM_INTERFACE_ENTRY(IObjectWithSite)
-END_COM_MAP()
-
-BEGIN_SINK_MAP(CMeasurePageLoadTimeBHO)
- SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)
-END_SINK_MAP()
-
- // DWebBrowserEvents2
- void STDMETHODCALLTYPE OnDocumentComplete(IDispatch *pDisp, VARIANT *pvarURL);
- STDMETHOD(SetSite)(IUnknown *pUnkSite);
-
- DECLARE_PROTECT_FINAL_CONSTRUCT()
-
- HRESULT FinalConstruct()
- {
- return S_OK;
- }
-
- void FinalRelease()
- {
- }
-
- void ProcessPageTimeRequests(void);
- void VisitNextURL(void);
- void ErrorExit(void);
-
-private:
- CComPtr<IWebBrowser2> m_spWebBrowser;
- BOOL m_fAdvised;
-
- // Handle to global interface table
- DWORD m_dwCookie;
-
- // Handle to event to signal when navigation completes
- HANDLE m_hEvent;
-
- // Socket for accepting incoming connections
- SOCKET m_sockListen;
-
- // Socket for communicating with remote peers
- SOCKET m_sockTransport;
-};
-
-OBJECT_ENTRY_AUTO(__uuidof(MeasurePageLoadTimeBHO), CMeasurePageLoadTimeBHO)
diff --git a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.rgs b/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.rgs
deleted file mode 100644
index 1a00b72c14d..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/MeasurePageLoadTimeBHO.rgs
+++ /dev/null
@@ -1,27 +0,0 @@
-HKCR
-{
- MeasurePageLoadTime.MeasurePageLoadTi.1 = s 'MeasurePageLoadTimeBHO Class'
- {
- CLSID = s '{807E68BC-238F-4163-AE4B-0A3604F3E145}'
- }
- MeasurePageLoadTime.MeasurePageLoadTime = s 'MeasurePageLoadTimeBHO Class'
- {
- CLSID = s '{807E68BC-238F-4163-AE4B-0A3604F3E145}'
- CurVer = s 'MeasurePageLoadTime.MeasurePageLoadTi.1'
- }
- NoRemove CLSID
- {
- ForceRemove {807E68BC-238F-4163-AE4B-0A3604F3E145} = s 'MeasurePageLoadTimeBHO Class'
- {
- ProgID = s 'MeasurePageLoadTime.MeasurePageLoadTi.1'
- VersionIndependentProgID = s 'MeasurePageLoadTime.MeasurePageLoadTime'
- ForceRemove 'Programmable'
- InprocServer32 = s '%MODULE%'
- {
- val ThreadingModel = s 'Apartment'
- }
- val AppID = s '%APPID%'
- 'TypeLib' = s '{61AC7AC4-B715-4955-A238-5F9AEA80DF4B}'
- }
- }
-}
diff --git a/chromium/tools/measure_page_load_time/ie_bho/resource.h b/chromium/tools/measure_page_load_time/ie_bho/resource.h
deleted file mode 100644
index 38dc82565b7..00000000000
--- a/chromium/tools/measure_page_load_time/ie_bho/resource.h
+++ /dev/null
@@ -1,18 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by MeasurePageLoadTime.rc
-//
-#define IDS_PROJNAME 100
-#define IDR_MEASUREPAGELOADTIME 101
-#define IDR_MEASUREPAGELOADTIMEBHO 102
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 201
-#define _APS_NEXT_COMMAND_VALUE 32768
-#define _APS_NEXT_CONTROL_VALUE 201
-#define _APS_NEXT_SYMED_VALUE 103
-#endif
-#endif
diff --git a/chromium/tools/media_engagement_preload/make_dafsa.py b/chromium/tools/media_engagement_preload/make_dafsa.py
index bc9b3815735..72cbf7d32f8 100755
--- a/chromium/tools/media_engagement_preload/make_dafsa.py
+++ b/chromium/tools/media_engagement_preload/make_dafsa.py
@@ -26,7 +26,7 @@ import media_engagement_preload_pb2
A Deterministic acyclic finite state automaton (DAFSA) is a compact
representation of an unordered word list (dictionary).
-http://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton
+https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton
This python program converts a list of strings to a byte array in C++.
This python program fetches strings and return values from a gperf file
diff --git a/chromium/tools/metrics/actions/action_utils.py b/chromium/tools/metrics/actions/action_utils.py
index c954867a8d8..d85e330ebdb 100644
--- a/chromium/tools/metrics/actions/action_utils.py
+++ b/chromium/tools/metrics/actions/action_utils.py
@@ -9,6 +9,10 @@ infrastructure. Any changes to this file should also be done (manually) to the
internal copy. Please contact tools/metrics/OWNERS for more details.
"""
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
class Error(Exception):
pass
@@ -109,8 +113,8 @@ def CreateActionsFromSuffixes(actions_dict, action_suffix_nodes):
# If action_to_suffixes_dict is not empty by the end, we have missing actions.
if action_to_suffixes_dict:
- raise UndefinedActionItemError('Following actions are missing: %s.'
- %(action_to_suffixes_dict.keys()))
+ raise UndefinedActionItemError('Following actions are missing: %s.' %
+ (list(action_to_suffixes_dict.keys())))
def _CreateActionToSuffixesDict(action_suffix_nodes):
@@ -173,7 +177,7 @@ def _CreateActionsFromSuffixes(actions_dict, action_to_suffixes_dict):
"""Creates new actions with action-suffix pairs and adds them to actions_dict.
For every key (action name) in action_to_suffixes_dict, This function looks
- to see wether it exists in actions_dict. If so it combines the Action object
+ to see whether it exists in actions_dict. If so it combines the Action object
from actions_dict with all the Suffix objects from action_to_suffixes_dict to
create new Action objects. New Action objects are added to actions_dict and
the action name is removed from action_to_suffixes_dict.
@@ -187,7 +191,7 @@ def _CreateActionsFromSuffixes(actions_dict, action_to_suffixes_dict):
True if any new action was added, False otherwise.
"""
expanded_actions = set()
- for action_name, suffixes in action_to_suffixes_dict.iteritems():
+ for action_name, suffixes in action_to_suffixes_dict.items():
if action_name in actions_dict:
existing_action = actions_dict[action_name]
for suffix in suffixes:
@@ -220,8 +224,8 @@ def _CreateActionFromSuffix(actions_dict, action, suffix):
else:
(before, dot, after) = action.name.partition('.')
if not after:
- raise InvalidAffecteddActionNameError("Action name '%s' must contain a "
- "'.'.", action.name)
+ raise InvalidAffecteddActionNameError(
+ "Action name '%s' must contain a '.'." % action.name)
new_action_name = before + dot + suffix.name + suffix.separator + after
new_action_description = action.description + ' ' + suffix.description
diff --git a/chromium/tools/metrics/actions/actions.xml b/chromium/tools/metrics/actions/actions.xml
index ebfdd133162..5aed77331bc 100644
--- a/chromium/tools/metrics/actions/actions.xml
+++ b/chromium/tools/metrics/actions/actions.xml
@@ -749,6 +749,14 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="Accel_Minimize_Top_Window_On_Back">
+ <owner>minch@chromium.org</owner>
+ <description>
+ Metric recorded when the user press back key in the keyboard to minimize the
+ top window at bottom page while in tablet mode.
+ </description>
+</action>
+
<action name="Accel_Move_Active_Window_Between_Displays">
<owner>warx@chromium.org</owner>
<description>
@@ -2360,6 +2368,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="AppList_BackButtonPressed">
+ <owner>andrewxu@chromium.org</owner>
+ <description>User pressed the back button.</description>
+</action>
+
<action name="AppList_ClickOnApp">
<owner>vadimt@chromium.org</owner>
<description>
@@ -2403,6 +2416,16 @@ should be able to be added at any place in this file.
<description>CrOS Launcher went from full to peeking state.</description>
</action>
+<action name="AppList_HomeButtonPressedClamshell">
+ <owner>andrewxu@chromium.org</owner>
+ <description>User pressed the launcher button in clamshell.</description>
+</action>
+
+<action name="AppList_HomeButtonPressedTablet">
+ <owner>andrewxu@chromium.org</owner>
+ <description>User pressed the launcher button in tablet.</description>
+</action>
+
<action name="AppList_HomeLauncherToMRUWindow">
<owner>newcomer@chromium.org</owner>
<owner>sammiequon@chromium.org</owner>
@@ -4906,6 +4929,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="CookieControls.Bubble.CookiesInUse">
+ <owner>dullweber@chromium.org</owner>
+ <owner>huanzhong@chromium.org</owner>
+ <description>
+ &quot;Cookies in use&quot; dialog was opened from the cookie controls UI.
+ </description>
+</action>
+
<action name="CookieControls.Bubble.NotWorking">
<owner>dullweber@chromium.org</owner>
<owner>huanzhong@chromium.org</owner>
@@ -11272,7 +11303,7 @@ should be able to be added at any place in this file.
</action>
<action name="Media.OpenPreferencesClicked">
- <owner>grunell@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
<description>
@@ -11303,7 +11334,7 @@ should be able to be added at any place in this file.
</action>
<action name="Media.ShowSystemMediaPermissionBubble">
- <owner>grunell@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
<description>
@@ -11574,6 +11605,30 @@ 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="Mobile.OmniboxContextMenu.SearchCopiedImage">
+ <owner>rkgibson@google.com</owner>
+ <owner>stkhapugin@google.com</owner>
+ <description>
+ User pressed 'Search Copied Image' in the omnibox context menu (iOS only).
+ </description>
+</action>
+
+<action name="Mobile.OmniboxContextMenu.SearchCopiedText">
+ <owner>rkgibson@google.com</owner>
+ <owner>stkhapugin@google.com</owner>
+ <description>
+ User pressed 'Search Copied Text' in the omnibox context menu (iOS only).
+ </description>
+</action>
+
+<action name="Mobile.OmniboxContextMenu.VisitCopiedLink">
+ <owner>rkgibson@google.com</owner>
+ <owner>stkhapugin@google.com</owner>
+ <description>
+ User pressed 'Visit Copied Link' in the omnibox context menu (iOS only).
+ </description>
+</action>
+
<action name="Mobile_FocusedDefocusedOmnibox_WithNoAction">
<owner>stkhapugin@chromium.org</owner>
<description>
@@ -11625,6 +11680,7 @@ should be able to be added at any place in this file.
</action>
<action name="MobileAddBookmarkViaIntent">
+ <obsolete>Feature removed 11/2019</obsolete>
<owner>newt@chromium.org</owner>
<description>
User added a bookmark to Chrome via an intent from a third-party app.
@@ -12545,6 +12601,11 @@ should be able to be added at any place in this file.
<description>User pressed the stop option in the app menu.</description>
</action>
+<action name="MobileMenuTextZoom">
+ <owner>rkgibson@google.com</owner>
+ <description>User pressed 'Zoom Text' in the app menu</description>
+</action>
+
<action name="MobileMenuTranslate">
<owner>frechette@chromium.org</owner>
<description>User pressed the 'Translate' in the app menu.</description>
@@ -13783,6 +13844,14 @@ should be able to be added at any place in this file.
</description>
</action>
+<action name="MobileToolbarStackViewNewIncognitoTab">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ The user taps the new tab button '+' on the tab switcher toolbar to create a
+ new incognito tab.
+ </description>
+</action>
+
<action name="MobileToolbarStackViewNewTab">
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
@@ -15110,12 +15179,12 @@ should be able to be added at any place in this file.
<action name="Options_AccessibilitySwitchAccess_Disable">
<owner>dmazzoni@chromium.org</owner>
- <description>Settings: Accessibility: Disable switch access</description>
+ <description>Settings: Accessibility: Disable Switch Access</description>
</action>
<action name="Options_AccessibilitySwitchAccess_Enable">
<owner>dmazzoni@chromium.org</owner>
- <description>Settings: Accessibility: Enable switch access</description>
+ <description>Settings: Accessibility: Enable Switch Access</description>
</action>
<action name="Options_AccessibilitySystemMenu_Disable">
@@ -19967,6 +20036,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromAvatarBubbleSignin">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<description>
@@ -19977,6 +20047,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromBookmarkBubble">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<description>
@@ -19987,6 +20058,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromBookmarkManager">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -19998,6 +20070,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromExtensionInstallBubble">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<description>
@@ -20008,6 +20081,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromManageCardsBubble">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jsaul@chromium.org</owner>
<owner>manasverma@google.com</owner>
@@ -20021,6 +20095,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromNTPContentSuggestions">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<description>
@@ -20031,6 +20106,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromPasswordBubble">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<description>
@@ -20041,6 +20117,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromRecentTabs">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -20052,6 +20129,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromSaveCardBubble">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jsaul@chromium.org</owner>
<owner>manasverma@google.com</owner>
@@ -20065,6 +20143,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromSettings">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -20076,6 +20155,7 @@ should be able to be added at any place in this file.
</action>
<action name="Signin_SigninNewAccountPreDice_FromTabSwitcher">
+ <obsolete>Removed M80</obsolete>
<owner>bsazonov@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
@@ -20729,7 +20809,33 @@ should be able to be added at any place in this file.
<description>Please enter the description of the metric.</description>
</action>
+<action name="StartSurface.Hidden">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Metric record when the StartSurface 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).
+ </description>
+</action>
+
+<action name="StartSurface.Shown">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Metric record when the StartSurface overview is shown.
+ </description>
+</action>
+
<action name="StartSurface.SinglePane">
+ <obsolete>
+ Split in StartSurface.SinglePane.Home and
+ StartSurface.SinglePane.Tabswitcher.
+ </obsolete>
<owner>gogerald@chromium.org</owner>
<description>
Metric record when the single pane start surface is shown (the user taps the
@@ -20737,6 +20843,14 @@ should be able to be added at any place in this file.
</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).
+ </description>
+</action>
+
<action name="StartSurface.SinglePane.MoreTabs">
<owner>gogerald@chromium.org</owner>
<description>
@@ -20745,6 +20859,14 @@ should be able to be added at any place in this file.
</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).
+ </description>
+</action>
+
<action name="StartSurface.TasksOnly">
<owner>gogerald@chromium.org</owner>
<description>
@@ -21345,7 +21467,7 @@ should be able to be added at any place in this file.
<owner>anastasi@google.com</owner>
<owner>dtseng@chromium.org</owner>
<description>
- Ash system menu: Accessibility: Disable switch access
+ Ash system menu: Accessibility: Disable Switch Access
</description>
</action>
@@ -21353,7 +21475,7 @@ should be able to be added at any place in this file.
<owner>anastasi@google.com</owner>
<owner>dtseng@chromium.org</owner>
<description>
- Ash system menu: Accessibility: Enable switch access
+ Ash system menu: Accessibility: Enable Switch Access
</description>
</action>
@@ -21779,6 +21901,7 @@ should be able to be added at any place in this file.
<action name="TabContextMenu_AddToExistingGroup">
<owner>bsep@google.com</owner>
<owner>tbergquist@google.com</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected an entry in the Add to existing group submenu from the tab
context menu.
@@ -21788,6 +21911,7 @@ should be able to be added at any place in this file.
<action name="TabContextMenu_AddToNewGroup">
<owner>bsep@google.com</owner>
<owner>tbergquist@google.com</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected Add to new group from the tab context menu.
</description>
@@ -21802,7 +21926,8 @@ should be able to be added at any place in this file.
</action>
<action name="TabContextMenu_CloseOtherTabs">
- <owner>pbos@chromium.org</owner>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected Close Other Tabs from the tab context menu. Temporarily
removed in M78.
@@ -21810,33 +21935,41 @@ should be able to be added at any place in this file.
</action>
<action name="TabContextMenu_CloseTab">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
- <description>Please enter the description of this user action.</description>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
+ <description>User selected Close Tabs from tab context menu.</description>
</action>
<action name="TabContextMenu_CloseTabsOpenedBy">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_CloseTabsToRight">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
- <description>Please enter the description of this user action.</description>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
+ <description>
+ User selected Close Tabs to the Right from tab context menu.
+ </description>
</action>
<action name="TabContextMenu_CompactNavigationBar">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_Duplicate">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
- <description>Please enter the description of this user action.</description>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
+ <description>User selected Duplicate from tab context menu.</description>
</action>
<action name="TabContextMenu_FocusMode">
<owner>dfried@chromium.org</owner>
<owner>yiningwang@google.com</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected Focus This Tab from the tab context menu.
</description>
@@ -21850,30 +21983,35 @@ should be able to be added at any place in this file.
</action>
<action name="TabContextMenu_NewTab">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected New Tab to the Right from the tabstrip context menu.
</description>
</action>
<action name="TabContextMenu_OpenTabsLeftToRight">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_OpenTabsRightToLeft">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_Reload">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
- <description>Please enter the description of this user action.</description>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
+ <description>User selected Reload from tab context menu.</description>
</action>
<action name="TabContextMenu_RemoveFromGroup">
<owner>bsep@google.com</owner>
<owner>tbergquist@google.com</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
<description>
User selected Remove from group from the tab context menu.
</description>
@@ -21926,8 +22064,9 @@ should be able to be added at any place in this file.
</action>
<action name="TabContextMenu_TogglePinned">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
- <description>Please enter the description of this user action.</description>
+ <owner>tbergquist@chromium.org</owner>
+ <owner>chrome-desktop-ui-sea@google.com</owner>
+ <description>User selected Pin/Unpin from tab context menu.</description>
</action>
<action name="TabContextMenu_UnmuteTabs">
@@ -21938,16 +22077,19 @@ should be able to be added at any place in this file.
</action>
<action name="TabContextMenu_UseDestinationsTab_Off">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_UseDestinationsTab_On">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
<action name="TabContextMenu_UseVerticalTabs">
+ <obsolete>Could not find traces of this used in code.</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description>
</action>
@@ -21967,6 +22109,14 @@ should be able to be added at any place in this file.
<description>User drags a tab to reorder it.</description>
</action>
+<action name="TabGrid.TabSearchChipTapped">
+ <owner>yusufo@chromium.org</owner>
+ <owner>wychen@chromium.org</owner>
+ <description>
+ User tapped on the search term chip on a tab card in the TabGrid.
+ </description>
+</action>
+
<action name="TabGridDialog">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
@@ -21986,6 +22136,7 @@ should be able to be added at any place in this file.
</action>
<action name="TabGridSheet.UndoCloseTab">
+ <obsolete>Deprecated as of 11/2019. Sheet UI is no longer used.</obsolete>
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<description>
@@ -22128,6 +22279,42 @@ 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="TabsSuggestions.Close.Accepted">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <description>
+ The tab close suggestions were considered and accepted by the user (with
+ some possible editing).
+ </description>
+</action>
+
+<action name="TabsSuggestions.Close.Dismissed">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <description>
+ The tab close suggestions were considered and dismissed by the user (with
+ some possible editing).
+ </description>
+</action>
+
+<action name="TabsSuggestions.Close.SuggestionsReview.Accepted">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <description>
+ The tab close suggestions were considered by the user by following through
+ the tab suggestions offered in the snackbar.
+ </description>
+</action>
+
+<action name="TabsSuggestions.Close.SuggestionsReview.Dismissed">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <description>
+ The tab close suggestions were not considered at all by the user by
+ dismissing the snackbar indicating tab suggestions are available.
+ </description>
+</action>
+
<action name="TabStrip.UndoCloseTab">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
@@ -22161,6 +22348,28 @@ 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="TasksSurface.FakeBox.LongPressed">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when the user long pressed the fake box on the tasks surface.
+ </description>
+</action>
+
+<action name="TasksSurface.FakeBox.Tapped">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when the user taps the fake box on the tasks surface.
+ </description>
+</action>
+
+<action name="TasksSurface.FakeBox.VoiceSearch">
+ <owner>gogerald@chromium.org</owner>
+ <description>
+ Recorded when the user taps the voice search button in the fake box on the
+ tasks surface.
+ </description>
+</action>
+
<action name="TerminalSystemAppMenuButtonButton_Clicked">
<owner>alancutter@chromium.org</owner>
<owner>calamity@chromium.org</owner>
@@ -23399,6 +23608,10 @@ should be able to be added at any place in this file.
<suffix name="Bookmark" label="For Bookmark feature."/>
<suffix name="BottomToolbarTip" label="For BottomToolbarTip feature."/>
<suffix name="ChromeDuet" label="For ChromeDuet feature."/>
+ <suffix name="ChromeDuetHomeButton"
+ label="For ChromeDuetHomeButton feature."/>
+ <suffix name="ChromeDuetTabSwitcherButton"
+ label="For ChromeDuetTabSwitcherButton feature."/>
<suffix name="ChromeHomeExpand" label="For ChromeHomeExpand feature."/>
<suffix name="ChromeHomeMenuHeader"
label="For ChromeHomeMenuHeader feature."/>
@@ -23437,6 +23650,7 @@ should be able to be added at any place in this file.
<suffix name="GlobalMediaControls" label="For GlobalMediaControls feature."/>
<suffix name="HomePageButton" label="For HomePageButton feature."/>
<suffix name="HomepageTile" label="For HomepageTile feature."/>
+ <suffix name="IdentityDisc" label="For IdentityDisc feature."/>
<suffix name="IncognitoWindow" label="For IncognitoWindow feature."/>
<suffix name="LongPressToolbarTip" label="For LongPressToolbar feature."/>
<suffix name="MediaDownload" label="For MediaDownload feature."/>
@@ -23454,6 +23668,7 @@ should be able to be added at any place in this file.
<suffix name="TabGroupsYourTabsTogether"
label="For tab switcher with tab groups."/>
<suffix name="TranslateMenuButton" label="For translate menu button."/>
+ <suffix name="WebUITabStrip" label="For the WebUI tab strip."/>
<affected-action name="InProductHelp.NotifyEvent.IPH"/>
<affected-action name="InProductHelp.NotifyUsedEvent.IPH"/>
<affected-action name="InProductHelp.ShouldTriggerHelpUI.IPH"/>
diff --git a/chromium/tools/metrics/histograms/README.md b/chromium/tools/metrics/histograms/README.md
index df1a7937896..cc2b796beeb 100644
--- a/chromium/tools/metrics/histograms/README.md
+++ b/chromium/tools/metrics/histograms/README.md
@@ -38,7 +38,7 @@ not the other.)
### Use Fixed Strings When Using Histogram Macros
When using histogram macros (calls such as `UMA_HISTOGRAM_ENUMERATION`), you're
-not allow to construct your string dynamically so that it can vary at a
+not allowed to construct your string dynamically so that it can vary at a
callsite. At a given callsite (preferably you have only one), the string
should be the same every time the macro is called. If you need to use dynamic
names, use the functions in histogram_functions.h instead of the macros.
@@ -345,20 +345,27 @@ encouraged and enforced by Chrome metrics team through reviews.
#### How to choose expiry for histograms
-For new histograms if it is used for launching a project for which the timeline
-is known then pick an expiry based on your project timeline. Otherwise, we
-recommend choosing 3-6 months.
-
-For already existing histograms here are different scenarios:
-
-* Owner moved to different project - find new owner
-* Owner doesn’t use it, team doesn’t use it - remove
-* Not in use now, but maybe useful in the far future - remove
-* Not in use now, but maybe useful in the near future - pick 3 months or 2
- milestone ahead
-* Actively in use now, useful for short term - pick 3-6 month or appropriate
- number of milestones ahead
-* Actively in use, seems useful for indefinite time - pick 1 year or more
+If you are adding a histogram that will be used to evaluate a feature launch,
+set an expiry date consistent with the expected feature launch date. Otherwise,
+we recommend choosing 3-6 months.
+
+Here are some guidelines for common scenarios:
+
+* If the listed owner moved to different project, find a new owner.
+* If neither the owner nor the team uses the histogram, remove it.
+* If the histogram is not in use now, but might be useful in the far future,
+ remove it.
+* If the histogram is not in use now, but might be useful in the near
+ future, pick ~3 months or ~2 milestones ahead.
+* If the histogram is actively in use now and useful for a short term, pick
+ 3-6 month or 2-4 milestones ahead.
+* If the histogram is actively in use and seems useful for an indefinite time,
+ pick 1 year.
+
+We also have a tool that automatically extends expiry dates. The 80% more
+frequently accessed histograms are pushed out every Tuesday, to 6 months from
+the date of the run. Googlers can view the [design
+doc](https://docs.google.com/document/d/1IEAeBF9UnYQMDfyh2gdvE7WlUKsfIXIZUw7qNoU89A4).
### Expired histogram notifier
diff --git a/chromium/tools/metrics/histograms/enums.xml b/chromium/tools/metrics/histograms/enums.xml
index 8d2394b2588..d3b774e16ed 100644
--- a/chromium/tools/metrics/histograms/enums.xml
+++ b/chromium/tools/metrics/histograms/enums.xml
@@ -1029,6 +1029,17 @@ Unknown properties are collapsed to zero. -->
<int value="2" label="Failed (missing product details)"/>
</enum>
+<enum name="AdbSideloadingPromptEvent">
+ <int value="0" label="Prompt shown"/>
+ <int value="1" label="Prompt skipped"/>
+ <int value="2" label="Canceled by user"/>
+ <int value="3" label="Enabled by user"/>
+ <int value="4" label="Failed to display the prompt"/>
+ <int value="5" label="Failed to enable"/>
+ <int value="6" label="Failed to display the prompt (need powerwash)"/>
+ <int value="7" label="Failed to enable (need powerwash)"/>
+</enum>
+
<enum name="AddIceCandidateResult">
<int value="0" label="Success"/>
<int value="1" label="Closed"/>
@@ -1046,6 +1057,11 @@ Unknown properties are collapsed to zero. -->
<int value="2" label="IPv6"/>
</enum>
+<enum name="AddressHasDerivedField">
+ <int value="0" label="No derived field"/>
+ <int value="1" label="Has derived field"/>
+</enum>
+
<enum name="AddSearchProvider">
<int value="0" label="window.external.AddSearchProvider was called"/>
<int value="1" label="A confirmation dialog was shown"/>
@@ -1613,6 +1629,10 @@ Unknown properties are collapsed to zero. -->
<int value="257" label="GATT_FAILURE"/>
</enum>
+<enum name="AndroidIntentNonSafelistedHeaderNameHashes">
+ <int value="4229679564" label="user-agent"/>
+</enum>
+
<enum name="AndroidKernelVersion">
<int value="131078" label="2.6"/>
<int value="196608" label="3.0"/>
@@ -1879,6 +1899,15 @@ Unknown properties are collapsed to zero. -->
<int value="2" label="Cache Hit From Disk"/>
</enum>
+<enum name="AnnouncementNotificationEvent">
+ <int value="0" label="Start"/>
+ <int value="1" label="Show notification"/>
+ <int value="2" label="Click"/>
+ <int value="3" label="Close"/>
+ <int value="4" label="Ack"/>
+ <int value="5" label="Review"/>
+</enum>
+
<enum name="AntiVirusMetricsProviderResult">
<int value="0" label="RESULT_SUCCESS"/>
<int value="1" label="RESULT_GENERIC_FAILURE"/>
@@ -2177,6 +2206,12 @@ Unknown properties are collapsed to zero. -->
<int value="7" label="Cached Data Cleared"/>
</enum>
+<enum name="AppListAddPageType">
+ <int value="0" label="By Dragging App"/>
+ <int value="1" label="By Moving App With Keyboard"/>
+ <int value="2" label="By Syncing or Intalling App"/>
+</enum>
+
<enum name="AppListAppMovingType">
<int value="0" label="MOVE_BY_DRAG_INTO_FOLDER"/>
<int value="1" label="MOVE_BY_DRAG_OUT_OF_FOLDER"/>
@@ -2204,6 +2239,12 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="DOODLE_CLICKED"/>
</enum>
+<enum name="AppListDriveQuickAccessResultPresence">
+ <int value="0" label="Present and shown"/>
+ <int value="1" label="Present and not shown"/>
+ <int value="2" label="Absent"/>
+</enum>
+
<enum name="AppListEnableSource">
<obsolete>
Deprecated 03/2018 with Mash AppList refactoring.
@@ -2443,6 +2484,7 @@ Unknown properties are collapsed to zero. -->
<int value="4" label="Search Key With Shift"/>
<int value="5" label="Shelf Button With Shift"/>
<int value="6" label="Assistant Entry Point"/>
+ <int value="7" label="Scroll from the shelf"/>
</enum>
<enum name="AppListStateTransitionSource">
@@ -2685,7 +2727,9 @@ Unknown properties are collapsed to zero. -->
<int value="8" label="ARC app preferred and pressed"/>
<int value="9" label="Progressive web app pressed"/>
<int value="10" label="Error before showing picker"/>
+ <int value="11" label="Invalid"/>
<int value="12" label="External device pressed"/>
+ <int value="13" label="Mac native app pressed"/>
</enum>
<enum name="ArcIntentHandlerDestinationPlatform">
@@ -2696,6 +2740,7 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Chrome"/>
<int value="2" label="Progressive web app"/>
<int value="3" label="External device"/>
+ <int value="4" label="Mac native app"/>
</enum>
<enum name="ArcIntentHelperOpenType">
@@ -2709,6 +2754,12 @@ Unknown properties are collapsed to zero. -->
<int value="6" label="Web app"/>
</enum>
+<enum name="ArcMojoConnectionType">
+ <summary>Types of mojo connections to the ARC container.</summary>
+ <int value="0" label="AppLauncher"/>
+ <int value="1" label="IntentHelper"/>
+</enum>
+
<enum name="ArcNativeBridgeType">
<int value="0" label="Unknown"/>
<int value="1" label="None"/>
@@ -2835,6 +2886,14 @@ Unknown properties are collapsed to zero. -->
<int value="6" label="BAD_RESPONSE_FROM_DOCUMENTS_UI"/>
</enum>
+<enum name="ArcStopReason">
+ <summary>Describes the reason the ARC instance is stopped</summary>
+ <int value="0" label="SHUTDOWN"/>
+ <int value="1" label="GENERIC_BOOT_FAILURE"/>
+ <int value="2" label="LOW_DISK_SPACE"/>
+ <int value="3" label="CRASH"/>
+</enum>
+
<enum name="ArcSupervisionTransitionResult">
<summary>
Defines Arc supervision transition success and failure reasons
@@ -2896,6 +2955,16 @@ Unknown properties are collapsed to zero. -->
<int value="5" label="INSUFFICIENT_RESOURCES"/>
</enum>
+<enum name="AshAutoNightLightNotificationState">
+ <summary>
+ Defines the possible states of the Auto Night Light notification as a result
+ of a user's interaction with it.
+ </summary>
+ <int value="0" label="Closed by user"/>
+ <int value="1" label="Notification's body clicked"/>
+ <int value="2" label="Notification's button clicked"/>
+</enum>
+
<enum name="AshGestureActionType">
<int value="0" label="Unknown"/>
<int value="1" label="Omnibox pinch (deprecated, see crbug.com/826476)"/>
@@ -3058,6 +3127,11 @@ Unknown properties are collapsed to zero. -->
<int value="3" label="kStylus"/>
<int value="4" label="kSuggestionChip"/>
<int value="5" label="kVoiceInput"/>
+ <int value="6" label="kProactiveSuggestions"/>
+ <int value="7" label="kLibAssistantInitiated"/>
+ <int value="8" label="kWarmerWelcome"/>
+ <int value="9" label="kConversationStarter"/>
+ <int value="10" label="kWhatsOnMyScreen"/>
</enum>
<enum name="AsyncDNSConfigParsePosix">
@@ -4227,6 +4301,8 @@ Unknown properties are collapsed to zero. -->
<int value="30" label="The popup was suppressed"/>
<int value="31" label="The popup was suppressed (once)"/>
<int value="32" label="The form was parsed"/>
+ <int value="33" label="The user hide the suggestions"/>
+ <int value="34" label="The user hide the suggestions (once)"/>
</enum>
<enum name="AutofillFormSubmittedState">
@@ -4825,11 +4901,44 @@ Unknown properties are collapsed to zero. -->
<int value="5" label="Overlay Insecure Non-player-element Fullscreen"/>
</enum>
+<enum name="BackForwardCacheBrowsingInstanceNotSwappedReason">
+ <int value="0" label="Swapped"/>
+ <int value="1" label="Proactive swap disabled"/>
+ <int value="2" label="Not a main frame"/>
+ <int value="3" label="Has related active contents"/>
+ <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="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"/>
+</enum>
+
<enum name="BackForwardCacheDisabledForRenderFrameHostReason">
+ <int value="-1859200986" label="WebUSB"/>
+ <int value="-1521338555" label="OfflinePage"/>
<int value="-1449100855" label="safe_browsing::ThreatDetails"/>
+ <int value="-1442160010" label="Serial"/>
<int value="-1314032804" label="MediaSessionImpl::OnServiceCreated"/>
+ <int value="-1303768664" label="PopupBlockerTabHelper"/>
+ <int value="-1192330754" label="autofill::ContentAutofillDriver"/>
<int value="-866479064" label="content::protocol::SecurityHandler"/>
+ <int value="-684843031" label="SafeBrowsingTriggeredPopupBlocker"/>
+ <int value="-438850149" label="PermissionRequestManager"/>
+ <int value="72716222" label="WebBluetooth"/>
+ <int value="88001126" label="MixedContentSettingsTabHelper"/>
<int value="671363579" label="banners::AppBannerManager"/>
+ <int value="990438262" label="MediaWebContentsObserver::OnMediaPlaying"/>
+ <int value="1683256665" label="NativeFileSystem"/>
+ <int value="1774599341" label="WebAuthenticationAPI"/>
+ <int value="1985234179" label="PermissionServiceContext"/>
+ <int value="2013040510" label="RenderFrameDevToolsAgentHost"/>
+ <int value="2024383223"
+ label="ChromePasswordManagerClient::BindCredentialManager"/>
+ <int value="2129248270"
+ label="password_manager::ContentPasswordManagerDriver"/>
</enum>
<enum name="BackForwardCacheEvictedAfterDocumentRestoredReason">
@@ -4837,22 +4946,44 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="By JavaScript"/>
</enum>
-<enum name="BackForwardCacheEvictedReason">
- <int value="0" label="Timeout"/>
- <int value="1" label="Cache limit"/>
- <int value="2" label="JavaScript execution"/>
- <int value="3" label="Renderer process killed"/>
- <int value="4" label="Renderer process crashed"/>
- <int value="5" label="Dialog"/>
- <int value="6" label="Granted media stream access"/>
- <int value="7" label="Scheduler tracked feature used"/>
-</enum>
-
<enum name="BackForwardCacheHistoryNavigationOutcome">
<int value="0" label="Restored"/>
<int value="1" label="Not restored"/>
</enum>
+<enum name="BackForwardCacheNotRestoredReason">
+ <int value="0" label="Not main frame (should not be happening)"/>
+ <int value="1" label="Back forward cache disabled"/>
+ <int value="2" label="Related active contents exist"/>
+ <int value="3" label="HTTP status not OK"/>
+ <int value="4" label="Scheme not HTTP or HTTPS"/>
+ <int value="5" label="Loading"/>
+ <int value="6" label="Was granted media access"/>
+ <int value="7" label="Blocklisted features"/>
+ <int value="8" label="Disable for render frame host called"/>
+ <int value="9" label="Domain not allowed"/>
+ <int value="10" label="HTTP method not GET"/>
+ <int value="11" label="Subframe is navigating"/>
+ <int value="12" label="Timeout"/>
+ <int value="13" label="Cache limit"/>
+ <int value="14" label="JavaScript execution"/>
+ <int value="15" label="Renderer process killed"/>
+ <int value="16" label="Renderer process crashed"/>
+ <int value="17" label="Dialog"/>
+ <int value="18" label="Granted media stream access"/>
+ <int value="19" label="Scheduler tracked feature used"/>
+ <int value="20" label="Conflicting BrowsingInstance"/>
+ <int value="21" label="Cache flushed"/>
+ <int value="22" label="ServiceWorker version activation"/>
+ <int value="23" label="Session restored"/>
+ <int value="24" label="Unknown (should not be happening)"/>
+ <int value="25" label="ServiceWorker postMessage"/>
+ <int value="26" label="ServiceWorker added after entering cache"/>
+ <int value="27" label="RenderFrameHost is reused for same-site navigation"/>
+ <int value="28" label="RenderFrameHost is reused for cross-site navigation"/>
+ <int value="29" label="NavigationEntry is not the most recent one"/>
+</enum>
+
<enum name="BackForwardNavigationType">
<int value="0" label="Fast back navigation with WKBackForwardList"/>
<int value="1" label="Slow back navigation"/>
@@ -5118,7 +5249,7 @@ Unknown properties are collapsed to zero. -->
<int value="117" label="BDH_INVALID_REFCOUNT_OPERATION"/>
<int value="118" label="BDH_INVALID_URL_OPERATION"/>
<int value="119" label="OBSOLETE_IDBDH_INVALID_ORIGIN"/>
- <int value="120" label="RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE"/>
+ <int value="120" label="OBSOLETE_RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE"/>
<int value="121" label="OBSOLETE_RFH_FAIL_PROVISIONAL_LOAD_NO_ERROR"/>
<int value="122" label="NI_IN_PAGE_NAVIGATION"/>
<int value="123" label="RPH_MOJO_PROCESS_ERROR"/>
@@ -5221,7 +5352,7 @@ Unknown properties are collapsed to zero. -->
<int value="208" label="RFH_CHILD_FRAME_NEEDS_OWNER_ELEMENT_TYPE"/>
<int value="209" label="OBSOLETE_RFH_INVALID_WEB_REPORTING_CRASH_ID"/>
<int value="210" label="RFH_DETACH_MAIN_FRAME"/>
- <int value="211" label="RFH_DOCUMENT_INTERFACE_BROKER_MISSING"/>
+ <int value="211" label="RFH_BROWSER_INTERFACE_BROKER_MISSING"/>
<int value="212" label="RFPH_POST_MESSAGE_INVALID_SOURCE_ORIGIN"/>
<int value="213" label="INVALID_INITIATOR_ORIGIN"/>
<int value="214" label="RFHI_BEGIN_NAVIGATION_MISSING_INITIATOR_ORIGIN"/>
@@ -5780,7 +5911,11 @@ Unknown properties are collapsed to zero. -->
<enum name="BookmarkLaunchLocation">
<int value="0" label="Attached bookmark bar"/>
- <int value="1" label="Detached (floating) bookmark bar"/>
+ <int value="1" label="Detached (floating) bookmark bar">
+ <obsolete>
+ Deprecated: The detached bookmark bar state no longer exists.
+ </obsolete>
+ </int>
<int value="2" label="Bookmark bar subfolder"/>
<int value="3" label="Context menu"/>
<int value="4" label="Wrench menu"/>
@@ -6106,6 +6241,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Chose CONTINUE"/>
</enum>
+<enum name="BooleanCorrect">
+ <int value="0" label="Incorrect"/>
+ <int value="1" label="Correct"/>
+</enum>
+
<enum name="BooleanCorrupt">
<int value="0" label="Not Corrupt"/>
<int value="1" label="Corrupt"/>
@@ -6577,6 +6717,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Latched"/>
</enum>
+<enum name="BooleanLoadCollided">
+ <int value="0" label="Load did not collide"/>
+ <int value="1" label="Load collided"/>
+</enum>
+
<enum name="BooleanLoaded">
<int value="0" label="Not loaded"/>
<int value="1" label="Loaded"/>
@@ -6757,6 +6902,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Manual fallback"/>
</enum>
+<enum name="BooleanPathIsInformative">
+ <int value="0" label="Path contains nothing except possibly a slash"/>
+ <int value="1" label="Path contains text beyond just an opening slash"/>
+</enum>
+
<enum name="BooleanPending">
<int value="0" label="Decided"/>
<int value="1" label="Pending"/>
@@ -6795,6 +6945,11 @@ Unknown properties are collapsed to zero. -->
<int value="1" label="Present"/>
</enum>
+<enum name="BooleanPreviouslyVisited">
+ <int value="0" label="Was not visited before"/>
+ <int value="1" label="Was visited before"/>
+</enum>
+
<enum name="BooleanProcessReuseDisallowed">
<int value="0" label="Process reuse allowed"/>
<int value="1" label="Process reuse disallowed"/>
@@ -7365,6 +7520,7 @@ Unknown properties are collapsed to zero. -->
<int value="24" label="Unsupported rounded corner rect."/>
<int value="25" label="Rounded rect doesn't match clip rect."/>
<int value="26" label="Rounded rect doesn't have uniform corner radii."/>
+ <int value="27" label="Too many quads."/>
</enum>
<enum name="CanMakePaymentUsage">
@@ -7518,6 +7674,7 @@ Unknown properties are collapsed to zero. -->
<int value="3" label="Accelerated Composited"/>
<int value="4" label="Accelerated Direct 2D"/>
<int value="5" label="Accelerated Direct 3D"/>
+ <int value="6" label="Software Composited Direct 2D (deprecated)"/>
</enum>
<enum name="CAPSUpdaterStep">
@@ -7810,6 +7967,14 @@ histogram as enum -->
<int value="10" label="Image was not required for activation."/>
</enum>
+<enum name="ChromeActivityType">
+ <int value="0" label="Tabbed Chrome"/>
+ <int value="1" label="Custom Tab"/>
+ <int value="2" label="Trusted Web Activity"/>
+ <int value="3" label="WebAPK"/>
+ <int value="4" label="Webapp (not WebAPK)"/>
+</enum>
+
<enum name="ChromeBrowsingDataRemoverTasks">
<int value="1" label="kSynchronous"/>
<int value="2" label="kHistory"/>
@@ -7842,7 +8007,13 @@ histogram as enum -->
<int value="29" label="kHostCache"/>
<int value="30" label="kTpmAttestationKeys"/>
<int value="31" label="kStrikes"/>
- <int value="32" label="kLeakedCredentials"/>
+ <int value="32" label="kLeakedCredentials (Obsolete)">
+ <obsolete>
+ Use kCompromisedCredentials instead. This expired 2019-11.
+ </obsolete>
+ </int>
+ <int value="33" label="kFieldInfo"/>
+ <int value="34" label="kCompromisedCredentials"/>
</enum>
<enum name="ChromeChannelForHistogram">
@@ -7904,6 +8075,8 @@ histogram as enum -->
<int value="2" label="Initiated by WebStore Installer"/>
<int value="3" label="Initiated by ImageBurner"/>
<int value="4" label="Initiated by Plugin Installer"/>
+ <int value="5" label="Initiated by PDF plugin"/>
+ <int value="6" label="Initiated by Extension"/>
</enum>
<enum name="ChromeHomeOpenReason">
@@ -9324,7 +9497,7 @@ Called by update_net_error_codes.py.-->
<int value="-603" label="FTP_TRANSFER_ABORTED"/>
<int value="-602" label="FTP_SERVICE_UNAVAILABLE"/>
<int value="-601" label="FTP_FAILED"/>
- <int value="-505" label="INVALID_BUNDLED_EXCHANGES"/>
+ <int value="-505" label="INVALID_WEB_BUNDLE"/>
<int value="-504" label="INVALID_SIGNED_EXCHANGE"/>
<int value="-503" label="ADD_USER_CERT_FAILED"/>
<int value="-502" label="NO_PRIVATE_KEY_FOR_CERT"/>
@@ -9626,6 +9799,13 @@ Called by update_net_error_codes.py.-->
<int value="2" label="Will use composited scrolling"/>
</enum>
+<enum name="CompositingMode">
+ <int value="0" label="Software"/>
+ <int value="1" label="GL"/>
+ <int value="2" label="Vulkan"/>
+ <int value="3" label="Metal"/>
+</enum>
+
<enum name="CompositorAnimationsFailureReason">
<int value="0" label="No failure"/>
<int value="1" label="Accelerated animations disabled"/>
@@ -9682,6 +9862,18 @@ Called by update_net_error_codes.py.-->
<int value="1" label="Decompressed in a background or a foreground tab"/>
</enum>
+<enum name="CompressionStreamsFormat">
+ <int value="0" label="gzip"/>
+ <int value="1" label="deflate"/>
+</enum>
+
+<enum name="CompromiseType">
+ <int value="0"
+ label="Leaked - If the credentials was leaked by a data breach."/>
+ <int value="1"
+ label="Phished - If the credentials was reused on a phishing site."/>
+</enum>
+
<enum name="ComputeCurrentSigninStatus">
<obsolete>
Deprecated as of Jun 2016. The enum was added for debugging purpose and is
@@ -9802,12 +9994,19 @@ Called by update_net_error_codes.py.-->
<int value="19" label="QUIC/41"/>
<int value="20" label="QUIC/42"/>
<int value="21" label="QUIC/43"/>
- <int value="22" label="QUIC/99"/>
+ <int value="22" label="HTTP/3 (Q099)"/>
<int value="23" label="QUIC/44"/>
<int value="24" label="QUIC/45"/>
<int value="25" label="QUIC/46"/>
<int value="26" label="QUIC/47"/>
<int value="27" label="QUIC/999"/>
+ <int value="28" label="HTTP/3 (Q048)"/>
+ <int value="29" label="HTTP/3 (Q049)"/>
+ <int value="30" label="HTTP/3 (Q050)"/>
+ <int value="31" label="HTTP/3 (T048)"/>
+ <int value="32" label="HTTP/3 (T049)"/>
+ <int value="33" label="HTTP/3 (T050)"/>
+ <int value="34" label="HTTP/3 (T099)"/>
</enum>
<enum name="ConnectionResult">
@@ -10222,6 +10421,8 @@ Called by update_net_error_codes.py.-->
<int value="55" label="System wake lock"/>
<int value="56" label="Legacy cookie access"/>
<int value="57" label="Native file system write guard"/>
+ <int value="58" label="Installed web app metadata"/>
+ <int value="59" label="NFC"/>
</enum>
<enum name="ContentTypeParseableResult">
@@ -10795,6 +10996,10 @@ Called by update_net_error_codes.py.-->
</enum>
<enum name="CookieDeleteEquivalent">
+ <obsolete>
+ Deprecated 2019-10-23 as part of cookie histogram cleanup
+ (https://crbug.com/993120).
+ </obsolete>
<int value="0"
label="Attempt to delete an equivalent cookie during a set cookie
operation"/>
@@ -10867,6 +11072,10 @@ Called by update_net_error_codes.py.-->
</enum>
<enum name="CookieNetworkSecurity">
+ <obsolete>
+ Deprecated 2019-10-31 as part of cookie histogram cleanup
+ (https://crbug.com/993120).
+ </obsolete>
<int value="0" label="secure attribute (1st party)">
First party cookie with `Secure` attribute.
</int>
@@ -10940,6 +11149,14 @@ Called by update_net_error_codes.py.-->
<int value="2" label="Host prefix"/>
</enum>
+<enum name="CookieRequestScheme">
+ <int value="0" label="Unset Cookie Scheme"/>
+ <int value="1" label="Nonsecurely Set Cookie Nonsecure Request"/>
+ <int value="2" label="Securely Set Cookie Secure Request"/>
+ <int value="3" label="Nonsecurely Set Cookie Secure Request"/>
+ <int value="4" label="Securely Set Cookie Nonsecure Request"/>
+</enum>
+
<enum name="CookieSameSiteString">
<int value="0" label="No SameSite attribute is present."/>
<int value="1" label="SameSite attribute is specified but has no value."/>
@@ -11071,6 +11288,12 @@ Called by update_net_error_codes.py.-->
<int value="3" label="Hash Mismatch"/>
</enum>
+<enum name="CorruptionStates">
+ <int value="0" label="Corruption Detected After Mount"/>
+ <int value="1" label="Mount Failed"/>
+ <int value="2" label="Rolled Back During Mount"/>
+</enum>
+
<enum name="CorsAccessCheckError">
<summary>The CORS check results for each request.</summary>
<int value="0" label="CORS request was permitted"/>
@@ -11296,6 +11519,7 @@ Called by update_net_error_codes.py.-->
<int value="4" label="CRAS_CLIENT_TYPE_CHROME"/>
<int value="5" label="CRAS_CLIENT_TYPE_ARC"/>
<int value="6" label="CRAS_CLIENT_TYPE_CROSVM"/>
+ <int value="7" label="CRAS_CLIENT_TYPE_SERVER_STREAM"/>
</enum>
<enum name="CrasDeviceType">
@@ -11389,6 +11613,8 @@ Called by update_net_error_codes.py.-->
<int value="529697949" label="CPP_EH_EXCEPTION"/>
<int value="533692099" label="STATUS_GUARD_PAGE_VIOLATION"/>
<int value="536870904" label="Out of Memory"/>
+ <int value="1066598273" label="FACILITY_VISUALCPP/ERROR_PROC_NOT_FOUND"/>
+ <int value="1066598274" label="FACILITY_VISUALCPP/ERROR_MOD_NOT_FOUND"/>
<int value="1073740760" label="STATUS_INVALID_IMAGE_HASH"/>
<int value="1073740791" label="STATUS_STACK_BUFFER_OVERRUN"/>
<int value="1073740940" label="STATUS_HEAP_CORRUPTION"/>
@@ -11427,6 +11653,17 @@ Called by update_net_error_codes.py.-->
<int value="2147483646" label="STATUS_DATATYPE_MISALIGNMENT"/>
</enum>
+<enum name="CrasHfpCodec">
+ <summary>
+ List of codec ids used for SCO audio, in Bluetooth Hands-free profile. This
+ list should be aligned with CRAS:
+ https://chromium.googlesource.com/chromiumos/third_party/adhd/+/master/cras/src/server/cras_hfp_slc.h
+ </summary>
+ <int value="0" label="HFP_CODEC_UNUSED"/>
+ <int value="1" label="HFP_CODEC_ID_CVSD"/>
+ <int value="2" label="HFP_CODEC_ID_MSBC"/>
+</enum>
+
<enum name="CrashpadExceptionCaptureResult">
<int value="0" label="kSuccess"/>
<int value="1" label="kUnexpectedExceptionBehavior"/>
@@ -11728,6 +11965,7 @@ Called by update_net_error_codes.py.-->
<int value="3" label="MOUNT_FAILURE"/>
<int value="4" label="COMPATIBILITY_CHECK_FAILED"/>
<int value="5" label="NOT_FOUND"/>
+ <int value="6" label="UPDATE_IN_PROGRESS"/>
</enum>
<enum name="CrosDictationToggleDictationMethod">
@@ -11909,6 +12147,9 @@ Called by update_net_error_codes.py.-->
<int value="21" label="Vm.VmcStart"/>
<int value="22" label="Vm.VmcStartSuccess"/>
<int value="23" label="Vm.DiskEraseFailed"/>
+ <int value="24" label="Fingerprint.MCU.Reboot"/>
+ <int value="25" label="Crash.Chrome.CrashesFromKernel"/>
+ <int value="26" label="Crash.Chrome.MissedCrashes"/>
</enum>
<enum name="CrosFirstRunTutorialCompletionType">
@@ -12054,6 +12295,14 @@ Called by update_net_error_codes.py.-->
<int value="2" label="Registered App"/>
</enum>
+<enum name="CrostiniContainerOsVersion">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Debian Stretch"/>
+ <int value="2" label="Debian Buster"/>
+ <int value="3" label="Other Debian Version"/>
+ <int value="4" label="Non-Debian OS"/>
+</enum>
+
<enum name="CrostiniExportContainerResult">
<int value="0" label="Success"/>
<int value="1" label="Failed"/>
@@ -12100,6 +12349,20 @@ Called by update_net_error_codes.py.-->
<int value="37" label="CONTAINER_EXPORT_IMPORT_CANCELLED"/>
<int value="38" label="RESTART_ABORTED"/>
<int value="39" label="RESTART_FAILED_VM_STOPPED"/>
+ <int value="40" label="UPGRADE_CONTAINER_STARTED"/>
+ <int value="41" label="UPGRADE_CONTAINER_ALREADY_RUNNING"/>
+ <int value="42" label="UPGRADE_CONTAINER_NOT_SUPPORTED"/>
+ <int value="43" label="UPGRADE_CONTAINER_ALREADY_UPGRADED"/>
+ <int value="44" label="UPGRADE_CONTAINER_FAILED"/>
+ <int value="45" label="CANCEL_UPGRADE_CONTAINER_FAILED"/>
+ <int value="46" label="CONCIERGE_START_FAILED"/>
+ <int value="47" label="CONTAINER_CONFIGURATION_FAILED"/>
+ <int value="48" label="LOAD_COMPONENT_UPDATE_IN_PROGRESS"/>
+</enum>
+
+<enum name="CrostiniSettingsEvent">
+ <int value="0" label="Enable ADB sideloading"/>
+ <int value="1" label="Disable ADB sideloading"/>
</enum>
<enum name="CrostiniSetupResult">
@@ -12126,6 +12389,8 @@ Called by update_net_error_codes.py.-->
<int value="20" label="User Cancelled While Fetching SSH Keys"/>
<int value="21" label="User Cancelled While Mounting Container"/>
<int value="22" label="Insufficient Disk Space"/>
+ <int value="23" label="Error Configuring Container"/>
+ <int value="24" label="User Cancelled While Configuring Container"/>
</enum>
<enum name="CrostiniUISurface">
@@ -12161,6 +12426,17 @@ Called by update_net_error_codes.py.-->
<int value="2" label="Connect to Linux Clicked"/>
</enum>
+<enum name="CrowdDenyNotificationUxQuality">
+ <int value="0" label="Uknown"/>
+ <int value="1" label="Accceptable"/>
+ <int value="2" label="Unsolicited prompts"/>
+</enum>
+
+<enum name="CrowdDenySafeBrowsingVerdict">
+ <int value="0" label="Acceptable"/>
+ <int value="1" label="Unsolicited notification prompts"/>
+</enum>
+
<enum name="CryptAuthApiCallResult">
<int value="0" label="Success"/>
<int value="1" label="Timeout"/>
@@ -12247,6 +12523,10 @@ Called by update_net_error_codes.py.-->
<int value="32" label="Error: ClientAppMetadata fetch failed"/>
<int value="33" label="Error: Timeout waiting for GCM registration"/>
<int value="34" label="Error: Timeout waiting for ClientAppMetadata"/>
+ <int value="35" label="Error: Failed to create user key pair"/>
+ <int value="36" label="Error: Failed to create legacy master key"/>
+ <int value="37"
+ label="Error: Failed to create DeviceSync:BetterTogether key"/>
</enum>
<enum name="CryptAuthV2EnrollmentUserKeyPairState">
@@ -13291,14 +13571,18 @@ Called by update_net_error_codes.py.-->
<int value="8250451" label="DATA_REDUCTION_PROXY"/>
<int value="8561691" label="SAFE_BROWSING"/>
<int value="9459438" label="POLICY"/>
+ <int value="10498172" label="PER_USER_TOPIC_REGISTRATION_REQUEST"/>
<int value="13211343" label="SUGGESTIONS"/>
<int value="14257952" label="SUPERVISED_USER"/>
<int value="15418154" label="NTP_SNIPPETS_SUGGESTIONS"/>
<int value="16653985" label="NTP_SNIPPETS_THUMBNAILS"/>
+ <int value="17188928" label="WEBSOCKET_STREAM"/>
<int value="17400350" label="WEB_HISTORY_SERVICE"/>
+ <int value="17562717" label="HISTORY_UI_FAVICON"/>
<int value="18300705" label="GCM_DRIVER"/>
<int value="18858893" label="OFFLINE_PAGES_DOWNLOAD_FILE"/>
<int value="19185953" label="OFFLINE_PAGES_PREFETCH"/>
+ <int value="21785164" label="INTRANET_REDIRECT_DETECTOR"/>
<int value="22265491" label="POLICY"/>
<int value="24978481" label="CLOUD_PRINT"/>
<int value="25790702" label="APPCACHE_UPDATE_JOB"/>
@@ -13308,12 +13592,19 @@ Called by update_net_error_codes.py.-->
<int value="29057242" label="GCM_DRIVER"/>
<int value="29188932" label="GAIA"/>
<int value="30913825" label="SUPERVISED_USER"/>
+ <int value="31445884" label="GAIA_AUTH_MULTILOGIN"/>
<int value="32585152" label="GAIA"/>
+ <int value="33813109" label="PREVIEWS_LITEPAGE_PROBER"/>
+ <int value="34557599" label="HINTSFETCHER_GETHINTS"/>
<int value="35370363" label="SUGGESTIONS"/>
<int value="35380758" label="RESUMED_DOWNLOADS"/>
+ <int value="35473769" label="LOGO_SERVICE"/>
<int value="35565745" label="GAIA"/>
+ <int value="35725390" label="HTTPS_SERVER_PREVIEWS_NAVIGATION"/>
<int value="36859107" label="SEARCH_PROVIDER_LOGOS"/>
+ <int value="38670228" label="DOWNLOADS_INTERNAL_WEBUI"/>
<int value="39877119" label="GAIA"/>
+ <int value="39886742" label="WEB_PUSH_MESSAGE"/>
<int value="42848942" label="SAFE_BROWSING"/>
<int value="43206794" label="SUPERVISED_USER"/>
<int value="44494884" label="NTP_TILES"/>
@@ -13325,18 +13616,25 @@ Called by update_net_error_codes.py.-->
<int value="49544361" label="NTP_SNIPPETS_THUMBNAILS"/>
<int value="49601082" label="WEB_RESOURCE_SERVICE"/>
<int value="50755044" label="NTP_TILES"/>
+ <int value="50816767" label="LIB_ADDRESS_INPUT"/>
<int value="50859288" label="CLOUD_PRINT"/>
+ <int value="52821843" label="GEO_LANGUAGE_PROVIDER"/>
+ <int value="53695122" label="CREDENTIAL_AVATAR"/>
+ <int value="54845618" label="UPDATE_CLIENT"/>
<int value="56434025" label="NTP_SNIPPETS_SUGGESTIONS"/>
<int value="57144960" label="SYNC"/>
+ <int value="60071001" label="NET_ERROR_HELPER"/>
<int value="60946824" label="WEB_HISTORY_SERVICE"/>
<int value="61656965" label="GCM_DRIVER"/>
<int value="61684939" label="OMNIBOX"/>
+ <int value="63171670" label="NAVIGATION_URL_LOADER"/>
<int value="65957842" label="GCM_DRIVER"/>
<int value="66322287" label="SAFE_BROWSING"/>
<int value="66590631" label="SAFE_BROWSING"/>
<int value="67638271" label="CLOUD_PRINT"/>
<int value="68561428" label="DATA_REDUCTION_PROXY"/>
<int value="68745894" label="SAFE_BROWSING"/>
+ <int value="69585116" label="PASSWORD_REQUIREMENTS_SPEC_FETCH"/>
<int value="69881286" label="OMNIBOX_ANSWERS_IMAGE"/>
<int value="70126372" label="SAFE_BROWSING"/>
<int value="71251498" label="CLOUD_PRINT"/>
@@ -13345,9 +13643,12 @@ Called by update_net_error_codes.py.-->
<int value="73107389" label="OMNIBOX"/>
<int value="73772528" label="DOWNLOAD_VIA_CONTEXT_MENU"/>
<int value="75153841" label="SAFE_BROWSING"/>
+ <int value="76717919" label="INTEREST_FEED_SEND"/>
<int value="77597059" label="DOMAIN_RELIABILITY"/>
<int value="78544924" label="SUPERVISED_USER"/>
+ <int value="79442849" label="SIGNED_EXCHANGE_CERT_FETCHER"/>
<int value="79957943" label="SAFE_BROWSING"/>
+ <int value="80832574" label="HISTORY_NOTICE_UTILS_POPUP"/>
<int value="82167736" label="GAIA"/>
<int value="82462683" label="GAIA"/>
<int value="83476155" label="GAIA"/>
@@ -13356,29 +13657,40 @@ Called by update_net_error_codes.py.-->
<int value="84575287" label="TRACING_UPLOADER"/>
<int value="88754904" label="CAPTIVE_PORTAL"/>
<int value="88863520" label="AUTOFILL"/>
+ <int value="91068704" label="PREFETCH_VISUALS"/>
<int value="91597383" label="GAIA"/>
<int value="95588446" label="AUTOFILL"/>
<int value="95682324" label="MACHINE_INTELLIGENCE"/>
<int value="95711309" label="NTP_SNIPPETS_SUGGESTIONS"/>
<int value="97978464" label="GAIA"/>
<int value="98658519" label="SIGNIN"/>
+ <int value="102595701" label="HISTORY_NOTICE_UTILS_NOTICE"/>
<int value="102935425" label="SAFE_BROWSING"/>
<int value="103133150" label="NTP_TILES"/>
<int value="104798869" label="AUTOFILL"/>
<int value="106980485" label="SAFE_BROWSING"/>
+ <int value="107267424" label="OPEN_SEARCH"/>
+ <int value="107881858" label="IMAGE_ANNOTATION"/>
<int value="108804096" label="DOMAIN_RELIABILITY"/>
<int value="108903331" label="PROFILE_DOWNLOADER"/>
<int value="109200878" label="OMNIBOX"/>
+ <int value="109891200" label="REPORTING"/>
+ <int value="109987793" label="KIDS_CHROME_MANAGEMENT_CLIENT"/>
<int value="110307337" label="WEB_HISTORY_SERVICE"/>
<int value="111712433" label="CLOUD_PRINT"/>
+ <int value="111904019" label="AFFILIATION_LOOKUP"/>
<int value="112189210" label="FAVICON_LOADER"/>
<int value="113231892" label="UPDATE_CLIENT"/>
+ <int value="113553577" label="CERTIFICATE_VERIFIER"/>
+ <int value="114468207" label="SSL_NAME_MISMATCH_LOOKUP"/>
<int value="115188287" label="VARIATIONS"/>
<int value="115907811" label="SAFE_BROWSING"/>
<int value="116426676" label="GAIA"/>
<int value="117649486" label="SPELL_CHECKER"/>
<int value="117782019" label="POLICY"/>
<int value="117963307" label="SERVICE_WORKER_WRITE_TO_CACHE_JOB"/>
+ <int value="118389509" label="URL_PROVISION_FETCHER"/>
+ <int value="119416099" label="LOAD_AUTOFILL_GSTATIC_DATA"/>
<int value="119542033" label="GCM_DRIVER"/>
<int value="119677115" label="SUPERVISED_USER"/>
<int value="121842329" label="WEBAPK_ICON_HASHER"/>
@@ -13387,6 +13699,7 @@ Called by update_net_error_codes.py.-->
<int value="125596241" label="UPDATE_CLIENT"/>
<int value="126122632" label="WEB_HISTORY_SERVICE"/>
<int value="129872904" label="SERVICE_WORKER_NAVIGATION_PRELOAD"/>
+ <int value="130931413" label="SERVICE_WORKER_UPDATE_CHECKER"/>
<int value="131236802" label="DATA_REDUCTION_PROXY"/>
<int value="132055347" label="CLOUD_PRINT"/>
<int value="132553989" label="SPELL_CHECKER"/>
@@ -13394,6 +13707,7 @@ Called by update_net_error_codes.py.-->
<int value="134289752" label="GAIA"/>
<int value="134729048" label="FEEDBACK_UPLOADER"/>
<int value="135967426" label="SAFE_BROWSING"/>
+ <int value="136468456" label="PROXY_CONFIG_SETTINGS"/>
<int value="137116619" label="TRANSLATE"/>
<int value="137420486" label="CLOUD_PRINT"/>
<int value="137457845" label="WEB_HISTORY_SERVICE"/>
@@ -13818,6 +14132,7 @@ Called by update_net_error_codes.py.-->
<int value="32" label="Audits' view trace clicked"/>
<int value="33" label="Network panel film strip started recording"/>
<int value="34" label="Coverage report was filtered"/>
+ <int value="35" label="Coverage started (per block)"/>
</enum>
<enum name="DevToolsBackgroundService">
@@ -14012,6 +14327,7 @@ Called by update_net_error_codes.py.-->
<int value="98" label="Phone Chooser"/>
<int value="99" label="QR Code Generator"/>
<int value="100" label="Crostini Force Close"/>
+ <int value="101" label="App Uninstall"/>
</enum>
<enum name="DialogOriginRelationship">
@@ -14108,6 +14424,7 @@ Called by update_net_error_codes.py.-->
<int value="10" label="new_tab"/>
<int value="11" label="close_tab"/>
<int value="12" label="close_all_tabs"/>
+ <int value="13" label="find_in_page"/>
</enum>
<enum name="DirectCompositionVideoPresentationMode">
@@ -14184,6 +14501,26 @@ Called by update_net_error_codes.py.-->
<int value="6" label="Disconnected"/>
</enum>
+<enum name="DiskCacheError">
+ <summary>Error codes defined in net/disk_cache/errors.h</summary>
+ <int value="0" label="OK"/>
+ <int value="1" label="Init failed"/>
+ <int value="2" label="Invalid tail (corrupt list)"/>
+ <int value="3" label="Invalid head (corrupt list)"/>
+ <int value="4" label="Invalid prev (corrupt list link)"/>
+ <int value="5" label="Invalid next (corrupt list link)"/>
+ <int value="6" label="Invalid entry (beyond dirty)"/>
+ <int value="7" label="Invalid address (single entry)"/>
+ <int value="8" label="Invalid links (single entry)"/>
+ <int value="9" label="Number of entries mistmatch"/>
+ <int value="10" label="Read failure (single entry)"/>
+ <int value="11" label="Previous crash (Destructor not called)"/>
+ <int value="12" label="Storage error (Unable to open / create main files)"/>
+ <int value="13" label="Invalid mask (corrupt header)"/>
+ <int value="14" label="Cache cleared (user request)"/>
+ <int value="15" label="Cache created (from empty files)"/>
+</enum>
+
<enum name="DisplayLinkInstallationStatus">
<int value="0" label="DisplayLink not installed"/>
<int value="1" label="7.1 or earlier"/>
@@ -14199,6 +14536,75 @@ Called by update_net_error_codes.py.-->
<int value="1" label="Mixed mirror mode"/>
</enum>
+<enum name="DisplayResolution">
+ <int value="0" label="Display is power off"/>
+ <int value="1" label="1024 x 1024"/>
+ <int value="2" label="1024 x 1280"/>
+ <int value="3" label="1024 x 1440"/>
+ <int value="4" label="1024 x 1920"/>
+ <int value="5" label="1024 x 2560"/>
+ <int value="6" label="1024 x 3840"/>
+ <int value="7" label="1024 x 5120"/>
+ <int value="8" label="1024 x 7680"/>
+ <int value="9" label="1280 x 1024"/>
+ <int value="10" label="1280 x 1280"/>
+ <int value="11" label="1280 x 1440"/>
+ <int value="12" label="1280 x 1920"/>
+ <int value="13" label="1280 x 2560"/>
+ <int value="14" label="1280 x 3840"/>
+ <int value="15" label="1280 x 5120"/>
+ <int value="16" label="1280 x 7680"/>
+ <int value="17" label="1440 x 1024"/>
+ <int value="18" label="1440 x 1280"/>
+ <int value="19" label="1440 x 1440"/>
+ <int value="20" label="1440 x 1920"/>
+ <int value="21" label="1440 x 2560"/>
+ <int value="22" label="1440 x 3840"/>
+ <int value="23" label="1440 x 5120"/>
+ <int value="24" label="1440 x 7680"/>
+ <int value="25" label="1920 x 1024"/>
+ <int value="26" label="1920 x 1280"/>
+ <int value="27" label="1920 x 1440"/>
+ <int value="28" label="1920 x 1920"/>
+ <int value="29" label="1920 x 2560"/>
+ <int value="30" label="1920 x 3840"/>
+ <int value="31" label="1920 x 5120"/>
+ <int value="32" label="1920 x 7680"/>
+ <int value="33" label="2560 x 1024"/>
+ <int value="34" label="2560 x 1280"/>
+ <int value="35" label="2560 x 1440"/>
+ <int value="36" label="2560 x 1920"/>
+ <int value="37" label="2560 x 2560"/>
+ <int value="38" label="2560 x 3840"/>
+ <int value="39" label="2560 x 5120"/>
+ <int value="40" label="2560 x 7680"/>
+ <int value="41" label="3840 x 1024"/>
+ <int value="42" label="3840 x 1280"/>
+ <int value="43" label="3840 x 1440"/>
+ <int value="44" label="3840 x 1920"/>
+ <int value="45" label="3840 x 2560"/>
+ <int value="46" label="3840 x 3840"/>
+ <int value="47" label="3840 x 5120"/>
+ <int value="48" label="3840 x 7680"/>
+ <int value="49" label="5120 x 1024"/>
+ <int value="50" label="5120 x 1280"/>
+ <int value="51" label="5120 x 1440"/>
+ <int value="52" label="5120 x 1920"/>
+ <int value="53" label="5120 x 2560"/>
+ <int value="54" label="5120 x 3840"/>
+ <int value="55" label="5120 x 5120"/>
+ <int value="56" label="5120 x 7680"/>
+ <int value="57" label="7680 x 1024"/>
+ <int value="58" label="7680 x 1280"/>
+ <int value="59" label="7680 x 1440"/>
+ <int value="60" label="7680 x 1920"/>
+ <int value="61" label="7680 x 2560"/>
+ <int value="62" label="7680 x 3840"/>
+ <int value="63" label="7680 x 5120"/>
+ <int value="64" label="7680 x 7680"/>
+ <int value="65" label="Dimension overflow"/>
+</enum>
+
<enum name="DistillableType">
<int value="0" label="Not distillable"/>
<int value="1" label="Non-mobile-friendly distillable"/>
@@ -15674,6 +16080,14 @@ Called by update_net_error_codes.py.-->
<int value="385" label="weba"/>
<int value="386" label="webm"/>
<int value="387" label="xbm"/>
+ <int value="388" label="accdb"/>
+ <int value="389" label="accde"/>
+ <int value="390" label="accdr"/>
+ <int value="391" label="accda"/>
+ <int value="392" label="cer"/>
+ <int value="393" label="der"/>
+ <int value="394" label="fileloc"/>
+ <int value="395" label="webloc"/>
</enum>
<enum name="DownloadItem.DangerType">
@@ -16165,7 +16579,7 @@ Called by update_net_error_codes.py.-->
<int value="10" label="Password entry: Phone locked"/>
<int value="11" label="Password entry: Phone not lockable"/>
<int value="12" label="Password entry: RSSI too low"/>
- <int value="13" label="Password entry: Phone not supported"/>
+ <int value="13" label="(Deprecated) Password entry: Phone not supported"/>
<int value="14" label="Password entry: Phone authenticated"/>
<int value="15" label="Password entry: Tx power too high"/>
<int value="16" label="Password entry: Easy sign-in failed"/>
@@ -16342,8 +16756,8 @@ Called by update_net_error_codes.py.-->
<int value="5" label="SCRIPT_LOADED"/>
<int value="6" label="SCRIPT_EVALUATED (obsolete)"/>
<int value="7" label="THREAD_STARTED"/>
- <int value="8" label="SCRIPT_READ_STARTED"/>
- <int value="9" label="SCRIPT_READ_FINISHED"/>
+ <int value="8" label="SCRIPT_READ_STARTED (obsolete)"/>
+ <int value="9" label="SCRIPT_READ_FINISHED (obsolete)"/>
<int value="10" label="SCRIPT_STREAMING"/>
<int value="11" label="SCRIPT_EVALUATION"/>
</enum>
@@ -18321,7 +18735,7 @@ Called by update_net_error_codes.py.-->
<int value="457" label="OverrideSecurityRestrictionsOnInsecureOrigin"/>
<int value="458" label="DeviceUpdateStagingSchedule"/>
<int value="459" label="AutofillAddressEnabled"/>
- <int value="460" label="TabLifecyclesEnabled"/>
+ <int value="460" label="TabFreezingEnabled"/>
<int value="461" label="UrlKeyedAnonymizedDataCollectionEnabled"/>
<int value="462" label="NetworkFileSharesAllowed"/>
<int value="463" label="DeviceLocalAccountManagedSessionEnabled"/>
@@ -18436,7 +18850,6 @@ Called by update_net_error_codes.py.-->
<int value="575" label="BuiltinCertificateVerifierEnabled"/>
<int value="576" label="CrostiniRootAccessAllowed"/>
<int value="577" label="VmManagementCliAllowed"/>
- <int value="578" label="SafeBrowsingRealTimeLookupEnabled"/>
<int value="579" label="CACertificateManagementAllowed"/>
<int value="580" label="PasswordLeakDetectionEnabled"/>
<int value="581" label="LockScreenMediaPlaybackEnabled"/>
@@ -18448,8 +18861,8 @@ Called by update_net_error_codes.py.-->
<int value="587" label="DelayDeliveryUntilVerdict"/>
<int value="588" label="AllowPasswordProtectedFiles"/>
<int value="589" label="CheckContentCompliance"/>
- <int value="590" label="DomainsToCheckComplianceOfDownloadedContent"/>
- <int value="591" label="DomainsToNotCheckComplianceOfUploadedContent"/>
+ <int value="590" label="URLsToCheckComplianceOfDownloadedContent"/>
+ <int value="591" label="URLsToNotCheckComplianceOfUploadedContent"/>
<int value="592" label="DictationEnabled"/>
<int value="593" label="KeyboardFocusHighlightEnabled"/>
<int value="594" label="CursorHighlightEnabled"/>
@@ -18458,7 +18871,7 @@ Called by update_net_error_codes.py.-->
<int value="597" label="AutoclickEnabled"/>
<int value="598" label="RendererCodeIntegrityEnabled"/>
<int value="599" label="DeviceLoginScreenLargeCursorEnabled"/>
- <int value="600" label="DomainsToCheckForMalwareOfUploadedContent"/>
+ <int value="600" label="URLsToCheckForMalwareOfUploadedContent"/>
<int value="601" label="HSTSPolicyBypassList"/>
<int value="602" label="ReportDeviceOsUpdateStatus"/>
<int value="603" label="DeviceLoginScreenWebUsbAllowDevicesForUrls"/>
@@ -18494,8 +18907,25 @@ Called by update_net_error_codes.py.-->
<int value="633" label="DefaultInsecureContentSetting"/>
<int value="634" label="InsecureContentAllowedForUrls"/>
<int value="635" label="InsecureContentBlockedForUrls"/>
+ <int value="636" label="DeviceWebBasedAttestationAllowedUrls"/>
+ <int value="637" label="BlockExternalExtensions"/>
+ <int value="638" label="DeviceShowNumericKeyboardForPassword"/>
+ <int value="639" label="CrostiniAnsiblePlaybook"/>
<int value="640" label="WebRtcLocalIpsAllowedUrls"/>
+ <int value="641" label="PerAppTimeLimits"/>
+ <int value="642" label="DnsOverHttpsTemplates"/>
+ <int value="643" label="GloballyScopeHTTPAuthCacheEnabled"/>
+ <int value="644" label="WebComponentsV0Enabled"/>
<int value="645" label="ClickToCallEnabled"/>
+ <int value="646" label="DeviceLoginScreenShowOptionsInSystemTrayMenu"/>
+ <int value="647" label="PrinterTypeDenyList"/>
+ <int value="648" label="ForceLegacyDefaultReferrerPolicy"/>
+ <int value="649" label="SyncTypesListDisabled"/>
+ <int value="650" label="AmbientAuthenticationInPrivateModesEnabled"/>
+ <int value="651" label="PaymentMethodQueryEnabled"/>
+ <int value="652" label="StricterMixedContentTreatmentEnabled"/>
+ <int value="653" label="NTPCustomBackgroundEnabled"/>
+ <int value="654" label="DNSInterceptionChecksEnabled"/>
</enum>
<enum name="EnterprisePolicyInvalidations">
@@ -19600,6 +20030,9 @@ Called by update_net_error_codes.py.-->
<int value="442" label="PRINTING_METRICS_ON_PRINT_JOB_FINISHED"/>
<int value="443" label="AUTOTESTPRIVATE_ON_CLIPBOARD_DATA_CHANGED"/>
<int value="444" label="AUTOFILL_PRIVATE_ON_PERSONAL_DATA_CHANGED"/>
+ <int value="445" label="PRINTING_ON_JOB_STATUS_CHANGED"/>
+ <int value="446" label="DECLARATIVE_NET_REQUEST_ON_RULE_MATCHED_DEBUG"/>
+ <int value="447" label="TERMINAL_PRIVATE_ON_SETTINGS_CHANGED"/>
</enum>
<enum name="ExtensionFileWriteResult">
@@ -20983,8 +21416,8 @@ Called by update_net_error_codes.py.-->
<int value="1315" label="PASSWORDSPRIVATE_CHANGESAVEDPASSWORD"/>
<int value="1316" label="AUTOTESTPRIVATE_SETWHITELISTEDPREF"/>
<int value="1317" label="SAFEBROWSINGPRIVATE_GETREFERRERCHAIN"/>
- <int value="1318" label="DECLARATIVENETREQUEST_ADDDYNAMICRULES"/>
- <int value="1319" label="DECLARATIVENETREQUEST_REMOVEDYNAMICRULES"/>
+ <int value="1318" label="DELETED_DECLARATIVENETREQUEST_ADDDYNAMICRULES"/>
+ <int value="1319" label="DELETED_DECLARATIVENETREQUEST_REMOVEDYNAMICRULES"/>
<int value="1320" label="DECLARATIVENETREQUEST_GETDYNAMICRULES"/>
<int value="1321" label="AUTOTESTPRIVATE_GETARCSTATE"/>
<int value="1322" label="AUTOTESTPRIVATE_ISTABLETMODEENABLED"/>
@@ -21027,7 +21460,7 @@ Called by update_net_error_codes.py.-->
<int value="1358" label="ACTION_SETBADGETEXT"/>
<int value="1359" label="ACTION_GETBADGEBACKGROUNDCOLOR"/>
<int value="1360" label="ACTION_SETBADGEBACKGROUNDCOLOR"/>
- <int value="1361" label="AUTOTESTPRIVATE_SETARCAPPWINDOWSTATE"/>
+ <int value="1361" label="DELETED_AUTOTESTPRIVATE_SETARCAPPWINDOWSTATE"/>
<int value="1362" label="ACCESSIBILITY_PRIVATE_OPENSETTINGSSUBPAGE"/>
<int value="1363" label="ACTION_ENABLE"/>
<int value="1364" label="ACTION_DISABLE"/>
@@ -21040,8 +21473,8 @@ Called by update_net_error_codes.py.-->
<int value="1371" label="LOGINSCREENSTORAGE_RETRIEVEPERSISTENTDATA"/>
<int value="1372" label="LOGINSCREENSTORAGE_STORECREDENTIALS"/>
<int value="1373" label="LOGINSCREENSTORAGE_RETRIEVECREDENTIALS"/>
- <int value="1374" label="AUTOTESTPRIVATE_GETARCAPPWINDOWSTATE"/>
- <int value="1375" label="AUTOTESTPRIVATE_GETARCAPPWINDOWINFO"/>
+ <int value="1374" label="DELETED_AUTOTESTPRIVATE_GETARCAPPWINDOWSTATE"/>
+ <int value="1375" label="DELETED_AUTOTESTPRIVATE_GETARCAPPWINDOWINFO"/>
<int value="1376" label="AUTOTESTPRIVATE_GETALLINSTALLEDAPPS"/>
<int value="1377" label="AUTOTESTPRIVATE_SWAPWINDOWSINSPLITVIEW"/>
<int value="1378" label="AUTOTESTPRIVATE_SETARCAPPWINDOWFOCUS"/>
@@ -21060,6 +21493,38 @@ Called by update_net_error_codes.py.-->
<int value="1391" label="AUTOTESTPRIVATE_WAITFORDISPLAYROTATION"/>
<int value="1392" label="AUTOTESTPRIVATE_ARCAPPTRACINGSTART"/>
<int value="1393" label="AUTOTESTPRIVATE_ARCAPPTRACINGSTOPANDANALYZE"/>
+ <int value="1394" label="AUTOTESTPRIVATE_GETAPPWINDOWLIST"/>
+ <int value="1395" label="AUTOTESTPRIVATE_SETAPPWINDOWSTATE"/>
+ <int value="1396" label="AUTOTESTPRIVATE_CLOSEAPPWINDOW"/>
+ <int value="1397" label="AUTOTESTPRIVATE_REFRESHENTERPRISEPOLICIES"/>
+ <int value="1398" label="AUTOTESTPRIVATE_INSTALLPWAFORCURRENTURL"/>
+ <int value="1399" label="AUTOTESTPRIVATE_ACTIVATEACCELERATOR"/>
+ <int value="1400" label="AUTOTESTPRIVATE_WAITFORLAUNCHERSTATE"/>
+ <int value="1401" label="AUTOTESTPRIVATE_CREATENEWDESK"/>
+ <int value="1402" label="AUTOTESTPRIVATE_ACTIVATEDESKATINDEX"/>
+ <int value="1403" label="AUTOTESTPRIVATE_REMOVEACTIVEDESK"/>
+ <int value="1404" label="TERMINALPRIVATE_GETCROSHSETTINGS"/>
+ <int value="1405" label="AUTOTESTPRIVATE_ENABLEASSISTANTANDWAITFORREADY"/>
+ <int value="1406" label="INPUTMETHODPRIVATE_FINISHCOMPOSINGTEXT"/>
+ <int value="1407" label="DECLARATIVENETREQUEST_UPDATEDYNAMICRULES"/>
+ <int value="1408" label="AUTOTESTPRIVATE_MOUSECLICK"/>
+ <int value="1409" label="AUTOTESTPRIVATE_MOUSEPRESS"/>
+ <int value="1410" label="AUTOTESTPRIVATE_MOUSERELEASE"/>
+ <int value="1411" label="AUTOTESTPRIVATE_MOUSEMOVE"/>
+ <int value="1412" label="WEBSTOREPRIVATE_GETEXTENSIONSTATUS"/>
+ <int value="1413" label="INPUTMETHODPRIVATE_SETSELECTIONRANGE"/>
+ <int value="1414" label="VIRTUALKEYBOARDPRIVATE_SETAREATOREMAINONSCREEN"/>
+ <int value="1415" label="TERMINALPRIVATE_GETSETTINGS"/>
+ <int value="1416" label="TERMINALPRIVATE_SETSETTINGS"/>
+ <int value="1417" label="WEBSTOREPRIVATE_REQUESTEXTENSION"/>
+ <int value="1418" label="AUTOTESTPRIVATE_INSTALLPLUGINVM"/>
+ <int value="1419" label="CRASHREPORTPRIVATE_REPORTERROR"/>
+ <int value="1420" label="AUTOTESTPRIVATE_SETMETRICSENABLED"/>
+ <int value="1421" label="ENTERPRISEREPORTINGPRIVATE_GETPERSISTENTSECRET"/>
+ <int value="1422" label="ENTERPRISEREPORTINGPRIVATE_GETDEVICEDATA"/>
+ <int value="1423" label="ENTERPRISEREPORTINGPRIVATE_SETDEVICEDATA"/>
+ <int value="1424" label="ENTERPRISEREPORTINGPRIVATE_GETDEVICEINFO"/>
+ <int value="1425" label="PRINTING_GETPRINTERS"/>
</enum>
<enum name="ExtensionIconState">
@@ -21099,6 +21564,14 @@ Called by update_net_error_codes.py.-->
<int value="24" label="UPDATE_NON_EXISTING_EXTENSION"/>
</enum>
+<enum name="ExtensionInstallationDownloadingCacheStatus">
+ <int value="0" label="UNKNOWN"/>
+ <int value="1" label="DISABLED"/>
+ <int value="2" label="MISS"/>
+ <int value="3" label="OUTDATED"/>
+ <int value="4" label="HIT"/>
+</enum>
+
<enum name="ExtensionInstallationDownloadingStage">
<int value="0" label="PENDING"/>
<int value="1" label="QUEUED_FOR_MANIFEST"/>
@@ -21604,6 +22077,8 @@ Called by update_net_error_codes.py.-->
<int value="221" label="kLoginScreenStorage"/>
<int value="222" label="kLoginState"/>
<int value="223" label="kPrintingMetrics"/>
+ <int value="224" label="kPrinting"/>
+ <int value="225" label="kCrashReportPrivate"/>
</enum>
<enum name="ExtensionServiceVerifyAllSuccess">
@@ -21901,6 +22376,7 @@ Called by update_net_error_codes.py.-->
<int value="1" label="Public topic empty"/>
<int value="2" label="Private topic empty"/>
<int value="3" label="Version empty"/>
+ <int value="4" label="Version invalid"/>
</enum>
<enum name="FCMInvalidationSubscriptionStatus">
@@ -22744,7 +23220,7 @@ Called by update_net_error_codes.py.-->
<int value="738" label="CryptoAlgorithmPbkdf2"/>
<int value="739" label="DocumentSetDomain"/>
<int value="740" label="UpgradeInsecureRequestsEnabled"/>
- <int value="741" label="UpgradeInsecureRequestsUpgradedRequest"/>
+ <int value="741" label="UpgradeInsecureRequestsUpgradedRequest_Obsolete"/>
<int value="742" label="DocumentDesignMode"/>
<int value="743" label="GlobalCacheStorage"/>
<int value="744" label="NetInfo"/>
@@ -24935,7 +25411,7 @@ Called by update_net_error_codes.py.-->
<int value="2837" label="SandboxBackForwardAffectsFramesOutsideSubtree"/>
<int value="2838" label="DownloadPrePolicyCheck"/>
<int value="2839" label="DownloadPostPolicyCheck"/>
- <int value="2840" label="DownloadInSandboxWithoutUserGesture"/>
+ <int value="2840" label="OBSOLETE_DownloadInSandboxWithoutUserGesture"/>
<int value="2841" label="ReadableStreamGetReader"/>
<int value="2842" label="ReadableStreamPipeThrough"/>
<int value="2843" label="ReadableStreamPipeTo"/>
@@ -25153,7 +25629,7 @@ Called by update_net_error_codes.py.-->
<int value="3047" label="PluginElementLoadedImage"/>
<int value="3048" label="PluginElementLoadedExternal"/>
<int value="3049" label="RenderSubtreeAttribute"/>
- <int value="3050" label="ARIAAnnotationRoles"/>
+ <int value="3050" label="ARIAAnnotations"/>
<int value="3051" label="IntersectionObserverV2"/>
<int value="3052" label="HeavyAdIntervention"/>
<int value="3053" label="UserTimingL3"/>
@@ -25167,6 +25643,60 @@ Called by update_net_error_codes.py.-->
<int value="3061" label="DecompressionStreamConstructor"/>
<int value="3062" label="V8RTCRtpReceiver_PlayoutDelayHint_AttributeGetter"/>
<int value="3063" label="V8RTCRtpReceiver_PlayoutDelayHint_AttributeSetter"/>
+ <int value="3064" label="V8RegExpExecCalledOnSlowRegExp"/>
+ <int value="3065" label="V8RegExpReplaceCalledOnSlowRegExp"/>
+ <int value="3066" label="HasMarkerPseudoElement"/>
+ <int value="3067" label="WindowMove"/>
+ <int value="3068" label="WindowResize"/>
+ <int value="3069" label="MovedOrResizedPopup"/>
+ <int value="3070" label="MovedOrResizedPopup2sAfterCreation"/>
+ <int value="3071" label="DOMWindowOpenPositioningFeatures"/>
+ <int value="3072" label="MouseEventScreenX"/>
+ <int value="3073" label="MouseEventScreenY"/>
+ <int value="3074"
+ label="CredentialManagerIsUserVerifyingPlatformAuthenticatorAvailable"/>
+ <int value="3075" label="ObsoleteWebrtcTlsVersion"/>
+ <int value="3076" label="UpgradeInsecureRequestsUpgradedRequestBlockable"/>
+ <int value="3077"
+ label="UpgradeInsecureRequestsUpgradedRequestOptionallyBlockable"/>
+ <int value="3078" label="UpgradeInsecureRequestsUpgradedRequestWebsocket"/>
+ <int value="3079" label="UpgradeInsecureRequestsUpgradedRequestForm"/>
+ <int value="3080" label="UpgradeInsecureRequestsUpgradedRequestUnknown"/>
+ <int value="3081" label="HasGlyphRelativeUnits"/>
+ <int value="3082" label="CountQueuingStrategyConstructor"/>
+ <int value="3083" label="ByteLengthQueuingStrategyConstructor"/>
+ <int value="3084" label="ClassicDedicatedWorker"/>
+ <int value="3085" label="ModuleDedicatedWorker"/>
+ <int value="3086" label="FetchBodyStreamInServiceWorker"/>
+ <int value="3087" label="FetchBodyStreamOutsideServiceWorker"/>
+ <int value="3088" label="GetComputedStyleOutsideFlatTree"/>
+ <int value="3089" label="ARIADescriptionAttribute"/>
+ <int value="3090" label="StrictMimeTypeChecksWouldBlockWorker"/>
+ <int value="3091" label="ResourceTimingTaintedOriginFlagFail"/>
+ <int value="3092" label="RegisterProtocolHandlerSameOriginAsTop"/>
+ <int value="3093" label="RegisterProtocolHandlerCrossOriginSubframe"/>
+ <int value="3094" label="WebNfcNdefReaderScan"/>
+ <int value="3095" label="WebNfcNdefWriterPush"/>
+ <int value="3096" label="HTMLPortalElement"/>
+ <int value="3097" label="V8HTMLPortalElement_Activate_Method"/>
+ <int value="3098" label="V8HTMLPortalElement_PostMessage_Method"/>
+ <int value="3099" label="V8Window_PortalHost_AttributeGetter"/>
+ <int value="3100" label="V8PortalHost_PostMessage_Method"/>
+ <int value="3101" label="V8PortalActivateEvent_Data_AttributeGetter"/>
+ <int value="3102" label="V8PortalActivateEvent_AdoptPredecessor_Method"/>
+ <int value="3103" label="LinkRelPrefetchForSignedExchanges"/>
+ <int value="3104" label="MessageEventSharedArrayBufferSameOrigin"/>
+ <int value="3105" label="MessageEventSharedArrayBufferSameAgentCluster"/>
+ <int value="3106" label="MessageEventSharedArrayBufferDifferentAgentCluster"/>
+ <int value="3107" label="CacheStorageCodeCacheHint"/>
+ <int value="3108" label="V8Metadata_ModificationTime_AttributeGetter"/>
+ <int value="3109" label="V8RTCLegacyStatsReport_Timestamp_AttributeGetter"/>
+ <int value="3110" label="InputElementValueAsDateGetter"/>
+ <int value="3111" label="InputElementValueAsDateSetter"/>
+ <int value="3112" label="HTMLMetaElementReferrerPolicy"/>
+ <int value="3113" label="NonWebbyMixedContent"/>
+ <int value="3114" label="V8SharedArrayBufferConstructed"/>
+ <int value="3115" label="ScrollSnapCausesScrollOnInitialLayout"/>
</enum>
<enum name="FeaturePolicyAllowlistType">
@@ -25235,7 +25765,7 @@ Called by update_net_error_codes.py.-->
<int value="46" label="UnoptimizedLosslessImages"/>
<int value="47" label="UnoptimizedLosslessImagesStrict"/>
<int value="48" label="LoadingFrameDefaultEager"/>
- <int value="49" label="DownloadsWithoutUserActivation"/>
+ <int value="49" label="Downloads"/>
<int value="50" label="ExecutionWhileOutOfViewport"/>
<int value="51" label="ExecutionWhileNotRendered"/>
<int value="52" label="FocusWithoutUserActivation"/>
@@ -25253,6 +25783,7 @@ Called by update_net_error_codes.py.-->
<int value="64" label="ClientHintWidth"/>
<int value="65" label="DocumentAccess"/>
<int value="66" label="WebXr"/>
+ <int value="67" label="PublicKeyCredentials"/>
</enum>
<enum name="FeaturePolicyImageCompressionFormat">
@@ -25288,7 +25819,7 @@ Called by update_net_error_codes.py.-->
</enum>
<!-- Keep elements in sync with components/feed/core/feed_logging_metrics.cc and
- third_party/feed/src/src/main/java/com/google/android/libraries/feed/api/host/logging/InternalFeedError.java
+ third_party/feed_library/src/src/main/java/com/google/android/libraries/feed/api/host/logging/InternalFeedError.java
-->
<enum name="FeedInternalError">
@@ -26320,6 +26851,7 @@ Called by update_net_error_codes.py.-->
<int value="20" label="COMPUTER"/>
<int value="21" label="EXTERNAL_MEDIA"/>
<int value="22" label="DOCUMENTS_PROVIDER"/>
+ <int value="23" label="SMB"/>
</enum>
<enum name="FileManagerTaskType">
@@ -26343,6 +26875,7 @@ Called by update_net_error_codes.py.-->
<int value="7" label="Crostini Linux Files"/>
<int value="8" label="Android Files"/>
<int value="9" label="Android Documents Provider"/>
+ <int value="10" label="SMB File Share"/>
</enum>
<enum name="FileManagerZipHandlerType">
@@ -26504,6 +27037,27 @@ Called by update_net_error_codes.py.-->
<int value="2" label="Not found"/>
</enum>
+<enum name="FingerprintRecordFormatVersion">
+ <int value="0" label="None"/>
+ <int value="1" label="Record format version without validation value"/>
+ <int value="2" label="Record format version with validation value"/>
+</enum>
+
+<enum name="FingerprintSensorMode">
+ <int value="0" label="None"/>
+ <int value="1" label="Deepsleep"/>
+ <int value="2" label="FingerDown"/>
+ <int value="3" label="FingerUp"/>
+ <int value="4" label="Capture"/>
+ <int value="5" label="EnrollSession"/>
+ <int value="6" label="EnrollSessionFingerUp"/>
+ <int value="7" label="EnrollSessionEnrollImage"/>
+ <int value="8" label="EnrollImage"/>
+ <int value="9" label="Match"/>
+ <int value="10" label="ResetSensor"/>
+ <int value="11" label="DontChange"/>
+</enum>
+
<enum name="FingerprintUpdaterReason">
<int value="0" label="None"/>
<int value="1" label="Mismatched RW Version"/>
@@ -26652,6 +27206,11 @@ Called by update_net_error_codes.py.-->
<int value="4" label="optional"/>
</enum>
+<enum name="FontLoadContext">
+ <int value="0" label="Top-level"/>
+ <int value="1" label="Sub-frame"/>
+</enum>
+
<enum name="FontScanningResult">
<int value="0" label="Success"/>
<int value="1" label="FT_New_Face from file failed"/>
@@ -26660,6 +27219,30 @@ Called by update_net_error_codes.py.-->
<int value="4" label="Name string is invalid unicode"/>
</enum>
+<enum name="ForbiddenResponseBody">
+ <int value="0" label="Body missing"/>
+ <int value="1" label="Unknown body"/>
+ <int value="2" label="Sender not authenticated"/>
+ <int value="3" label="Invalid public key encoding"/>
+ <int value="4" label="Invalid public key length"/>
+ <int value="5" label="Invalid public key format"/>
+ <int value="6" label="Invalid public key curve"/>
+ <int value="7" label="Invalid JWT"/>
+ <int value="8" label="Invalid aud claim"/>
+ <int value="9" label="Aud claim missing origin"/>
+ <int value="10" label="Exp cliam period too long"/>
+ <int value="11" label="Exp cliam expired"/>
+ <int value="12" label="Exp claim missing"/>
+ <int value="13" label="P256 ECDSA missing"/>
+ <int value="14" label="K missing"/>
+ <int value="15" label="Base64 P256 ECDSA"/>
+ <int value="16" label="Base64 K"/>
+ <int value="17" label="Empty P256 ECDSA"/>
+ <int value="18" label="Empty K"/>
+ <int value="19" label="Invalid P256 ECDSA"/>
+ <int value="20" label="Invalid K"/>
+</enum>
+
<enum name="FormDataDeserializationStatus">
<int value="0" label="Login database success"/>
<int value="1" label="Login database failure"/>
@@ -26802,6 +27385,13 @@ Called by update_net_error_codes.py.-->
<int value="7" label="Allowed navigation, user gesture, ad frame"/>
</enum>
+<enum name="FramePrioritiesSeen">
+ <int value="0" label="No frames seen."/>
+ <int value="1" label="Low and normal priority frames seen."/>
+ <int value="2" label="Only low priority frames seen."/>
+ <int value="3" label="Only normal priority frames seen."/>
+</enum>
+
<enum name="FrameSiteInstanceProcessRelationship">
<summary>
Used to describe the relationship between frames hosted in a process,
@@ -29101,6 +29691,13 @@ Called by update_net_error_codes.py.-->
<int value="9" label="kGLImplementationEGLANGLE"/>
</enum>
+<enum name="GlobalMediaControlsDismissReason">
+ <int value="0" label="User dismissed notification"/>
+ <int value="1" label="Inactive timeout"/>
+ <int value="2" label="Tab closed"/>
+ <int value="3" label="Media session stopped"/>
+</enum>
+
<enum name="GoogleCaptchaEvent">
<int value="0" label="Google CAPTCHA shown"/>
<int value="1" label="Google CAPTCHA solved"/>
@@ -30177,6 +30774,15 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="2" label="Watchdog End"/>
</enum>
+<enum name="GpuWatchdogTimeoutEvent">
+ <int value="0" label="Timeout"/>
+ <int value="1" label="Kill"/>
+ <int value="2" label="MoreThreadTime"/>
+ <int value="3" label="ProgressAfterMoreThreadTime"/>
+ <int value="4" label="TimeoutWait"/>
+ <int value="5" label="ProgressAfterWait"/>
+</enum>
+
<enum name="GPUWebGraphicsContext3D_Init_CanLoseContext">
<summary>
Combinations of context loss variables from
@@ -30290,6 +30896,19 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="2" label="Dismissed"/>
</enum>
+<enum name="HappinessTrackingSurveyShouldShowSurveyReasons">
+ <int value="0" label="Shown"/>
+ <int value="1" label="Offline"/>
+ <int value="2" label="Last session crashed"/>
+ <int value="3" label="Received survey in current milestone"/>
+ <int value="4" label="Profile too new"/>
+ <int value="5" label="Last survey too recent"/>
+ <int value="6" label="Below probability limit"/>
+ <int value="7" label="Trigger string mismatch"/>
+ <int value="8" label="Not regular browser"/>
+ <int value="9" label="Incognito mode disabled"/>
+</enum>
+
<enum name="HeapProfilingMode">
<int value="0" label="None"/>
<int value="1" label="Minimal"/>
@@ -30645,6 +31264,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="2" label="Ext4 Dir Encryption"/>
</enum>
+<enum name="HotseatInAppGesture">
+ <int value="0" label="Swipe up the hotseat"/>
+ <int value="1" label="Swipe down the hotseat"/>
+ <int value="2" label="Fling up the hotseat"/>
+</enum>
+
<enum name="HotwordAvailability">
<int value="0" label="Unavailable -- reason may be unknown"/>
<int value="1" label="Available"/>
@@ -30717,16 +31342,26 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-2147219455" label="GOOPDATE_E_NO_NETWORK"/>
<int value="-2147219437" label="GOOPDATE_E_APP_UPDATE_DISABLED_BY_POLICY"/>
<int value="-2147219198" label="GOOPDATEINSTALL_E_INSTALLER_FAILED"/>
+ <int value="-2147168255" label="ITF_E_FONTFILE_UTIL_TOO_MANY_FILES_PER_FACE"/>
+ <int value="-2147168254" label="ITF_E_FONTFILE_UTIL_EMPTY_FILE_PATH"/>
+ <int value="-2147167999" label="ITF_E_SCANNING_TIMEOUT"/>
+ <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="-2147024894" label="ERROR_FILE_NOT_FOUND"/>
<int value="-2147024893" label="ERROR_PATH_NOT_FOUND"/>
<int value="-2147024891" label="E_ACCESSDENIED"/>
<int value="-2147024890" label="E_HANDLE"/>
<int value="-2147024882" label="E_OUTOFMEMORY"/>
<int value="-2147024809" label="E_INVALIDARG"/>
+ <int value="-2147024726" label="ERROR_BUSY"/>
+ <int value="-2147024713" label="ERROR_ALREADY_EXISTS"/>
<int value="-2147024703" label="ERROR_BAD_EXE_FORMAT"/>
<int value="-2147024110" label="ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY"/>
<int value="-2147023838" label="ERROR_SERVICE_DISABLED"/>
+ <int value="-2147023728" label="ERROR_NOT_FOUND"/>
<int value="-2147023673" label="ERROR_CANCELLED"/>
+ <int value="-2147023605" label="ERROR_DRIVER_PROCESS_TERMINATED"/>
<int value="-2147023504" label="ERROR_FILE_CORRUPT"/>
<int value="-2147023436" label="ERROR_TIMEOUT"/>
<int value="-2147023179" label="RPC_S_UNKNOWN_IF"/>
@@ -30785,8 +31420,24 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-2004287464" label="AUDCLNT_E_BUFFER_ERROR"/>
<int value="-2004287463" label="AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED"/>
<int value="-2004287456" label="AUDCLNT_E_INVALID_DEVICE_PERIOD"/>
+ <int value="-2003283968" label="DWRITE_E_FILEFORMAT"/>
+ <int value="-2003283967" label="DWRITE_E_UNEXPECTED"/>
+ <int value="-2003283966" label="DWRITE_E_NOFONT"/>
+ <int value="-2003283965" label="DWRITE_E_FILENOTFOUND"/>
+ <int value="-2003283964" label="DWRITE_E_FILEACCESS"/>
+ <int value="-2003283963" label="DWRITE_E_FONTCOLLECTIONOBSOLETE"/>
+ <int value="-2003283962" label="DWRITE_E_ALREADYREGISTERED"/>
+ <int value="-2003283961" label="DWRITE_E_CACHEFORMAT"/>
+ <int value="-2003283960" label="DWRITE_E_CACHEVERSION"/>
+ <int value="-2003283959" label="DWRITE_E_UNSUPPORTEDOPERATION"/>
+ <int value="-2003283958" label="DWRITE_E_TEXTRENDERERINCOMPATIBLE"/>
+ <int value="-2003283957" label="DWRITE_E_FLOWDIRECTIONCONFLICTS"/>
+ <int value="-2003283956" label="DWRITE_E_NOCOLOR"/>
<int value="-1606219753" label="GOOPDATE_E_NON_BLOCKING_CALL_PENDING"/>
<int value="-1606219747" label="GOOPDATE_E_APP_USING_EXTERNAL_UPDATER"/>
+ <int value="-805306212" label="STATUS_DEVICE_DATA_ERROR"/>
+ <int value="-805305979" label="STATUS_IO_DEVICE_ERROR"/>
+ <int value="0" label="S_OK"/>
<int value="143196161" label="AUDCLNT_S_BUFFER_EMPTY"/>
<int value="143196162" label="AUDCLNT_S_THREAD_ALREADY_REGISTERED"/>
<int value="143196163" label="AUDCLNT_S_POSITION_STALLED"/>
@@ -31499,6 +32150,25 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
</int>
</enum>
+<enum name="ImeHandwritingActions">
+ <int value="0" label="InsertCreatedByUnknown"/>
+ <int value="1" label="InsertCreatedAfterDelete"/>
+ <int value="2" label="InsertCreatedByTouchTap"/>
+ <int value="3" label="InsertCreatedByPenTap"/>
+ <int value="4" label="InsertCreatedByUpCaret"/>
+ <int value="5" label="InsertCreatedByDownCaret"/>
+ <int value="6" label="EmptyInsertRangeClosed"/>
+ <int value="7" label="InsertRangeWithTextClosed"/>
+ <int value="8" label="DeletedSingleWord"/>
+ <int value="9" label="UndoInsertCreatedByUnknown"/>
+ <int value="10" label="UndoInsertCreatedAfterDelete"/>
+ <int value="11" label="UndoInsertCreatedByTouchTap"/>
+ <int value="12" label="UndoInsertCreatedByPenTap"/>
+ <int value="13" label="UndoInsertCreatedByUpCaret"/>
+ <int value="14" label="UndoInsertCreatedByDownCaret"/>
+ <int value="15" label="UndoDeletedSingleWord"/>
+</enum>
+
<enum name="ImeMenuButtonType">
<int value="0" label="Unknown"/>
<int value="1" label="Emoji"/>
@@ -31533,6 +32203,11 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="6" label="Emoji"/>
</enum>
+<enum name="IMEVKMode">
+ <int value="0" label="FULL_WIDTH_MODE"/>
+ <int value="1" label="FLOATING_MODE"/>
+</enum>
+
<enum name="ImportantSitesReason">
<int value="0" label="Engagement"/>
<int value="1" label="Durable"/>
@@ -32417,12 +33092,17 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
</enum>
<enum name="InsecureDownloadSecurityStatus">
- <int value="0" label="kInitiatorUnknownFileSecure"/>
- <int value="1" label="kInitiatorUnknownFileInsecure"/>
- <int value="2" label="kInitiatorSecureFileSecure"/>
- <int value="3" label="kInitiatorSecureFileInsecure"/>
- <int value="4" label="kInitiatorInsecureFileSecure"/>
- <int value="5" label="kInitiatorInsecureFileInsecure"/>
+ <int value="0" label="Secure download initiated by unknown source"/>
+ <int value="1" label="Insecure download initiated by unknown source"/>
+ <int value="2" label="Secure download initiated by secure source"/>
+ <int value="3" label="Insecure download initiated by secure source"/>
+ <int value="4" label="Secure download initiated by insecure source"/>
+ <int value="5" label="Insecure download initiated by insecure source"/>
+ <int value="6" label="Secure download initiated by inferred-secure source"/>
+ <int value="7" label="Insecure download initiated by inferred-secure source"/>
+ <int value="8" label="Secure download initiated by inferred-insecure source"/>
+ <int value="9"
+ label="Insecure download initiated by inferred-insecure source"/>
</enum>
<enum name="InsignificantPlaybackReason">
@@ -32875,6 +33555,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="5" label="Invalid GUID"/>
</enum>
+<enum name="InvalidDevicePolicyFilesStatus">
+ <int value="0" label="All valid"/>
+ <int value="1" label="Some invalid"/>
+ <int value="2" label="All invalid"/>
+</enum>
+
<enum name="InvalidOriginReason">
<int value="0" label="Opaque Origin"/>
<int value="1" label="Empty URL"/>
@@ -33153,6 +33839,16 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="4" label="Requested and granted automatically"/>
</enum>
+<enum name="IppVersion">
+ <int value="0" label="Error">Failed to parse version</int>
+ <int value="1" label="Unknown">Version value not recognized</int>
+ <int value="2" label="IPP 1.0">IPP 1.0</int>
+ <int value="3" label="IPP 1.1">IPP 1.1</int>
+ <int value="4" label="IPP 2.0">IPP 2.0</int>
+ <int value="5" label="IPP 2.1">IPP 2.1</int>
+ <int value="6" label="IPP 2.2">IPP 2.2</int>
+</enum>
+
<enum name="IPv6ConnectivityStatus">
<int value="0" label="Incomplete IPv6 Configuration"/>
<int value="1" label="Complete IPv6 Configuration"/>
@@ -33662,6 +34358,14 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
exceeds 256kb"/>
</enum>
+<enum name="KeepaliveRequestResult">
+ <int value="0" label="OK"/>
+ <int value="1" label="Mojo connection is lost before response arrival"/>
+ <int value="2" label="Mojo connection is lost after response arrival"/>
+ <int value="3" label="Error before response arrival"/>
+ <int value="4" label="Error after response arrival"/>
+</enum>
+
<enum name="KerberosConfigErrorCode">
<int value="0" label="Valid"/>
<int value="1" label="Section nested in group"/>
@@ -35189,6 +35893,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="0" label="Success"/>
<int value="1" label="No response"/>
<int value="2" label="Failed to lock"/>
+ <int value="3" label="Unexpected lock state"/>
</enum>
<enum name="LoginConsumerWhitelist">
@@ -35196,6 +35901,16 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="1" label="ONLY_WHITELISTED_ALLOWED">Whitelisted users only</int>
</enum>
+<!--
+Values in LoginCustomFlags are: value=(uint32_t)MD5(label).
+
+See "Flag Histograms" in README.md for information about how to update this
+section.
+
+Don't remove entries when removing a flag; they are still used to decode data
+from previous Chrome versions.
+-->
+
<enum name="LoginCustomFlags">
<int value="-2146979021" label="OmniboxMaxURLMatches:enabled"/>
<int value="-2146832142" label="SyncPseudoUSSSearchEngines:enabled"/>
@@ -35238,15 +35953,18 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-2117621241" label="ExperimentalProductivityFeatures:enabled"/>
<int value="-2117201726" label="disable-gpu-rasterization"/>
<int value="-2117169027" label="UpdateHoverAtBeginFrame:enabled"/>
+ <int value="-2117048251" label="MediaApp:enabled"/>
<int value="-2114831248" label="disable-new-ntp"/>
<int value="-2113783491" label="ArcFilePickerExperiment:enabled"/>
<int value="-2113705745"
label="CrossOriginMediaPlaybackRequiresUserGesture:enabled"/>
<int value="-2112547309" label="ClickToCallReceiver:enabled"/>
+ <int value="-2111196530" label="EnableAssistantLauncherUI:disabled"/>
<int value="-2108564200" label="AutofillUpstream:disabled"/>
<int value="-2106960993" label="HarfBuzzPDFSubsetter:disabled"/>
<int value="-2105133782" label="GesturePropertiesDBusService:enabled"/>
<int value="-2104950596" label="HandwritingGesture:enabled"/>
+ <int value="-2104654357" label="GamesHub:enabled"/>
<int value="-2101682955" label="EnableNotificationIndicator:enabled"/>
<int value="-2101337189" label="AutofillOffNoServerData:disabled"/>
<int value="-2099457894" label="Mash:enabled"/>
@@ -35255,6 +35973,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-2098243118" label="OmniboxTailSuggestions:disabled"/>
<int value="-2097895488" label="NotificationScrollBar:enabled"/>
<int value="-2097515669" label="disable-cast"/>
+ <int value="-2095519429" label="FtpProtocol:enabled"/>
<int value="-2092067251" label="NativeFilesystemAPI:disabled"/>
<int value="-2091404586" label="TabStripKeyboardFocus:enabled"/>
<int value="-2090484194" label="ContextualSearchUrlActions:disabled"/>
@@ -35354,6 +36073,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1972312724" label="OfflinePagesLoadSignalCollecting:enabled"/>
<int value="-1972219399" label="NTPSaveToOffline:enabled"/>
<int value="-1971086581" label="print-scaling"/>
+ <int value="-1967387994" label="ArcEnableApplicationZoomFeature:disabled"/>
<int value="-1965587041" label="omnibox-tab-switch-suggestions"/>
<int value="-1964261747" label="WebVrVsyncAlign:disabled"/>
<int value="-1963838301"
@@ -35366,6 +36086,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1961648833" label="show_summary"/>
<int value="-1961497025" label="tint-gl-composited-content"/>
<int value="-1961062505" label="VrBrowsingInCustomTab:disabled"/>
+ <int value="-1960766118" label="CrossOriginIsolation:disabled"/>
<int value="-1960567385" label="KeepPrefetchedContentSuggestions:enabled"/>
<int value="-1959563554" label="ChromeOSAccountManager:enabled"/>
<int value="-1958315092" label="EnableGamepadButtonAxisEvents:disabled"/>
@@ -35385,6 +36106,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1943507605" label="enable-new-video-renderer"/>
<int value="-1943313820" label="SystemKeyboardLock:disabled"/>
<int value="-1942730618" label="WebAuthenticationTouchId:disabled"/>
+ <int value="-1942518189" label="HeavyAdIntervention:disabled"/>
<int value="-1942419166" label="SyncPseudoUSSApps:disabled"/>
<int value="-1942057472" label="ExperimentalAccessibilityLabels:enabled"/>
<int value="-1941852572" label="floating-virtual-keyboard"/>
@@ -35407,10 +36129,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1927080237" label="Vulkan:enabled"/>
<int value="-1925117279" label="disable-quic-https"/>
<int value="-1925106340" label="CameraSystemWebApp:disabled"/>
+ <int value="-1921593903" label="ImeInputLogicHmm:disabled"/>
<int value="-1919199528"
label="AlwaysShowServerCardsInSyncTransport:disabled"/>
<int value="-1916060206" label="enable-display-zoom-setting"/>
<int value="-1915854488" label="enable-offline-pages"/>
+ <int value="-1914798479" label="CryptAuthV1DeviceSyncDeprecate:disabled"/>
<int value="-1913801713"
label="UploadCrashReportsUsingJobScheduler:disabled"/>
<int value="-1912999136" label="enable-automatic-password-saving:enabled"/>
@@ -35494,6 +36218,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1836854634" label="CloseTabSuggestions:enabled"/>
<int value="-1835975804" label="disable-offline-auto-reload"/>
<int value="-1835608319" label="EnableHeuristicPalmDetectionFilter:disabled"/>
+ <int value="-1834841895" label="CrostiniWebUIUpgrader:enabled"/>
<int value="-1834536026" label="AppServiceIntentHandling:enabled"/>
<int value="-1833149810" label="enable-accessibility-tab-switcher"/>
<int value="-1832575380" label="show-saved-copy"/>
@@ -35502,6 +36227,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1826649921" label="ContextualSuggestionsButton:disabled"/>
<int value="-1826309726" label="ArcCustomTabsExperiment:disabled"/>
<int value="-1823193038" label="QuietNotificationPrompts:disabled"/>
+ <int value="-1822825246" label="DragFromShelfToHomeOrOverview:enabled"/>
<int value="-1821058653" label="enable-delay-agnostic-aec"/>
<int value="-1818947212" label="OutOfBlinkCors:disabled"/>
<int value="-1817209284" label="PayWithGoogleV1:enabled"/>
@@ -35535,8 +36261,8 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1768672408" label="ChromeDuplex:disabled"/>
<int value="-1768308156" label="OmniboxDedupeGoogleDriveURLs:enabled"/>
<int value="-1767470652" label="out-of-process-pdf"/>
- <int value="-1766791501" label="WebUITabStrip:enabled"/>
<int value="-1766648764" label="OmniboxShortBookmarkSuggestions:disabled"/>
+ <int value="-1766162197" label="AppServiceInstanceRegistry:enabled"/>
<int value="-1766129470" label="DataSaverLiteModeRebranding:disabled"/>
<int value="-1760624380"
label="ImprovedCookieControlsForThirdPartyCookieBlocking:enabled"/>
@@ -35559,6 +36285,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1732561795" label="ConsistentOmniboxGeolocation:enabled"/>
<int value="-1731149013" label="AndroidMessagesIntegration:enabled"/>
<int value="-1729926412" label="enable-webusb-notifications"/>
+ <int value="-1729808721" label="SubresourceRedirect:enabled"/>
<int value="-1727530898" label="LookalikeUrlNavigationSuggestionsUI:enabled"/>
<int value="-1727173228" label="OmniboxZeroSuggestionsOnNTP:enabled"/>
<int value="-1725507605" label="enable-web-midi"/>
@@ -35633,6 +36360,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
label="AutofillUpstreamEditableCardholderName:disabled"/>
<int value="-1624854957" label="enable-es3-apis"/>
<int value="-1624593106" label="NewTabPageBackgrounds:enabled"/>
+ <int value="-1621963267" label="EnableAssistantLauncherUI:enabled"/>
<int value="-1620804800" label="NoScriptPreviews:disabled"/>
<int value="-1620568042" label="FeaturePolicy:disabled"/>
<int value="-1619757314" label="touch-scrolling-mode"/>
@@ -35701,6 +36429,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
label="ContextualSuggestionsAlternateCardLayout:disabled"/>
<int value="-1536293422" label="SharedArrayBuffer:enabled"/>
<int value="-1536242739" label="security-chip"/>
+ <int value="-1535946978" label="MixBrowserTypeTabs:disabled"/>
<int value="-1535758690" label="AutoplayIgnoreWebAudio:disabled"/>
<int value="-1533258008" label="CalculateNativeWinOcclusion:enabled"/>
<int value="-1532035450" label="DragTabsInTabletMode:disabled"/>
@@ -35716,7 +36445,6 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1514611301" label="enable-data-reduction-proxy-bypass-warnings"/>
<int value="-1512656386" label="disable-new-audio-rendering-mixing-strategy"/>
<int value="-1510839574" label="disable-sync-synced-notifications"/>
- <int value="-1509001043" label="CrossOriginEmbedderPolicy:enabled"/>
<int value="-1508852757" label="CreditCardAutofillTouchBar:disabled"/>
<int value="-1506880454"
label="SupervisedUserCommittedInterstitials:disabled"/>
@@ -35738,6 +36466,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1482730792" label="stop-in-background:enabled"/>
<int value="-1482685863" label="enable-request-tablet-site"/>
<int value="-1481990501" label="Windows10CustomTitlebar:disabled"/>
+ <int value="-1481918315" label="SmsReceiverCrossDevice:enabled"/>
<int value="-1480926949" label="MaterialDesignBookmarks:enabled"/>
<int value="-1480866718" label="ash-disable-login-dim-and-blur"/>
<int value="-1478876902" label="disable-permission-action-reporting"/>
@@ -35845,6 +36574,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1375111024" label="enable-fixed-position-compositing"/>
<int value="-1373942769" label="WebAuthenticationCtap2:disabled"/>
<int value="-1373705581" label="ManualSaving:enabled"/>
+ <int value="-1371984027" label="CrostiniWebUIUpgrader:disabled"/>
<int value="-1371239786" label="EnablePasswordsAccountStorage:enabled"/>
<int value="-1370532920" label="AppServiceAsh:enabled"/>
<int value="-1368499577" label="OnTheFlyMhtmlHashComputation:enabled"/>
@@ -35879,6 +36609,7 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1336110789" label="CastMediaRouteProvider:disabled"/>
<int value="-1335017208" label="KeyboardLockAPI:enabled"/>
<int value="-1334327410" label="ash-enable-touch-view-testing"/>
+ <int value="-1333946113" label="ContentIndexingDownloadHome:disabled"/>
<int value="-1332267458" label="RemoveNavigationHistory:enabled"/>
<int value="-1331831950" label="site-isolation-for-password-sites:enabled"/>
<int value="-1327676774" label="disable-accelerated-mjpeg-decode"/>
@@ -35927,12 +36658,14 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1274502866" label="AllowDisableMouseAcceleration:enabled"/>
<int value="-1272593346" label="NewTabLoadingAnimation:disabled"/>
<int value="-1271563519" label="enable-appcontainer"/>
+ <int value="-1271441871" label="AmbientColor:enabled"/>
<int value="-1269962982" label="SyncUSSPasswords:disabled"/>
<int value="-1269093329" label="AndroidOmniboxPreviewsBadge:disabled"/>
<int value="-1269084216" label="ash-md"/>
<int value="-1268836676" label="disable-out-of-process-pdf"/>
<int value="-1267958145" label="disable-pdf-material-ui"/>
<int value="-1262730949" label="EnableDspHotword:enabled"/>
+ <int value="-1262303946" label="SubresourceRedirectPreviews:disabled"/>
<int value="-1262152606" label="disable-lock-screen-apps"/>
<int value="-1261972671" label="OmniboxDocumentProvider:disabled"/>
<int value="-1261263046"
@@ -35949,14 +36682,18 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1252976780" label="ShillSandboxing:disabled"/>
<int value="-1252706530" label="AutoFetchOnNetErrorPage:disabled"/>
<int value="-1251411236" label="disable-new-md-input-view"/>
+ <int value="-1251359563" label="SharingRenameDevices:disabled"/>
<int value="-1250611337" label="ChromeVoxArcSupport:disabled"/>
<int value="-1248478422" label="enable-zip-archiver-packer"/>
+ <int value="-1247631459" label="TerminalSystemAppSplits:disabled"/>
<int value="-1246840031" label="OptInImeMenu:disabled"/>
+ <int value="-1244772303" label="NtpRealboxMatchOmniboxTheme:enabled"/>
<int value="-1243694853" label="DeferAllScript:disabled"/>
<int value="-1241868814" label="WebAuthenticationPhoneSupport:disabled"/>
<int value="-1241747717" label="enable-android-password-link"/>
<int value="-1241002324" label="FocusMode:enabled"/>
<int value="-1239262870" label="TextFragmentAnchor:enabled"/>
+ <int value="-1238992816" label="ShelfDimming:enabled"/>
<int value="-1237921078" label="SyncUSSNigori:enabled"/>
<int value="-1237621246" label="WebXRGamepadSupport:disabled"/>
<int value="-1236065190" label="HardwareMediaKeyHandling:disabled"/>
@@ -36004,9 +36741,12 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1197035323" label="ZeroSuggestRedirectToChrome:disabled"/>
<int value="-1195194959" label="XGEOVisibleNetworks:disabled"/>
<int value="-1190174011" label="enable-hdr"/>
+ <int value="-1185477291" label="ImeDecoderWithSandbox:enabled"/>
<int value="-1184904651" label="enable-npapi"/>
<int value="-1184480269" label="LsdPermissionPrompt:enabled"/>
+ <int value="-1183321008" label="ImeDecoderWithSandbox:disabled"/>
<int value="-1183009666" label="OfflinePagesLimitlessPrefetching:disabled"/>
+ <int value="-1178350793" label="RemoteCopyReceiver:disabled"/>
<int value="-1177802205" label="enable-hosted-app-quit-notification"/>
<int value="-1176748003"
label="FramebustingNeedsSameOriginOrUserGesture:disabled"/>
@@ -36015,6 +36755,8 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="-1173361620" label="CCTModulePostMessage:disabled"/>
<int value="-1172572865" label="NTPShowGoogleGInOmnibox:enabled"/>
<int value="-1172204005" label="enable-offline-auto-reload-visible-only"/>
+ <int value="-1168910727"
+ label="enable-experimental-accessibility-language-detection-dynamic"/>
<int value="-1167992523" label="DesktopPWAsCustomTabUI:disabled"/>
<int value="-1166745977"
label="BluetoothAggressiveAppearanceFilter:disabled"/>
@@ -36073,18 +36815,6 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
label="SupervisedUserCommittedInterstitials:enabled"/>
<int value="-1096595907" label="disable-new-virtual-keyboard-behavior"/>
<int value="-1095947169" label="ModalPermissionDialogView:disabled"/>
- <int value="-1093104008" label="PeriodicBackgroundSync:disabled"/>
- <summary>Chrome flags that lead to Chrome restart on Chrome OS.</summary>
-<!--
-Values in LoginCustomFlags are: value=(uint32_t)MD5(label).
-
-See "Flag Histograms" in README.md for information about how to update this
-section.
-
-Don't remove entries when removing a flag; they are still used to decode data
-from previous Chrome versions.
--->
-
<int value="-1088804127" label="DuetTabStripIntegrationAndroid:disabled"/>
<int value="-1086728979" label="kids-management-url-classification:enabled"/>
<int value="-1085492638" label="FetchKeepaliveTimeoutSetting:enabled"/>
@@ -36119,6 +36849,8 @@ from previous Chrome versions.
<int value="-1046627610" label="password-import:enabled"/>
<int value="-1045900007" label="NoCreditCardAbort:disabled"/>
<int value="-1045882995" label="UseNewDoodleApi:enabled"/>
+ <int value="-1044244605"
+ label="UpdateNotificationSchedulingIntegration:enabled"/>
<int value="-1042579955" label="ChromeOSParentalControlsSettings:enabled"/>
<int value="-1041650038" label="enable-forced-migration-to-tabbed-mode"/>
<int value="-1040000888" label="ContextMenuSearchWithGoogleLens:disabled"/>
@@ -36127,6 +36859,7 @@ from previous Chrome versions.
<int value="-1037128156" label="HomeLauncherGestures:disabled"/>
<int value="-1034344165" label="V8NoTurbo:disabled"/>
<int value="-1033738911" label="enable-mac-views-dialogs"/>
+ <int value="-1032884201" label="HeavyAdPrivacyMitigations:enabled"/>
<int value="-1031350684" label="PdfIsolation:disabled"/>
<int value="-1029920490" label="IdleTimeSpellChecking:enabled"/>
<int value="-1028733699" label="MacViewsWebUIDialogs:disabled"/>
@@ -36140,6 +36873,7 @@ from previous Chrome versions.
<int value="-1019967332" label="VrBrowsing:enabled"/>
<int value="-1019492310"
label="OmniboxUIExperimentJogTextfieldOnPopup:enabled"/>
+ <int value="-1018454657" label="SharingPeerConnectionReceiver:enabled"/>
<int value="-1016669222" label="CloudPrinterHandler:enabled"/>
<int value="-1016202433" label="disable-add-to-shelf"/>
<int value="-1015006759" label="ImportantSitesInCBD:disabled"/>
@@ -36149,6 +36883,7 @@ from previous Chrome versions.
<int value="-1010588306" label="SlideTopChromeWithPageScrolls:disabled"/>
<int value="-1008511612" label="EnableCustomMacPaperSizes:disabled"/>
<int value="-1001837588" label="EnableAppReinstallZeroState:enabled"/>
+ <int value="-1000671573" label="TemporaryUnexpireFlagsM80:enabled"/>
<int value="-998731974" label="WinUseBrowserSpellChecker:enabled"/>
<int value="-998255750" label="ExperimentalKeyboardLockUI:enabled"/>
<int value="-996673716" label="enable-web-app-frame"/>
@@ -36159,12 +36894,14 @@ from previous Chrome versions.
<int value="-992785453" label="ExplicitLanguageAsk:disabled"/>
<int value="-991253797"
label="OmniboxSpeculativeServiceWorkerStartOnQueryInput:disabled"/>
+ <int value="-990374250" label="CrossOriginIsolation:enabled"/>
<int value="-990187062" label="SendTabToSelfShowSendingUI:enabled"/>
<int value="-989671895" label="OfflineIndicatorAlwaysHttpProbe:enabled"/>
<int value="-987470173" label="ClickToCallOpenDialerDirectly:disabled"/>
<int value="-984052166" label="DoodlesOnLocalNtp:enabled"/>
<int value="-983342281" label="TabSwitcherLongpressMenu:disabled"/>
<int value="-981237342" label="SyncUSSAutofillWalletMetadata:disabled"/>
+ <int value="-980889204" label="SharingRenameDevices:enabled"/>
<int value="-980317085" label="EnablePasswordsAccountStorage:disabled"/>
<int value="-980260493" label="NTPSnippets:disabled"/>
<int value="-979313250" label="enable-google-branded-context-menu"/>
@@ -36257,7 +36994,6 @@ from previous Chrome versions.
label="OmniboxEnableClipboardProviderTextSuggestions:enabled"/>
<int value="-874602599" label="HorizontalTabSwitcherAndroid:enabled"/>
<int value="-872764392" label="ContextualSuggestionsBottomSheet:disabled"/>
- <int value="-872302695" label="PeriodicBackgroundSync:enabled"/>
<int value="-871520682"
label="AccessibilityInternalsPageImprovements:enabled"/>
<int value="-870120067" label="EnableSearchBoxSelection:enabled"/>
@@ -36328,6 +37064,7 @@ from previous Chrome versions.
<int value="-780798969" label="disable-single-click-autofill"/>
<int value="-778126349" label="DownloadsLocationChange:enabled"/>
<int value="-778098896" label="EnableAggregatedMlSearchRanking:disabled"/>
+ <int value="-778047974" label="CrostiniUseBusterImage:disabled"/>
<int value="-777126951" label="FontSrcLocalMatching:enabled"/>
<int value="-776686417" label="SiteExplorationUi:disabled"/>
<int value="-775321548" label="UseNewDoodleApi:disabled"/>
@@ -36345,6 +37082,7 @@ from previous Chrome versions.
<int value="-762738927" label="LogJsConsoleMessages:enabled"/>
<int value="-762687134" label="ExperimentalCrostiniUI:enabled"/>
<int value="-759830869" label="enable-tab-discarding"/>
+ <int value="-758999727" label="ContentIndexingNTP:disabled"/>
<int value="-758048639" label="InfiniteSessionRestore:enabled"/>
<int value="-757946835"
label="OmniboxUIExperimentShowSuggestionFavicons:enabled"/>
@@ -36415,6 +37153,7 @@ from previous Chrome versions.
<int value="-682580680" label="DisableOfficeEditingComponentApp:disabled"/>
<int value="-680787130" label="ExperimentalVRFeatures:disabled"/>
<int value="-680589442" label="MacRTL:disabled"/>
+ <int value="-679500267" label="UseXpsForPrinting:disabled"/>
<int value="-674804217" label="SoleIntegration:enabled"/>
<int value="-673804828" label="EnablePlayStoreAppSearch:disabled"/>
<int value="-671992446" label="TranslateRankerEnforcement:disabled"/>
@@ -36429,7 +37168,6 @@ from previous Chrome versions.
<int value="-662064703" label="MediaSessionService:enabled"/>
<int value="-661978438" label="enable-data-reduction-proxy-lo-fi"/>
<int value="-660160292" label="enable-apps-show-on-first-paint"/>
- <int value="-656345197" label="CrossOriginEmbedderPolicy:disabled"/>
<int value="-654196854" label="PasswordsKeyboardAccessory:enabled"/>
<int value="-653616608" label="MacSyscallSandbox:disabled"/>
<int value="-650504533" label="enable-speculative-launch-service-worker"/>
@@ -36449,6 +37187,7 @@ from previous Chrome versions.
<int value="-632030508" label="NativeWindowNavButtons:disabled"/>
<int value="-631740127" label="inert-visual-viewport"/>
<int value="-631614101" label="CameraSystemWebApp:enabled"/>
+ <int value="-626211146" label="DesktopMinimalUI:disabled"/>
<int value="-625695291" label="AccessibilityExposeARIAAnnotations:enabled"/>
<int value="-624221121" label="CommandLineOnNonRooted:enabled"/>
<int value="-623364791" label="ClickToCallReceiver:disabled"/>
@@ -36528,11 +37267,9 @@ from previous Chrome versions.
<int value="-513305102" label="LanguagesPreference:enabled"/>
<int value="-513066193" label="SyncUSSPasswords:enabled"/>
<int value="-512971943" label="disable-one-copy"/>
- <int value="-512786338" label="SyncClipboardService:enabled"/>
<int value="-510488450" label="disable-pnacl"/>
<int value="-508250572" label="ServiceWorkerLongRunningMessage:disabled"/>
<int value="-508143738" label="disable-accelerated-fixed-root-background"/>
- <int value="-506743105" label="enable-subresource-redirect"/>
<int value="-506706655" label="respect-autocomplete-off-autofill"/>
<int value="-506366023" label="VizHitTest:enabled"/>
<int value="-505679399" label="FontCacheScaling:enabled"/>
@@ -36548,11 +37285,13 @@ from previous Chrome versions.
<int value="-492864618" label="NTPForeignSessionsSuggestions:disabled"/>
<int value="-491131428" label="OmniboxNewAnswerLayout:disabled"/>
<int value="-488779992" label="blink-settings"/>
+ <int value="-483290305" label="WebUITabStripDemoOptions:enabled"/>
<int value="-482259889" label="MacMDDownloadShelf:disabled"/>
<int value="-478462945" label="enable-ephemeral-apps"/>
<int value="-477101783" label="HandwritingGesture:disabled"/>
<int value="-475049740" label="disable-vr-shell"/>
<int value="-475042780" label="DialMediaRouteProvider:enabled"/>
+ <int value="-474833105" label="CrostiniUseBusterImage:enabled"/>
<int value="-474806100" label="DataReductionProxyMainMenu:enabled"/>
<int value="-474322576" label="disable-quick-unlock-pin"/>
<int value="-473087416" label="DragTabsInTabletMode:enabled"/>
@@ -36608,6 +37347,7 @@ from previous Chrome versions.
<int value="-400572959" label="UseDownloadOfflineContentProvider:enabled"/>
<int value="-400098787" label="QuietNotificationPrompts:enabled"/>
<int value="-398623652" label="CCTTargetTranslateLanguage:enabled"/>
+ <int value="-397392156" label="FtpProtocol:disabled"/>
<int value="-396994784" label="enable-vr-shell"/>
<int value="-396496344" label="ViewsTaskManager:enabled"/>
<int value="-395606844" label="enable-site-settings"/>
@@ -36710,6 +37450,7 @@ from previous Chrome versions.
<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="-268549184"
label="AutofillSaveCreditCardUsesStrikeSystemV2:enabled"/>
<int value="-268357961" label="enable-feature-policy"/>
@@ -36718,6 +37459,7 @@ from previous Chrome versions.
<int value="-258081634" label="AutofillAssistantDirectActions:disabled"/>
<int value="-255264176" label="OmniboxSearchEngineLogo:disabled"/>
<int value="-254887599" label="google-profile-info"/>
+ <int value="-254158542" label="SubresourceRedirectPreviews:enabled"/>
<int value="-250822813" label="PwaImprovedSplashScreen:enabled"/>
<int value="-250721831" label="AndroidAutofillAccessibility:disabled"/>
<int value="-250543540" label="DeferAllScript:enabled"/>
@@ -36738,6 +37480,7 @@ from previous Chrome versions.
<int value="-231426350" label="AutofillEnableToolbarStatusChip:enabled"/>
<int value="-230824955" label="NTPMostLikelyFaviconsFromServer:enabled"/>
<int value="-225505731" label="CCTModule:enabled"/>
+ <int value="-222296540" label="VirtualKeyboardBorderedKey:disabled"/>
<int value="-220599034" label="UsePdfCompositorServiceForPrint:enabled"/>
<int value="-216219963" label="ash-shelf-color-scheme"/>
<int value="-215534141" label="NativeWindowNavButtons:enabled"/>
@@ -36772,6 +37515,7 @@ from previous Chrome versions.
<int value="-174564579"
label="ServiceWorkerImportedScriptUpdateCheck:enabled"/>
<int value="-174319545" label="BulkPrinters:enabled"/>
+ <int value="-174161156" label="CryptAuthV1DeviceSyncDeprecate:enabled"/>
<int value="-173268856" label="GesturePropertiesDBusService"/>
<int value="-171232290" label="ListAllDisplayModes:disabled"/>
<int value="-171173736" label="VrBrowsingExperimentalFeatures:disabled"/>
@@ -36779,6 +37523,7 @@ from previous Chrome versions.
<int value="-169745744" label="SyncPseudoUSSPreferences:enabled"/>
<int value="-167744090" label="EnableHomeLauncher:enabled"/>
<int value="-165756594" label="enable-touch-feedback"/>
+ <int value="-165006916" label="EnableNeuralPalmDetectionFilter:enabled"/>
<int value="-164539906"
label="OmniboxPreserveDefaultMatchAgainstAsyncUpdate:disabled"/>
<int value="-161782023" label="AndroidMessagesProdEndpoint:enabled"/>
@@ -36790,6 +37535,7 @@ from previous Chrome versions.
<int value="-146552997" label="enable-affiliation-based-matching"/>
<int value="-144134779" label="AndroidPayIntegrationV2:disabled"/>
<int value="-143819280" label="google-password-manager:disabled"/>
+ <int value="-143394485" label="SplitSettingsSync:enabled"/>
<int value="-143382681" label="InstantTethering:enabled"/>
<int value="-141516902" label="UseModernMediaControls:enabled"/>
<int value="-140168253" label="ProfileMenuRevamp:enabled"/>
@@ -36859,6 +37605,7 @@ from previous Chrome versions.
<int value="-68225452" label="enable-translate-new-ux"/>
<int value="-67616014" label="PDFAnnotations:enabled"/>
<int value="-67297229" label="OfflinePagesDescriptivePendingStatus:disabled"/>
+ <int value="-66535194" label="DesktopMinimalUI:enabled"/>
<int value="-64839201" label="SyncUSSAutofillWalletData:disabled"/>
<int value="-64824628" label="VizHitTestSurfaceLayer:disabled"/>
<int value="-59530055" label="ChromeVoxArcSupport:enabled"/>
@@ -36882,8 +37629,12 @@ from previous Chrome versions.
<int value="-45487487" label="NewTabPageCustomLinks:disabled"/>
<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="-35388407" label="AshNewSystemMenu:disabled"/>
+ <int value="-31444029" label="MediaInspectorLogging:disabled"/>
<int value="-30966385" label="enable-hardware-overlays"/>
<int value="-29877377" label="TabHoverCardImages:disabled"/>
<int value="-29847483" label="MemoryAblation:enabled"/>
@@ -36895,9 +37646,11 @@ from previous Chrome versions.
<int value="-22544408" label="enable-video-player-chromecast-support"/>
<int value="-20597579" label="UseMultiloginEndpoint:enabled"/>
<int value="-20438829" label="SyncUSSAutofillProfile:enabled"/>
+ <int value="-20329017" label="EduCoexistence:disabled"/>
<int value="-20267582" label="ResourceLoadingHints:disabled"/>
<int value="-18464041" label="AutofillPrefilledFields:disabled"/>
<int value="-17698200" label="DoubleTapToZoomInTabletMode:disabled"/>
+ <int value="-17373827" label="SharingDeviceExpiration:enabled"/>
<int value="-16824589" label="ash-shelf-color"/>
<int value="-16086999" label="TrimOnFreeze:enabled"/>
<int value="-15879016"
@@ -36908,16 +37661,19 @@ from previous Chrome versions.
label="OmniboxUIExperimentHideSuggestionUrlScheme:enabled"/>
<int value="-9599490" label="KernelnextVMs:disabled"/>
<int value="-9322265" label="ShowBluetoothDebugLogToggle:enabled"/>
+ <int value="-5492723" label="CCTIncognito:enabled"/>
<int value="-5052940" label="enable-simplified-fullscreen"/>
<int value="-3093629" label="DcheckIsFatal:disabled"/>
<int value="-2953333" label="AndroidHistoryManager:disabled"/>
<int value="-2512468" label="OmniboxMaterialDesignWeatherIcons:disabled"/>
<int value="-2371418" label="disable-display-list-2d-canvas"/>
+ <int value="-1164379" label="EnterpriseReportingInChromeOS:disabled"/>
<int value="0" label="BAD_FLAG_FORMAT">
Command-line flag doesn't start with two dashes.
</int>
<int value="1343197" label="UseSearchClickForRightClick:enabled"/>
<int value="1558582" label="ResamplingInputEvents:enabled"/>
+ <int value="2070488" label="EnablePasswordsAccountStorageSavingUi:disabled"/>
<int value="3826348" label="DarkenWebsitesCheckboxInThemesSetting:disabled"/>
<int value="5654819" label="CrostiniGpuSupport:disabled"/>
<int value="7444737" label="NTPSuggestionsStandaloneUI:disabled"/>
@@ -36948,6 +37704,7 @@ from previous Chrome versions.
<int value="42844603" label="AndroidSurfaceControl:disabled"/>
<int value="43951968" label="DesktopPWAsCustomTabUI:enabled"/>
<int value="44088203" label="ExpensiveBackgroundTimerThrottling:enabled"/>
+ <int value="44240181" label="SharingQRCodeGenerator:disabled"/>
<int value="48159177" label="reduced-referrer-granularity"/>
<int value="49113130" label="OmniboxOnDeviceHeadProvider:disabled"/>
<int value="51793504" label="protect-sync-credential-on-reauth:disabled"/>
@@ -37024,6 +37781,7 @@ from previous Chrome versions.
<int value="133482330" label="AppNotificationStatusMessaging:enabled"/>
<int value="136924140" label="OfflineIndicatorV2:enabled"/>
<int value="138345654" label="enable-ambient-authentication-in-incognito"/>
+ <int value="139569991" label="SharingDeviceExpiration:disabled"/>
<int value="143725809" label="DownloadProgressInfoBar:enabled"/>
<int value="146229312" label="WebPaymentsExperimentalFeatures:enabled"/>
<int value="147342055" label="ChromeHomeClearUrlOnOpen:disabled"/>
@@ -37040,8 +37798,10 @@ from previous Chrome versions.
<int value="160838658" label="SmartDimModelV3:enabled"/>
<int value="161409456" label="AutofillUseMobileLabelDisambiguation:disabled"/>
<int value="161694478" label="OmniboxNewAnswerLayout:enabled"/>
+ <int value="168429629" label="ContentIndexingNTP:enabled"/>
<int value="168627257" label="AppServiceIntentHandling:disabled"/>
<int value="173288154" label="PrintPdfAsImage:enabled"/>
+ <int value="173339199" label="SmsReceiverCrossDevice:disabled"/>
<int value="174759256" label="LockScreenMediaControls:enabled"/>
<int value="178337215" label="enable-md-history"/>
<int value="178693406" label="LockScreenMediaControls:disabled"/>
@@ -37059,6 +37819,7 @@ from previous Chrome versions.
<int value="194895489" label="passive-listeners-default"/>
<int value="195335115" label="AudioWorkletRealtimeThread:disabled"/>
<int value="195570937" label="EnableHomeLauncher:disabled"/>
+ <int value="198762155" label="SharingPeerConnectionSender:enabled"/>
<int value="200347243" label="WebVRExperimentalRendering:disabled"/>
<int value="201343576" label="enable-password-change-support:enabled"/>
<int value="203239167" label="ImprovedGeoLanguageData:enabled"/>
@@ -37122,12 +37883,14 @@ from previous Chrome versions.
<int value="297095559" label="ShowBluetoothDebugLogToggle:disabled"/>
<int value="299792415" label="OmniboxSuggestionTransparencyOptions:enabled"/>
<int value="300095239" label="FCMInvalidations:enabled"/>
+ <int value="300870732" label="ShelfDimming:disabled"/>
<int value="301630312" label="ForcedColors:disabled"/>
<int value="301869874" label="NTPPhysicalWebPageSuggestions:disabled"/>
<int value="303058039" label="AccountConsistency:disabled"/>
<int value="303252119" label="AutofillExpandedPopupViews:disabled"/>
<int value="304901781" label="NewUsbBackend:enabled"/>
<int value="306641800" label="AndroidSiteSettingsUIRefresh:disabled"/>
+ <int value="306834044" label="webui-tab-strip"/>
<int value="307543404" label="disable-team-drives"/>
<int value="307670929"
label="enable-ambient-authentication-in-guest-session"/>
@@ -37158,6 +37921,7 @@ from previous Chrome versions.
<int value="339671131" label="disable-per-user-timezone"/>
<int value="341152650" label="SoundContentSetting:enabled"/>
<int value="341851350" label="EnableDbusAndX11StatusIcons:enabled"/>
+ <int value="342960463" label="SharingQRCodeGenerator:enabled"/>
<int value="345664265" label="BlinkHeapIncrementalMarking:disabled"/>
<int value="346711293" label="enable-save-password-bubble"/>
<int value="347981012" label="TabToGTSAnimation:disabled"/>
@@ -37175,6 +37939,8 @@ from previous Chrome versions.
<int value="360391863" label="NTPOfflineBadge:enabled"/>
<int value="360599302" label="enable-gpu-rasterization"/>
<int value="362644448" label="memlog-in-process"/>
+ <int value="362853088" label="AmbientColor:disabled"/>
+ <int value="363997248" label="UseXpsForPrinting:enabled"/>
<int value="365068212" label="PiexWasm:disabled"/>
<int value="365467768" label="prefetch-search-results"/>
<int value="367063319" label="PasswordImport:disabled"/>
@@ -37228,6 +37994,7 @@ from previous Chrome versions.
<int value="416887895" label="enable-password-change-support"/>
<int value="417709910"
label="AutofillSendExperimentIdsInPaymentsRPCs:disabled"/>
+ <int value="418769094" label="MixedContentSiteSetting:enabled"/>
<int value="422307097" label="PhysicalWeb:disabled"/>
<int value="423615350" label="enable-tab-audio-muting"/>
<int value="423855924" label="enable-tab-switcher-theme-colors"/>
@@ -37252,11 +38019,13 @@ from previous Chrome versions.
<int value="460475728" label="wake-on-wifi-packet"/>
<int value="463582989" label="CompositorThreadedScrollbarScrolling:disabled"/>
<int value="464226051" label="CrOSComponent:enabled"/>
+ <int value="464773709" label="OmniboxExperimentalSuggestScoring:enabled"/>
<int value="466248382" label="disable-push-api-background-mode"/>
<int value="468665559" label="TrilinearFiltering:disabled"/>
<int value="468959230"
label="enable-non-validating-reload-on-refresh-content"/>
<int value="470011024" label="NonValidatingReloadOnNormalReload:enabled"/>
+ <int value="471224152" label="WinUseHybridSpellChecker:enabled"/>
<int value="471969274" label="MediaControlsExpandGesture:enabled"/>
<int value="473958125" label="OmniboxWrapPopupPosition:enabled"/>
<int value="474743272" label="material-design-ink-drop"/>
@@ -37290,7 +38059,6 @@ from previous Chrome versions.
<int value="513258875" label="WinrtSensorsImplementation:disabled"/>
<int value="513356954" label="InstantTethering:disabled"/>
<int value="513372959" label="ViewsProfileChooser:enabled"/>
- <int value="515951869" label="SyncClipboardService:disabled"/>
<int value="517429103" label="AutofillImportDynamicForms:enabled"/>
<int value="517568645" label="AnimatedAppMenuIcon:disabled"/>
<int value="520982116" label="BuiltInModuleAll:enabled"/>
@@ -37302,6 +38070,7 @@ from previous Chrome versions.
<int value="538468149" label="OfflinePagesCT:enabled"/>
<int value="538600423" label="OmniboxDocumentProvider:enabled"/>
<int value="538685995" label="InstallableInkDrop:enabled"/>
+ <int value="542960889" label="HeavyAdIntervention:enabled"/>
<int value="546043947" label="ImplicitRootScroller:enabled"/>
<int value="546520086" label="enable-data-reduction-proxy-savings-promo"/>
<int value="546710806" label="disable-easy-signin"/>
@@ -37334,6 +38103,7 @@ from previous Chrome versions.
<int value="584541349" label="ContextualSearchSingleActions:disabled"/>
<int value="586021329" label="VibrateRequiresUserGesture:enabled"/>
<int value="588333474" label="OfflineIndicator:disabled"/>
+ <int value="589924262" label="CryptAuthV2DeviceActivityStatus:enabled"/>
<int value="592050831" label="disable-slimming-paint"/>
<int value="593707592" label="disable-network-portal-notification"/>
<int value="594756372" label="MyFilesVolume:disabled"/>
@@ -37348,6 +38118,8 @@ from previous Chrome versions.
<int value="603326800" label="UsePasswordSeparatedSigninFlow:enabled"/>
<int value="603988014" label="NetworkService:enabled"/>
<int value="605150752" label="WebUSB:disabled"/>
+ <int value="606061406"
+ label="UpdateNotificationSchedulingIntegration:disabled"/>
<int value="606288133" label="enable-print-preview-register-promos"/>
<int value="606512202" label="AutofillCreditCardPopupLayout:enabled"/>
<int value="606723570" label="SharingUseDeviceInfo:disabled"/>
@@ -37407,6 +38179,7 @@ from previous Chrome versions.
<int value="665409384"
label="AutofillToolkitViewsCreditCardDialogsMac:enabled"/>
<int value="667643314" label="LitePageServerPreviews:enabled"/>
+ <int value="669097106" label="NtpRealboxMatchOmniboxTheme:disabled"/>
<int value="673588373" label="OmniboxPedalSuggestions:disabled"/>
<int value="677866592" label="ClickToCallUI:disabled"/>
<int value="679251577" label="AccessibilityExposeARIAAnnotations:disabled"/>
@@ -37428,6 +38201,7 @@ from previous Chrome versions.
<int value="695385040" label="enable-external-drive-rename"/>
<int value="696261973" label="GaiaActionButtons:enabled"/>
<int value="696600628" label="VibrateRequiresUserGesture:disabled"/>
+ <int value="697503858" label="SharingPeerConnectionSender:disabled"/>
<int value="698273842" label="SyncSendTabToSelf:enabled"/>
<int value="698809951" label="WebRtcHWVP8Encoding:enabled"/>
<int value="699149897" label="ContentSuggestionsDebugLog:disabled"/>
@@ -37483,6 +38257,7 @@ from previous Chrome versions.
<int value="752939691" label="disable-tab-for-desktop-share"/>
<int value="760542355" label="ServiceWorkerScriptFullCodeCache:enabled"/>
<int value="762700519" label="enable-checker-imaging"/>
+ <int value="763947368" label="HomepageLocationPolicy:disabled"/>
<int value="765306424" label="ModuleScriptsDynamicImport:disabled"/>
<int value="765803208" label="AutofillShowTypePredictions:enabled"/>
<int value="766898398" label="sampling-heap-profiler"/>
@@ -37497,6 +38272,7 @@ from previous Chrome versions.
<int value="773563826" label="CrostiniUsbSupport:disabled"/>
<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="777667507" label="DesktopPWAsLinkCapturing:enabled"/>
<int value="779086132" label="enable-data-reduction-proxy-alt"/>
<int value="779849093" label="OfflinePagesCTSuppressNotifications:disabled"/>
@@ -37506,10 +38282,12 @@ from previous Chrome versions.
<int value="787385958" label="RegionalLocalesAsDisplayUI:enabled"/>
<int value="799680074" label="ContextualSearchTranslationModel:enabled"/>
<int value="803282885" label="PreferHtmlOverPlugins:disabled"/>
+ <int value="806035639" label="EnableNeuralPalmDetectionFilter:disabled"/>
<int value="806334184" label="AndroidSpellChecker:enabled"/>
<int value="807447752" label="ChromeMemex:disabled"/>
<int value="807734471" label="tab-management-experiment-type-disabled"/>
<int value="809698565" label="WebRtcHybridAgc:enabled"/>
+ <int value="811057677" label="ConfirmNtpSuggestionRemovals:disabled"/>
<int value="811374216" label="disable-new-bookmark-apps"/>
<int value="811726957" label="SlideTopChromeWithPageScrolls:enabled"/>
<int value="812710781" label="SyncUSSBookmarks:disabled"/>
@@ -37523,7 +38301,6 @@ from previous Chrome versions.
<int value="834033186" label="enable-data-reduction-proxy-dev"/>
<int value="834326277" label="enable-answers-in-suggest"/>
<int value="835018878" label="disable-quic"/>
- <int value="835324823" label="ForceDiceMigration:enabled"/>
<int value="836406476" label="EnableTouchableAppContextMenu:enabled"/>
<int value="838887742" label="manual-enhanced-bookmarks"/>
<int value="839798268" label="SafeBrowsingTelemetryForApkDownloads:disabled"/>
@@ -37558,12 +38335,14 @@ from previous Chrome versions.
<int value="879992337" label="disable-pull-to-refresh-effect"/>
<int value="880510010" label="enable-permissions-bubbles"/>
<int value="884106779" label="supervised-user-safesites"/>
+ <int value="885004540" label="ArcEnableApplicationZoomFeature:enabled"/>
<int value="885971656" label="EnablePlayStoreAppSearch:enabled"/>
<int value="886907524" label="autoplay-policy"/>
<int value="887011602" label="enable-spelling-auto-correct"/>
<int value="892899792" label="MaterialDesignIncognitoNTP:disabled"/>
<int value="898311758" label="ReaderMode:disabled"/>
<int value="900614020" label="ContentSuggestionsShowSummary:disabled"/>
+ <int value="902209599" label="ShelfHotseat:enabled"/>
<int value="902839593" label="WebContentsForceDark:disabled"/>
<int value="903267263" label="disable-offline-pages"/>
<int value="908302031"
@@ -37579,9 +38358,9 @@ from previous Chrome versions.
<int value="921536672" label="OfflinePagesDescriptiveFailStatus:enabled"/>
<int value="925712999" label="V8Orinoco:enabled"/>
<int value="926852901" label="DataReductionProxyMainMenu:disabled"/>
+ <int value="928900043" label="OmniboxLooseMaxLimitOnDedicatedRows:disabled"/>
<int value="929462705" label="disable-link-disambiguation-popup"/>
<int value="934292666" label="DownloadRename:enabled"/>
- <int value="935364646" label="ForceDiceMigration:disabled"/>
<int value="935655516" label="password-import-export:disabled"/>
<int value="936341613" label="OfflinePagesCT:disabled"/>
<int value="936919953" label="bypass-app-banner-engagement-checks"/>
@@ -37599,6 +38378,7 @@ from previous Chrome versions.
<int value="946688335" label="OmniboxSpareRenderer:disabled"/>
<int value="952558794" label="enable-remote-assistance"/>
<int value="955340765" label="ChromeHomeOptOutSnackbar:enabled"/>
+ <int value="955425932" label="EnterpriseReportingInChromeOS:enabled"/>
<int value="963457392" label="ChromeHomeModernLayout:disabled"/>
<int value="963671232" label="DrawOcclusion:disabled"/>
<int value="964613807" label="ContextualSearchTranslationModel:disabled"/>
@@ -37609,7 +38389,7 @@ from previous Chrome versions.
<int value="975104092" label="show-taps"/>
<int value="976079108" label="TouchpadOverscrollHistoryNavigation:disabled"/>
<int value="976278412" label="google-password-manager:enabled"/>
- <int value="977968353" label="WebUITabStrip:disabled"/>
+ <int value="978712907" label="PrintServerUi:disabled"/>
<int value="979445973" label="OmniboxSpareRenderer:enabled"/>
<int value="980396200" label="enable-new-korean-ime"/>
<int value="981818901" label="AppBanners:enabled"/>
@@ -37650,6 +38430,7 @@ from previous Chrome versions.
label="disable-hide-inactive-stacked-tab-close-buttons"/>
<int value="1022424308" label="SignedExchangeSubresourcePrefetch:enabled"/>
<int value="1022992701" label="enable-origin-chip-always"/>
+ <int value="1023668536" label="PrintServerUi:enabled"/>
<int value="1024560563" label="EnableFuzzyAppSearch:enabled"/>
<int value="1026981579" label="TLS13HardeningForLocalAnchors:enabled"/>
<int value="1027252926" label="SyncSupportSecondaryAccount:enabled"/>
@@ -37657,13 +38438,17 @@ from previous Chrome versions.
<int value="1033412163" label="OmniboxDisplayTitleForCurrentUrl:enabled"/>
<int value="1033597574" label="disable-layer-squashing"/>
<int value="1036068554" label="enable-android-pay-integration-v2"/>
+ <int value="1037961753" label="CCTIncognito:disabled"/>
<int value="1038234679" label="PrefetchPrivacyChanges:disabled"/>
+ <int value="1042202617" label="RemoteCopyReceiver:enabled"/>
<int value="1043291220" label="OverviewSwipeToClose:disabled"/>
<int value="1043334401" label="disable-slimming-paint-invalidation"/>
+ <int value="1044210009" label="SharingPeerConnectionReceiver:disabled"/>
<int value="1044928476"
label="AllowDownloadResumptionWithoutStrongValidators:enabled"/>
<int value="1046878091" label="PasswordForceSaving:enabled"/>
<int value="1046981538" label="OfflinePagesShowAlternateDinoPage:disabled"/>
+ <int value="1047110483" label="ShelfHotseat:disabled"/>
<int value="1049885154" label="OfflinePagesPrefetching:disabled"/>
<int value="1050048304" label="enable-font-cache-scaling"/>
<int value="1050321458" label="new-profile-management"/>
@@ -37711,6 +38496,7 @@ from previous Chrome versions.
<int value="1096477444" label="AssistantVoiceMatch:enabled"/>
<int value="1098823967" label="ash-enable-window-cycle-ui"/>
<int value="1100244809" label="MacSystemMediaPermissionsInfoUI:disabled"/>
+ <int value="1102780374" label="ClickToCallDetectionV2:disabled"/>
<int value="1104948452" label="manual-enhanced-bookmarks-optout"/>
<int value="1105439588" label="enable-swipe-selection"/>
<int value="1106307305" label="AutofillPrimaryInfoStyleExperiment:enabled"/>
@@ -37734,6 +38520,7 @@ from previous Chrome versions.
<int value="1127427821" label="OmniboxEntitySuggestions:disabled"/>
<int value="1129542111" label="CastAllowAllIPs:disabled"/>
<int value="1129888794" label="ash-touch-hud"/>
+ <int value="1133207726" label="MediaInspectorLogging:enabled"/>
<int value="1133635187" label="force-gpu-rasterization"/>
<int value="1138349838" label="EnableMDRoundedCornersOnDialogs:disabled"/>
<int value="1139226452" label="enable-nacl-debug"/>
@@ -37753,6 +38540,8 @@ from previous Chrome versions.
<int value="1155905651" label="DrawVerticallyEdgeToEdge:disabled"/>
<int value="1155923106" label="NTPOfflinePages:enabled"/>
<int value="1163255347" label="ash-enable-touch-view-touch-feedback"/>
+ <int value="1164377197" label="SwipingFromLeftEdgeToGoBack:enabled"/>
+ <int value="1164460660" label="AutofillEnableVirtualCard:enabled"/>
<int value="1165682330" label="AutofillSaveAndFillVPA:disabled"/>
<int value="1166169237" label="disable-delay-agnostic-aec"/>
<int value="1166789664" label="SyncPseudoUSSAppList:disabled"/>
@@ -37773,12 +38562,14 @@ from previous Chrome versions.
<int value="1182356056" label="MacV2GPUSandbox:enabled"/>
<int value="1183260592" label="WebAssemblyBaseline:enabled"/>
<int value="1183431946" label="v8-cache-options"/>
+ <int value="1184093076" label="WebRtcUseMinMaxVEADimensions:enabled"/>
<int value="1184225265" label="AllowSyncXHRInPageDismissal:enabled"/>
<int value="1185424279" label="enable-media-router"/>
<int value="1188109510" label="AssistantAudioEraser:enabled"/>
<int value="1190035852" label="MediaRemoting:enabled"/>
<int value="1192302892" label="gesture-typing"/>
<int value="1192913630" label="OfflinePagesBackgroundLoading:disabled"/>
+ <int value="1193385506" label="OmniboxLooseMaxLimitOnDedicatedRows:enabled"/>
<int value="1194496204" label="NewWallpaperPicker:enabled"/>
<int value="1195087468" label="ProminentDarkModeActiveTabTitle:enabled"/>
<int value="1196644408" label="performance-monitor-gathering"/>
@@ -37786,6 +38577,7 @@ from previous Chrome versions.
<int value="1198839129" label="OfflinePagesLivePageSharing:enabled"/>
<int value="1201008500"
label="EnableAmbientAuthenticationInIncognito:enabled"/>
+ <int value="1203795051" label="PassiveMixedContentWarning:enabled"/>
<int value="1203821857" label="Vulkan:disabled"/>
<int value="1205849612" label="enable-sync-synced-notifications"/>
<int value="1209221384" label="enable-experimental-accessibility-features"/>
@@ -37836,6 +38628,7 @@ from previous Chrome versions.
<int value="1258043820" label="AudioFocusEnforcement:enabled"/>
<int value="1258747457"
label="SyncPseudoUSSHistoryDeleteDirectives:disabled"/>
+ <int value="1259798038" label="AllowAmbientEQ:disabled"/>
<int value="1260186484" label="spurious-power-button-screen-accel"/>
<int value="1261379424" label="DecodeLossyWebPImagesToYUV:disabled"/>
<int value="1261713150" label="ChromeHomeOptOutSnackbar:disabled"/>
@@ -37905,6 +38698,7 @@ from previous Chrome versions.
<int value="1343713259" label="ArcPrintSpoolerExperiment:disabled"/>
<int value="1344833841" label="ImeThread:enabled"/>
<int value="1346994602" label="SyncPseudoUSSDictionary:enabled"/>
+ <int value="1351344112" label="ContentIndexingDownloadHome:enabled"/>
<int value="1351830811" label="do-not-ignore-autocomplete-off"/>
<int value="1352447982" label="enable-lcd-text"/>
<int value="1352717172"
@@ -37938,6 +38732,7 @@ from previous Chrome versions.
<int value="1379571437" label="ExoPointerLock:disabled"/>
<int value="1379944457" label="EnableMessagesWebPush:disabled"/>
<int value="1381746642" label="enable-automatic-password-saving"/>
+ <int value="1381817717" label="EduCoexistence:enabled"/>
<int value="1382107019" label="LevelDBPerformRewrite:disabled"/>
<int value="1382500494" label="disable-drive-apps-in-app-list"/>
<int value="1383591631" label="enable-gesture-typing"/>
@@ -37961,6 +38756,7 @@ from previous Chrome versions.
label="disable-minimize-on-second-launcher-item-click"/>
<int value="1408139320" label="disable-zip-archiver-packer"/>
<int value="1408331660" label="enhanced-bookmarks-experiment"/>
+ <int value="1409120591" label="PassiveMixedContentWarning:disabled"/>
<int value="1409437197" label="OfflinePagesLimitlessPrefetching:enabled"/>
<int value="1410697724" label="mediadrm-enable-non-compositing"/>
<int value="1410846840"
@@ -37986,6 +38782,9 @@ from previous Chrome versions.
<int value="1442830837" label="MemoryAblation:disabled"/>
<int value="1447295459" label="SyncPseudoUSSApps:enabled"/>
<int value="1448684258" label="TabHoverCardImages:enabled"/>
+ <int value="1449177114"
+ label="EnablePasswordsAccountStorageSavingUi:enabled"/>
+ <int value="1452492841" label="TerminalSystemAppSplits:enabled"/>
<int value="1452546183" label="PwaPersistentNotification:enabled"/>
<int value="1454006695" label="BlinkHeapUnifiedGarbageCollection:disabled"/>
<int value="1454143461" label="CaptureThumbnailOnNavigatingAway:disabled"/>
@@ -37996,8 +38795,10 @@ from previous Chrome versions.
<int value="1458475849" label="D3D11VideoDecoder:disabled"/>
<int value="1458583431" label="arc-use-auth-endpoint"/>
<int value="1459529277" label="disable-text-input-focus-manager"/>
+ <int value="1459803015" label="WebRtcEnableCaptureMultiChannelApm:enabled"/>
<int value="1460747747" label="GdiTextPrinting:enabled"/>
<int value="1460958818" label="NTPForeignSessionsSuggestions:enabled"/>
+ <int value="1464028544" label="WinUseHybridSpellChecker:disabled"/>
<int value="1465624446" label="disable-zero-copy"/>
<int value="1466380480" label="enable-device-discovery-notifications"/>
<int value="1466502102" label="DelayNavigation:disabled"/>
@@ -38006,6 +38807,7 @@ from previous Chrome versions.
<int value="1473967338" label="OmniboxShortBookmarkSuggestions:enabled"/>
<int value="1474861626" label="disable-multi-mirroring"/>
<int value="1479248574" label="disable-voice-input"/>
+ <int value="1480607006" label="MixBrowserTypeTabs:enabled"/>
<int value="1481562816" label="disable-password-link"/>
<int value="1482039233" label="SearchSuggestionsOnLocalNtp:disabled"/>
<int value="1482839038" label="AutofillCreditCardAuthentication:enabled"/>
@@ -38046,8 +38848,10 @@ from previous Chrome versions.
<int value="1530113113" label="disable-pushstate-throttle"/>
<int value="1530177325" label="LanguagesPreference:disabled"/>
<int value="1531164533" label="SyncPseudoUSSFavicons:disabled"/>
+ <int value="1531741496" label="DragFromShelfToHomeOrOverview:disabled"/>
<int value="1534222388" label="EnableEphemeralFlashPermission:enabled"/>
<int value="1534386287" label="SendTabToSelfWhenSignedIn:enabled"/>
+ <int value="1534561775" label="HeavyAdPrivacyMitigations:disabled"/>
<int value="1536921097" label="NavigationMojoResponse:disabled"/>
<int value="1538685213" label="DownloadHomeV2:enabled"/>
<int value="1538690515" label="OneGoogleBarOnLocalNtp:enabled"/>
@@ -38059,6 +38863,8 @@ from previous Chrome versions.
<int value="1548942246" label="PassiveDocumentEventListeners:disabled"/>
<int value="1559034872" label="AutofillPrefilledFields:enabled"/>
<int value="1560188739" label="reader-mode-heuristics"/>
+ <int value="1561781431" label="VirtualKeyboardBorderedKey:enabled"/>
+ <int value="1562855415" label="WebRtcUseMinMaxVEADimensions:disabled"/>
<int value="1563255033" label="memlog-stack-mode"/>
<int value="1567839560"
label="ChromeHomePersonalizedOmniboxSuggestions:disabled"/>
@@ -38067,6 +38873,7 @@ from previous Chrome versions.
<int value="1575978252" label="PasswordLeakDetection:enabled"/>
<int value="1577205328"
label="DataReductionProxyEnabledWithNetworkService:enabled"/>
+ <int value="1579084737" label="TemporaryUnexpireFlagsM80:disabled"/>
<int value="1579461102" label="MemoryCoordinator:disabled"/>
<int value="1581002467" label="enable-explicit-dma-fences"/>
<int value="1585660881"
@@ -38103,6 +38910,7 @@ from previous Chrome versions.
label="OmniboxUIExperimentWhiteBackgroundOnBlur:disabled"/>
<int value="1617187093" label="enable-improved-a2hs"/>
<int value="1618633341" label="MashOopViz:enabled"/>
+ <int value="1619516032" label="GamesHub:disabled"/>
<int value="1620369597" label="enable-unsafe-webgpu"/>
<int value="1621298798" label="VrBrowserKeyboard:enabled"/>
<int value="1622131033" label="ozone-test-single-overlay-support"/>
@@ -38128,6 +38936,7 @@ from previous Chrome versions.
<int value="1639190590" label="UseMessagesGoogleComDomain:enabled"/>
<int value="1639314588" label="LookalikeUrlNavigationSuggestions:disabled"/>
<int value="1640386037" label="ContextualSuggestionsSlimPeekUI:disabled"/>
+ <int value="1645447927" label="MixedContentSiteSetting:disabled"/>
<int value="1645479440" label="HistoryManipulationIntervention:disabled"/>
<int value="1646498561" label="OfflineBookmarks:disabled"/>
<int value="1649121568" label="DynamicTcmallocTuning:disabled"/>
@@ -38137,6 +38946,7 @@ from previous Chrome versions.
<int value="1658644418" label="disable-app-list-voice-search"/>
<int value="1659082220" label="EnableManualSaving:disabled"/>
<int value="1659372520" label="WebXrRenderPath:disabled"/>
+ <int value="1660491118" label="AllowAmbientEQ:enabled"/>
<int value="1661925474" label="silent-debugger-extension-api"/>
<int value="1664401033" label="ColorCorrectRendering:enabled"/>
<int value="1665349789" label="spurious-power-button-window"/>
@@ -38203,6 +39013,7 @@ from previous Chrome versions.
<int value="1745053254" label="ClickToCallOpenDialerDirectly:enabled"/>
<int value="1747279677" label="disable-delegated-renderer"/>
<int value="1748481830" label="AppManagement:enabled"/>
+ <int value="1749028785" label="SubresourceRedirect:disabled"/>
<int value="1750822869" label="CrostiniBackup:disabled"/>
<int value="1752168018" label="enable-stale-while-revalidate"/>
<int value="1755024316" label="HostWindowsInAppShimProcess:disabled"/>
@@ -38213,6 +39024,7 @@ from previous Chrome versions.
<int value="1766676896" label="affiliation-based-matching:disabled"/>
<int value="1767411597" label="DisallowUnsafeHttpDownloads:enabled"/>
<int value="1768759000" label="AutofillProfileServerValidation:disabled"/>
+ <int value="1770189877" label="ConfirmNtpSuggestionRemovals:enabled"/>
<int value="1771548551" label="DisableKeepaliveFetch:enabled"/>
<int value="1772454319" label="enable-storage-manager"/>
<int value="1775475563" label="malware-interstitial-v3"/>
@@ -38287,6 +39099,7 @@ from previous Chrome versions.
<int value="1854226565" label="AutofillNoLocalSaveOnUnmaskSuccess:enabled"/>
<int value="1855524566" label="allow-insecure-websocket-from-https-origin"/>
<int value="1858385315" label="ChromeHomeBottomNavLabels:enabled"/>
+ <int value="1858919054" label="SplitSettingsSync:disabled"/>
<int value="1860597983" label="AndroidSpellChecker:disabled"/>
<int value="1861251313"
label="enable-message-center-always-scroll-up-upon-notification-removal"/>
@@ -38324,6 +39137,7 @@ from previous Chrome versions.
<int value="1896456311" label="enable-password-save-in-page-navigation"/>
<int value="1896527497" label="ImmersiveUiMode:enabled"/>
<int value="1898231011" label="enable-native-notifications"/>
+ <int value="1899248188" label="MediaApp:disabled"/>
<int value="1900529524" label="disable-touch-drag-drop"/>
<int value="1903290829" label="AnimatedAvatarButton:enabled"/>
<int value="1905465678" label="ContextualSearchSingleActions:enabled"/>
@@ -38333,6 +39147,7 @@ from previous Chrome versions.
<int value="1913263516" label="OculusVR:enabled"/>
<int value="1913298816" label="OverlayScrollbar:enabled"/>
<int value="1913926782" label="ChromeModernAlternateCardLayout:disabled"/>
+ <int value="1914347357" label="AutofillEnableVirtualCard:disabled"/>
<int value="1915028326" label="BuiltInModuleKvStorage:disabled"/>
<int value="1915178511" label="disable-blink-features"/>
<int value="1918984253"
@@ -38351,6 +39166,7 @@ from previous Chrome versions.
<int value="1932204471" label="SyncPseudoUSSThemes:disabled"/>
<int value="1932732886" label="OpenVR:enabled"/>
<int value="1933282728" label="OmniboxUICuesForSearchHistoryMatches:enabled"/>
+ <int value="1935405622" label="AppServiceInstanceRegistry:disabled"/>
<int value="1936810062" label="WebVrVsyncAlign:enabled"/>
<int value="1938279796" label="PromosOnLocalNtp:disabled"/>
<int value="1939413645" label="enable-invalid-cert-collection"/>
@@ -38390,6 +39206,7 @@ from previous Chrome versions.
<int value="1979222611" label="XRSandbox:disabled"/>
<int value="1980011075" label="debug-packed-apps"/>
<int value="1980648371" label="PointerEventV1SpecCapturing:enabled"/>
+ <int value="1986031201" label="SwipingFromLeftEdgeToGoBack:disabled"/>
<int value="1988506961" label="EnableManualSaving:enabled"/>
<int value="1988810119" label="AutofillDropdownLayout:enabled"/>
<int value="1989051182" label="view-passwords:enabled"/>
@@ -38502,9 +39319,11 @@ from previous Chrome versions.
<int value="2123183411" label="BlinkHeapIncrementalMarking:enabled"/>
<int value="2123567684" label="OptimizeLoadingIPCForSmallResources:enabled"/>
<int value="2126203058" label="force-show-update-menu-badge"/>
+ <int value="2127648677" label="OmniboxExperimentalSuggestScoring:disabled"/>
<int value="2129184006" label="NTPOfflinePageDownloadSuggestions:enabled"/>
<int value="2129929643" label="enable-use-zoom-for-dsf"/>
<int value="2132595171" label="OmniboxSearchEngineLogo:enabled"/>
+ <int value="2133594095" label="CryptAuthV2DeviceActivityStatus:disabled"/>
<int value="2134480727" label="MediaSessionAccelerators:disabled"/>
<int value="2135408204" label="OverscrollHistoryNavigation:disabled"/>
<int value="2137113620"
@@ -38529,6 +39348,8 @@ from previous Chrome versions.
<int value="6" label="Stats table failed initialization"/>
<int value="7" label="Migration error"/>
<int value="8" label="Commit transaction error"/>
+ <int value="9" label="Initialization of compromised credentials error"/>
+ <int value="10" label="Init field info table error"/>
</enum>
<enum name="LoginFailureReason">
@@ -39152,7 +39973,7 @@ from previous Chrome versions.
<int value="2" label="Non layer viewport constrained"/>
<int value="3" label="Threaded scrolling disabled"/>
<int value="4" label="Scrollbar scrolling"/>
- <int value="5" label="Page overlay"/>
+ <int value="5" label="Frame overlay"/>
<int value="6" label="Non-fast scrollable region"/>
<int value="7" label="Event handlers"/>
<int value="8" label="Failed hit test"/>
@@ -39233,13 +40054,14 @@ from previous Chrome versions.
<int value="4" label="Password Generation Confirmation"/>
<int value="5" label="Profile Chooser"/>
<int value="6" label="Passwords Accessory Sheet"/>
+ <int value="7" label="Touch To Fill"/>
</enum>
<enum name="ManifestFetchResultType">
<int value="0" label="Fetch succeeded"/>
<int value="1" label="Fetch failed because of empty URL"/>
<int value="2" label="Fetch failed (unspecified reason)"/>
- <int value="3" label="Fetch failed because the document origin is unique"/>
+ <int value="3" label="Fetch failed because the document origin is opaque"/>
</enum>
<enum name="MappedCSSProperties">
@@ -39893,6 +40715,12 @@ Called by update_use_counter_css.py.-->
<int value="645" label="overscroll-behavior-block"/>
<int value="646" label="content-size"/>
<int value="647" label="font-optical-sizing"/>
+ <int value="648" label="intrinsic-block-size"/>
+ <int value="649" label="intrinsic-height"/>
+ <int value="650" label="intrinsic-inline-size"/>
+ <int value="651" label="intrinsic-size"/>
+ <int value="652" label="intrinsic-width"/>
+ <int value="653" label="render-subtree"/>
</enum>
<enum name="MappedEditingCommands">
@@ -40384,6 +41212,7 @@ Called by update_use_counter_css.py.-->
<int value="7" label="NoSupportedProvider"/>
<int value="8" label="Cancelled"/>
<int value="9" label="RouteAlreadyExists"/>
+ <int value="10" label="DesktopPickerFailed"/>
</enum>
<enum name="MediaRouteProviderVersion">
@@ -40470,6 +41299,7 @@ Called by update_use_counter_css.py.-->
<int value="1" label="Overflow Menu"/>
<int value="2" label="Contextual Menu"/>
<int value="3" label="Page"/>
+ <int value="4" label="App Menu"/>
</enum>
<enum name="MediaRouterDialParseMessageResult">
@@ -40499,6 +41329,11 @@ Called by update_use_counter_css.py.-->
<int value="3" label="Stop app failed"/>
</enum>
+<enum name="MediaRouterIconState">
+ <int value="0" label="Ephemeral"/>
+ <int value="1" label="Pinned"/>
+</enum>
+
<enum name="MediaRouterInitialViews">
<int value="0" label="Route Details"/>
<int value="1" label="Sink List"/>
@@ -41395,6 +42230,25 @@ Called by update_use_counter_css.py.-->
<int value="1" label="PresentedAfterUpdateBanner"/>
</enum>
+<enum name="MobileMessagesTranslateBannerEvent">
+ <int value="0" label="Translate"/>
+ <int value="1" label="ShowOriginal"/>
+</enum>
+
+<enum name="MobileMessagesTranslateModalEvent">
+ <int value="0" label="ChangeSourceLanguage"/>
+ <int value="1" label="ChangeTargetLanguage"/>
+ <int value="2" label="ShowOriginal"/>
+ <int value="3" label="TappedAlwaysTranslate"/>
+ <int value="4" label="TappedNeverForSourceLanguage"/>
+ <int value="5" label="TappedNeverForThisSite"/>
+</enum>
+
+<enum name="MobileMessagesTranslateModalPresent">
+ <int value="0" label="PresentedAfterTranslatePromptBanner"/>
+ <int value="1" label="PresentedAfterTranslateFinishedBanner"/>
+</enum>
+
<enum name="MobileSessionCallerApp">
<int value="0" label="Google Search"/>
<int value="1" label="Gmail"/>
@@ -41757,6 +42611,15 @@ Called by update_use_counter_css.py.-->
<int value="6" label="Unknown"/>
</enum>
+<enum name="NaClAppTypeEnum">
+ <int value="0" label="PNaCl Open Web"/>
+ <int value="1" label="PNaCl Hosted App"/>
+ <int value="2" label="PNaCl Packaged App"/>
+ <int value="3" label="NaCl Open Web"/>
+ <int value="4" label="NaCl Hosted App"/>
+ <int value="5" label="NaCl Packaged App"/>
+</enum>
+
<enum name="NaClHelperStatus">
<int value="0" label="Helper not initialized"/>
<int value="1" label="Helper executable missing"/>
@@ -42101,6 +42964,22 @@ Called by update_use_counter_css.py.-->
foreground until the previous preconnect expired."/>
</enum>
+<enum name="NavigationPredictorLinkClickedPrerenderResult">
+ <int value="0"
+ label="The prerender finished entirely before the link was clicked"/>
+ <int value="1" label="The prerender was started but not finished"/>
+ <int value="2" label="The link was waiting to be prerendered"/>
+ <int value="3" label="The prerender was attempted, but blocked by policy"/>
+ <int value="4" label="The link scored poorly"/>
+ <int value="5" label="The link was not seen at the load event"/>
+ <int value="6"
+ label="The link was cross origin and scored above the threshold"/>
+ <int value="7"
+ label="The link was cross origin and scored below the threshold"/>
+ <int value="8"
+ label="The link was cross origin and not seen at the load event"/>
+</enum>
+
<enum name="NavigationRequiresDedicatedProcess">
<int value="0" label="Does not require dedicated process"/>
<int value="1" label="Requires dedicated process"/>
@@ -42483,7 +43362,7 @@ Called by update_net_error_codes.py.-->
<int value="502" label="NO_PRIVATE_KEY_FOR_CERT"/>
<int value="503" label="ADD_USER_CERT_FAILED"/>
<int value="504" label="INVALID_SIGNED_EXCHANGE"/>
- <int value="505" label="INVALID_BUNDLED_EXCHANGES"/>
+ <int value="505" label="INVALID_WEB_BUNDLE"/>
<int value="601" label="FTP_FAILED"/>
<int value="602" label="FTP_SERVICE_UNAVAILABLE"/>
<int value="603" label="FTP_TRANSFER_ABORTED"/>
@@ -44304,6 +45183,12 @@ Called by update_net_trust_anchors.py.-->
<int value="4" label="Stylus ejected"/>
</enum>
+<enum name="NewTabPage.ExploreOffline.Action">
+ <int value="0" label="Displayed explore offline card on NTP"/>
+ <int value="1" label="Clicked confirm button"/>
+ <int value="2" label="Clicked cancel button"/>
+</enum>
+
<enum name="NewTabPageActionAndroid">
<obsolete>
Deprecated as of 01/2017. Replaced by NewTabPageActionAndroid2.
@@ -45083,6 +45968,18 @@ Called by update_net_trust_anchors.py.-->
label="Account was not seeded before FireRefreshTokenAvailable"/>
</enum>
+<enum name="OAuth2MintTokenApiCallResult">
+ <int value="0" label="Mint token success"/>
+ <int value="1" label="Issue advice success"/>
+ <int value="2" label="Remote consent success"/>
+ <int value="3" label="Api call failure"/>
+ <int value="4" label="Parse JSON failure"/>
+ <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"/>
+</enum>
+
<enum name="OAuthMultiloginResponseStatus">
<int value="0" label="UNKNOWN_STATUS"/>
<int value="1" label="OK"/>
@@ -45869,7 +46766,7 @@ Called by update_net_trust_anchors.py.-->
</enum>
<enum name="OmniboxInputType">
- <int value="0" label="invalid"/>
+ <int value="0" label="empty"/>
<int value="1" label="unknown"/>
<int value="2" label="deprecated: requested url"/>
<int value="3" label="url"/>
@@ -46093,6 +46990,39 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Failed"/>
</enum>
+<enum name="OptimizationGuideHintsFetcherRequestStatus">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Success">Request sent and received response.</int>
+ <int value="2" label="Response Error">
+ Request sent but response not received.
+ </int>
+ <int value="3" label="Network Offline">
+ Request not sent because network offline.
+ </int>
+ <int value="4" label="Fetcher Busy">
+ Request not sent because fetcher busy with another request.
+ </int>
+ <int value="5" label="No Hosts to Fetch">
+ Request not sent because no hosts left after filtering.
+ </int>
+</enum>
+
+<enum name="OptimizationGuideNavigationHostCoveredStatus">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Covered">
+ The main frame host of the navigation was covered by a hint or was attempted
+ to be fetched from the remote Optimization Guide Service in the last 7 days.
+ </int>
+ <int value="2" label="Fetch Not Attempted">
+ A fetch for information from the remote Optimization Guide Service about the
+ main frame host of the navigation was not attempted.
+ </int>
+ <int value="3" label="Fetch Not Successful">
+ A fetch for information from the remote Optimization Guide Service about the
+ main frame host of the navigation was attempted but not successful.
+ </int>
+</enum>
+
<enum name="OptimizationGuideOptimizationFilterStatus">
<int value="0" label="Found a server blacklist configuration">
Found configuration data for a server blacklist.
@@ -46131,6 +47061,14 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Model for target not available on client">
The model for the optimization target not available on the client.
</int>
+ <int value="4" label="In model prediction holdback">
+ The page load is part of a model prediction holdback where all decisions
+ will return false in an attempt to not taint the data in order to understand
+ the production recall of the model.
+ </int>
+ <int value="5" label="Optimization Guide Decider not initialized">
+ The OptimizationGuideDecider was not initialized yet.
+ </int>
</enum>
<enum name="OptimizationGuideOptimizationTypeDecision">
@@ -46172,6 +47110,15 @@ Called by update_net_trust_anchors.py.-->
<int value="8" label="No hint available for page load">
There was no hint on the device that matched the page load.
</int>
+ <int value="9" label="Optimization Guide Decider not initialized">
+ The OptimizationGuideDecider was not initialized yet.
+ </int>
+ <int value="10" label="Hint was being fetched but was not available yet">
+ A fetch for a hint that matches the page load from the remote Optimization
+ Guide Service was started but was not available in time to make a decision.
+ (Added in M80, Previously, this was combined with &quot;No hint available
+ for page load&quot;.)
+ </int>
</enum>
<enum name="OptimizationGuideProcessHintsResult">
@@ -47201,6 +48148,13 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Clicked Ok"/>
</enum>
+<enum name="PasswordLeakDetectionError">
+ <int value="0" label="Not signed in"/>
+ <int value="1" label="Token request error"/>
+ <int value="2" label="Hashing/encryption error"/>
+ <int value="3" label="Invalid server response"/>
+</enum>
+
<enum name="PasswordLeakLookupResponseResult">
<int value="0" label="Success"/>
<int value="1" label="Network/server error"/>
@@ -47745,9 +48699,8 @@ Called by update_net_trust_anchors.py.-->
Form is suspected to be a password change form. (Only recorded for old form
parser)
</int>
- <int value="4" label="FOAS on HTTP">
- User is on an HTTP site where passwords are filled on account selection
- (FOAS).
+ <int value="4" label="Insecure Origin">
+ User is on a site with an insecure main frame origin.
</int>
<int value="5" label="Touch To Fill">
User is browsing with the Touch To Fill feature enabled.
@@ -48234,6 +49187,12 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Has password field"/>
</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."/>
+ <int value="2" label="Remove - If the PasswordForm login was removed."/>
+</enum>
+
<enum name="PasswordSubmissionEvent">
<int value="0" label="Password submission succeeded"/>
<int value="1" label="Password submission failed"/>
@@ -48747,6 +49706,8 @@ Called by update_net_trust_anchors.py.-->
<int value="15" label="PERMISSION_ACCESSIBILITY_EVENTS"/>
<int value="16" label="PERMISSION_CLIPBOARD_READ"/>
<int value="17" label="PERMISSION_SECURITY_KEY_ATTESTATION"/>
+ <int value="18" label="PERMISSION_PAYMENT_HANDLER"/>
+ <int value="19" label="PERMISSION_NFC"/>
</enum>
<enum name="PermissionStatus">
@@ -48778,6 +49739,7 @@ Called by update_net_trust_anchors.py.-->
<int value="19" label="PERMISSION_PERIODIC_BACKGROUND_SYNC"/>
<int value="20" label="PERMISSION_WAKE_LOCK_SCREEN"/>
<int value="21" label="PERMISSION_WAKE_LOCK_SYSTEM"/>
+ <int value="22" label="PERMISSION_NFC"/>
</enum>
<enum name="PersistedLogsLogReadStatus">
@@ -48807,6 +49769,13 @@ Called by update_net_trust_anchors.py.-->
<int value="6" label="Could Not Create Upload Directory"/>
</enum>
+<enum name="PhoneNumberRegexVariantResult">
+ <int value="0" label="None match"/>
+ <int value="1" label="Only simple matches"/>
+ <int value="2" label="Only variant matches"/>
+ <int value="3" label="Both match"/>
+</enum>
+
<enum name="PhotoEditorFileType">
<int value="0" label="jpg"/>
<int value="1" label="png"/>
@@ -48913,7 +49882,7 @@ Called by update_net_trust_anchors.py.-->
<summary>
Piet Error Code as defined in
com.google.search.now.ui.piet.ErrorsProto.ErrorCode, which located in
- /third_party/feed/src/main/proto/search/now/ui/piet/errors.proto.
+ /third_party/feed_library/src/main/proto/search/now/ui/piet/errors.proto.
</summary>
<int value="0" label="ERR_UNSPECIFIED"/>
<int value="1" label="ERR_MISSING_STYLESHEET"/>
@@ -50122,9 +51091,11 @@ Called by update_net_trust_anchors.py.-->
label="The page was being reloaded and the preview type can not be
shown on a reload."/>
<int value="9"
- label="Host blacklisted by server rules provided to the client."/>
+ label="Host blacklisted by server rules provided to the client
+ (obsolete)."/>
<int value="10"
- label="Host not whitelisted by server rules provided to the client."/>
+ label="Host not whitelisted by server rules provided to the client
+ (obsolete)."/>
<int value="11"
label="Preview Allowed without server rule check (obsolete)."/>
<int value="12" label="Committed Preview."/>
@@ -50132,7 +51103,8 @@ Called by update_net_trust_anchors.py.-->
Response header had Cache-Control:no-transform directive (developer
opt-out).
</int>
- <int value="14" label="Network is not slow per session threshold."/>
+ <int value="14"
+ label="Network is not slow per session threshold (obsolete)."/>
<int value="15" label="Device was reported as offline."/>
<int value="16"
label="URL contained Basic Authentication, i.e.: a username or
@@ -50143,6 +51115,7 @@ Called by update_net_trust_anchors.py.-->
<int value="20" label="Coin flip holdback encountered."/>
<int value="21" label="Redirect loop detected."/>
<int value="22" label="URL matched deny list."/>
+ <int value="23" label="Page load not predicted to be painful."/>
</enum>
<enum name="PreviewsHintCacheLevelDBStoreLoadMetadataResult">
@@ -50365,6 +51338,7 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Printer was setup from Settings"/>
<int value="2" label="Printer was setup by automatic USB configurer"/>
<int value="3" label="Printer was setup by arc print service"/>
+ <int value="4" label="Printer was setup via Extensions API"/>
</enum>
<enum name="PrintJobResult">
@@ -50377,6 +51351,9 @@ Called by update_net_trust_anchors.py.-->
</enum>
<enum name="PrintPreviewFailureType">
+<!-- This must be kept current with PrintPreviewErrorBuckets in
+ components/printing/renderer/print_render_frame_helper.h. -->
+
<int value="0" label="No error"/>
<int value="1" label="Bad settings from print preview tab"/>
<int value="2" label="Copy metadata failed"/>
@@ -50385,6 +51362,7 @@ Called by update_net_trust_anchors.py.-->
<int value="5" label="Mac draft metafile init failed (Deprecated)"/>
<int value="6" label="PreviewPageRendered with no metafile (Deprecated)"/>
<int value="7" label="Received bad printer settings"/>
+ <int value="8" label="Capture metadata failed"/>
</enum>
<enum name="PrintPreviewFontTypeType">
@@ -50529,6 +51507,14 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="kCloseByContextChange"/>
<int value="2" label="kCloseByTimeout"/>
<int value="3" label="kCloseByUser"/>
+ <int value="4" label="kTeleport"/>
+</enum>
+
+<enum name="ProactiveSuggestionsVeId">
+ <int value="76953" label="kRelatedNewsTimelineCard"/>
+ <int value="76954" label="kRelatedNewsVideoCard"/>
+ <int value="76955" label="kRelatedPageCard"/>
+ <int value="76958" label="kRelatedYoutubeVideoCard"/>
</enum>
<enum name="ProbeResult">
@@ -53935,6 +54921,22 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Revoke tokens for primary and secondary accounts"/>
</enum>
+<enum name="RoamingUserDataDirectoryDeletionResult">
+ <int value="0" label="Error">
+ An unexpected error occurred during processing.
+ </int>
+ <int value="1" label="Does not exist">
+ Roaming User Data dir does not exist.
+ </int>
+ <int value="2" label="Succeeded">Roaming User Data dir was deleted.</int>
+ <int value="3" label="Failed">
+ Roaming User Data dir could not be deleted.
+ </int>
+ <int value="4" label="Not in AppData">
+ Roaming User Data dir is not within the AppData dir.
+ </int>
+</enum>
+
<enum name="Rollback_OobeRestoreResult">
<int value="0" label="Succeeded"/>
<int value="1" label="Stage 1 Failure"/>
@@ -53959,6 +54961,18 @@ Called by update_net_trust_anchors.py.-->
<int value="7" label="Error parsing certificate"/>
</enum>
+<enum name="RTCAPIName">
+ <int value="0" label="GetUserMedia"/>
+ <int value="1" label="PeerConnection00"/>
+ <int value="2" label="DeprecatedPeerConnection"/>
+ <int value="3" label="RTCPeerConnection"/>
+ <int value="4" label="GetMediaDevices"/>
+ <int value="5" label="MediaStreamRecorder"/>
+ <int value="6" label="CanvasCaptureStream"/>
+ <int value="7" label="VideoCaptureStream"/>
+ <int value="8" label="GetDisplayMedia"/>
+</enum>
+
<enum name="RTCQuicStreamReadIntoResult">
<int value="0" label="SomeDataWithFin"/>
<int value="1" label="SomeDataNoFin"/>
@@ -54005,6 +55019,12 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Last redirect in URL chain"/>
</enum>
+<enum name="SafeBrowsingAllowlistAsyncMatch">
+ <int value="0" label="ASYNC"/>
+ <int value="1" label="MATCH"/>
+ <int value="2" label="NO_MATCH"/>
+</enum>
+
<enum name="SafeBrowsingAppOptIn">
<int value="0" label="No opt-in preference in manifest"/>
<int value="1" label="Explicit opt-in via manifest"/>
@@ -54019,6 +55039,15 @@ Called by update_net_trust_anchors.py.-->
<int value="5" label="NAVIGATION_EVENT_NOT_FOUND"/>
</enum>
+<enum name="SafeBrowsingBinaryUploadResult">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Success"/>
+ <int value="2" label="Upload failure"/>
+ <int value="3" label="Timeout"/>
+ <int value="4" label="File too large"/>
+ <int value="5" label="Failed to get token"/>
+</enum>
+
<enum name="SafeBrowsingParseV4HashResult">
<int value="0" label="PARSE_FROM_STRING_ERROR"/>
<int value="1" label="UNEXPECTED_THREAT_ENTRY_TYPE_ERROR"/>
@@ -54154,6 +55183,7 @@ Called by update_net_trust_anchors.py.-->
<int value="4" label="User dismissed the Safety Tip with the close button"/>
<int value="5" label="User dismissed the Safety Tip with the ignore button"/>
<int value="6" label="User opened help center"/>
+ <int value="7" label="No Safety Tip was shown"/>
</enum>
<enum name="SafetyTipStatus">
@@ -54193,6 +55223,31 @@ Called by update_net_trust_anchors.py.-->
label="Strictly same-site secure site-for-cookies to insecure request"/>
</enum>
+<enum name="SamlChallengeKeyHandlerResult">
+ <summary>
+ Tracks results of calculating response for a challenge from Verified Access
+ server for remove attestation during SAML authentication.
+ </summary>
+ <int value="0" label="kSuccess"/>
+ <int value="1" label="kDevicePolicyDisabledError"/>
+ <int value="2" label="kSignChallengeFailedError"/>
+ <int value="3" label="kUserNotManagedError"/>
+ <int value="4" label="kKeyRegistrationFailedError"/>
+ <int value="5" label="kUserKeyNotAvailableError"/>
+ <int value="6" label="kUserPolicyDisabledError"/>
+ <int value="7" label="kNonEnterpriseDeviceError"/>
+ <int value="8" label="kDbusError"/>
+ <int value="9" label="kUserRejectedError"/>
+ <int value="10" label="kGetCertificateFailedError"/>
+ <int value="11" label="kResetRequiredError"/>
+ <int value="12" label="kAttestationUnsupportedError"/>
+ <int value="13" label="kTimeoutError"/>
+ <int value="14" label="kDeviceWebBasedAttestationUrlError"/>
+ <int value="15" label="kExtensionNotWhitelistedError"/>
+ <int value="16" label="kChallengeBadBase64Error"/>
+ <int value="17" label="kDeviceWebBasedAttestationNotOobeError"/>
+</enum>
+
<enum name="SamlInSessionPasswordChangeEvent">
<summary>
Track how often we try to guide users through the in-session flow to change
@@ -54539,6 +55594,9 @@ Called by update_net_trust_anchors.py.-->
<int value="7" label="ASYNC_SCANNING"/>
<int value="8" label="BLOCKED_PASSWORD_PROTECTED"/>
<int value="9" label="BLOCKED_TOO_LARGE"/>
+ <int value="10" label="SENSITIVE_CONTENT_WARNING"/>
+ <int value="11" label="SENSITIVE_CONTENT_BLOCK"/>
+ <int value="12" label="DEEP_SCANNED_SAFE"/>
</enum>
<enum name="SBClientDownloadExtensions">
@@ -54931,6 +55989,14 @@ Called by update_net_trust_anchors.py.-->
<int value="385" label="WEBA"/>
<int value="386" label="WEBM"/>
<int value="387" label="XBM"/>
+ <int value="388" label="ACCDB"/>
+ <int value="389" label="ACCDE"/>
+ <int value="390" label="ACCDR"/>
+ <int value="391" label="ACCDA"/>
+ <int value="392" label="CER"/>
+ <int value="393" label="DER"/>
+ <int value="394" label="FILELOC"/>
+ <int value="395" label="WEBLOC"/>
</enum>
<enum name="SBClientDownloadIsSignedBinary">
@@ -55455,6 +56521,17 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Images and videos"/>
</enum>
+<enum name="SendBeginFrameResult">
+ <int value="0" label="Sent for frame timing"/>
+ <int value="1" label="Stopped by client request"/>
+ <int value="2" label="Stopped for unresponsive client"/>
+ <int value="3" label="Throttled for unresponsive client"/>
+ <int value="4" label="Sent for no active surface"/>
+ <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"/>
+</enum>
+
<enum name="SendPasswordFormToBrowserProcess">
<obsolete>
Removed from code March 2019.
@@ -55658,6 +56735,7 @@ Called by update_net_trust_anchors.py.-->
<int value="4" label="CONNECTION_ERROR"/>
<int value="5" label="RESPONSE_READER_ERROR"/>
<int value="6" label="META_DATA_SENDER_ERROR"/>
+ <int value="7" label="NO_CONTEXT_ERROR"/>
</enum>
<enum name="ServiceWorkerMainResourceRequestDestination">
@@ -56012,6 +57090,18 @@ Called by update_net_trust_anchors.py.-->
<int value="2" label="From TWA manage space activity"/>
</enum>
+<enum name="SettingsPageInteractions">
+ <int value="0" label="PRIVACY_SYNC_AND_GOOGLE_SERVICES"/>
+ <int value="1" label="PRIVACY_CHROME_SIGN_IN"/>
+ <int value="2" label="PRIVACY_DO_NOT_TRACK"/>
+ <int value="3" label="PRIVACY_PAYMENT_METHOD"/>
+ <int value="4" label="PRIVACY_NETWORK_PREDICTION"/>
+ <int value="5" label="PRIVACY_MANAGE_CERTIFICATES"/>
+ <int value="6" label="PRIVACY_SECURITY_KEYS"/>
+ <int value="7" label="PRIVACY_SITE_SETTINGS"/>
+ <int value="8" label="PRIVACY_CLEAR_BROWSING_DATA"/>
+</enum>
+
<enum name="SettingsResetPromptConfigError">
<int value="1" label="Config Ok"/>
<int value="2" label="Missing domain_hashes param"/>
@@ -56275,12 +57365,34 @@ Called by update_net_trust_anchors.py.-->
<int value="3" label="Error dialog"/>
</enum>
+<enum name="SharingMajorVersionComparison">
+ <int value="0" label="Unknown"/>
+ <int value="1" label="Sender version is lower"/>
+ <int value="2" label="Sender and receiver versions are same"/>
+ <int value="3" label="Sender version is higher"/>
+</enum>
+
<enum name="SharingMessageType">
<int value="0" label="Unknown"/>
<int value="1" label="Ping"/>
<int value="2" label="Ack"/>
<int value="3" label="ClickToCall"/>
<int value="4" label="SharedClipboard"/>
+ <int value="5" label="SmsFetchRequest"/>
+ <int value="6" label="RemoteCopy"/>
+ <int value="7" label="SignallingMessage"/>
+ <int value="8" label="IceCandidateMessage"/>
+</enum>
+
+<enum name="SharingRemoteCopyHandleMessageResult">
+ <int value="0" label="Success: handled text"/>
+ <int value="1" label="Success: handled image"/>
+ <int value="2" label="Failure: empty text"/>
+ <int value="3" label="Failure: image url not trustworthy"/>
+ <int value="4" label="Failure: image origin not allowed"/>
+ <int value="5" label="Failure: no image content loaded"/>
+ <int value="6" label="Failure: decode image failed"/>
+ <int value="7" label="Failure: decoded image draws nothing"/>
</enum>
<enum name="SharingSendMessageResult">
@@ -56316,6 +57428,12 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Failure"/>
</enum>
+<enum name="ShortReportReason">
+ <int value="1" label="No create time"/>
+ <int value="2" label="Not full"/>
+ <int value="3" label="Not full and no create time"/>
+</enum>
+
<enum name="ShouldAllowOpenURLFailureReason">
<summary>
Specifies the reason why the web-accessible resource check in
@@ -56438,6 +57556,9 @@ Called by update_net_trust_anchors.py.-->
<int value="1" label="Window close">The last browser window was closed.</int>
<int value="2" label="Browser exit">User clicked on the Exit menu item.</int>
<int value="3" label="End session">OS is logging off or shutting down.</int>
+ <int value="4" label="Silent exit relaunch">
+ Exit without onbeforeunload or in-progress download prompts.
+ </int>
</enum>
<enum name="SideloadUIEvents">
@@ -56524,6 +57645,9 @@ Called by update_net_trust_anchors.py.-->
<int value="24" label="Save card bubble"/>
<int value="25" label="Manage cards bubble"/>
<int value="27" label="Sync and Google services settings"/>
+ <int value="28" label="Re-signin from sync error card in settings"/>
+ <int value="29" label="Forced sign-in"/>
+ <int value="30" label="Re-signin after an account rename"/>
</enum>
<enum name="SigninAccountEquality">
@@ -57395,6 +58519,15 @@ Called by update_net_trust_anchors.py.-->
<int value="2" label="Other fragment navigation"/>
</enum>
+<enum name="SiteEngagementLevel">
+ <int value="0" label="None"/>
+ <int value="1" label="Minimal"/>
+ <int value="2" label="Low"/>
+ <int value="3" label="Medium"/>
+ <int value="4" label="High"/>
+ <int value="5" label="Max"/>
+</enum>
+
<enum name="SiteEngagementServiceEngagementType">
<int value="0" label="Navigation"/>
<int value="1" label="Keypress"/>
@@ -57568,6 +58701,12 @@ Called by update_net_trust_anchors.py.-->
<int value="5" label="Authenticated channel dropped"/>
</enum>
+<enum name="SmsReceiverDestroyedReason">
+ <int value="0" label="Navigated to new page"/>
+ <int value="1" label="Navigated to existing page"/>
+ <int value="2" label="Nagivated to same page"/>
+</enum>
+
<enum name="SMSReceiverInfobarAction">
<int value="0" label="Baseline: InfobarShown"/>
<int value="1" label="KeyboardDismissed"/>
@@ -58876,6 +60015,7 @@ Called by update_net_trust_anchors.py.-->
<int value="10" label="WWW_MISMATCH_FOUND_IN_SAN"/>
<int value="11" label="SHOW_MITM_SOFTWARE_INTERSTITIAL"/>
<int value="12" label="OS_REPORTS_CAPTIVE_PORTAL"/>
+ <int value="13" label="SHOW_BLOCKED_INTERCEPTION_INTERSTITIAL"/>
</enum>
<enum name="SSLErrorLearnMoreNavigationResult">
@@ -58926,9 +60066,18 @@ Called by update_net_trust_anchors.py.-->
<int value="0" label="TLS 1.2 (or earlier) full handshake (2-RTT)"/>
<int value="1" label="TLS 1.2 (or earlier) resumption (1-RTT)"/>
<int value="2" label="TLS 1.2 full handshake with False Start (1-RTT)"/>
- <int value="3" label="TLS 1.3 full handshake (1-RTT, usually)"/>
- <int value="4" label="TLS 1.3 resumption handshake (1-RTT, usually)"/>
+ <int value="3"
+ label="TLS 1.3 full handshake, HelloRetryRequest unknown (1-RTT or
+ 2-RTT)"/>
+ <int value="4"
+ label="TLS 1.3 resumption handshake, HelloRetryRequest unknown (1-RTT
+ or 2-RTT)"/>
<int value="5" label="TLS 1.3 0-RTT handshake (0-RTT)"/>
+ <int value="6" label="TLS 1.3 full handshake (1-RTT)"/>
+ <int value="7" label="TLS 1.3 resumption handshake (1-RTT)"/>
+ <int value="8" label="TLS 1.3 full handshake with HelloRetryRequest (2-RTT)"/>
+ <int value="9"
+ label="TLS 1.3 resumption handshake with HelloRetryRequest (2-RTT)"/>
</enum>
<enum name="SSLHandshakeEarlyDataReason">
@@ -59118,6 +60267,18 @@ Called by update_net_trust_anchors.py.-->
<int value="2" label="ACTION_ADDED_ANOTHER_ACCOUNT"/>
</enum>
+<enum name="StabilityEventType">
+ <summary>
+ One of several separate stability metrics. The values are non-contiguous as
+ they are a subset of values matching fields of the Stability proto (from the
+ SystemProfile).
+ </summary>
+ <int value="2" label="Pageload count"/>
+ <int value="3" label="Renderer crash count"/>
+ <int value="5" label="Extensions renderer count"/>
+ <int value="16" label="Browser crash count"/>
+</enum>
+
<enum name="StarsLaunchLocation">
<int value="0" label="All Items"/>
<int value="1" label="Uncategorized"/>
@@ -59147,6 +60308,9 @@ Called by update_net_trust_anchors.py.-->
<int value="5"
label="Abandoned because profiled content failed to load its main
resource"/>
+ <int value="6"
+ label="Abandoned because no content was visible at the beginning of
+ startup"/>
</enum>
<enum name="StartupTemperature">
@@ -59371,6 +60535,12 @@ Called by update_net_trust_anchors.py.-->
<int value="11" label="AbortedBecauseSentinelFileWasPresent"/>
</enum>
+<enum name="SuccessTimeoutStarted">
+ <int value="0" label="Success"/>
+ <int value="1" label="Timeout"/>
+ <int value="2" label="Started"/>
+</enum>
+
<enum name="SuggestAppsDialogCloseReason">
<int value="0" label="Unknown error"/>
<int value="1" label="Item installed"/>
@@ -60143,24 +61313,24 @@ would be helpful to identify which type is being sent.
<int value="12" label="Apps"/>
<int value="13" label="App Settings"/>
<int value="14" label="Extension Settings"/>
- <int value="15" label="App Notifications"/>
+ <int value="15" label="App Notifications (deprecated)"/>
<int value="16" label="History Delete Directives"/>
<int value="17" label="Nigori"/>
<int value="18" label="Device Information"/>
<int value="19" label="Experiments"/>
- <int value="20" label="Synced Notifications"/>
+ <int value="20" label="Synced Notifications (deprecated)"/>
<int value="21" label="Priority Preferences"/>
<int value="22" label="Dictionary"/>
<int value="23" label="Favicon Images"/>
<int value="24" label="Favicon Tracking"/>
<int value="25" label="Proxy Tabs"/>
<int value="26" label="Managed User Settings"/>
- <int value="27" label="Managed Users"/>
- <int value="28" label="Articles"/>
+ <int value="27" label="Managed Users (deprecated)"/>
+ <int value="28" label="Articles (deprecated)"/>
<int value="29" label="App List"/>
- <int value="30" label="Managed User Shared Settings"/>
- <int value="31" label="Synced Notification App Info"/>
- <int value="32" label="Wifi Credentials"/>
+ <int value="30" label="Managed User Shared Settings (deprecated)"/>
+ <int value="31" label="Synced Notification App Info (deprecated)"/>
+ <int value="32" label="Wifi Credentials (deprecated)"/>
<int value="33" label="Managed User Whitelists"/>
<int value="34" label="Autofill Wallet"/>
<int value="35" label="Autofill Wallet Metadata"/>
@@ -60245,6 +61415,16 @@ would be helpful to identify which type is being sent.
<int value="4" label="TRUSTED_VAULT_PASSPHRASE"/>
</enum>
+<enum name="SyncPassphraseType2">
+ <int value="0" label="No active syncing profiles"/>
+ <int value="1" label="Inconsistent state across profiles"/>
+ <int value="2" label="Implicit passphrase"/>
+ <int value="3" label="Keystore passphrase"/>
+ <int value="4" label="Frozen implicit passphrase"/>
+ <int value="5" label="Custom passphrase"/>
+ <int value="6" label="Trusted vault passphrase"/>
+</enum>
+
<enum name="SyncPositioningScheme">
<int value="0" label="UNIQUE_POSITION"/>
<int value="1" label="POSITION_IN_PARENT"/>
@@ -60388,6 +61568,8 @@ would be helpful to identify which type is being sent.
label="[Deprecated in M79] Sharing notification dismiss button"/>
<int value="11" label="Sharing error notification try again button"/>
<int value="12" label="Settings button for notifications."/>
+ <int value="13" label="Announcement notification ack button."/>
+ <int value="14" label="Announcement notification open button."/>
</enum>
<enum name="SystemNotificationType">
@@ -60412,6 +61594,7 @@ would be helpful to identify which type is being sent.
<int value="18" label="Shared Clipboard"/>
<int value="19" label="Permission Requests"/>
<int value="20" label="Permission Requests High"/>
+ <int value="21" label="Announcement"/>
</enum>
<enum name="TabBackgroundLoadStatus">
@@ -60464,6 +61647,11 @@ would be helpful to identify which type is being sent.
</int>
</enum>
+<enum name="TabPreviewCaptureType">
+ <int value="0" label="Copy from visible RenderWidgetHostView"/>
+ <int value="1" label="Streamed from background tab"/>
+</enum>
+
<enum name="TabRendererCrashStatus">
<int value="0" label="Shown in foreground app"/>
<int value="1" label="Hidden in foreground app"/>
@@ -60870,6 +62058,12 @@ would be helpful to identify which type is being sent.
<int value="3" label="CLIENT_NO_CHANNEL_ID_SERVICE"/>
</enum>
+<enum name="TokenStateOnRegistrationRequest">
+ <int value="0" label="Token was empty"/>
+ <int value="1" label="Token stayed unchanged"/>
+ <int value="2" label="Token has changed"/>
+</enum>
+
<enum name="TouchActions">
<int value="0" label="NONE"/>
<int value="1" label="PAN_LEFT"/>
@@ -61418,26 +62612,35 @@ Full version information for the fingerprint enum values:
-->
<int value="29785307" label="CROS Cr50 0.1.2"/>
+ <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)"/>
<int value="157181839" label="IFX 9655 rev 41 fw 4.34 build 03f2"/>
+ <int value="189188535" label="CROS Cr50 0.4.19"/>
<int value="228456405" label="CROS Cr50 0.3.11"/>
<int value="230386903" label="CROS Cr50 0.0.24 Eve Flags 0x7f00(prod)"/>
<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="337883107" label="CROS Cr50 0.4.20"/>
<int value="368058567" label="STM d08"/>
<int value="379654202" label="CROS Cr50 0.0.13"/>
<int value="399636984" label="CROS Cr50 0.0.18"/>
+ <int value="431107149" label="CROS Cr50 ro 0.0.11 rw 0.3.22"/>
<int value="487001745" label="IFX 9655 rev 38 fw 4.34 build 03f2"/>
<int value="517482723" label="IFX 9655 rev 38 fw 4.32 build 036f"/>
<int value="545386023" label="IFX 9670 rev 15 fw 6.43 build 00f3"/>
+ <int value="618235807" label="CROS Cr50 0.3.18"/>
<int value="639195905" label="IFX 9655 rev 35 fw 4.32 build 036f"/>
<int value="691364586" label="CROS Cr50 0.0.22 Eve Flags 0xff00(unknown)"/>
<int value="707846933" label="CROS Cr50 0.1.1 Flags 0x10(pre-pvt)"/>
<int value="752842103" label="CROS Cr50 0.0.25 Flags 0x10(pre-pvt)"/>
+ <int value="832251848" label="CROS Cr50 0.4.18"/>
+ <int value="839444603" label="CROS Cr50 0.3.21"/>
<int value="847042924" label="IFX 9645 rev 78 fw 133.33 build 00e3"/>
<int value="893364096" label="CROS Cr50 0.3.3"/>
<int value="928190862" label="CROS Cr50 0.0.17"/>
+ <int value="928401938" label="CROS Cr50 ro 0.0.11 rw w0.4.24"/>
<int value="969849518" label="CROS Cr50 0.4.9 Flags 0x10(pre-pvt)"/>
<int value="987235505" label="CROS Cr50 0.0.20"/>
<int value="987973414" label="IFX 9670 rev 15 fw 6.40 build 00be"/>
@@ -61454,6 +62657,7 @@ Full version information for the fingerprint enum values:
<int value="1437720528" label="IFX 9645 rev 78 fw 133.32 build 0050"/>
<int value="1451134301" label="IFX 9635 147.18 build 000f"/>
<int value="1490841853" label="IFX 9645 rev 49 fw 133.32 build 0050"/>
+ <int value="1520081310" label="CROS Cr50 0.0.22 variant"/>
<int value="1521866659" label="CROS Cr50 0.4.13 Flags 0x10(pre-pvt)"/>
<int value="1607230944" label="CROS Cr50 0.4.5 Flags 0x10(pre-pvt)"/>
<int value="1632371059" label="CROS Cr50 0.0.22"/>
@@ -61466,12 +62670,15 @@ Full version information for the fingerprint enum values:
<int value="1861735666" label="CROS Cr50 0.2.1 Flags 0x10(pre-pvt)"/>
<int value="1865292977" label="CROS Cr50 0.0.24 aka 0.3.0"/>
<int value="1887455524" label="CROS Cr50 0.0.21"/>
+ <int value="1897824456" label="CROS Cr50 0.4.23"/>
+ <int value="1902169266" label="CROS Cr50 0.4.16"/>
<int value="1903933708" label="CROS Cr50 0.4.3 Flags 0x10(pre-pvt)"/>
<int value="1941011596" label="IFX 9655 rev 35 fw 4.34 build 03f2"/>
<int value="1953654937" label="IFX 9645 rev 45 fw 133.33 build 00e3"/>
<int value="2024714959" label="IFX 9655 rev 32 fw 4.34 build 03f2"/>
<int value="2061474747"
label="CROS Cr50 0.2.2 aka 0.4.4 Flags 0x10(pre-pvt)"/>
+ <int value="2104725364" label="CROS Cr50 0.3.20"/>
</enum>
<enum name="TracingFinalizationDisallowedReason">
@@ -61596,6 +62803,10 @@ Full version information for the fingerprint enum values:
<int value="4" label="Unsupported language"/>
<int value="5" label="Identical language"/>
<int value="6" label="Translation error"/>
+ <int value="7" label="Translation timeout"/>
+ <int value="8" label="Unexpected script error"/>
+ <int value="9" label="Bad origin"/>
+ <int value="10" label="Script load error"/>
</enum>
<enum name="TranslateExplicitAskPromptEventType">
@@ -61627,6 +62838,8 @@ Full version information for the fingerprint enum values:
<int value="19" label="Aborted by CLD and HTML/content language conflict"/>
<int value="20" label="Disabled because network unavailable"/>
<int value="21" label="Page state doesn't require translation"/>
+ <int value="22"
+ label="Identical language translation, use source language Unknown"/>
</enum>
<enum name="TranslateLanguage">
@@ -61765,7 +62978,7 @@ Full version information for the fingerprint enum values:
</enum>
<enum name="UkmResetReason">
- <int value="0" label="OnSyncPrefsChanged"/>
+ <int value="0" label="OnUkmAllowedStateChanged"/>
<int value="1" label="UpdatePermissions"/>
</enum>
@@ -62464,6 +63677,18 @@ Full version information for the fingerprint enum values:
<int value="137457845" label="web_history_counter"/>
</enum>
+<enum name="URLRequestReferrerPolicy">
+ <int value="0" label="CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE"/>
+ <int value="1"
+ label="REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN"/>
+ <int value="2" label="ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN"/>
+ <int value="3" label="NEVER_CLEAR_REFERRER"/>
+ <int value="4" label="ORIGIN"/>
+ <int value="5" label="CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN"/>
+ <int value="6" label="ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE"/>
+ <int value="7" label="NO_REFERRER"/>
+</enum>
+
<enum name="UrlResolutionResult">
<int value="0" label="Absolute URL"/>
<int value="1" label="Resolutions Differ"/>
@@ -62627,6 +63852,7 @@ Full version information for the fingerprint enum values:
<int value="6" label="Regular Supervised"/>
<int value="7" label="ARC Kiosk"/>
<int value="8" label="Active Directory"/>
+ <int value="9" label="Web App Kiosk"/>
</enum>
<enum name="UserTypeChanged">
@@ -64202,7 +65428,7 @@ Full version information for the fingerprint enum values:
<enum name="WebAppInstallResultCode">
<int value="0" label="Success"/>
<int value="1" label="AlreadyInstalled"/>
- <int value="2" label="FailedUnknownReason"/>
+ <int value="2" label="DEPRECATED: FailedUnknownReason"/>
<int value="3" label="GetWebApplicationInfoFailed"/>
<int value="4" label="PreviouslyUninstalled"/>
<int value="5" label="WebContentsDestroyed"/>
@@ -64215,6 +65441,13 @@ Full version information for the fingerprint enum values:
<int value="12" label="WebAppDisabled"/>
<int value="13" label="InstallURLRedirected"/>
<int value="14" label="InstallURLLoadFailed"/>
+ <int value="15" label="ExpectedAppIdCheckFailed"/>
+ <int value="16" label="InstallURLLoadTimeout"/>
+ <int value="17" label="FailedPlaceholderUninstall"/>
+ <int value="18" label="NotInstallable"/>
+ <int value="19" label="BookmarkExtensionInstallError"/>
+ <int value="20" label="ApkWebInstallFailed"/>
+ <int value="21" label="FailedShuttingDown"/>
</enum>
<enum name="WebAppInstallSource">
@@ -64253,7 +65486,7 @@ Full version information for the fingerprint enum values:
<int value="3" label="App uninstalled during update"/>
<int value="4" label="App is placeholder"/>
<int value="5" label="App is up to date"/>
- <int value="6" label="App manifest invalid"/>
+ <int value="6" label="App not eligible"/>
<int value="7" label="App update failed"/>
<int value="8" label="App updated"/>
</enum>
@@ -64441,6 +65674,12 @@ Full version information for the fingerprint enum values:
<int value="3" label="Accepted only by NSS (rejected by iOS)."/>
</enum>
+<enum name="WebContentsAudioState">
+ <int value="0" label="Never played audio"/>
+ <int value="1" label="Currently playing audio"/>
+ <int value="2" label="Previously played audio"/>
+</enum>
+
<enum name="WebContentsState">
<int value="0" label="No WebContents"/>
<int value="1" label="Prerendered WebContents"/>
@@ -64701,18 +65940,6 @@ Full version information for the fingerprint enum values:
<int value="4" label="Excellent."/>
</enum>
-<enum name="WebRTCAPIName">
- <int value="0" label="GetUserMedia"/>
- <int value="1" label="PeerConnection00"/>
- <int value="2" label="DeprecatedPeerConnection"/>
- <int value="3" label="RTCPeerConnection"/>
- <int value="4" label="GetMediaDevices"/>
- <int value="5" label="MediaStreamRecorder"/>
- <int value="6" label="CanvasCaptureStream"/>
- <int value="7" label="VideoCaptureStream"/>
- <int value="8" label="GetDisplayMedia"/>
-</enum>
-
<enum name="WebRtcAudioCodecs">
<int value="0" label="Unknown"/>
<int value="1" label="Opus"/>
@@ -64864,6 +66091,42 @@ Full version information for the fingerprint enum values:
<int value="3" label="H264"/>
</enum>
+<enum name="WebSchedulerTrackedFeature">
+ <int value="0" label="WebSocket"/>
+ <int value="1" label="WebRTC"/>
+ <int value="2" label="MainResourceHasCacheControlNoCache"/>
+ <int value="3" label="MainResourceHasCacheControlNoStore"/>
+ <int value="4" label="SubresourceHasCacheControlNoCache"/>
+ <int value="5" label="SubresourceHasCacheControlNoStore"/>
+ <int value="6" label="PageShowEventListener"/>
+ <int value="7" label="PageHideEventListener"/>
+ <int value="8" label="BeforeUnloadEventListener"/>
+ <int value="9" label="UnloadEventListener"/>
+ <int value="10" label="FreezeEventListener"/>
+ <int value="11" label="ResumeEventListener"/>
+ <int value="12" label="ContainsPlugins"/>
+ <int value="13" label="DocumentLoaded"/>
+ <int value="14" label="DedicatedWorkerOrWorklet"/>
+ <int value="15" label="OutstandingNetworkRequest"/>
+ <int value="16" label="ServiceWorkerControlledPage"/>
+ <int value="17" label="OutstandingIndexedDBTransaction"/>
+ <int value="18" label="HasScriptableFramesInMultipleTabs"/>
+ <int value="19" label="RequestedGeolocationPermission"/>
+ <int value="20" label="RequestedNotificationsPermission"/>
+ <int value="21" label="RequestedMIDIPermission"/>
+ <int value="22" label="RequestedAudioCapturePermission"/>
+ <int value="23" label="RequestedVideoCapturePermission"/>
+ <int value="24" label="RequestedSensorsPermission"/>
+ <int value="25" label="RequestedBackgroundWorkPermission"/>
+ <int value="26" label="BroadcastChannel"/>
+ <int value="27" label="IndexedDBConnection"/>
+ <int value="28" label="WebGL"/>
+ <int value="29" label="WebVR"/>
+ <int value="30" label="WebXR"/>
+ <int value="31" label="SharedWorker"/>
+ <int value="32" label="WebLocks"/>
+</enum>
+
<enum name="WebShareMethod">
<int value="0" label="Share"/>
</enum>
@@ -65128,6 +66391,16 @@ Full version information for the fingerprint enum values:
<int value="2136345292" label="/privacy"/>
</enum>
+<enum name="WebUITabStripCloseActions">
+ <int value="0" label="Tap on tab counter"/>
+ <int value="1" label="Tap outside tab strip"/>
+ <int value="2" label="Tab selected in tab strip"/>
+</enum>
+
+<enum name="WebUITabStripOpenActions">
+ <int value="0" label="Tap on tab counter"/>
+</enum>
+
<enum name="WebUIUrlHashes">
<int value="-2103246641" label="chrome://signin-internals/"/>
<int value="-2034706497" label="chrome://net-internals/"/>
@@ -66185,6 +67458,10 @@ Full version information for the fingerprint enum values:
<int value="498163647" label="Windows 7 Service Pack 1 (Build 7601.24511)"/>
<int value="498163651" label="Windows 7 Service Pack 1 (Build 7601.24515)"/>
<int value="498163655" label="Windows 7 Service Pack 1 (Build 7601.24519)"/>
+ <int value="498163661" label="Windows 7 Service Pack 1 (Build 7601.24525)"/>
+ <int value="498163666" label="Windows 7 Service Pack 1 (Build 7601.24530)"/>
+ <int value="498163669" label="Windows 7 Service Pack 1 (Build 7601.24533)"/>
+ <int value="498163670" label="Windows 7 Service Pack 1 (Build 7601.24534)"/>
<int value="550502400" label="Windows 8 Preview (Build 8400.0)"/>
<int value="602931200" label="Windows 8 (Build 9200.0)"/>
<int value="602931201" label="Windows 8 (Build 9200.1)"/>
@@ -66269,6 +67546,9 @@ Full version information for the fingerprint enum values:
<int value="629165031" label="Windows 8.1 (Build 9600.19431)"/>
<int value="629165060" label="Windows 8.1 (Build 9600.19460)"/>
<int value="629165063" label="Windows 8.1 (Build 9600.19463)"/>
+ <int value="629165103" label="Windows 8.1 (Build 9600.19503)"/>
+ <int value="629165105" label="Windows 8.1 (Build 9600.19505)"/>
+ <int value="629165107" label="Windows 8.1 (Build 9600.19507)"/>
<int value="671090283" label="Windows 10 1507 (Build 10240.1643)"/>
<int value="671090292" label="Windows 10 1507 (Build 10240.1652)"/>
<int value="671090299" label="Windows 10 1507 (Build 10240.1659)"/>
@@ -66476,6 +67756,8 @@ Full version information for the fingerprint enum values:
<int value="943262792" label="Windows 10 1607 (Build 14393.3144)"/>
<int value="943262829" label="Windows 10 1607 (Build 14393.3181)"/>
<int value="943262852" label="Windows 10 1607 (Build 14393.3204)"/>
+ <int value="943262922" label="Windows 10 1607 (Build 14393.3274)"/>
+ <int value="943262948" label="Windows 10 1607 (Build 14393.3300)"/>
<int value="987168768" label="Windows 10 1703 (Build 15063.0)"/>
<int value="987168779" label="Windows 10 1703 (Build 15063.11)"/>
<int value="987168781" label="Windows 10 1703 (Build 15063.13)"/>
@@ -66545,6 +67827,7 @@ Full version information for the fingerprint enum values:
<int value="987170756" label="Windows 10 1703 (Build 15063.1988)"/>
<int value="987170789" label="Windows 10 1703 (Build 15063.2021)"/>
<int value="987170813" label="Windows 10 1703 (Build 15063.2045)"/>
+ <int value="987170876" label="Windows 10 1703 (Build 15063.2108)"/>
<int value="1068171279" label="Windows 10 1709 (Build 16299.15)"/>
<int value="1068171283" label="Windows 10 1709 (Build 16299.19)"/>
<int value="1068171328" label="Windows 10 1709 (Build 16299.64)"/>
@@ -66599,6 +67882,7 @@ Full version information for the fingerprint enum values:
<int value="1068172595" label="Windows 10 1709 (Build 16299.1331)"/>
<int value="1068172629" label="Windows 10 1709 (Build 16299.1365)"/>
<int value="1068172651" label="Windows 10 1709 (Build 16299.1387)"/>
+ <int value="1068172715" label="Windows 10 1709 (Build 16299.1451)"/>
<int value="1122893825" label="Windows 10 1803 (Build 17134.1)"/>
<int value="1122893829" label="Windows 10 1803 (Build 17134.5)"/>
<int value="1122893856" label="Windows 10 1803 (Build 17134.32)"/>
@@ -66643,6 +67927,9 @@ Full version information for the fingerprint enum values:
<int value="1122894774" label="Windows 10 1803 (Build 17134.950)"/>
<int value="1122894808" label="Windows 10 1803 (Build 17134.984)"/>
<int value="1122894830" label="Windows 10 1803 (Build 17134.1006)"/>
+ <int value="1122894864" label="Windows 10 1803 (Build 17134.1040)"/>
+ <int value="1122894893" label="Windows 10 1803 (Build 17134.1069)"/>
+ <int value="1122894923" label="Windows 10 1803 (Build 17134.1099)"/>
<int value="1164115969" label="Windows 10 1809 (Build 17763.1)"/>
<int value="1164115985" label="Windows 10 1809 (Build 17763.17)"/>
<int value="1164116023" label="Windows 10 1809 (Build 17763.55)"/>
@@ -66675,6 +67962,9 @@ Full version information for the fingerprint enum values:
<int value="1164116646" label="Windows 10 1809 (Build 17763.678)"/>
<int value="1164116688" label="Windows 10 1809 (Build 17763.720)"/>
<int value="1164116705" label="Windows 10 1809 (Build 17763.737)"/>
+ <int value="1164116743" label="Windows 10 1809 (Build 17763.775)"/>
+ <int value="1164116773" label="Windows 10 1809 (Build 17763.805)"/>
+ <int value="1164116800" label="Windows 10 1809 (Build 17763.832)"/>
<int value="1203372033" label="Windows 10 1903 (Build 18362.1)"/>
<int value="1203372062" label="Windows 10 1903 (Build 18362.30)"/>
<int value="1203372085" label="Windows 10 1903 (Build 18362.53)"/>
@@ -66694,6 +67984,9 @@ Full version information for the fingerprint enum values:
<int value="1203372359" label="Windows 10 1903 (Build 18362.327)"/>
<int value="1203372361" label="Windows 10 1903 (Build 18362.329)"/>
<int value="1203372388" label="Windows 10 1903 (Build 18362.356)"/>
+ <int value="1203372420" label="Windows 10 1903 (Build 18362.388)"/>
+ <int value="1203372450" label="Windows 10 1903 (Build 18362.418)"/>
+ <int value="1203372481" label="Windows 10 1903 (Build 18362.449)"/>
<int value="1203382032" label="Windows 10 1903 (Build 18362.10000)"/>
<int value="1203382037" label="Windows 10 1903 (Build 18362.10005)"/>
<int value="1203382038" label="Windows 10 1903 (Build 18362.10006)"/>
@@ -66702,6 +67995,7 @@ Full version information for the fingerprint enum values:
<int value="1203382046" label="Windows 10 1903 (Build 18362.10014)"/>
<int value="1203382047" label="Windows 10 1903 (Build 18362.10015)"/>
<int value="1203382051" label="Windows 10 1903 (Build 18362.10019)"/>
+ <int value="1203382056" label="Windows 10 1903 (Build 18362.10024)"/>
<int value="1239155688" label="Windows 10 Insider (Build 18908.1000)"/>
<int value="1240073192" label="Windows 10 Insider (Build 18922.1000)"/>
<int value="1240728552" label="Windows 10 Insider (Build 18932.1000)"/>
@@ -66757,6 +68051,34 @@ Full version information for the fingerprint enum values:
</enum>
<enum name="WinGetLastError">
+ <int value="-2146893820" label="NTE_BAD_LEN"/>
+ <int value="-2146893818" label="NTE_BAD_SIGNATURE"/>
+ <int value="-2146893815" label="NTE_BAD_FLAGS"/>
+ <int value="-2146893813" label="NTE_BAD_KEY_STATE">
+ The user password has changed since the private keys were encrypted.
+ </int>
+ <int value="-2146893810" label="NTE_NO_MEMORY"/>
+ <int value="-2146893809" label="NTE_EXISTS"/>
+ <int value="-2146893804" label="NTE_BAD_PROV_TYPE"/>
+ <int value="-2146893802" label="NTE_BAD_KEYSET"/>
+ <int value="-2146893801" label="NTE_PROV_TYPE_NOT_DEF"/>
+ <int value="-2146893800" label="NTE_PROV_TYPE_ENTRY_BAD"/>
+ <int value="-2146893799" label="NTE_KEYSET_NOT_DEF"/>
+ <int value="-2146893798" label="NTE_KEYSET_ENTRY_BAD"/>
+ <int value="-2146893797" label="NTE_PROV_TYPE_NO_MATCH"/>
+ <int value="-2146893796" label="NTE_SIGNATURE_FILE_BAD"/>
+ <int value="-2146893795" label="NTE_PROVIDER_DLL_FAIL"/>
+ <int value="-2146893794" label="NTE_PROV_DLL_NOT_FOUND"/>
+ <int value="-2146893793" label="NTE_BAD_KEYSET_PARAM"/>
+ <int value="-2146892987" label="SEC_E_DELEGATION_REQUIRED"/>
+ <int value="-1073741819" label="STATUS_ACCESS_VIOLATION"/>
+ <int value="-1073741818" label="STATUS_IN_PAGE_ERROR"/>
+ <int value="-1073741790" label="STATUS_ACCESS_DENIED"/>
+ <int value="-1073741766" label="STATUS_OBJECT_PATH_NOT_FOUND"/>
+ <int value="-1073741674" label="STATUS_PRIVILEGED_INSTRUCTION"/>
+ <int value="-1073741670" label="STATUS_INSUFFICIENT_RESOURCES"/>
+ <int value="-1073741634" label="STATUS_BAD_NETWORK_PATH"/>
+ <int value="-1073741566" label="STATUS_FILE_CORRUPT_ERROR"/>
<int value="0" label="SUCCESS"/>
<int value="1" label="INVALID_FUNCTION"/>
<int value="2" label="FILE_NOT_FOUND"/>
@@ -67273,8 +68595,23 @@ Full version information for the fingerprint enum values:
<int value="997" label="IO_PENDING"/>
<int value="998" label="NOACCESS"/>
<int value="999" label="SWAPERROR"/>
+ <int value="1011" label="ERROR_CANTOPEN"/>
+ <int value="1223" label="ERROR_CANCELLED"/>
+ <int value="1346" label="ERROR_BAD_IMPERSONATION_LEVEL"/>
+ <int value="1392" label="ERROR_FILE_CORRUPT"/>
+ <int value="1450" label="ERROR_NO_SYSTEM_RESOURCES"/>
+ <int value="1453" label="ERROR_WORKING_SET_QUOTA"/>
+ <int value="1717" label="RPC_S_UNKNOWN_IF"/>
+ <int value="1721" label="RPC_S_OUT_OF_RESOURCES"/>
+ <int value="1722" label="RPC_S_SERVER_UNAVAILABLE"/>
+ <int value="1723" label="RPC_S_SERVER_TOO_BUSY"/>
+ <int value="1726" label="RPC_S_CALL_FAILED"/>
<int value="1784" label="INVALID_USER_BUFFER"/>
<int value="1816" label="NOT_ENOUGH_QUOTA"/>
+ <int value="1818" label="RPC_S_CALL_CANCELLED"/>
+ <int value="6000" label="ERROR_ENCRYPTION_FAILED"/>
+ <int value="6001" label="ERROR_DECRYPTION_FAILED"/>
+ <int value="7041" label="ERROR_CTX_CONSOLE_DISCONNECT"/>
</enum>
<enum name="WinIFileOperationError">
@@ -67498,6 +68835,13 @@ Full version information for the fingerprint enum values:
<int value="8" label="OPENXR_DEVICE_ID"/>
</enum>
+<enum name="XRFeatureRequestStatus">
+ <int value="0" label="NotRequested"/>
+ <int value="1" label="Required"/>
+ <int value="2" label="OptionalAccepted"/>
+ <int value="3" label="OptionalRejected"/>
+</enum>
+
<enum name="XRReferenceSpaceType">
<int value="0" label="Viewer"/>
<int value="1" label="Local"/>
diff --git a/chromium/tools/metrics/histograms/expand_owners.py b/chromium/tools/metrics/histograms/expand_owners.py
index 5967ed4fc43..0e5ff3fe5d8 100644
--- a/chromium/tools/metrics/histograms/expand_owners.py
+++ b/chromium/tools/metrics/histograms/expand_owners.py
@@ -303,9 +303,10 @@ def ExpandHistogramsOWNERS(histograms):
Error: Raised if the OWNERS file with the given path does not exist.
"""
email_pattern = re.compile(_EMAIL_PATTERN)
+ iter_matches = extract_histograms.IterElementsWithTag
- for histogram in histograms.getElementsByTagName('histogram'):
- owners = histogram.getElementsByTagName('owner')
+ for histogram in iter_matches(histograms, 'histogram'):
+ owners = [owner for owner in iter_matches(histogram, 'owner', 1)]
# owner is a DOM Element with a single child, which is a DOM Text Node.
emails_with_dom_elements = set([
@@ -316,12 +317,10 @@ def ExpandHistogramsOWNERS(histograms):
# component is a DOM Element with a single child, which is a DOM Text Node.
components_with_dom_elements = set([
extract_histograms.NormalizeString(component.childNodes[0].data)
- for component in histogram.getElementsByTagName('component')])
+ for component in iter_matches(histogram, 'component', 1)])
- for index in range(len(owners)):
- owner = owners[index]
+ for index, owner in enumerate(owners):
owner_text = owner.childNodes[0].data
-
name = histogram.getAttribute('name')
if _IsEmailOrPlaceholder(index == 0, owner_text, name):
continue
diff --git a/chromium/tools/metrics/histograms/extract_histograms.py b/chromium/tools/metrics/histograms/extract_histograms.py
index 003314f9808..fdb9b6d5244 100644
--- a/chromium/tools/metrics/histograms/extract_histograms.py
+++ b/chromium/tools/metrics/histograms/extract_histograms.py
@@ -55,6 +55,7 @@ XML below will generate the following five histograms:
</histogram-configuration>
"""
+import bisect
import copy
import datetime
@@ -82,10 +83,59 @@ EXPIRY_DATE_PATTERN = "%Y-%m-%d"
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
+def IterElementsWithTag(root, tag, depth=-1):
+ """Iterates over DOM tree and yields elements matching tag name.
+
+ It's meant to be replacement for `getElementsByTagName`,
+ (which does recursive search) but without recursive search
+ (nested tags are not supported in histograms files).
+
+ Note: This generator stops going deeper in the tree when it detects
+ that there are elements with given tag.
+
+ Args:
+ root: XML dom tree.
+ tag: Element's tag name.
+ depth: Defines how deep in the tree function should search for a match.
+
+ Yields:
+ xml.dom.minidom.Node: Element matching criteria.
+ """
+ if depth == 0 and root.nodeType == _ELEMENT_NODE and root.tagName == tag:
+ yield root
+ return
+
+ had_tag = False
+
+ skipped = 0
+
+ for child in root.childNodes:
+ if child.nodeType == _ELEMENT_NODE and child.tagName == tag:
+ had_tag = True
+ yield child
+ else:
+ skipped += 1
+
+ depth -= 1
+
+ if not had_tag and depth != 0:
+ for child in root.childNodes:
+ for match in IterElementsWithTag(child, tag, depth):
+ yield match
+
+
def _GetTextFromChildNodes(node):
"""Returns a string concatenation of the text of the given node's children.
@@ -160,7 +210,7 @@ def _NormalizeAllAttributeValues(node):
Returns:
The normalized minidom node.
"""
- if node.nodeType == xml.dom.minidom.Node.ELEMENT_NODE:
+ if node.nodeType == _ELEMENT_NODE:
for a in node.attributes.keys():
node.attributes[a].value = NormalizeString(node.attributes[a].value)
@@ -234,7 +284,7 @@ def ExtractEnumsFromXmlTree(tree):
have_errors = False
last_name = None
- for enum in tree.getElementsByTagName('enum'):
+ for enum in IterElementsWithTag(tree, 'enum'):
name = enum.getAttribute('name')
if last_name is not None and name.lower() < last_name.lower():
logging.error('Enums %s and %s are not in alphabetical order', last_name,
@@ -251,7 +301,9 @@ def ExtractEnumsFromXmlTree(tree):
enum_dict['name'] = name
enum_dict['values'] = {}
- for int_tag in enum.getElementsByTagName('int'):
+ nodes = list(IterElementsWithTag(enum, 'int'))
+
+ for int_tag in nodes:
value_dict = {}
int_value = int(int_tag.getAttribute('value'))
if int_value in enum_dict['values']:
@@ -265,7 +317,7 @@ def ExtractEnumsFromXmlTree(tree):
enum_int_values = sorted(enum_dict['values'].keys())
last_int_value = None
- for int_tag in enum.getElementsByTagName('int'):
+ for int_tag in nodes:
int_value = int(int_tag.getAttribute('value'))
if last_int_value is not None and int_value < last_int_value:
logging.error('Enum %s int values %d and %d are not in numerical order',
@@ -282,9 +334,9 @@ def ExtractEnumsFromXmlTree(tree):
else:
last_int_value = int_value
- summary_nodes = enum.getElementsByTagName('summary')
- if summary_nodes:
- enum_dict['summary'] = _GetTextFromChildNodes(summary_nodes[0])
+ for summary in IterElementsWithTag(enum, 'summary'):
+ enum_dict['summary'] = _GetTextFromChildNodes(summary)
+ break
enums[name] = enum_dict
@@ -309,8 +361,9 @@ def _ExtractOwners(histogram):
owners = []
has_owner = False
- for owner_node in histogram.getElementsByTagName('owner'):
- owner_text = _GetTextFromChildNodes(owner_node)
+ for owner_node in IterElementsWithTag(histogram, 'owner', 1):
+ child = owner_node.firstChild
+ owner_text = (child and child.nodeValue) or ''
is_email = email_pattern.match(owner_text)
if owner_text and (is_email or OWNER_PLACEHOLDER in owner_text):
@@ -355,7 +408,7 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
histograms = {}
have_errors = False
last_name = None
- for histogram in tree.getElementsByTagName('histogram'):
+ for histogram in IterElementsWithTag(tree, 'histogram'):
name = histogram.getAttribute('name')
if last_name is not None and name.lower() < last_name.lower():
logging.error('Histograms %s and %s are not in alphabetical order',
@@ -382,12 +435,12 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
have_errors = True
# Find <owner> tag.
- owners, hasOwner = _ExtractOwners(histogram)
+ owners, has_owner = _ExtractOwners(histogram)
if owners:
histogram_entry['owners'] = owners
# Find <summary> tag.
- summary_nodes = histogram.getElementsByTagName('summary')
+ summary_nodes = list(IterElementsWithTag(histogram, 'summary'))
if summary_nodes:
histogram_entry['summary'] = _GetTextFromChildNodes(summary_nodes[0])
@@ -395,7 +448,7 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
histogram_entry['summary'] = 'TBD'
# Find <obsolete> tag.
- obsolete_nodes = histogram.getElementsByTagName('obsolete')
+ obsolete_nodes = list(IterElementsWithTag(histogram, 'obsolete', 1))
if obsolete_nodes:
reason = _GetTextFromChildNodes(obsolete_nodes[0])
histogram_entry['obsolete'] = reason
@@ -406,7 +459,7 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
have_errors = True
# Non-obsolete histograms should specify <owner>s.
- if not obsolete_nodes and not hasOwner:
+ if not obsolete_nodes and not has_owner:
logging.error('histogram %s should specify <owner>s', name)
have_errors = True
@@ -421,9 +474,9 @@ def _ExtractHistogramsFromXmlTree(tree, enums):
histogram_entry['units'] = histogram.getAttribute('units')
# Find <details> tag.
- details_nodes = histogram.getElementsByTagName('details')
- if details_nodes:
- histogram_entry['details'] = _GetTextFromChildNodes(details_nodes[0])
+ for node in IterElementsWithTag(histogram, 'details'):
+ histogram_entry['details'] = _GetTextFromChildNodes(node)
+ break
# Handle enum types.
if histogram.hasAttribute('enum'):
@@ -476,7 +529,9 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
# Verify order of histogram_suffixes fields first.
last_name = None
- for histogram_suffixes in tree.getElementsByTagName(histogram_suffix_tag):
+
+ for histogram_suffixes in IterElementsWithTag(
+ tree, histogram_suffix_tag, depth=1):
name = histogram_suffixes.getAttribute('name')
if last_name is not None and name.lower() < last_name.lower():
logging.error('histogram_suffixes %s and %s are not in alphabetical '
@@ -491,7 +546,7 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
reprocess_queue = []
def GenerateHistogramSuffixes():
- for f in tree.getElementsByTagName(histogram_suffix_tag):
+ for f in IterElementsWithTag(tree, histogram_suffix_tag):
yield 0, f
for r, f in reprocess_queue:
yield r, f
@@ -499,8 +554,8 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
for reprocess_count, histogram_suffixes in GenerateHistogramSuffixes():
# Check dependencies first
dependencies_valid = True
- affected_histograms = histogram_suffixes.getElementsByTagName(
- 'affected-histogram')
+ 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:
@@ -524,7 +579,7 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
group_obsolete_reason = _GetObsoleteReason(histogram_suffixes)
name = histogram_suffixes.getAttribute('name')
- suffix_nodes = histogram_suffixes.getElementsByTagName(suffix_tag)
+ suffix_nodes = list(IterElementsWithTag(histogram_suffixes, suffix_tag, 1))
suffix_labels = {}
for suffix in suffix_nodes:
suffix_name = suffix.getAttribute('name')
@@ -546,7 +601,7 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
histogram_name, name)
have_errors = True
last_histogram_name = histogram_name
- with_suffixes = affected_histogram.getElementsByTagName(with_tag)
+ with_suffixes = list(IterElementsWithTag(affected_histogram, with_tag, 1))
if with_suffixes:
suffixes_to_add = with_suffixes
else:
@@ -571,26 +626,20 @@ 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.
- if 'fieldtrial_groups' not in histograms[new_histogram_name]:
- histograms[new_histogram_name]['fieldtrial_groups'] = []
- histograms[new_histogram_name]['fieldtrial_groups'].append(
- suffix_name)
-
- if 'fieldtrial_names' not in histograms[new_histogram_name]:
- histograms[new_histogram_name]['fieldtrial_names'] = []
- histograms[new_histogram_name]['fieldtrial_names'].append(name)
-
- if 'fieldtrial_labels' not in histograms[new_histogram_name]:
- histograms[new_histogram_name]['fieldtrial_labels'] = []
- histograms[new_histogram_name]['fieldtrial_labels'].append(
- suffix_label)
+ 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.
if owners:
- histograms[new_histogram_name]['owners'] = owners
+ histogram_entry['owners'] = owners
# If a suffix has an obsolete node, it's marked as obsolete for the
# specified reason, overwriting its group's obsoletion reason if the
@@ -602,9 +651,9 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
# If the suffix has an obsolete tag, all histograms it generates
# inherit it.
if obsolete_reason:
- histograms[new_histogram_name]['obsolete'] = obsolete_reason
+ histogram_entry['obsolete'] = obsolete_reason
- _ProcessBaseHistogramAttribute(suffix, histograms[new_histogram_name])
+ _ProcessBaseHistogramAttribute(suffix, histogram_entry)
except Error:
have_errors = True
@@ -612,6 +661,26 @@ def _UpdateHistogramsWithSuffixes(tree, histograms):
return have_errors
+def _GetTagSubTree(tree, tag, depth):
+ """Returns sub tree with tag element as a root.
+
+ When no element with tag name is found or there are many of them
+ original tree is returned.
+
+ Args:
+ tree: XML dom tree.
+ tag: Element's tag name.
+ depth: Defines how deep in the tree function should search for a match.
+
+ Returns:
+ xml.dom.minidom.Node: Sub tree (matching criteria) or original one.
+ """
+ entries = list(IterElementsWithTag(tree, tag, depth))
+ if len(entries) == 1:
+ tree = entries[0]
+ return tree
+
+
def ExtractHistogramsFromDom(tree):
"""Computes the histogram names and descriptions from the XML representation.
@@ -621,13 +690,18 @@ def ExtractHistogramsFromDom(tree):
Returns:
a tuple of (histograms, status) where histograms is a dictionary mapping
histogram names to dictionaries containing histogram descriptions and status
- is a boolean indicating if errros were encoutered in processing.
+ is a boolean indicating if errros were encountered in processing.
"""
_NormalizeAllAttributeValues(tree)
- enums, enum_errors = ExtractEnumsFromXmlTree(tree)
- histograms, histogram_errors = _ExtractHistogramsFromXmlTree(tree, enums)
- update_errors = _UpdateHistogramsWithSuffixes(tree, histograms)
+ enums_tree = _GetTagSubTree(tree, 'enums', 2)
+ histograms_tree = _GetTagSubTree(tree, 'histograms', 2)
+ histogram_suffixes_tree = _GetTagSubTree(tree, 'histogram_suffixes_list', 2)
+ enums, enum_errors = ExtractEnumsFromXmlTree(enums_tree)
+ histograms, histogram_errors = _ExtractHistogramsFromXmlTree(
+ histograms_tree, enums)
+ update_errors = _UpdateHistogramsWithSuffixes(
+ histogram_suffixes_tree, histograms)
return histograms, enum_errors or histogram_errors or update_errors
diff --git a/chromium/tools/metrics/histograms/histograms.xml b/chromium/tools/metrics/histograms/histograms.xml
index b972a144a5f..ce81557030f 100644
--- a/chromium/tools/metrics/histograms/histograms.xml
+++ b/chromium/tools/metrics/histograms/histograms.xml
@@ -95,6 +95,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Accessibility.CaptionSettingsLoadedFromPrefs"
+ enum="BooleanEnabled" expires_after="M85">
+ <owner>evliu@google.com</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Whether custom caption settings were loaded from the user preferences.
+ Recorded when WebKit preferences are overridden.
+ </summary>
+</histogram>
+
<histogram name="Accessibility.CrosAlwaysShowA11yMenu" enum="BooleanEnabled"
expires_after="M82">
<owner>dmazzoni@chromium.org</owner>
@@ -116,7 +126,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosAutoclick.TrayMenu.ChangeAction"
- enum="AutoclickActionType" expires_after="2020-03-30">
+ enum="AutoclickActionType" expires_after="2020-05-31">
<owner>katie@chromium.org</owner>
<owner>dtseng@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
@@ -166,7 +176,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosCursorHighlight" enum="BooleanEnabled"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>dmazzoni@chromium.org</owner>
<summary>
Whether the Chrome OS cursor highlighting is on (logged once 45 secs after
@@ -211,7 +221,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosHighContrast" enum="BooleanEnabled"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<summary>
@@ -250,7 +260,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosSelectToSpeak" enum="BooleanEnabled"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>dmazzoni@chromium.org</owner>
<summary>
Whether the Chrome OS select-to-speak is on (logged once 45 secs after
@@ -317,7 +327,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosSpokenFeedback" enum="BooleanEnabled"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>aleventhal@google.com</owner>
@@ -358,7 +368,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.CrosVirtualKeyboard" enum="BooleanEnabled"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>dmazzoni@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<summary>
@@ -378,7 +388,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.ImageLabels.ContextMenuOption"
- enum="AccessibilityImageLabelMode" expires_after="2020-02-15">
+ enum="AccessibilityImageLabelMode" expires_after="2020-04-26">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<summary>
@@ -391,7 +401,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.ImageLabels.FromSettings.ToggleSetting"
- enum="BooleanEnabled" expires_after="2020-02-15">
+ enum="BooleanEnabled" expires_after="2020-04-19">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<summary>
@@ -404,7 +414,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.ImageLabels.ModalDialogAccepted"
- enum="BooleanAccepted" expires_after="2020-02-15">
+ enum="BooleanAccepted" expires_after="2020-04-19">
<owner>katie@chromium.org</owner>
<owner>dmazzoni@chromium.org</owner>
<summary>
@@ -430,6 +440,7 @@ uploading your change for review.
<histogram name="Accessibility.iOS.NewLargerTextCategory" enum="BooleanHit"
expires_after="M81">
<owner>mrsuyi@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
<summary>
This metric is related to the Preferred Content Size chosen by the user. It
is only recorded once per session. This is hit if the chosen category is not
@@ -514,7 +525,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.ModeFlag" enum="AccessibilityModeFlagEnum"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dmazzoni@chromium.org</owner>
<owner>aboxhall@chromium.org</owner>
<summary>
@@ -542,7 +553,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Accessibility.ScreenReader.Image.MinSize"
- units="px" expires_after="M80">
+ units="px" expires_after="2020-05-10">
<!-- Name completed by histogram_suffixes
name="AccessibilityScreenReaderImage" -->
@@ -584,6 +595,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Accessibility.VTTContainsStyleBlock" enum="BooleanEnabled"
+ expires_after="M85">
+ <owner>evliu@google.com</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Whether a VTT file contains an embedded style block. Recorded when a VTT
+ file is parsed.
+ </summary>
+</histogram>
+
<histogram name="Accessibility.Win.AnimationsEnabled" enum="BooleanEnabled"
expires_after="2019-11-02">
<owner>dmazzoni@chromium.org</owner>
@@ -674,7 +695,7 @@ uploading your change for review.
</histogram>
<histogram name="Accessibility.WinScreenReader2" enum="BooleanEnabled"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<!-- expires-never: usage drives a11y prioritization in browser and content. -->
<owner>aleventhal@chromium.org</owner>
@@ -725,7 +746,7 @@ uploading your change for review.
</histogram>
<histogram name="AccountManager.LegacySetPrimaryAccountAndUpdateAccountInfo"
- enum="BooleanUsage" expires_after="2020-02-23">
+ enum="BooleanUsage" expires_after="2020-04-26">
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the usage of the legacy Primary Account setting flow vs the new flow
@@ -735,7 +756,7 @@ uploading your change for review.
</histogram>
<histogram name="AccountManager.Migrations.Result" enum="BooleanSuccess"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the final result of migrating accounts to Chrome OS Account Manager.
@@ -744,7 +765,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="AccountManager.Migrations.StepResult"
- enum="BooleanSuccess" expires_after="2020-03-29">
+ enum="BooleanSuccess" expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes
name="AccountManagerMigrationSteps" -->
@@ -756,8 +777,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="AccountManager.MirrorReauthenticationRequest"
+ enum="BooleanHit" expires_after="2020-10-01">
+ <owner>sinhak@chromium.org</owner>
+ <owner>anastasiian@chromium.org</owner>
+ <summary>
+ Whether user has received a Mirror re-authentication request for account
+ with invalid cookies. Recorded when we open a re-authentication dialog for
+ the invalid account. See https://crbug.com/1012649 for details.
+ </summary>
+</histogram>
+
<histogram name="AccountManager.NumAccounts" units="count"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sinhak@chromium.org</owner>
<summary>
Tracks the number of accounts stored in Chrome OS Account Manager by a given
@@ -1010,7 +1042,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Ads.Features.AdResourceIsIsolated" enum="AdIsolatedInfo">
+<histogram name="Ads.Features.AdResourceIsIsolated" enum="AdIsolatedInfo"
+ expires_after="M80">
<obsolete>
Removed April 2019
</obsolete>
@@ -1036,6 +1069,9 @@ uploading your change for review.
</histogram>
<histogram name="Ads.Media.BytesReceived" units="KB" expires_after="2020-01-26">
+ <obsolete>
+ Deprecated 10/2019 in issue 1000058; no longer needed.
+ </obsolete>
<owner>johnidel@chromium.org</owner>
<summary>
Total number of bytes buffered over the lifetime of a WebMediaPlayer inside
@@ -1043,7 +1079,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Ads.Media.Duration" units="ms" expires_after="2020-02-23">
+<histogram name="Ads.Media.Duration" units="ms" expires_after="2020-04-26">
<owner>johnidel@chromium.org</owner>
<owner>dalecurtis@chromium.org</owner>
<summary>
@@ -1089,7 +1125,10 @@ uploading your change for review.
For a given resource fetched from the disk cache or blink memory cache, logs
the encoded body length of the resource, even if the resource request was
canceled or incomplete. Recorded when the resource request is complete, or
- when the page is destroyed/navigated for incomplete resources.
+ when the page is destroyed/navigated for incomplete resources. The sum of
+ samples across a page load may differ substatially from the true sum due to
+ per-sample rounding. These are not intended to be compared to page level
+ histograms.
</summary>
</histogram>
@@ -1148,7 +1187,10 @@ uploading your change for review.
For a given resource fetched from the network, logs the network bytes used
to load the resource (including headers), even if the resource request was
canceled or incomplete. Recorded when the resource request is complete, or
- when the page is destroyed/navigated for incomplete resources.
+ when the page is destroyed/navigated for incomplete resources. The sum of
+ samples across a page load may differ substatially from the true sum due to
+ per-sample rounding. These are not intended to be compared to page level
+ histograms.
</summary>
</histogram>
@@ -1232,7 +1274,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Clicked.HrefEngagementScorePositive"
- units="score">
+ units="score" expires_after="M80">
<obsolete>
Obsoleted in M79.
</obsolete>
@@ -1258,7 +1300,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Clicked.NavigationScoreRank" units="rank"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>chelu@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -1269,7 +1311,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Clicked.OnDSE.SameHost"
- enum="BooleanAnchorElementSameHost" expires_after="2020-03-01">
+ enum="BooleanAnchorElementSameHost" expires_after="2020-05-03">
<owner>tbansal@chromium.org</owner>
<summary>
True if the target link of the anchor element has the same host as the root
@@ -1278,7 +1320,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Clicked.OnNonDSE.SameHost"
- enum="BooleanAnchorElementSameHost" expires_after="2020-03-01">
+ enum="BooleanAnchorElementSameHost" expires_after="2020-05-03">
<owner>tbansal@chromium.org</owner>
<summary>
True if the target link of the anchor element has the same host as the root
@@ -1332,7 +1374,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Clicked.RatioRootHeight" units="%"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>chelu@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -1401,7 +1443,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="AnchorElementMetrics.DocumentEngagementScore"
- units="score">
+ units="score" expires_after="M80">
<obsolete>
Obsoleted in M79.
</obsolete>
@@ -1414,7 +1456,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="AnchorElementMetrics.HrefEngagementScore2"
- units="score">
+ units="score" expires_after="M80">
<obsolete>
Obsoleted in M79.
</obsolete>
@@ -1427,7 +1469,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="AnchorElementMetrics.HrefEngagementScoreExternal"
- units="score">
+ units="score" expires_after="M80">
<obsolete>
Obsoleted in M79.
</obsolete>
@@ -1549,7 +1591,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Visible.NumberOfAnchorElements"
- units="count" expires_after="2020-02-16">
+ units="count" expires_after="2020-04-26">
<owner>chelu@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -1559,7 +1601,7 @@ uploading your change for review.
</histogram>
<histogram name="AnchorElementMetrics.Visible.NumberOfAnchorElementsAfterMerge"
- units="count" expires_after="2020-02-16">
+ units="count" expires_after="2020-04-26">
<owner>chelu@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -1693,7 +1735,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.MigrationToProto"
- enum="BackgroundTaskId" expires_after="2019-11-30">
+ enum="BackgroundTaskId" expires_after="M85">
<owner>ioanastefan@chromium.org</owner>
<owner>nator@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -1746,7 +1788,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative"
- enum="BackgroundTaskId" expires_after="2020-03-22">
+ enum="BackgroundTaskId" expires_after="2020-05-24">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>Records that a specific background task has loaded native.</summary>
@@ -1774,7 +1816,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Failure"
- enum="BackgroundTaskId" expires_after="2020-03-29">
+ enum="BackgroundTaskId" expires_after="2020-05-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -1783,7 +1825,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Success"
- enum="BackgroundTaskId" expires_after="2020-03-29">
+ enum="BackgroundTaskId" expires_after="2020-05-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -1792,14 +1834,14 @@ uploading your change for review.
</histogram>
<histogram name="Android.BackgroundTaskScheduler.TaskStarted"
- enum="BackgroundTaskId" expires_after="2020-03-22">
+ enum="BackgroundTaskId" expires_after="2020-05-24">
<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-03-29">
+ enum="BackgroundTaskId" expires_after="2020-05-31">
<owner>fgorski@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -1836,6 +1878,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Android.ChromeActivity.Type" enum="ChromeActivityType"
+ expires_after="never">
+<!-- expires-never: Used to classify UMA reports by the dashboards. -->
+
+ <owner>peconn@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Recorded at the same time as &quot;CustomTabs.Visible&quot;, this metric
+ should eventually replace that one. This additionally distinguishes between
+ Trusted Web Activities, WebAPKs and Webapps.
+ </summary>
+</histogram>
+
<histogram name="Android.ChromeBrowserProvider.CallerHasPermission"
enum="ClientAppId" expires_after="M81">
<owner>yfriedman@chromium.org</owner>
@@ -1856,7 +1911,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.ChromeHome.DurationOpen" units="ms">
+<histogram name="Android.ChromeHome.DurationOpen" units="ms"
+ expires_after="M80">
<obsolete>
Unused as of 7/2019
</obsolete>
@@ -2054,7 +2110,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.ChromeHome.UserPreference.Enabled"
- enum="BooleanEnabled">
+ enum="BooleanEnabled" expires_after="M80">
<obsolete>
Unused as of 7/2019
</obsolete>
@@ -2099,6 +2155,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Android.ContactsPicker.AddressHasDerivedField"
+ enum="AddressHasDerivedField" expires_after="2020-09-01">
+ <owner>finnur@chromium.org</owner>
+ <owner>rayankans@chromium.org</owner>
+ <summary>
+ Measures whether the address selected from the contacts picker has derived
+ fields. Derived fields refer to the individual attributes of a full address,
+ such as city, country, region, or postcode.
+ </summary>
+</histogram>
+
<histogram name="Android.ContactsPicker.ContactCount" units="Contacts"
expires_after="2020-09-01">
<owner>finnur@chromium.org</owner>
@@ -2230,7 +2297,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DirectAction.Perform" enum="DirectActionId"
- expires_after="M78">
+ expires_after="M90">
<owner>szermatt@chromium.org</owner>
<owner>autofill_assistant@google.com</owner>
<summary>
@@ -2250,7 +2317,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.Download.InfoBar.Shown"
- enum="DownloadInfoBar.ShownState" expires_after="2020-02-23">
+ enum="DownloadInfoBar.ShownState" expires_after="2020-04-26">
<owner>shaktisahu@chromium.org</owner>
<summary>
Records various types of messages representing the state of the downloads as
@@ -2259,7 +2326,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.Download.Rename.Dialog.Action"
- enum="Android.Download.Rename.Dialog.Action" expires_after="2020-03-29">
+ enum="Android.Download.Rename.Dialog.Action" expires_after="2020-05-31">
<owner>hesen@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -2269,7 +2336,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.Download.Rename.Result"
- enum="Android.Download.Rename.Result" expires_after="2020-03-29">
+ enum="Android.Download.Rename.Result" expires_after="2020-05-31">
<owner>hesen@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -2311,7 +2378,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.InitialCount" units="units"
- expires_after="2020-02-23">
+ expires_after="2020-05-24">
<owner>dtrainor@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -2345,7 +2412,8 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.List.Section.Menu.Images.Action"
- enum="Android.DownloadManager.List.Section.Menu.Actions">
+ enum="Android.DownloadManager.List.Section.Menu.Actions"
+ expires_after="M80">
<obsolete>
Deprecated October 2019. The feature was dropped during implementation
review.
@@ -2357,14 +2425,14 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.List.View.Action"
- enum="Android.DownloadManager.List.View.Actions" expires_after="2020-03-22">
+ enum="Android.DownloadManager.List.View.Actions" expires_after="2020-05-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-03-29">
+ enum="Android.DownloadManager.Menu.Actions" expires_after="2020-05-31">
<owner>dtrainor@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>The count of Download Home top level menu actions taken.</summary>
@@ -2399,7 +2467,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.NotificationLaunch"
- enum="DownloadNotificationLaunchType">
+ enum="DownloadNotificationLaunchType" expires_after="M80">
<obsolete>
Deprecated July 2019. The relaunch rarely happens.
</obsolete>
@@ -2413,7 +2481,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.NotificationsCount.ForegroundDisabled"
- units="notifications">
+ units="notifications" expires_after="M80">
<obsolete>
Deprecated July 2019.
</obsolete>
@@ -2428,7 +2496,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.NotificationsCount.ForegroundEnabled"
- units="notifications">
+ units="notifications" expires_after="M80">
<obsolete>
Deprecated July 2019.
</obsolete>
@@ -2450,7 +2518,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.OpenSource.Other"
- enum="AndroidDownloadOpenSource" expires_after="2020-02-02">
+ enum="AndroidDownloadOpenSource" expires_after="2020-05-17">
<owner>xingliu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>
@@ -2460,7 +2528,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.DownloadManager.OpenSource.Video"
- enum="AndroidDownloadOpenSource" expires_after="2020-02-02">
+ enum="AndroidDownloadOpenSource" expires_after="2020-05-03">
<owner>xingliu@chromium.org</owner>
<owner>clank-downloads@google.com</owner>
<summary>Records how users open video download files on Android.</summary>
@@ -2625,7 +2693,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Android.FeatureModules.AvailabilityStatus"
- enum="FeatureModuleAvailabilityStatus" expires_after="2020-03-01">
+ enum="FeatureModuleAvailabilityStatus" expires_after="2020-05-03">
<!-- Name completed by histogram_suffixes
name="AndroidFeatureModuleName" -->
@@ -2688,7 +2756,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Android.FeatureModules.InstallStatus"
- enum="FeatureModuleInstallStatus" expires_after="2020-03-08">
+ enum="FeatureModuleInstallStatus" expires_after="2020-05-10">
<!-- Name completed by histogram_suffixes
name="AndroidFeatureModuleName" -->
@@ -2713,7 +2781,7 @@ uploading your change for review.
<histogram base="true"
name="Android.FeatureModules.UncachedAwakeInstallDuration" units="ms"
- expires_after="2020-01-01">
+ expires_after="2020-05-10">
<!-- Name completed by histogram_suffixes
name="AndroidFeatureModuleName" -->
@@ -2747,7 +2815,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.HistoryPage.OpenSelected" units="units">
+<histogram name="Android.HistoryPage.OpenSelected" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -2758,7 +2827,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.HistoryPage.RemoveSelected" units="units">
+<histogram name="Android.HistoryPage.RemoveSelected" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -2875,7 +2945,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.IntentHeaders" enum="IntentHeadersResult"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>peconn@chromium.org</owner>
<summary>
Records the usage of the Browser.EXTRA_HEADERS field for Intents that Chrome
@@ -2884,6 +2954,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Android.IntentNonSafelistedHeaderNames"
+ enum="AndroidIntentNonSafelistedHeaderNameHashes"
+ expires_after="2020-04-26">
+ <owner>jochen@chromium.org</owner>
+ <owner>peconn@chromium.org</owner>
+ <summary>
+ Records hashes of header names used in the Browser.EXTRA_HEADERS fields for
+ Intents that Chrome receives that aren't on the CORS header safelist. This
+ can be used to match against known types of headers to measure their
+ frequencies.
+ </summary>
+</histogram>
+
<histogram name="Android.IsLastSharedAppInfoRetrieved"
enum="BooleanIsLastSharedAppInfoRetrieved" expires_after="M77">
<owner>clank-team@google.com</owner>
@@ -2894,7 +2977,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.KernelVersion" enum="AndroidKernelVersion"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>rsesek@chromium.org</owner>
<summary>
Reports the kernel major and minor version from the utsname.release field.
@@ -2915,7 +2998,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.Language.WrongLanguageAfterResume" enum="Boolean"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>tiborg@chromium.org</owner>
<owner>heamy@chromium.org</owner>
<summary>
@@ -2928,7 +3011,7 @@ uploading your change for review.
<histogram
name="Android.MainActivity.ExplicitMainViewIntentDispatched.OnCreate"
- enum="BooleanDispatched" expires_after="2020-02-23">
+ enum="BooleanDispatched" expires_after="2020-04-26">
<owner>wnwen@chromium.org</owner>
<summary>
Whether VIEW intent sent explicitly to .Main activity was dispatched by
@@ -2977,7 +3060,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.ManageSpace.TotalDiskUsageMB" units="MB"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>dmurph@chromium.org</owner>
<summary>
Recorded when the user opens the 'Manage Space' screen for Chrome, after the
@@ -2987,7 +3070,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.ManageSpace.UnimportantDiskUsageMB" units="MB"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>dmurph@chromium.org</owner>
<summary>
Recorded when the user opens the 'Manage Space' screen for Chrome, after the
@@ -3012,7 +3095,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.MemoryPressureMonitor.GetMyMemoryState.Succeeded.Time"
- units="microseconds" expires_after="2020-02-23">
+ units="microseconds" expires_after="2020-04-26">
<owner>ssid@chromium.org</owner>
<summary>
The duration of each successful ActivityManager.getMyMemoryState() call made
@@ -3048,7 +3131,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.MultiInstanceMigration.FailedToRenameMetadataFile"
- enum="Boolean">
+ enum="Boolean" expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3061,7 +3144,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.MultiInstanceMigration.NewMetadataFileExists"
- enum="Boolean">
+ enum="Boolean" expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3084,7 +3167,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.MultiWindowMode.IsTabletScreenWidthBelow600"
- enum="Boolean">
+ enum="Boolean" expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3097,7 +3180,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.MultiWindowMode.ScreenHeight" units="dp">
+<histogram name="Android.MultiWindowMode.ScreenHeight" units="dp"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3109,7 +3193,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.MultiWindowMode.ScreenWidth" units="dp">
+<histogram name="Android.MultiWindowMode.ScreenWidth" units="dp"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3121,7 +3206,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.MultiWindowMode.TabletScreenWidth" units="dp">
+<histogram name="Android.MultiWindowMode.TabletScreenWidth" units="dp"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3207,7 +3293,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.NativeLibraryPreloader.Result.Browser"
- enum="NativeLibraryPreloaderResult">
+ enum="NativeLibraryPreloaderResult" expires_after="M80">
<obsolete>
Removed in July 2019. See https://crbug.com/975556.
</obsolete>
@@ -3219,7 +3305,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.NativeLibraryPreloader.Result.Renderer"
- enum="NativeLibraryPreloaderResult">
+ enum="NativeLibraryPreloaderResult" expires_after="M80">
<obsolete>
Removed in July 2019. See https://crbug.com/975556.
</obsolete>
@@ -3242,7 +3328,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.NTP.Impression" enum="NTPImpressionType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>finkm@chromium.org</owner>
<summary>
Counts impressions of the NTP on Android. It also counts potential
@@ -3278,7 +3364,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.OmniboxFocusReason" enum="OmniboxFocusReason"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mdjones@chromium.org</owner>
<owner>twellington@chromium.org</owner>
<owner>amaralp@chromium.org</owner>
@@ -3684,7 +3770,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.SeccompStatus.RendererSandbox"
- enum="AndroidSeccompSandboxStatus" expires_after="2020-03-01">
+ enum="AndroidSeccompSandboxStatus" expires_after="2020-05-03">
<owner>rsesek@chromium.org</owner>
<summary>
Reports the status of the seccomp-bpf sandbox in renderer processes.
@@ -3939,7 +4025,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.SysUtilsLowEndMatches" enum="BooleanEqual"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>ssid@chromium.org</owner>
<summary>
Measures whether Chrome low-end detection logic based on RAM size matches
@@ -3959,7 +4045,7 @@ uploading your change for review.
</histogram>
<histogram name="Android.TabPersistentStore.MergeStateMetadataFileSize"
- units="bytes">
+ units="bytes" expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3970,7 +4056,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.TabPersistentStore.MergeStateTabCount" units="tabs">
+<histogram name="Android.TabPersistentStore.MergeStateTabCount" units="tabs"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -3982,7 +4069,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.TabPersistentStore.MergeStateTimePerTab" units="ms">
+<histogram name="Android.TabPersistentStore.MergeStateTimePerTab" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -4087,6 +4175,9 @@ uploading your change for review.
<histogram name="Android.WebView.Gfx.FunctorStencilEnabled"
enum="BooleanEnabled" expires_after="M78">
+ <obsolete>
+ Removed in M79. Obtained required data from M78.
+ </obsolete>
<owner>boliu@chromium.org</owner>
<owner>ericrk@chromium.org</owner>
<summary>
@@ -4116,7 +4207,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Android.WebView.LoadUrl.DataUriHasOctothorpe" enum="Boolean">
+<histogram name="Android.WebView.LoadUrl.DataUriHasOctothorpe" enum="Boolean"
+ expires_after="M80">
<obsolete>
Removed 2019/10/11. This histogram was never well understood and the
underlying feature has been shipped for some time anyway.
@@ -4212,6 +4304,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Android.WebView.PrefLoadTime" units="ms"
+ expires_after="2020-12-01">
+ <owner>rmcelrath@chromium.org</owner>
+ <owner>src/android_webview/OWNERS</owner>
+ <summary>
+ Records how long WebView blocks startup to load prefs from disk. This is
+ recorded once per browser process startup.
+ </summary>
+</histogram>
+
<histogram name="Android.WebView.SecureCookieAction" enum="SecureCookieAction"
expires_after="2020-05-14">
<owner>ntfschr@chromium.org</owner>
@@ -4389,7 +4491,7 @@ uploading your change for review.
</histogram>
<histogram name="AndroidSms.FcmMessageDispatchRetry"
- enum="AndroidSmsFcmMessageType" expires_after="2020-02-16">
+ enum="AndroidSmsFcmMessageType" expires_after="2020-04-19">
<owner>azeemarshad@chromium.org</owner>
<summary>
Records message types for which a retry was attempted when dispatching to
@@ -4399,7 +4501,7 @@ uploading your change for review.
</histogram>
<histogram name="AndroidSms.FcmMessageDispatchSuccess"
- enum="AndroidSmsFcmMessageType" expires_after="2020-03-29">
+ enum="AndroidSmsFcmMessageType" expires_after="2020-05-31">
<owner>azeemarshad@chromium.org</owner>
<summary>
Records message types for which dispatching to Android Messages for Web
@@ -4429,7 +4531,7 @@ uploading your change for review.
</histogram>
<histogram name="AndroidSms.PWAInstallationResult"
- enum="WebAppInstallResultCode" expires_after="2020-03-22">
+ enum="WebAppInstallResultCode" expires_after="2020-05-24">
<owner>azeemarshad@chromium.org</owner>
<summary>
Records installation result code for every installation attempt for Android
@@ -4482,7 +4584,7 @@ uploading your change for review.
</histogram>
<histogram name="AnimatedImage.NumOfFramesSkipped" units="count"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>khushalsagar@chromium.org</owner>
<summary>
If the frame rate for the image animation can not be reached, frames in the
@@ -4549,7 +4651,7 @@ uploading your change for review.
</histogram>
<histogram name="AppBanners.BeforeInstallEvent"
- enum="AppBannersBeforeInstallEvent" expires_after="2020-03-01">
+ enum="AppBannersBeforeInstallEvent" expires_after="2020-05-03">
<owner>dominickn@chromium.org</owner>
<summary>
App banners promote an application related to the current website, and are
@@ -4562,7 +4664,7 @@ uploading your change for review.
</histogram>
<histogram name="AppBanners.DismissEvent" enum="AppBannersDismissEvent"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>pjmclachlan@google.com</owner>
<owner>pcovell@google.com</owner>
<summary>
@@ -4574,7 +4676,7 @@ uploading your change for review.
</histogram>
<histogram name="AppBanners.DisplayEvent" enum="AppBannersDisplayEvent"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>pjmclachlan@google.com</owner>
<owner>pcovell@google.com</owner>
<summary>
@@ -4598,7 +4700,7 @@ uploading your change for review.
</histogram>
<histogram name="AppBanners.InstallEvent" enum="AppBannersInstallEvent"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>pjmclachlan@google.com</owner>
<owner>pcovell@google.com</owner>
<summary>
@@ -4621,7 +4723,7 @@ uploading your change for review.
</histogram>
<histogram name="AppBanners.UserResponse" enum="AppBannersUserResponse"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>dominickn@chromium.org</owner>
<summary>
This stat tracks the user reponse when the add-to-homescreen dialog is shown
@@ -4659,7 +4761,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="appcache.CorruptionDetected" units="units">
+<histogram name="appcache.CorruptionDetected" units="units" expires_after="M80">
<obsolete>
Deprecated on 2019-06-17. No longer tracked.
</obsolete>
@@ -4669,7 +4771,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="appcache.InitResult" enum="AppCacheInitResult">
+<histogram name="appcache.InitResult" enum="AppCacheInitResult"
+ expires_after="M80">
<obsolete>
Deprecated on 2019-06-17. No longer tracked.
</obsolete>
@@ -4792,8 +4895,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="appcache.Manifest.ValidManifestURL" enum="BooleanValid"
+ expires_after="M82">
+ <owner>cmp@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
+ <summary>
+ The proportion of ParseManifest calls that are triggered using a valid vs an
+ invalid manifest URL.
+ </summary>
+</histogram>
+
<histogram name="appcache.MissingManifestDetectedAtCallsite"
- enum="AppCacheErrorSite">
+ enum="AppCacheErrorSite" expires_after="M80">
<obsolete>
Deprecated 2019-06-17. No longer tracked.
</obsolete>
@@ -4801,7 +4914,8 @@ uploading your change for review.
<summary>Identifies where a missing manifest was detected occured.</summary>
</histogram>
-<histogram name="appcache.MissingManifestEntry" enum="BooleanSuccess">
+<histogram name="appcache.MissingManifestEntry" enum="BooleanSuccess"
+ expires_after="M80">
<obsolete>
Deprecated 2019-06-17. No longer tracked.
</obsolete>
@@ -4821,7 +4935,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="appcache.SubResourceResponseRetrieval" enum="BooleanSuccess">
+<histogram name="appcache.SubResourceResponseRetrieval" enum="BooleanSuccess"
+ expires_after="M80">
<obsolete>
Deprecated on 2019-06-17. No longer tracked.
</obsolete>
@@ -4858,7 +4973,8 @@ uploading your change for review.
<summary>AppCache update job result code.</summary>
</histogram>
-<histogram name="appcache.UpdateProgressAtPointOfFaliure" units="%">
+<histogram name="appcache.UpdateProgressAtPointOfFaliure" units="%"
+ expires_after="M80">
<obsolete>
Deprecated 2019-06-17. No longer tracked.
</obsolete>
@@ -4987,7 +5103,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerLoadingTime"
- units="ms" expires_after="2020-03-01">
+ units="ms" expires_after="2020-05-03">
<owner>jennyz@chriomium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -4998,7 +5114,7 @@ uploading your change for review.
<histogram
name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerNavigationTime"
- units="ms" expires_after="2020-03-01">
+ units="ms" expires_after="2020-05-03">
<owner>jennyz@chriomium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5008,7 +5124,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.AppSearchProvider.QueryTime" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5018,7 +5134,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.AppSearchProvider.ZeroStateLatency" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5027,8 +5143,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Apps.AppList.AppsGridAddPage" enum="AppListAddPageType"
+ expires_after="2020-10-16">
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ The different ways to add page in app list's apps grid. Logged when the page
+ is created.
+ </summary>
+</histogram>
+
<histogram name="Apps.AppList.DriveQuickAccessProvider.ApiResults"
- units="count">
+ units="count" expires_after="2020-05-03">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -5062,7 +5188,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.DriveQuickAccessProvider.FileError"
- enum="DriveFileError">
+ enum="DriveFileError" expires_after="2020-05-03">
<owner>tby@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -5094,6 +5220,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Apps.AppList.DriveQuickAccessProvider.ResultPresence"
+ enum="AppListDriveQuickAccessResultPresence" expires_after="2020-06-01">
+ <owner>tby@chromium.org</owner>
+ <owner>wrong@chromium.org</owner>
+ <owner>jiameng@chromium.org</owner>
+ <summary>
+ Emitted when the launcher updates the displayed zero-state search results.
+ Records whether a) a Drive QuickAccess result was displayed, b) a DQA result
+ was present in the candidate results list but wasn't one of the top 5 so was
+ not displayed, or c) no DQA results were in the results list.
+ </summary>
+</histogram>
+
<histogram
name="Apps.AppList.DriveQuickAccessProvider.TimeFromFetchToZeroStateStart"
units="ms" expires_after="M82">
@@ -5128,7 +5267,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.OmniboxProvider.QueryTime" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chriomium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5139,7 +5278,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.OmniboxProvider.ZeroStateLatency" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chriomium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5170,7 +5309,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.ZeroStateFileProvider.Latency" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -5261,7 +5400,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.LaunchedItemPosition"
- units="position">
+ units="position" expires_after="M80">
<obsolete>
Deprecated October 2019, replaced by
Apps.AppList.ZeroStateResultsList.LaunchedItemPositionV2, which uses
@@ -5276,7 +5415,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.ZeroStateResultsList.LaunchedItemPositionV2"
- units="position">
+ units="position" expires_after="2020-05-10">
<owner>wrong@chromium.org</owner>
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
@@ -5311,7 +5450,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.ZeroStateSearchResultRemovalDecision"
- enum="AppListZeroStateResultRemovalConfirmation" expires_after="2020-03-01">
+ enum="AppListZeroStateResultRemovalConfirmation" expires_after="2020-05-03">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5323,7 +5462,7 @@ uploading your change for review.
<histogram name="Apps.AppList.ZeroStateSearchResultUserActionType"
enum="AppListZeroStateSearchResultUserActionType"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5348,7 +5487,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppList.ZeroStateSuggestionOpenType"
- enum="AppListSearchResult" expires_after="2020-03-22">
+ enum="AppListSearchResult" expires_after="2020-05-24">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5356,7 +5495,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Apps.AppListAppLaunched" enum="SuggestedAppListAppLaunched">
+<histogram name="Apps.AppListAppLaunched" enum="SuggestedAppListAppLaunched"
+ expires_after="M80">
<obsolete>
Deprecated as of 04/2019 in favor Apps.AppListAppLaunchedV2.
</obsolete>
@@ -5368,7 +5508,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListAppLaunchedFullscreen"
- enum="SuggestedAppListAppLaunched">
+ enum="SuggestedAppListAppLaunched" expires_after="M80">
<obsolete>
Deprecated as of 04/2019 in favor Apps.AppListAppLaunchedV2.
</obsolete>
@@ -5381,7 +5521,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListAppLaunchedV2" enum="AppListLaunchedFrom"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes name="AppListState" -->
<owner>mmourgos@chromium.org</owner>
@@ -5413,7 +5553,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListBadgedAppsCount" units="apps"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>newcomer@chromium.org</owner>
<summary>
Number of apps (including ones in folders) with Chrome badge, across all
@@ -5422,7 +5562,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListCreationTime" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>calamity@chromium.org</owner>
<summary>
The amount of time it takes to build the app list UI. This is logged each
@@ -5430,6 +5570,22 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Apps.AppListDefaultSearchResultOpenType"
+ enum="AppListSearchResult" expires_after="2020-12-31">
+ <owner>jennyz@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ The type of the default result opened by user by pressing ENTER key.
+ Launcher UI shows suggested apps, recent queries, etc when user activates
+ the search box, or shows matched apps (installed apps, play store app
+ results, etc.) and other results (query suggestions, web site, bookmark,
+ files, etc) when user types a query. It will set the focus on the first
+ result as the default. User can open the default result by simply pressing
+ ENTER key. This metrics logs the type of the default result (installed app,
+ play store result, query suggestion, etc) opened by user pressing ENTER key.
+ </summary>
+</histogram>
+
<histogram name="Apps.AppListDoodleAction" enum="AppListDoodleAction"
expires_after="2018-01-20">
<obsolete>
@@ -5443,7 +5599,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListFolder.ShowHide.AnimationSmoothness" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>wutao@chromium.org</owner>
<summary>
Relative smoothness of animations of showing and hiding app list folder.
@@ -5511,7 +5667,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListLauncherIssuedSearchQueryLength"
- units="characters" expires_after="2020-01-01">
+ units="characters" expires_after="2020-11-25">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5567,7 +5723,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListPlayStoreAppLaunchedIndex" units="indices"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5583,7 +5739,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListPlayStoreSearchAppsDisplayed" units="apss"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<summary>
@@ -5592,7 +5748,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListRecommendedImpResultCountAfterOpen" units="shows"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>napper@chromium.org</owner>
<owner>robsc@chromium.org</owner>
<summary>
@@ -5614,7 +5770,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListRecommendedResponse.Count" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>napper@chromium.org</owner>
<owner>robsc@chromium.org</owner>
<summary>
@@ -5624,7 +5780,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListRecommendedResponse.Latency" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-17">
<owner>napper@chromium.org</owner>
<owner>robsc@chromium.org</owner>
<summary>
@@ -5633,7 +5789,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListResultLaunchIndexAndQueryLength" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tby@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -5644,7 +5800,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchAbandonQueryLength" units="characters"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jennyz@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -5668,7 +5824,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchCommenced" units="searches"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>tapted@chromium.org</owner>
<summary>
The number of searches that are started in the app list. This is gathered
@@ -5677,7 +5833,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchOmniboxResultOpenType"
- enum="AppListOmniboxResult" expires_after="2019-12-31">
+ enum="AppListOmniboxResult" expires_after="2020-11-25">
<owner>jennyz@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
@@ -5690,7 +5846,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchQueryLength" units="characters"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>calamity@chromium.org</owner>
@@ -5701,7 +5857,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchResultDistanceFromOrigin" units="keystrokes"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>calamity@chromium.org</owner>
<summary>
The minimum number of arrow keys a user would need to press to navigate to
@@ -5710,7 +5866,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchResultInternalApp.Open"
- enum="AppListInternalAppName" expires_after="2020-02-23">
+ enum="AppListInternalAppName" expires_after="2020-04-26">
<owner>wutao@chromium.org</owner>
<summary>
The app list search result of an internal app that was opened by the user.
@@ -5719,7 +5875,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchResultInternalApp.Show"
- enum="AppListInternalAppName" expires_after="2020-02-23">
+ enum="AppListInternalAppName" expires_after="2020-04-26">
<owner>wutao@chromium.org</owner>
<summary>
The app list search result of an internal app that was shown to the user.
@@ -5760,7 +5916,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSearchResultOpenTypeV2" enum="AppListSearchResult"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -5783,7 +5939,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListShowSource" enum="AppListShowSource"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>newcomer@chromium.org</owner>
<summary>
The number of times the different sources for showing the app list are used.
@@ -5808,7 +5964,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSuggestedChipLaunched" units="indices"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>newcomer@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
@@ -5819,7 +5975,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.AppListSuggestedChipOpenType" enum="AppListSearchResult"
- expires_after="2020-03-01">
+ expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->
<owner>newcomer@chromium.org</owner>
@@ -5929,7 +6085,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Apps.DefaultAppLaunch" enum="DefaultAppName"
- expires_after="2020-03-21">
+ expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes name="DefaultAppLaunchSource" -->
<owner>dominickn@chromium.org</owner>
@@ -5941,7 +6097,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.HomeLauncherTransition.AnimationSmoothness" units="%"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<!-- Name completed by histogram suffixes
name="AppListTabletModeTransition" -->
@@ -6190,7 +6346,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.LockScreen.NoteTakingApp.UnlockUIAction"
- enum="LockScreenNoteTakingUnlockUIAction">
+ enum="LockScreenNoteTakingUnlockUIAction" expires_after="M80">
<obsolete>
Obsolete - tracks actions in UI that did not launch.
</obsolete>
@@ -6203,7 +6359,7 @@ uploading your change for review.
</histogram>
<histogram name="Apps.LogDisplayTypeClickedResultZeroState"
- enum="AppListSearchResultDisplayType" expires_after="2020-03-01">
+ enum="AppListSearchResultDisplayType" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<owner>tby@chromium.org</owner>
@@ -6280,7 +6436,7 @@ uploading your change for review.
<histogram base="true"
name="Apps.PaginationTransition.DragScroll.PresentationTime" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" -->
@@ -6296,7 +6452,7 @@ uploading your change for review.
<histogram base="true"
name="Apps.PaginationTransition.DragScroll.PresentationTime.MaxLatency"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" -->
@@ -6307,8 +6463,53 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Apps.ScrollableShelf.AnimationSmoothness" units="%"
+ expires_after="2020-11-06">
+<!-- Name completed by histogram suffixes
+ name="HomeLauncherVisibility" -->
+
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Relative smoothness of animations of the scrollable shelf when scrolling.
+ 100% represents ideally smooth 60 frames per second. 50% represents only 30
+ frames per second is achieved during the animations. 0% should not happen.
+ This metric is recorded exactly once when the user scrolls over the
+ scrollable shelf.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Apps.ScrollableShelf.Drag.PresentationTime"
+ units="ms" expires_after="2020-11-08">
+<!-- Name completed by histogram_suffixes
+ name="TabletOrClamshellMode" and
+ name="HomeLauncherVisibility"-->
+
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Presentation time of the drag scroll in the scrollable shelf in
+ milliseconds.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Apps.ScrollableShelf.Drag.PresentationTime.MaxLatency" units="ms"
+ expires_after="2020-11-08">
+<!-- Name completed by histogram_suffixes
+ name="TabletOrClamshellMode" and
+ name="HomeLauncherVisibility" -->
+
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Maximum latency of the presentation time of the drag scroll in the
+ scrollable shelf.
+ </summary>
+</histogram>
+
<histogram name="Apps.StateTransition.AnimationSmoothness" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" and
name="EnterOrExitOverview" and
@@ -6325,7 +6526,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Apps.StateTransition.Drag.PresentationTime"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes
name="TabletOrClamshellMode" -->
@@ -6356,13 +6557,22 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Arc.AndroidBootTime" units="ms" expires_after="2020-03-29">
+<histogram name="Arc.AdbSideloadingEnablingScreen"
+ enum="AdbSideloadingPromptEvent" expires_after="M88">
+ <owner>victorhsieh@chromium.org</owner>
+ <owner>tbuckley@chromium.org</owner>
+ <summary>
+ Record user's choice or error during ADB sideloading opt-in UI after reboot.
+ </summary>
+</histogram>
+
+<histogram name="Arc.AndroidBootTime" units="ms" expires_after="2020-05-31">
<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-03-29">
+<histogram name="Arc.AppCount" units="units" expires_after="2020-05-31">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -6383,6 +6593,26 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Arc.AppListRecommendedImp.AllImpression" units="count"
+ expires_after="2020-06-01">
+ <owner>robsc@chromium.org</owner>
+ <owner>napper@chromium.org</owner>
+ <summary>
+ Record a count of an impression of FAR result. This is a count _any_ time
+ it's shown, even for a millisecond.
+ </summary>
+</histogram>
+
+<histogram name="Arc.AppListRecommendedImp.CountedImpression" units="count"
+ expires_after="2020-06-01">
+ <owner>robsc@chromium.org</owner>
+ <owner>napper@chromium.org</owner>
+ <summary>
+ Record a count of an impression of FAR result. This is a count of heuristic
+ real impressions: a new showing after a while, a longer showing, etc.
+ </summary>
+</histogram>
+
<histogram name="Arc.AppShortcuts.BuildMenuTime" units="ms" expires_after="M92">
<owner>mmourgos@chromium.org</owner>
<owner>newcomer@chromium.org</owner>
@@ -6527,7 +6757,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.CupsPrinting.PageCount" units="units"
- expires_after="2020-01-20">
+ expires_after="2020-04-19">
<owner>skau@chromium.org</owner>
<owner>vkuzkokov@google.com</owner>
<summary>
@@ -6537,7 +6767,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.CustomTabs.SessionEndReason"
- enum="ArcCustomTabsSessionEndReason" expires_after="2020-03-22">
+ enum="ArcCustomTabsSessionEndReason" expires_after="2020-05-24">
<owner>hashimoto@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -6545,7 +6775,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Arc.CustomTabs.SessionLifetime.All" units="ms">
+<histogram name="Arc.CustomTabs.SessionLifetime.All" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019. Replaced by Arc.CustomTabs.SessionLifetime2.All to
extend the max value.
@@ -6555,7 +6786,8 @@ uploading your change for review.
<summary>Lifetime of each session. Recorded when a session ends.</summary>
</histogram>
-<histogram name="Arc.CustomTabs.SessionLifetime.Closed" units="ms">
+<histogram name="Arc.CustomTabs.SessionLifetime.Closed" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019. Replaced by Arc.CustomTabs.SessionLifetime2.Closed to
extend the max value.
@@ -6568,7 +6800,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.CustomTabs.SessionLifetime.ForwardedToNormalTab"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 06/2019. Replaced by
Arc.CustomTabs.SessionLifetime2.ForwardedToNormalTab to extend the max
@@ -6583,13 +6815,13 @@ uploading your change for review.
</histogram>
<histogram name="Arc.CustomTabs.SessionLifetime2.All" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hashimoto@google.com</owner>
<summary>Lifetime of each session. Recorded when a session ends.</summary>
</histogram>
<histogram name="Arc.CustomTabs.SessionLifetime2.Closed" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hashimoto@google.com</owner>
<summary>
Lifetime of each session. Recorded when a session is closed.
@@ -6597,7 +6829,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.CustomTabs.SessionLifetime2.ForwardedToNormalTab"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>hashimoto@google.com</owner>
<summary>
Lifetime of each session. Recorded when a session ends because the tab was
@@ -6606,7 +6838,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.EngagementTime.ArcTotal" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -6632,7 +6864,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.EngagementTime.Foreground" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -6643,7 +6875,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.EngagementTime.Total" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>maajid@google.com</owner>
<owner>shaochuan@google.com</owner>
<owner>shihuis@google.com</owner>
@@ -6679,7 +6911,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.FirstAppLaunchDelay.TimeDelta" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yusukes@google.com</owner>
<owner>khmel@google.com</owner>
<summary>
@@ -6833,7 +7065,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.NativeBridge" enum="ArcNativeBridgeType"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>elijahtaylor@google.com</owner>
<owner>levarum@google.com</owner>
<summary>
@@ -6846,14 +7078,14 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Arc.OOMKills.Count" units="kills" expires_after="2020-03-22">
+<histogram name="Arc.OOMKills.Count" units="kills" expires_after="2020-05-24">
<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-02-16">
+ expires_after="2020-04-19">
<owner>elijahtaylor@google.com</owner>
<owner>shihuis@google.com</owner>
<summary>
@@ -6875,14 +7107,14 @@ uploading your change for review.
</histogram>
<histogram name="Arc.OptInCancel" enum="ArcOptInCancel"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<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-03-29">
+ expires_after="2020-05-31">
<owner>elijahtaylor@google.com</owner>
<owner>khmel@google.com</owner>
<summary>Arc OptIn flow result.</summary>
@@ -6897,7 +7129,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.OptInSilentAuthCode.Reauthorization"
- enum="ArcOptInSilentAuthCode" expires_after="2020-02-23">
+ enum="ArcOptInSilentAuthCode" expires_after="2020-04-26">
<owner>khmel@google.com</owner>
<summary>
Arc Silent Auth Code status. This status is set during the ARC
@@ -6906,7 +7138,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.OptInSilentAuthCode.SecondaryAccount"
- enum="ArcOptInSilentAuthCode" expires_after="2020-03-22">
+ enum="ArcOptInSilentAuthCode" expires_after="2020-05-24">
<owner>khmel@google.com</owner>
<summary>
Arc Silent Auth Code status. This status is set during the minting of an
@@ -6916,7 +7148,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.PlayAutoInstallRequest.State"
- enum="ArcPlayAutoInstallRequestState" expires_after="2019-12-31">
+ enum="ArcPlayAutoInstallRequestState" expires_after="2020-12-31">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>jhorwich@google.com</owner>
@@ -6925,7 +7157,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.PlayAutoInstallRequest.TimeDelta" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>jhorwich@google.com</owner>
@@ -6936,8 +7168,28 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Arc.PlayStoreLaunch.TimeDelta" units="ms"
+ expires_after="2021-11-01">
+ <owner>khmel@google.com</owner>
+ <owner>yusukes@google.com</owner>
+ <summary>
+ Elapsed time from the when the user launches the Play Store app and to when
+ the Play Store window is shown to the user.
+ </summary>
+</histogram>
+
+<histogram name="Arc.PlayStoreSearch.DefaultResultClickLatency" units="ms"
+ expires_after="2020-11-01">
+ <owner>jennyz@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Time between a default play store result being activated by user pressing
+ ENTER key and being displayed.
+ </summary>
+</histogram>
+
<histogram name="Arc.PlayStoreSearch.QueryTime" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hejq@chromium.org</owner>
<summary>
Time between sending an Play Store app discovery request and the storing
@@ -6945,8 +7197,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Arc.PlayStoreSearch.ResultClickLatency" units="ms"
+ expires_after="2020-12-31">
+ <owner>jennyz@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Time between a play store result being clicked and being displayed.
+ </summary>
+</histogram>
+
<histogram name="Arc.PlayStoreSearch.ReturnedAppsTotal" units="apps"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hejq@chromium.org</owner>
<summary>
The total number of returned apps of a Play Store app discovery query.
@@ -6969,7 +7230,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Arc.PlayStoreShown.TimeDelta" units="ms" expires_after="M81">
+<histogram name="Arc.PlayStoreShown.TimeDelta" units="ms" expires_after="M82">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>yusukes@google.com</owner>
@@ -6980,6 +7241,55 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Arc.PrintPreview.PreviewEvent" enum="PrintPreviewHelperEvents"
+ expires_after="2020-04-30">
+ <owner>bmgordon@chromium.org</owner>
+ <owner>jschettler@chromium.org</owner>
+ <summary>
+ Print preview events for ARC. Recorded when specific print preview events
+ occur (print preview requested, preview document created, etc.).
+ </summary>
+</histogram>
+
+<histogram name="Arc.PrintPreview.RenderAndGeneratePDFTime" units="ms"
+ expires_after="2020-04-30">
+ <owner>bmgordon@chromium.org</owner>
+ <owner>jschettler@chromium.org</owner>
+ <summary>
+ Time taken for ARC to render and generate a PDF for print preview. Includes
+ time to reflow the page back to normal, but not the time to reflow the page
+ to prepare for printing.
+ </summary>
+</histogram>
+
+<histogram name="Arc.PrintPreview.RenderAndGeneratePDFTimeAvgPerPage"
+ units="ms" expires_after="2020-04-30">
+ <owner>bmgordon@chromium.org</owner>
+ <owner>jschettler@chromium.org</owner>
+ <summary>
+ Time taken for ARC to render and generate a PDF for print preview divided by
+ the number of pages. Includes time to reflow the page back to normal, but
+ not the time to reflow the page to prepare for printing.
+ </summary>
+</histogram>
+
+<histogram name="Arc.PrintPreview.RendererError" enum="PrintPreviewFailureType"
+ expires_after="2020-04-30">
+ <owner>bmgordon@chromium.org</owner>
+ <owner>jschettler@chromium.org</owner>
+ <summary>
+ Count how frequently a set of pre-defined print preview errors occur for
+ ARC.
+ </summary>
+</histogram>
+
+<histogram name="Arc.PrintPreview.RenderToPDFTime" units="ms"
+ expires_after="2020-04-30">
+ <owner>bmgordon@chromium.org</owner>
+ <owner>jschettler@chromium.org</owner>
+ <summary>Time taken for ARC to render a PDF for print preview.</summary>
+</histogram>
+
<histogram base="true" name="Arc.Provisioning.Result"
enum="ArcProvisioningResult" expires_after="2020-04-05">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
@@ -6993,7 +7303,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.Provisioning.TimeDelta.Failure" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>alexchau@google.com</owner>
@@ -7004,7 +7314,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.Provisioning.TimeDelta.Success" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>alexchau@google.com</owner>
@@ -7016,7 +7326,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.Reauthorization.Result" enum="ArcProvisioningResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>khmel@google.com</owner>
@@ -7053,7 +7363,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.SdkVersionUpgradeType" enum="ArcSdkVersionUpgradeType"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>niwa@google.com</owner>
<owner>yusukes@google.com</owner>
<summary>
@@ -7071,6 +7381,34 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Arc.Session.MojoDisconnection" enum="ArcMojoConnectionType"
+ expires_after="2020-12-05">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>shaochuan@google.com</owner>
+ <owner>khmel@google.com</owner>
+ <owner>mmatena@google.com</owner>
+ <summary>
+ This is updated when the mojo connections to processes in detailing in
+ ArcMojoConnectionType are closed for reasons other than the ARC container
+ shutting down or crashing.
+ </summary>
+</histogram>
+
+<histogram name="Arc.Session.StopReason" enum="ArcStopReason"
+ expires_after="2020-12-05">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>shaochuan@google.com</owner>
+ <owner>khmel@google.com</owner>
+ <owner>mmatena@google.com</owner>
+ <summary>
+ This is updated in case ARC++ stops for the reasons detailed in
+ ArcStopReason. For example, this is recorded in case of a graceful ARC++
+ shutdown or if ARC++ crashes.
+ </summary>
+</histogram>
+
<histogram name="Arc.ShareFilesOnExit" enum="ArcShareFilesOnExit"
expires_after="M75">
<owner>weifangsun@google.com</owner>
@@ -7108,7 +7446,7 @@ uploading your change for review.
</histogram>
<histogram name="Arc.StateByUserType" enum="ArcEnableState"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
<owner>elijahtaylor@google.com</owner>
@@ -7160,8 +7498,44 @@ uploading your change for review.
<summary>Action of ARC++ Graphics Tracing tool.</summary>
</histogram>
+<histogram name="Arc.UiAvailable.AlreadyProvisioned.TimeDelta" units="ms"
+ expires_after="2021-11-01">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>khmel@google.com</owner>
+ <owner>yusukes@google.com</owner>
+ <summary>
+ Elapsed time from the when ARC++ is started in already provisioned state to
+ when the ARC is available for the user.
+ </summary>
+</histogram>
+
+<histogram name="Arc.UiAvailable.InSessionProvisioning.TimeDelta" units="ms"
+ expires_after="2021-11-01">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>khmel@google.com</owner>
+ <owner>yusukes@google.com</owner>
+ <summary>
+ Elapsed time from the when ARC++ is opted in from the user's session to when
+ the ARC is available for the user.
+ </summary>
+</histogram>
+
+<histogram name="Arc.UiAvailable.OobeProvisioning.TimeDelta" units="ms"
+ expires_after="2021-11-01">
+<!-- Name completed by histogram_suffixes name="ArcUserTypes" -->
+
+ <owner>khmel@google.com</owner>
+ <owner>yusukes@google.com</owner>
+ <summary>
+ Elapsed time from the when ARC++ is opted in from OOBE to when the ARC is
+ available for the user.
+ </summary>
+</histogram>
+
<histogram name="Arc.UserInteraction" enum="ArcUserInteraction"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>jhorwich@chromium.org</owner>
<owner>elijahtaylor@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -7179,7 +7553,7 @@ uploading your change for review.
</histogram>
<histogram name="ArcAuth.AccountCheckTime" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>elijahtaylor@chromium.org</owner>
<summary>
Elapsed time waiting for the account status check to be completed. This is
@@ -7187,7 +7561,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ArcAuth.CheckinAttempts" units="attempts" expires_after="M81">
+<histogram name="ArcAuth.CheckinAttempts" units="attempts"
+ expires_after="2021-11-01">
<owner>elijahtaylor@chromium.org</owner>
<summary>
Number of attempts done while waiting for the check-in task to be completed.
@@ -7196,7 +7571,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ArcAuth.CheckinTime" units="ms" expires_after="2020-03-08">
+<histogram name="ArcAuth.CheckinTime" units="ms" expires_after="2021-11-01">
<owner>elijahtaylor@chromium.org</owner>
<summary>
Elapsed time waiting for the check-in task to be completed. This is recorded
@@ -7219,7 +7594,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ArcAuth.SignInTime" units="ms" expires_after="M77">
+<histogram name="ArcAuth.SignInTime" units="ms" expires_after="2021-11-01">
<owner>elijahtaylor@chromium.org</owner>
<summary>Elapsed time waiting for GMS sign-in to complete.</summary>
</histogram>
@@ -7340,6 +7715,32 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.Desks.AnimationSmoothness.DeskActivation" units="%"
+ expires_after="M89">
+ <owner>afakhry@chromium.org</owner>
+ <owner>tclaiborne@chromium.org</owner>
+ <owner>mukai@chromium.org</owner>
+ <summary>
+ Emitted when the virtual desks activation animation completes to report the
+ smoothness of this animation when running on the display on which the active
+ window resides (if any) or the display of the primary root window. 100%
+ represents ideally smooth 60 frames per second.
+ </summary>
+</histogram>
+
+<histogram name="Ash.Desks.AnimationSmoothness.DeskRemoval" units="%"
+ expires_after="M89">
+ <owner>afakhry@chromium.org</owner>
+ <owner>tclaiborne@chromium.org</owner>
+ <owner>mukai@chromium.org</owner>
+ <summary>
+ Emitted when the virtual desks removal animation completes to report the
+ smoothness of this animation when running on the display on which the active
+ window resides (if any) or the display of the primary root window. 100%
+ represents ideally smooth 60 frames per second.
+ </summary>
+</histogram>
+
<histogram name="Ash.Desks.DesksCount" units="units" expires_after="M85">
<owner>afakhry@chromium.org</owner>
<summary>
@@ -7597,6 +7998,58 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.Homescreen.AnimationSmoothness" units="%"
+ expires_after="2020-08-01">
+ <owner>sammiequon@chromium.org</owner>
+ <owner>tbarzic@chromium.org</owner>
+ <summary>
+ Relative smoothness of animations when performing tablet mode homescreen
+ animations, recorded when the animation completes. 100% represents ideally
+ smooth 60 frames per second.
+ </summary>
+</histogram>
+
+<histogram name="Ash.HotseatInAppGesture" enum="HotseatInAppGesture"
+ expires_after="M85">
+ <owner>andrewxu@chromium.org</owner>
+ <summary>Gestures supported by the in-app hotseat.</summary>
+</histogram>
+
+<histogram name="Ash.HotseatTransition.AnimationSmoothness" units="%"
+ expires_after="2020-05-21">
+<!-- Name completed by histogram suffixes
+ name="HotseatTransitionType" -->
+
+ <owner>anasalazar@chromium.com</owner>
+ <owner>newcomer@chromium.com</owner>
+ <summary>
+ Tracks the animation smoothness for the transitions of the hoseat to and
+ from the shown state.
+ </summary>
+</histogram>
+
+<histogram name="Ash.HotseatTransition.Drag.PresentationTime" units="ms"
+ expires_after="2020-05-21">
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Presentation time in ms of the hotseat when it changes between the hidden
+ and the extended state as a result of a drag action. Recorded when the drag
+ action is in progress.
+ </summary>
+</histogram>
+
+<histogram name="Ash.HotseatTransition.Drag.PresentationTime.MaxLatency"
+ units="ms" expires_after="2020-05-21">
+ <owner>anasalazar@chromium.org</owner>
+ <owner>newcomer@chromium.org</owner>
+ <summary>
+ Maximum latency of the presentation time in ms of the hotseat when it
+ changes between the hidden and the extended state as a result of a drag
+ action. Recorded when the drag action is finished.
+ </summary>
+</histogram>
+
<histogram name="Ash.ImmersiveFullscreen.WindowType" enum="WindowType"
expires_after="M77">
<owner>kuscher@google.com</owner>
@@ -7636,7 +8089,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Login.Lock.AuthMethod.Used.ClamShellMode"
- enum="AuthMethod" expires_after="2020-03-22">
+ enum="AuthMethod" expires_after="2020-05-24">
<owner>jdufault@google.com</owner>
<summary>
The usage of different auth methods (PIN / Password / Smartlock /
@@ -7645,7 +8098,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Login.Lock.AuthMethod.Used.TabletMode" enum="AuthMethod"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jdufault@google.com</owner>
<summary>
The usage of different auth methods (PIN / Password / Smartlock /
@@ -7654,7 +8107,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Login.Lock.NumPasswordAttempts.UntilFailure" units="count"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>kerrnel@google.com</owner>
<summary>
The number of incorrect password entered in ChromeOS login/lock screen until
@@ -7691,6 +8144,23 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.NightLight.AutoNightLightNotificationShown"
+ enum="BooleanShown" expires_after="2020-12-02">
+ <owner>afakhry@chromium.org</owner>
+ <owner>tclaiborne@chromium.org</owner>
+ <summary>Emitted when the Auto Night Light notification is shown.</summary>
+</histogram>
+
+<histogram name="Ash.NightLight.AutoNightLightNotificationState"
+ enum="AshAutoNightLightNotificationState" expires_after="2020-12-02">
+ <owner>afakhry@chromium.org</owner>
+ <owner>tclaiborne@chromium.org</owner>
+ <summary>
+ Emitted when the user interacts with the Auto Night Light notification to
+ report the state of the notification as a result of this interaction.
+ </summary>
+</histogram>
+
<histogram name="Ash.NightLight.DisplayCrtcCtmSupport"
enum="AshNightLightDisplayCrtcCtmSupportType" expires_after="2020-03-22">
<owner>afakhry@chromium.org</owner>
@@ -7703,7 +8173,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.NightLight.ScheduleType" enum="AshNightLightScheduleType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>afakhry@chromium.org</owner>
<summary>
The selected Night Light schedule type. Emitted when the user changes the
@@ -7712,7 +8182,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.NightLight.Temperature"
- enum="AshNightLightTemperatureRanges" expires_after="2020-02-16">
+ enum="AshNightLightTemperatureRanges" expires_after="2020-04-19">
<owner>afakhry@chromium.org</owner>
<summary>
The ranges in which the selected values of the Night Light color temperature
@@ -7722,7 +8192,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.NumberOfVisibleWindowsInPrimaryDisplay" units="Windows"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jamescook@chromium.org</owner>
<summary>
An upper bound on the number of windows visible to the user on the primary
@@ -7881,7 +8351,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Ash.ProcessCreationToFirstPresent" units="ms">
+<histogram name="Ash.ProcessCreationToFirstPresent" units="ms"
+ expires_after="M80">
<obsolete>
Removed 05/2019; no longer need to track this.
</obsolete>
@@ -7894,7 +8365,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Rotation.AnimationSmoothness" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>wutao@chromium.org</owner>
<summary>
Relative smoothness of animations when rotating screen. 100% represents
@@ -7925,7 +8396,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.NumberOfItems" units="Icons"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>bruthig@google.com</owner>
<owner>tdanderson@google.com</owner>
<summary>
@@ -7935,7 +8406,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.NumberOfPinnedItems" units="Icons"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>bruthig@google.com</owner>
<owner>tdanderson@google.com</owner>
<summary>
@@ -7945,7 +8416,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.NumberOfUnpinnedItems" units="Icons"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>bruthig@google.com</owner>
<owner>tdanderson@google.com</owner>
<summary>
@@ -8020,7 +8491,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.Palette.InAssistantMode" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>kaznacheev@chromium.org</owner>
<summary>
The amount of time spent in Palette Assistant mode. Recorded when the
@@ -8056,7 +8527,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.Palette.Usage" enum="PaletteTrayOptions"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>jdufault@chromium.org</owner>
<summary>
Recorded every time that the palette option has been selected from the
@@ -8065,7 +8536,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Shelf.Palette.Usage.AutoOpened" enum="PaletteTrayOptions"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>jdufault@chromium.org</owner>
<summary>
Recorded every time that the palette option has been selected from the
@@ -8109,7 +8580,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.ShelfAlignmentOverTime" enum="ShelfAlignmentValue"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>kuscher@google.com</owner>
<summary>
The current state of the shelf (alignment) tracked over time by logging on a
@@ -8121,7 +8592,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.ShelfAlignmentUsage" enum="ShelfAlignmentValue"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>kuscher@google.com</owner>
<summary>
The current state of the shelf (alignment) when the shelf launcher is used
@@ -8172,7 +8643,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.SwipeDownDrag.Tab.PresentationTime.MaxLatency.TabletMode"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>omrilio@chromium.org</owner>
<summary>
Maximum latency of the presentation timestamp while dragging a tab in tablet
@@ -8188,7 +8659,7 @@ uploading your change for review.
<histogram
name="Ash.SwipeDownDrag.Window.PresentationTime.MaxLatency.TabletMode"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>omrilio@chromium.org</owner>
<summary>
Maximum latency of the presentation timestamp while dragging maximized
@@ -8204,6 +8675,15 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.SwipeHomeToOverviewGesture" enum="BooleanSuccess"
+ expires_after="M85">
+ <owner>andrewxu@chromium.org</owner>
+ <summary>
+ Boolean indicating whether a swipe from hotseat on home screen resulted in a
+ transition to overview.
+ </summary>
+</histogram>
+
<histogram name="Ash.SystemMenu.DefaultView.VisibleRows"
enum="SystemMenuDefaultViewRows" expires_after="M82">
<owner>bruthig@chromium.org</owner>
@@ -8246,7 +8726,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.TabletMode.AnimationSmoothness.Enter" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>oshima@chromium.org</owner>
<owner>sammiequon@chromium.org</owner>
<summary>
@@ -8257,7 +8737,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.TabletMode.AnimationSmoothness.Exit" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>oshima@chromium.org</owner>
<owner>sammiequon@chromium.org</owner>
<summary>
@@ -8388,7 +8868,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.TouchView.TouchViewActive" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>girard@chromium.org</owner>
<summary>
The length of time that TouchView is active, for each activation.
@@ -8396,19 +8876,19 @@ uploading your change for review.
</histogram>
<histogram name="Ash.TouchView.TouchViewActivePercentage" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<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-03-22">
+ expires_after="2020-05-24">
<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-03-01">
+ expires_after="2020-05-03">
<owner>girard@chromium.org</owner>
<summary>The length of time between TouchView activations.</summary>
</histogram>
@@ -8553,7 +9033,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.Window.AnimationSmoothness.CrossFade" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>wutao@chromium.org</owner>
<summary>
Relative smoothness of cross fade animation when setting window bounds. 100%
@@ -8576,6 +9056,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.Window.AnimationSmoothness.Snap" units="%"
+ expires_after="M89">
+ <owner>oshima@chromium.org</owner>
+ <owner>sammiequon@chromium.org</owner>
+ <summary>
+ Relative smoothness of snapping window animation. 100% represents ideally
+ smooth 60 frames per second. 50% represents when only 30 frames per second
+ is achieved during the animations. 0% should not happen. This metric is
+ recorded exactly once when a window is snapped to the left or right in
+ clamshell mode using the alt + [ or ] accelerator, but only if the size of
+ the window's bounds change.
+ </summary>
+</histogram>
+
<histogram name="Ash.WindowCycleController.CycleTime" units="ms"
expires_after="M77">
<obsolete>
@@ -8624,6 +9118,42 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Ash.WindowCycleView.AnimationSmoothness.Container" units="%"
+ expires_after="2020-03-22">
+ <owner>yjliu@chromium.org</owner>
+ <owner>chromeos-wmp@google.com</owner>
+ <summary>
+ Relative smoothness of showing window animation when the window cycle view
+ moves the next window into position when alt + tab is pressed. 100%
+ represents ideally smooth 60 frames per second. 50% represents when only 30
+ frames per second is achieved during the animations. 0% should not happen.
+ </summary>
+</histogram>
+
+<histogram name="Ash.WindowCycleView.AnimationSmoothness.HighLight" units="%"
+ expires_after="2020-03-22">
+ <owner>yjliu@chromium.org</owner>
+ <owner>chromeos-wmp@google.com</owner>
+ <summary>
+ Relative smoothness of showing window animation when the highlight moves to
+ the next window in the window cycle view when alt + tab is pressed. 100%
+ represents ideally smooth 60 frames per second. 50% represents when only 30
+ frames per second is achieved during the animations. 0% should not happen.
+ </summary>
+</histogram>
+
+<histogram name="Ash.WindowCycleView.AnimationSmoothness.Show" units="%"
+ expires_after="2020-03-22">
+ <owner>yjliu@chromium.org</owner>
+ <owner>chromeos-wmp@google.com</owner>
+ <summary>
+ Relative smoothness of showing window animation when the window cycle view
+ starts. 100% represents ideally smooth 60 frames per second. 50% represents
+ when only 30 frames per second is achieved during the animations. 0% should
+ not happen.
+ </summary>
+</histogram>
+
<histogram name="Ash.WindowManager.Lock.Success" units="ms" expires_after="M77">
<owner>jdufault@chromium.org</owner>
<summary>
@@ -8706,7 +9236,7 @@ uploading your change for review.
</histogram>
<histogram name="Ash.WindowSelector.Items" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>flackr@chromium.org</owner>
<owner>kuscher@google.com</owner>
<summary>
@@ -8817,7 +9347,7 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.ButtonClickCount" enum="AssistantButtonId"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -8836,6 +9366,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Assistant.ContextEnabledUserCount" enum="BooleanEnabled"
+ expires_after="2020-11-25">
+ <owner>updowndota@chromium.org</owner>
+ <owner>xiaohuic@chromium.org</owner>
+ <summary>
+ Among eligible users, whether the user has the Assistant context (related
+ info) enabled. Recorded once for every UMA upload. The set of eligible users
+ includes all users with profiles that can allow Assistant service to be
+ enabled (AssistantAllowedState is limited by locale, policy, etc).
+ </summary>
+</histogram>
+
<histogram name="Assistant.DspHotwordDetection"
enum="DspHotwordDetectionStatus" expires_after="2020-05-23">
<owner>meilinw@chromium.org</owner>
@@ -8847,7 +9389,7 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.EntryPoint" enum="AssistantEntryPoint"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -8893,11 +9435,109 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.OptInFlowStatus" enum="AssistantOptInFlowStatus"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>updowndota@chromium.org</owner>
<summary>Record the status of the Assistant opt-in flow.</summary>
</histogram>
+<histogram name="Assistant.ProactiveSuggestions.CardClick"
+ enum="BooleanClicked" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a click on a proactive suggestions card by the user. This histogram
+ is recorded for every click event while derivative metrics are recorded for
+ splicing by category, index, and veId only when those respective attributes
+ are known.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.CardClick.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for a proactive suggestions card that was clicked
+ by the user.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.CardClick.ByIndex"
+ units="index" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records the index for a proactive suggestions card within its list that was
+ clicked by the user.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.CardClick.ByVeId"
+ enum="ProactiveSuggestionsVeId" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records the VE ID for a proactive suggestions card that was clicked by the
+ user.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.FirstShowAttempt"
+ enum="ProactiveSuggestionsShowAttempt" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records an attempt to show a proactive suggestion to the user for the first
+ time.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Assistant.ProactiveSuggestions.FirstShowAttempt.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+<!-- Name completed by histogram_suffixes
+ name="AssistantProactiveSuggestionsShowAttemptByCategory" -->
+
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for an attempt to show a proactive suggestion to
+ the user for the first time.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.FirstShowResult"
+ enum="ProactiveSuggestionsShowResult" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a result of having shown a proactive suggestion to the user for the
+ first time.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Assistant.ProactiveSuggestions.FirstShowResult.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+<!-- Name completed by histogram_suffixes
+ name="AssistantProactiveSuggestionsShowResultByCategory" -->
+
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for having shown a proactive suggestion to the
+ user for the first time.
+ </summary>
+</histogram>
+
<histogram name="Assistant.ProactiveSuggestions.RequestResult"
enum="ProactiveSuggestionsRequestResult" expires_after="2020-08-30">
<owner>xiaohuic@chromium.org</owner>
@@ -8943,8 +9583,64 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Assistant.ProactiveSuggestions.ReshowAttempt"
+ enum="ProactiveSuggestionsShowAttempt" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records an attempt to reshow a proactive suggestion to the user that has
+ already been seen.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Assistant.ProactiveSuggestions.ReshowAttempt.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+<!-- Name completed by histogram_suffixes
+ name="AssistantProactiveSuggestionsShowAttemptByCategory" -->
+
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for an attempt to reshow a proactive suggestion
+ to the user that has already been seen.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.ReshowResult"
+ enum="ProactiveSuggestionsShowResult" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a result of having reshown a proactive suggestion to the user that
+ has already been seen.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Assistant.ProactiveSuggestions.ReshowResult.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+<!-- Name completed by histogram_suffixes
+ name="AssistantProactiveSuggestionsShowResultByCategory" -->
+
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for having reshown a proactive suggestion to the
+ user that has already been seen.
+ </summary>
+</histogram>
+
<histogram name="Assistant.ProactiveSuggestions.ShowAttempt"
enum="ProactiveSuggestionsShowAttempt" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by Assistant.ProactiveSuggestions.FirstShowAttempt and
+ Assistant.ProactiveSuggestions.ReshowAttempt.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -8956,6 +9652,12 @@ uploading your change for review.
<histogram
name="Assistant.ProactiveSuggestions.ShowAttempt.AbortedByDuplicateSuppression"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowAttempt.AbortedByDuplicateSuppression.ByCategory
+ and
+ Assistant.ProactiveSuggestions.ReshowAttempt.AbortedByDuplicateSupression.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -8967,6 +9669,11 @@ uploading your change for review.
<histogram name="Assistant.ProactiveSuggestions.ShowAttempt.Success"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowAttempt.Success.ByCategory and
+ Assistant.ProactiveSuggestions.ReshowAttempt.Success.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -8978,6 +9685,10 @@ uploading your change for review.
<histogram name="Assistant.ProactiveSuggestions.ShowResult"
enum="ProactiveSuggestionsShowResult" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by Assistant.ProactiveSuggestions.FirstShowResult and
+ Assistant.ProactiveSuggestions.ReshowResult.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -8988,6 +9699,11 @@ uploading your change for review.
<histogram name="Assistant.ProactiveSuggestions.ShowResult.Click"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowResult.Click.ByCategory and
+ Assistant.ProactiveSuggestions.ReshowResult.Click.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -9000,6 +9716,12 @@ uploading your change for review.
<histogram
name="Assistant.ProactiveSuggestions.ShowResult.CloseByContextChange"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowResult.CloseByContextChange.ByCategory.
+ and
+ Assistant.ProactiveSuggestions.ReshowResult.CloseByContextChange.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -9011,6 +9733,11 @@ uploading your change for review.
<histogram name="Assistant.ProactiveSuggestions.ShowResult.CloseByTimeout"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowResult.CloseByTimeout.ByCategory and
+ Assistant.ProactiveSuggestions.ReshowResult.CloseByTimeout.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -9022,6 +9749,11 @@ uploading your change for review.
<histogram name="Assistant.ProactiveSuggestions.ShowResult.CloseByUser"
enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowResult.CloseByUser.ByCategory and
+ Assistant.ProactiveSuggestions.ReshowResult.CloseByUser.ByCategory.
+ </obsolete>
<owner>xiaohuic@chromium.org</owner>
<owner>dmblack@google.com</owner>
<owner>croissant-eng@chromium.org</owner>
@@ -9031,6 +9763,60 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Assistant.ProactiveSuggestions.ShowResult.Teleport"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <obsolete>
+ Replaced in M80 by
+ Assistant.ProactiveSuggestions.FirstShowResult.Teleport.ByCategory and
+ Assistant.ProactiveSuggestions.ReshowResult.Teleport.ByCategory.
+ </obsolete>
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for having shown a proactive suggestion to the
+ user that resulted in teleportation directly to a single result.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.ViewImpression"
+ enum="BooleanShown" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records an impression of a proactive suggestions view seen by the user. This
+ histogram is recorded for every impression event while derivative metrics
+ are recorded for splicing by category and veId only when those respective
+ attributes are known. Note that this histogram is primarily used with
+ Assistant.ProactiveSuggestions.CardClick to give an idea of CTR.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.ViewImpression.ByCategory"
+ enum="ProactiveSuggestionsCategory" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records a content category for a proactive suggestions view that was seen by
+ the user. Note that this histogram is primarily used with
+ Assistant.ProactiveSuggestions.CardClick.ByCategory to give an idea of CTR.
+ </summary>
+</histogram>
+
+<histogram name="Assistant.ProactiveSuggestions.ViewImpression.ByVeId"
+ enum="ProactiveSuggestionsVeId" expires_after="2020-08-30">
+ <owner>xiaohuic@chromium.org</owner>
+ <owner>dmblack@google.com</owner>
+ <owner>croissant-eng@chromium.org</owner>
+ <summary>
+ Records the VE ID for a proactive suggestions view that was seen by the
+ user. Note that this histogram is primarily used with
+ Assistant.ProactiveSuggestions.CardClick.ByVeId to give an idea of CTR.
+ </summary>
+</histogram>
+
<histogram name="Assistant.QueryCountPerEntryPoint" enum="AssistantEntryPoint"
expires_after="2020-04-05">
<owner>xiaohuic@chromium.org</owner>
@@ -9039,14 +9825,14 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.QueryResponseType" enum="AssistantQueryResponseType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<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-03-22">
+ expires_after="2020-05-24">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -9056,7 +9842,7 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.ServiceEnabledUserCount" enum="BooleanEnabled"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>xiaohuic@chromium.org</owner>
<owner>meilinw@chromium.org</owner>
<summary>
@@ -9078,7 +9864,7 @@ uploading your change for review.
</histogram>
<histogram name="Assistant.ServiceStartTime" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>updowndota@chromium.org</owner>
<summary>Amount of time spent in starting Assistant service.</summary>
</histogram>
@@ -9978,7 +10764,7 @@ uploading your change for review.
</histogram>
<histogram name="AsyncDNS.WatchStatus" enum="AsyncDNSWatchStatus"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>pauljensen@chromium.org</owner>
<owner>mef@chromium.org</owner>
<summary>
@@ -10006,7 +10792,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.ErrorTypeOfAutoMachinePasswordChange"
- enum="AuthPolicyErrorType" expires_after="2020-02-16">
+ enum="AuthPolicyErrorType" expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10056,7 +10842,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.ErrorTypeOfRefreshDevicePolicy"
- enum="AuthPolicyErrorType" expires_after="2020-02-16">
+ enum="AuthPolicyErrorType" expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10067,7 +10853,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.ErrorTypeOfRefreshUserPolicy"
- enum="AuthPolicyErrorType" expires_after="2020-02-16">
+ enum="AuthPolicyErrorType" expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10078,7 +10864,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.FailedTriesOfKinit" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10091,7 +10877,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.FailedTriesOfSmbClient" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10103,7 +10889,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.NumGposToDownload" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10138,7 +10924,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToGetUserStatus" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10185,7 +10971,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunKinit" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10198,7 +10984,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunKlist" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10211,7 +10997,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunKpasswd" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-05-10">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10224,7 +11010,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunNetAdsGpo" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10236,7 +11022,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunNetAdsInfo" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10259,7 +11045,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunNetAdsSearch" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10271,7 +11057,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunNetAdsWorkgroup" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10283,7 +11069,7 @@ uploading your change for review.
</histogram>
<histogram name="AuthPolicy.TimeToRunSmbclient" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>fsandrade@chromium.org</owner>
<owner>ljusten@chromium.org</owner>
<owner>tomdobro@chromium.org</owner>
@@ -10662,6 +11448,25 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Autofill.Address.IsEnabled.PageLoad" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
+ <owner>chrome-autofill@google.com</owner>
+ <summary>
+ Tracks whether Profile (Address) Autofill is enabled on page load for a page
+ containing forms.
+ </summary>
+</histogram>
+
+<histogram name="Autofill.Address.IsEnabled.Startup" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
+ <owner>chrome-autofill@google.com</owner>
+ <summary>
+ Tracks whether Profile (Address) Autofill is enabled when Chrome launches.
+ </summary>
+</histogram>
+
<histogram name="Autofill.AddressBook.AccessSkipped" enum="BooleanSkipped"
expires_after="2015-08-26">
<obsolete>
@@ -10910,18 +11715,22 @@ uploading your change for review.
</histogram>
<histogram name="Autofill.CanLogUKM" enum="BooleanEnabled" expires_after="M78">
- <owner>dlkumar@google.com</owner>
- <owner>chrome-autofill@google.com</owner>
+ <obsolete>
+ Deprecated after M78.
+ </obsolete>
+ <owner>jsaul@google.com</owner>
+ <owner>siyua@chromium.org</owner>
+ <owner>payments-autofill-team@google.com</owner>
<summary>
Tracks whether UKM logging is enabled for the page in the Autofill.
</summary>
</histogram>
<histogram name="Autofill.CardholderNameFixFlowPrompt.Events"
- enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2019-12-01">
- <owner>dlkumar@google.com</owner>
+ enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2020-11-30">
<owner>jsaul@google.com</owner>
- <owner>chrome-autofill@google.com</owner>
+ <owner>siyua@chromium.org</owner>
+ <owner>payments-autofill-team@google.com</owner>
<summary>
Events tracking the usage of the cardholder name fix flow prompt. This
prompt is triggered whenever cardholder name must be explicitly requested
@@ -10932,7 +11741,8 @@ uploading your change for review.
<histogram name="Autofill.CardUnmask.CvcLength" units="digits"
expires_after="M83">
<owner>jsaul@google.com</owner>
- <owner>jiahuiguo@chromium.org</owner>
+ <owner>siyua@chromium.org</owner>
+ <owner>payments-autofill-team@google.com</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardUnmaskReason" -->
<summary>
@@ -10967,9 +11777,9 @@ uploading your change for review.
<histogram name="Autofill.CardUploadDecisionMetric"
enum="AutofillCardUploadDecisionMetric">
- <owner>csashi@google.com</owner>
<owner>jsaul@google.com</owner>
- <owner>sebsg@chromium.org</owner>
+ <owner>siyua@chromium.org</owner>
+ <owner>payments-autofill-team@google.com</owner>
<summary>
Whether upload was offered upon detecting a form submission with credit card
data, a detailed reason if upload was offered even with some missing fields
@@ -10978,7 +11788,7 @@ uploading your change for review.
</histogram>
<histogram name="Autofill.CardUploadEnabled" enum="AutofillCardUploadEnabled"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>aneeshali@google.com</owner>
<owner>jsaul@google.com</owner>
<summary>
@@ -11006,6 +11816,25 @@ uploading your change for review.
<summary>The Autofill credit card info bar was denied.</summary>
</histogram>
+<histogram name="Autofill.CreditCard.IsEnabled.PageLoad" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
+ <owner>chrome-autofill@google.com</owner>
+ <summary>
+ Tracks whether Credit Card Autofill is enabled on page load for a page
+ containing forms.
+ </summary>
+</histogram>
+
+<histogram name="Autofill.CreditCard.IsEnabled.Startup" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
+ <owner>chrome-autofill@google.com</owner>
+ <summary>
+ Tracks whether Credit Card Autofill is enabled when Chrome launches.
+ </summary>
+</histogram>
+
<histogram name="Autofill.CreditCardFillingInfoBar"
enum="AutofillCreditCardInfoBar">
<owner>mathp@chromium.org</owner>
@@ -11112,7 +11941,6 @@ uploading your change for review.
<obsolete>
Deprecated as of 06/2019.
</obsolete>
- <owner>csashi@google.com</owner>
<owner>jsaul@google.com</owner>
<owner>sebsg@chromium.org</owner>
<summary>
@@ -11272,7 +12100,7 @@ uploading your change for review.
<histogram name="Autofill.FormEvents.CreditCard.BankNameDisplayed"
enum="BankNameDisplayedFormEvent">
<owner>jsaul@google.com</owner>
- <owner>jiahuiguo@chromium.org</owner>
+ <owner>siyua@chromium.org</owner>
<summary>
Autofill form events for credit card forms. These are recorded when the user
interacts with a form requesting a credit card, a dropdown of suggestions is
@@ -11413,7 +12241,6 @@ uploading your change for review.
<obsolete>
Deprecated as of 06/2019.
</obsolete>
- <owner>csashi@google.com</owner>
<owner>jsaul@google.com</owner>
<owner>sebsg@chromium.org</owner>
<summary>
@@ -11460,14 +12287,18 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Autofill.IsEnabled.PageLoad" enum="BooleanEnabled">
+<histogram name="Autofill.IsEnabled.PageLoad" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
<owner>isherman@chromium.org</owner>
<summary>
Tracks whether Autofill is enabled on page load for a page containing forms.
</summary>
</histogram>
-<histogram name="Autofill.IsEnabled.Startup" enum="BooleanEnabled">
+<histogram name="Autofill.IsEnabled.Startup" enum="BooleanEnabled"
+ expires_after="2020-05-01">
+ <owner>jsaul@google.com</owner>
<owner>isherman@chromium.org</owner>
<summary>Tracks whether Autofill is enabled when Chrome launches.</summary>
</histogram>
@@ -11594,7 +12425,7 @@ uploading your change for review.
</histogram>
<histogram name="Autofill.LocalCardMigrationDecision"
- enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2019-11-30">
+ enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2020-11-30">
<owner>sujiezhu@google.com</owner>
<owner>siyua@chromium.org</owner>
<owner>jsaul@google.com</owner>
@@ -11637,9 +12468,8 @@ uploading your change for review.
<histogram name="Autofill.LocalCardMigrationOrigin"
enum="LocalCardMigrationPrompt">
- <owner>jiahuiguo@chromium.org</owner>
- <owner>jsaul@google.com</owner>
<owner>siyua@chromium.org</owner>
+ <owner>jsaul@google.com</owner>
<summary>
Records when local card migration prompts are shown and/or accepted.
</summary>
@@ -12353,7 +13183,6 @@ uploading your change for review.
enum="AutofillSaveType" expires_after="2020-03-18">
<owner>jsaul@google.com</owner>
<owner>annelim@google.com</owner>
- <owner>jiahuiguo@chromium.org</owner>
<summary>
Records when local card migration is not offered due to the candidate's
LocalCardMigration strike count reaching maximum strikes.
@@ -12434,7 +13263,8 @@ uploading your change for review.
</histogram>
<histogram name="Autofill.SubmittedCardState" enum="AutofillSubmittedCardState">
- <owner>dlkumar@google.com</owner>
+ <owner>jsaul@google.com</owner>
+ <owner>payments-autofill-team@google.com</owner>
<summary>
Metric to measure credit card state when form is submitted, specifically if
it had a valid card number and/or expiration date.
@@ -13042,7 +13872,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.AdapterDecisionAtUserChange.AlsDelta"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<!-- Name completed by histogram_suffixes name="AlsBrightnessDirection" and name="AdapterDecision" -->
<owner>jiameng@chromium.org</owner>
@@ -13056,7 +13886,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.AdapterDecisionAtUserChange.AlsStd"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<!-- Name completed by histogram_suffixes name="AlsBrightnessDirection" and name="AdapterDecision" -->
<owner>jiameng@chromium.org</owner>
@@ -13081,7 +13911,7 @@ uploading your change for review.
<histogram base="true"
name="AutoScreenBrightness.AdapterDecisionAtUserChange.ModelIteration"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<!-- Name completed by histogram_suffixes name="AdapterDecision" -->
<owner>jiameng@chromium.org</owner>
@@ -13095,7 +13925,7 @@ uploading your change for review.
<histogram
name="AutoScreenBrightness.AdapterDecisionAtUserChange.NoBrightnessChange.Cause"
enum="AutoScreenBrightnessNoBrightnessChangeCause"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<summary>
When user changes brightness manually, we will ask the model whether it also
@@ -13106,7 +13936,7 @@ uploading your change for review.
<histogram
name="AutoScreenBrightness.AdapterDecisionAtUserChange.Unknown.AlsStd"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<!-- Name completed by histogram_suffixes name="AdapterDecision" -->
<owner>jiameng@chromium.org</owner>
@@ -13119,7 +13949,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.AlsReaderStatus"
- enum="AutoScreenBrightnessAlsReaderStatus" expires_after="2020-03-01">
+ enum="AutoScreenBrightnessAlsReaderStatus" expires_after="2020-05-03">
<owner>tby@chromium.org</owner>
<summary>
Whether the ALS is enabled or the error otherwise. Chrome OS only.
@@ -13127,13 +13957,13 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.Cause"
- enum="AutoScreenBrightnessBrightnessChangeCause" expires_after="2020-03-01">
+ enum="AutoScreenBrightnessBrightnessChangeCause" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>Reason for the model to change brightness. Chrome OS only.</summary>
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.ElapsedTime" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
The time between two consecutive auto brightness changes. Chrome OS only.
@@ -13141,7 +13971,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.BrightnessChange.ModelIteration"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-05-10">
<owner>jiameng@chromium.org</owner>
<summary>
Number of model iterations when brightness is changed by a personal curve.
@@ -13160,7 +13990,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Atlas" units="count"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jiameng@chromium.org</owner>
<summary>
Number of times that a user has made brightness adjustments on an Atlas
@@ -13175,7 +14005,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Eve" units="count"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
Number of times that a user has made brightness adjustments on an Eve device
@@ -13189,7 +14019,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.NoAls" units="count"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
Number of times that a user has made brightness adjustments on a device
@@ -13203,7 +14033,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.Nocturne"
- units="count" expires_after="2020-03-31">
+ units="count" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<owner>wrong@chromium.org</owner>
<summary>
@@ -13219,7 +14049,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.SupportedAls"
- units="count" expires_after="2020-03-01">
+ units="count" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
Number of times that a user has made brightness adjustments on a device with
@@ -13233,7 +14063,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DailyUserAdjustment.UnsupportedAls"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<summary>
Number of times that a user has made brightness adjustments on a device with
@@ -13247,7 +14077,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.DataError"
- enum="AutoScreenBrightnessDataError" expires_after="2019-12-31">
+ enum="AutoScreenBrightnessDataError" expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<summary>
Type of error seen when handling data related to automatic screen brightness
@@ -13257,7 +14087,7 @@ uploading your change for review.
<histogram
name="AutoScreenBrightness.ElapsedTimeBetweenModelAndUserAdjustments"
- units="ms" expires_after="2020-03-01">
+ units="ms" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
The elapsed time from a model brightness adjustment to the next user manual
@@ -13280,7 +14110,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.MissingPriorUserBrightnessRequest"
- enum="BooleanError" expires_after="2019-12-31">
+ enum="BooleanError" expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<summary>
Under the current implementation of brightness monitor, user brightness
@@ -13292,7 +14122,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelIterationCountAtInitialization"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
@@ -13301,7 +14131,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelLoadingStatus"
- enum="AutoScreenBrightnessModelLoadingStatus" expires_after="2019-12-31">
+ enum="AutoScreenBrightnessModelLoadingStatus" expires_after="2020-06-30">
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>Status of the model loading from disk. Chrome OS only.</summary>
@@ -13309,7 +14139,7 @@ uploading your change for review.
<histogram name="AutoScreenBrightness.ModelTraining.BrightnessChange"
enum="AutoScreenBrightnessBoundedBrightnessChange"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<summary>
Whether a new brightness exceeds the preset bound that defines reasonble
@@ -13318,7 +14148,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelTraining.BrightnessOutlier"
- enum="Boolean" expires_after="2020-03-29">
+ enum="Boolean" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<summary>
Whether a training data is an outlier and should be discarded by the model
@@ -13327,7 +14157,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelTraining.Inaccuracy.NoUpdate"
- units="%" expires_after="2020-03-29">
+ units="%" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
@@ -13338,7 +14168,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelTraining.Inaccuracy.Update"
- units="%" expires_after="2020-03-29">
+ units="%" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<owner>napper@chromium.org</owner>
<summary>
@@ -13349,7 +14179,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ModelTraining.ModelUserConsistent"
- enum="Boolean" expires_after="2020-03-29">
+ enum="Boolean" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<summary>
Whether user brightness change is consistent with the model so that model is
@@ -13358,7 +14188,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.NewCurveSaved.Duration" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-04-26">
<owner>jiameng@chromium.org</owner>
<summary>
The time elapsed between training start and a new curve saved to disk. Only
@@ -13368,7 +14198,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.NewCurveSaved.Success"
- enum="BooleanSuccess" expires_after="2020-03-01">
+ enum="BooleanSuccess" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
Whether a new curve was successfully saved to disk. Only reported if a new
@@ -13377,7 +14207,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.Opposite.UserModelBrightnessAdjustments"
- units="count" expires_after="2020-03-01">
+ units="count" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
When user changes brightness manually, if the previous change was caused by
@@ -13388,7 +14218,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.ParameterError"
- enum="AutoScreenBrightnessParameterError" expires_after="2019-12-31">
+ enum="AutoScreenBrightnessParameterError" expires_after="2020-06-30">
<owner>tby@chromium.org</owner>
<summary>
When there is an error in the automatic screen brightness parameters, this
@@ -13397,7 +14227,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.PersonalCurveValid" enum="BooleanValid"
- expires_after="2019-12-31">
+ expires_after="2020-04-26">
<owner>tby@chromium.org</owner>
<summary>
Whether the user's personal brightness curve is valid. Chrome OS only.
@@ -13405,7 +14235,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.Same.UserModelBrightnessAdjustments"
- units="count" expires_after="2019-12-31">
+ units="count" expires_after="2020-04-26">
<owner>jiameng@chromium.org</owner>
<summary>
When user changes brightness manually, if the previous change was caused by
@@ -13416,7 +14246,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.TrainingCompleteDuration.NewCurve"
- units="ms" expires_after="2020-03-08">
+ units="ms" expires_after="2020-05-10">
<owner>jiameng@chromium.org</owner>
<summary>
The time elapsed to complete training after which a new curve was generated.
@@ -13425,7 +14255,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.TrainingCompleteDuration.NoNewCurve"
- units="ms" expires_after="2020-03-01">
+ units="ms" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
The time elapsed to complete training after which no new curve was
@@ -13443,7 +14273,7 @@ uploading your change for review.
</histogram>
<histogram name="AutoScreenBrightness.UserAdjustmentEffect"
- enum="AutoScreenBrightnessUserAdjustmentEffect" expires_after="2020-03-01">
+ enum="AutoScreenBrightnessUserAdjustmentEffect" expires_after="2020-05-03">
<owner>jiameng@chromium.org</owner>
<summary>
How user manual screen brightness adjustment changes the model. Chrome OS
@@ -13524,6 +14354,19 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Availability.Prober.TimeUntilFailure" units="ms"
+ expires_after="M82">
+ <obsolete>
+ Replaced by Availability.Prober.TimeUntilFailure2.
+ </obsolete>
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Records the amount of time spent working on a single probe attempt to get to
+ a failed state. Recorded every time a probe fails.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Availability.Prober.TimeUntilFailure2" units="ms"
expires_after="2020-08-01">
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
@@ -13534,6 +14377,19 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Availability.Prober.TimeUntilSuccess" units="ms"
+ expires_after="M82">
+ <obsolete>
+ Replaced by Availability.Prober.TimeUntilSuccess2.
+ </obsolete>
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Records the amount of time spent working on a single probe attempt to get to
+ a successful state. Recorded every time a probe succeeds.
+ </summary>
+</histogram>
+
+<histogram base="true" name="Availability.Prober.TimeUntilSuccess2" units="ms"
expires_after="2020-08-01">
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
@@ -13553,8 +14409,6 @@ uploading your change for review.
after the document is restored. This happens when there is a race between
eviction and restoring. This also records when the page is restored to
calculate how often this eviction happens.
-
- This recording starts as of M79.
</summary>
</histogram>
@@ -13565,8 +14419,31 @@ uploading your change for review.
<summary>
When navigating back to a page in the session history, this records whether
the page was restored from the BackForwardCache or not.
+ </summary>
+</histogram>
+
+<histogram name="BackForwardCache.HistoryNavigationOutcome.BlocklistedFeature"
+ enum="WebSchedulerTrackedFeature" expires_after="2020-10-01">
+ <owner>bfcache-dev@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <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.
+ </summary>
+</histogram>
- This recording starts as of M79.
+<histogram
+ name="BackForwardCache.HistoryNavigationOutcome.BrowsingInstanceNotSwappedReason"
+ enum="BackForwardCacheBrowsingInstanceNotSwappedReason"
+ expires_after="2020-10-01">
+ <owner>bfcache-dev@chromium.org</owner>
+ <owner>hajimehoshi@chromium.org</owner>
+ <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>
</histogram>
@@ -13587,22 +14464,18 @@ uploading your change for review.
for each reason. Compare this with
BackForwardCache.HistoryNavigationOutcome, which contains the total number
of navigations which where not cached
-
- Recording starts as of M79.
</summary>
</histogram>
-<histogram name="BackForwardCache.HistoryNavigationOutcome.EvictedReason"
- enum="BackForwardCacheEvictedReason" expires_after="2020-10-01">
+<histogram name="BackForwardCache.HistoryNavigationOutcome.NotRestoredReason"
+ enum="BackForwardCacheNotRestoredReason" expires_after="2020-10-01">
<owner>bfcache-dev@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<summary>
- When navigating back to a page in the session history, this records the
- reason why the page is evicted from the back-forward cache. Eviction can
- happen when the page can no longer be held by the cache. This is a breakdown
- metric of BackForwardCache.HistoryNavigationOutcome's 'Evicted' value.
-
- Recording starts as of M79.
+ When navigating back to a page in the session history, record why it wasn't
+ restored from the cache. The page might not have entered the back-forward in
+ the first place based on the features used, or it might have been evicted
+ while being in the cache.
</summary>
</histogram>
@@ -13694,7 +14567,7 @@ uploading your change for review.
</histogram>
<histogram name="BackgroundFetch.MatchCalledFromDocumentScope"
- enum="ScopeMatchCalledFrom" expires_after="2019-12-31">
+ enum="ScopeMatchCalledFrom" expires_after="2020-06-30">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -13705,7 +14578,7 @@ uploading your change for review.
</histogram>
<histogram name="BackgroundFetch.MatchCalledWhenFetchIsIncomplete"
- enum="FetchStatusWhenMatchCalled" expires_after="2019-12-31">
+ enum="FetchStatusWhenMatchCalled" expires_after="2020-06-30">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -13717,7 +14590,7 @@ uploading your change for review.
</histogram>
<histogram name="BackgroundFetch.PercentOfRequestsForWhichUpdatesAreSent"
- units="%" expires_after="2019-12-31">
+ units="%" expires_after="2020-06-30">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -14022,7 +14895,7 @@ uploading your change for review.
</histogram>
<histogram name="BackgroundSync.Registration.OneShot.CouldFire"
- enum="BooleanCouldFireImmediately" expires_after="2020-02-16">
+ enum="BooleanCouldFireImmediately" expires_after="2020-04-19">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -14272,7 +15145,14 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Animate.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent processing main frame animations during a main frame update.
@@ -14333,7 +15213,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Binding.InitializeMainLocalWindowProxy"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Deprecated as of 04/2019 with the removal of field trial experiment
settings.
@@ -14474,6 +15354,9 @@ uploading your change for review.
<histogram name="Blink.Canvas.2DLayerBridgeIsDeferred" enum="BooleanSuccess"
expires_after="2019-12-31">
+ <obsolete>
+ Deprecated as the deferral path is always used now - 11/2019.
+ </obsolete>
<owner>aaronhk@chromium.org</owner>
<owner>fserb@chromium.org</owner>
<summary>
@@ -14916,7 +15799,7 @@ uploading your change for review.
<summary>Gamut properties of destination color space.</summary>
</histogram>
-<histogram name="Blink.ColorGamut.Source" enum="Gamut">
+<histogram name="Blink.ColorGamut.Source" enum="Gamut" expires_after="M80">
<obsolete>
No useful signal. Deprecated 7/2019.
</obsolete>
@@ -15076,6 +15959,8 @@ uploading your change for review.
<histogram name="Blink.Compositing.UpdateTime" units="microseconds"
expires_after="2020-3-1">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating compositing in the Blink document lifecycle. This is the
@@ -15090,6 +15975,8 @@ uploading your change for review.
<histogram name="Blink.CompositingCommit.UpdateTime" units="microseconds"
expires_after="2020-3-1">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating and pushing layers at the end of the paint step in the
@@ -15104,6 +15991,30 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Blink.Compression.CompressionStream.Format"
+ enum="CompressionStreamsFormat" expires_after="2020-10-31">
+ <owner>ricea@chromium.org</owner>
+ <owner>yhirano@chromium.org</owner>
+ <summary>
+ Compression format passed to the constructor of the JavaScript API
+ &quot;CompressionStream&quot;, which is used for lossless compression of
+ arbitrary binary data. Recorded once per call to the constructor. This
+ measures which compression formats are most commonly used in the wild.
+ </summary>
+</histogram>
+
+<histogram name="Blink.Compression.DecompressionStream.Format"
+ enum="CompressionStreamsFormat" expires_after="2020-10-31">
+ <owner>ricea@chromium.org</owner>
+ <owner>yhirano@chromium.org</owner>
+ <summary>
+ Compression format passed to the constructor of the JavaScript API
+ &quot;DecompressionStream&quot;, which is used for lossless decompression of
+ arbitrary binary data. Recorded once per call to the constructor. This
+ measures which compression formats are most commonly used in the wild.
+ </summary>
+</histogram>
+
<histogram name="Blink.CookieJar.SyncCookiesSetTime" units="microseconds"
expires_after="2020-01-20">
<owner>kinuko@chromium.org</owner>
@@ -15187,7 +16098,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.DecodedImage.JpegDensity.1000px"
- units="0.01 bits per pixel" expires_after="2020-02-23">
+ units="0.01 bits per pixel" expires_after="2020-04-26">
<obsolete>
Deprecated in M79. Replaced by Blink.DecodedImage.JpegDensity.KiBWeighted.
</obsolete>
@@ -15291,7 +16202,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.DecodedImageType" enum="DecodedImageType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>urvang@chromium.org</owner>
<summary>Image codec inferred during decode.</summary>
</histogram>
@@ -15502,7 +16413,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ForcedStyleAndLayout.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent computing layouts due to Javascript value requests. Specifically,
@@ -15528,7 +16441,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.HandleInputEvents.UpdateTime" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent processing rAF-aligned input during a main frame update.
@@ -15585,7 +16500,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ImageDecoders.Jpeg.Area" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>andrescj@chromium.org</owner>
<summary>
Number of pixels in a decoded JPEG image. Recorded after decoding is done by
@@ -15599,7 +16514,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ImageDecoders.Jpeg.ColorSpace" enum="JpegColorSpace"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
<summary>
@@ -15611,7 +16526,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.IntersectionObservation.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent computing IntersectionObserver observations in the Blink document
@@ -15632,7 +16549,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Layout.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>schenney@chromium.org</owner>
<owner>layout-dev@chromium.org</owner>
<summary>
@@ -15680,7 +16599,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.AnimateRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15692,7 +16611,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.CompositingCommitRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15704,7 +16623,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.CompositingRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15716,7 +16635,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.ForcedStyleAndLayoutRatio"
- units="%" expires_after="2020-3-1">
+ units="%" expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15729,7 +16648,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.HandleInputEventsRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15741,7 +16660,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.IntersectionObservationRatio"
- units="%" expires_after="2020-3-1">
+ units="%" expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15753,7 +16672,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.LayoutRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15765,7 +16684,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.PaintRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15777,7 +16696,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.PrePaintRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15789,7 +16708,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.ProxyCommitRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15801,7 +16720,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.ScrollingCoordinatorRatio"
- units="%" expires_after="2020-3-1">
+ units="%" expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15814,7 +16733,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.StyleAndLayoutRatio" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15826,7 +16745,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.StyleRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15838,7 +16757,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.MainFrame.UpdateLayersRatio" units="%"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<!-- Name completed by histogram_suffixes name="BlinkMainFrameUpdateTimeSuffixes" -->
@@ -15850,7 +16769,13 @@ uploading your change for review.
</histogram>
<histogram name="Blink.MainFrame.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -16037,7 +16962,14 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Paint.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating paint in the Blink document lifecycle.
@@ -16061,7 +16993,14 @@ uploading your change for review.
</histogram>
<histogram name="Blink.PrePaint.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent updating paint properties and paint invalidation in the Blink
@@ -16074,7 +17013,14 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ProxyCommit.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Time spent commiting the layer tree to the impl thread in a main frame
@@ -16125,7 +17071,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.ResourceLoadScheduler.PeakRequests"
- units="requests">
+ units="requests" expires_after="M80">
<obsolete>
Removed as of 6/2019.
</obsolete>
@@ -16164,7 +17110,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.ResourceLoadScheduler.TotalDecodedBytes"
- units="bytes">
+ units="bytes" expires_after="M80">
<obsolete>
Removed as of 6/2019.
</obsolete>
@@ -16179,7 +17125,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.ResourceLoadScheduler.TotalRequestCount"
- units="requests">
+ units="requests" expires_after="M80">
<obsolete>
Removed as of 6/2019.
</obsolete>
@@ -16194,7 +17140,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Blink.ResourceLoadScheduler.TotalTrafficBytes"
- units="bytes">
+ units="bytes" expires_after="M80">
<obsolete>
Removed as of 6/2019.
</obsolete>
@@ -16365,8 +17311,15 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ScrollingCoordinator.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>pdr@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
<summary>
The time it took to update scrolling coordinator data (scroll gesture
regions, touch event rects, and main thread scrolling reasons). These values
@@ -16404,6 +17357,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Blink.Sms.Receive.DestroyedReason"
+ enum="SmsReceiverDestroyedReason" expires_after="M82">
+ <owner>goto@chromium.org</owner>
+ <owner>reillyg@chromium.org</owner>
+ <owner>ayui@chromium.org</owner>
+ <summary>
+ Records the reason an SMS Service is destroyed before request completion.
+ </summary>
+</histogram>
+
<histogram name="Blink.Sms.Receive.Infobar" enum="SMSReceiverInfobarAction"
expires_after="M82">
<owner>goto@chromium.org</owner>
@@ -16416,7 +17379,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Sms.Receive.Outcome" enum="SMSReceiverOutcome"
- expires_after="2020-03-08">
+ expires_after="2020-05-17">
<owner>goto@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
<owner>ayui@chromium.org</owner>
@@ -16425,6 +17388,10 @@ uploading your change for review.
<histogram name="Blink.Sms.Receive.RequestedTimeout" units="ms"
expires_after="M81">
+ <obsolete>
+ Deprecated 9/2019 since the concept of timeouts have been removed.
+ https://crbug.com/1000376
+ </obsolete>
<owner>goto@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
<owner>ayui@chromium.org</owner>
@@ -16504,6 +17471,10 @@ uploading your change for review.
<histogram name="Blink.Sms.Receive.TimeTimeoutExceeded" units="ms"
expires_after="M81">
+ <obsolete>
+ Deprecated 9/2019 since the concept of timeouts have been removed.
+ https://crbug.com/1000376
+ </obsolete>
<owner>goto@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
<owner>ayui@chromium.org</owner>
@@ -16523,7 +17494,13 @@ uploading your change for review.
</histogram>
<histogram name="Blink.Style.UpdateTime" units="microseconds"
- expires_after="2020-3-1">
+ expires_after="2020-05-03">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
<owner>schenney@chromium.org</owner>
<owner>layout-dev@chromium.org</owner>
<summary>
@@ -16535,7 +17512,14 @@ uploading your change for review.
</histogram>
<histogram name="Blink.StyleAndLayout.UpdateTime" units="microseconds"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" -->
+
+<!-- Name completed by histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" -->
+
+ <owner>schenney@chromium.org</owner>
<owner>layout-dev@chromium.org</owner>
<summary>
Time spent updating style and layout in the Blink document lifecycle.
@@ -16546,7 +17530,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.ThreadedIconLoader.LoadTime" units="ms"
- expires_after="2019-12-01">
+ expires_after="2020-12-01">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<summary>
@@ -16561,7 +17545,8 @@ uploading your change for review.
<!-- https://www.chromestatus.com/metrics/css/animated -->
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Records usage of animated CSS properties used on a page, either statically
or dynamically, from the time the page is initialised to when it is closed
@@ -16579,12 +17564,13 @@ uploading your change for review.
<histogram
name="Blink.UseCounter.AnimatedCSSProperties_TestBrowserProcessLogging"
- enum="MappedCSSProperties">
+ enum="MappedCSSProperties" expires_after="2018-06-12">
<obsolete>
Renamed to Blink.UseCounter.AnimatedCSSProperties in 03/2018, M69. The old
blink UseCounter is flawed in OOPIF, so moved to the browser side instead.
</obsolete>
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Records usage of animated CSS properties used across all frames in a page,
either statically or dynamically, from the time the page is initialised to
@@ -16600,7 +17586,8 @@ uploading your change for review.
<!-- https://www.chromestatus.com/metrics/css/animated -->
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Records usage of CSS properties used on a page, either statically or
dynamically, from the time the page is initialised to when it is closed or
@@ -16638,7 +17625,8 @@ uploading your change for review.
Renamed to Blink.UseCounter.CSSProperties in 03/2018, M69. The old blink
UseCounter is flawed in OOPIF, so moved to the browser side instead.
</obsolete>
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Records usage of CSS properties used across all frames in a page, either
statically or dynamically, from the time the page is initialised to when it
@@ -16649,8 +17637,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.Extensions.Features" enum="FeatureObserver"
- expires_after="2020-03-22">
- <owner>loonybear@chromium.org</owner>
+ expires_after="2020-05-24">
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Count of how many page loads use various features for pages with a
chrome-extension:// URL only. The PageVisits bucket is incremented for each
@@ -16664,7 +17653,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.Allow"
- enum="FeaturePolicyFeature" expires_after="2019-10-31">
+ enum="FeaturePolicyFeature" expires_after="2020-10-31">
<owner>iclelland@chromium.org</owner>
<summary>
Counts the use of a specific feature policy via the &quot;allow&quot;
@@ -16673,7 +17662,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.AttributeAllowlistType"
- enum="FeaturePolicyAllowlistType" expires_after="M79">
+ enum="FeaturePolicyAllowlistType" expires_after="2020-10-31">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -16685,7 +17674,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.Header"
- enum="FeaturePolicyFeature" expires_after="2020-02-16">
+ enum="FeaturePolicyFeature" expires_after="2020-05-03">
<owner>iclelland@chromium.org</owner>
<summary>
Counts the use of a specific feature policy via the
@@ -16694,7 +17683,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.HeaderAllowlistType"
- enum="FeaturePolicyAllowlistType" expires_after="2020-03-29">
+ enum="FeaturePolicyAllowlistType" expires_after="2020-10-31">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -16706,7 +17695,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.ImageDownscalingRatio"
- units="%" expires_after="M80">
+ units="%" expires_after="2020-05-24">
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
<summary>
@@ -16758,8 +17747,9 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.FeaturePolicy.PotentialViolation"
- enum="FeaturePolicyFeature" expires_after="2019-12-15">
- <owner>ekaramad@chromium.org</owner>
+ enum="FeaturePolicyFeature" expires_after="2020-10-31">
+ <owner>iclelland@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Tracks potential violations of feature policies in a document. This is
emitted once all the conditions for violating the feature policy are met in
@@ -16790,7 +17780,8 @@ uploading your change for review.
<!-- https://www.chromestatus.com/metrics/css/animated -->
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Count of how many page loads use various features across all frames in a
page. The PageVisits bucket is incremented for each page load, and the other
@@ -16809,8 +17800,10 @@ uploading your change for review.
</details>
</histogram>
-<histogram name="Blink.UseCounter.Features_Legacy" enum="FeatureObserver">
- <owner>loonybear@chromium.org</owner>
+<histogram name="Blink.UseCounter.Features_Legacy" enum="FeatureObserver"
+ expires_after="M81">
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Count of how many page loads use various features. The PageVisits bucket is
incremented for each page load, and the other buckets incremented at most
@@ -16829,7 +17822,8 @@ uploading your change for review.
Renamed to Blink.UseCounter.Features in 03/2018, M67. The old blink
UseCounter is flawed in OOPIF, so moved to the browser side (this) instead.
</obsolete>
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Count of how many page loads use various features across all frames in a
page. The PageVisits bucket is incremented for each page load, and the other
@@ -16839,7 +17833,7 @@ uploading your change for review.
</histogram>
<histogram name="Blink.UseCounter.File.Features" enum="FeatureObserver"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yhirano@chromium.org</owner>
<owner>mkwst@chromium.org</owner>
<summary>
@@ -16853,8 +17847,12 @@ uploading your change for review.
</details>
</histogram>
-<histogram name="Blink.UseCounter.MainFrame.Features" enum="FeatureObserver">
- <owner>loonybear@chromium.org</owner>
+<histogram name="Blink.UseCounter.MainFrame.Features" enum="FeatureObserver"
+ expires_after="never">
+<!-- expires-never: Companion to Blink.UseCounter.Features, which is also expires-never. -->
+
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Count of how many page loads use various features across in the main frame
of a page. The PageVisits bucket is incremented at the beginning of each
@@ -16874,7 +17872,8 @@ uploading your change for review.
Removed in 06/2018, M69 since the histogram is not really useful. See
https://crbug.com/804645.
</obsolete>
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Like Blink.UseCounter.AnimatedCSSProperties but specifically for the case of
CSS properties used inside of an SVG image.
@@ -16894,7 +17893,8 @@ uploading your change for review.
Removed in 06/2018, M69 since the histogram is not really useful. See
https://crbug.com/804645.
</obsolete>
- <owner>loonybear@chromium.org</owner>
+ <owner>chasej@chromium.org</owner>
+ <owner>feature-control@chromium.org</owner>
<summary>
Like Blink.UseCounter.CSSProperties but specifically for the case of CSS
properties used inside of an SVG image.
@@ -17173,7 +18173,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.EagerSweep" units="ms">
+<histogram name="BlinkGC.SlowIncrementalMarkingFinalize.EagerSweep" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019. Data gathering finished with the result that slow
marking finalization was mostly caused by visiting DOM wrappers or premature
@@ -17286,7 +18287,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BlinkGC.TimeForCoalesce" units="ms">
+<histogram name="BlinkGC.TimeForCoalesce" units="ms" expires_after="M80">
<obsolete>
Deprecated 07/2019. Coalescing is not used anymore.
</obsolete>
@@ -17463,7 +18464,7 @@ uploading your change for review.
</histogram>
<histogram name="BloatedRenderer.HandlingInBrowser"
- enum="BloatedRendererHandlingInBrowser">
+ enum="BloatedRendererHandlingInBrowser" expires_after="M80">
<obsolete>
Obsolete as of 05/2019.
</obsolete>
@@ -17474,7 +18475,7 @@ uploading your change for review.
</histogram>
<histogram name="BloatedRenderer.HandlingInResourceCoordinator"
- enum="BloatedRendererHandlingInResourceCoordinator">
+ enum="BloatedRendererHandlingInResourceCoordinator" expires_after="M80">
<obsolete>
Obsolete as of 05/2019.
</obsolete>
@@ -17486,7 +18487,7 @@ uploading your change for review.
</histogram>
<histogram name="BloatedRenderer.V8.NearV8HeapLimitHandling"
- enum="NearV8HeapLimitHandling">
+ enum="NearV8HeapLimitHandling" expires_after="M80">
<obsolete>
Obsolete as of 05/2019.
</obsolete>
@@ -17547,7 +18548,7 @@ uploading your change for review.
</histogram>
<histogram name="Bluetooth.Availability.v2" enum="BluetoothAvailability"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -17641,7 +18642,7 @@ uploading your change for review.
</histogram>
<histogram name="Bluetooth.ConnectedDeviceCount" units="devices"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>adlr@chromium.org</owner>
<summary>
Counts the number of simulataneously connected Bluetooth devices. Used to
@@ -17704,7 +18705,7 @@ uploading your change for review.
</histogram>
<histogram name="Bluetooth.PairingMethod" enum="BluetoothPairingMethod"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>adlr@chromium.org</owner>
<summary>
Records the method used to pair each Bluetooth Device. Used to direct our
@@ -18109,7 +19110,7 @@ uploading your change for review.
</histogram>
<histogram name="Bluetooth.Web.RequestDevice.OptionalServices.Services"
- enum="GATTServiceHash" expires_after="2020-03-01">
+ enum="GATTServiceHash" expires_after="2020-05-03">
<owner>odejesush@chromium.org</owner>
<owner>ortuno@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
@@ -18194,7 +19195,7 @@ uploading your change for review.
</histogram>
<histogram name="Bluetooth.Web.RequestDevice.UnionOfServices.Services"
- enum="GATTServiceHash" expires_after="2020-03-01">
+ enum="GATTServiceHash" expires_after="2020-05-03">
<owner>odejesush@chromium.org</owner>
<owner>ortuno@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
@@ -18206,7 +19207,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BlueZ.AdapterLost" units="seconds" expires_after="2020-03-01">
+<histogram name="BlueZ.AdapterLost" units="seconds" expires_after="2020-05-03">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records a duration of a Bluetooth adapter
@@ -18228,7 +19229,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BlueZ.ChipLost2" units="seconds" expires_after="2020-02-23">
+<histogram name="BlueZ.ChipLost2" units="seconds" expires_after="2020-04-26">
<owner>sonnysasaka@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records a duration of a Bluetooth adapter
@@ -18249,7 +19250,7 @@ uploading your change for review.
</histogram>
<histogram name="BlueZ.ReasonOfDisconnection" enum="BlueZReasonOfDisconnection"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records the reason of Bluetooth disconnection
@@ -18269,7 +19270,7 @@ uploading your change for review.
</histogram>
<histogram name="BlueZ.ResultOfConnection" enum="BlueZResultOfConnection"
- expires_after="2020-02-02">
+ expires_after="2020-05-03">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of connection requests
@@ -18279,7 +19280,7 @@ uploading your change for review.
</histogram>
<histogram name="BlueZ.ResultOfPairing" enum="BlueZResultOfPairing"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>mcchou@chromium.org</owner>
<summary>
This is specific to Chrome OS. Records the outcomes of pairing with remote
@@ -18477,7 +19478,7 @@ uploading your change for review.
</histogram>
<histogram name="Bookmarks.Count.OnProfileLoad" units="bookmarks"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>supertri@chromium.org</owner>
<owner>isherman@chromium.org</owner>
<owner>aidanday@google.com</owner>
@@ -18491,7 +19492,7 @@ uploading your change for review.
</histogram>
<histogram name="Bookmarks.Count.OnProfileLoad.DuplicateUrl" units="bookmarks"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -18503,7 +19504,7 @@ uploading your change for review.
</histogram>
<histogram name="Bookmarks.Count.OnProfileLoad.EmptyTitle" units="bookmarks"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -18573,7 +19574,7 @@ uploading your change for review.
</histogram>
<histogram name="Bookmarks.LaunchLocation" enum="BookmarkLaunchLocation"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ianwen@chromium.org</owner>
<summary>Logs a UI location from which a bookmark is launched.</summary>
</histogram>
@@ -18605,7 +19606,7 @@ uploading your change for review.
</histogram>
<histogram name="Bookmarks.OpenBookmarkType" enum="BookmarkType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>wychen@chromium.org</owner>
<summary>
Logs whether the bookmark entry is a user bookmark or a partner bookmark
@@ -18639,7 +19640,7 @@ uploading your change for review.
</histogram>
<histogram name="BrotliFilter.CompressionPercent" units="%"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>eustas@chromium.org</owner>
<summary>Compressed/Decompressed size ratio.</summary>
</histogram>
@@ -18679,12 +19680,37 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Browser.Metal.TestShaderCompileTime" units="ms"
+ expires_after="M82">
+ <owner>ccameron@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Compiling a MTLLibrary will sometimes hang forever. When initializing the
+ browser process, a test shader is compiled to see if the MTLCompilerService
+ is responding or not. This records the time that it took for the compile to
+ succeeded, up to 1 minute. After 1 minute, a timeout sentinel value of 3
+ minutes is reported.
+ </summary>
+</histogram>
+
+<histogram name="Browser.Metal.TestShaderMethodTime" units="ms"
+ expires_after="M82">
+ <owner>ccameron@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Compiling a MTLLibrary will sometimes hang forever. When initializing the
+ browser process, a test shader is compiled to see if the MTLCompilerService
+ is responding or not. This records the time that it took for the compile
+ method to finish (not including the time for the compile itself to finish),
+ up to 1 minute. After 1 minute, a timeout sentinel value of 3 minutes is
+ reported.
+ </summary>
+</histogram>
+
<histogram name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds"
units="janks" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
-<!-- Name completed by histogram_suffixes name="JankyIntervalsPerThirtySeconds" -->
-
<owner>erikchen@chromium.org</owner>
<owner>tdresser@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
@@ -18699,6 +19725,45 @@ uploading your change for review.
posted to the UI and IO threads of the browser process. On Android, this
metric only measures tasks posted to the UI and IO threads.
+ Update (October 27th 2019): The responsiveness::Watcher emitting this metric
+ previously started observation before the main message loop was running,
+ this resulted in the 99th percentile being mostly comprised of slow startups
+ (before the message loop gets to run). This was fixed and a fake-improvement
+ in the high percentiles is expected when the fix goes live.
+
+ Due to a bug, this metric does not measure long queueing time as jankiness.
+ It only measures jankiness as individual tasks taking a long time to run.
+ Given that it's a long-standing bug, this metric will not be modified. We
+ are testing a new metric
+ Browser.Responsiveness.JankyIntervalsPerThirtySeconds2 that correctly
+ accounts for queueing time. See
+ https://groups.google.com/a/google.com/forum/#!topic/chrome-scheduler/X32gKl6fW2A
+ for more details.
+
+ 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="Browser.Responsiveness.JankyIntervalsPerThirtySeconds2"
+ units="janks" expires_after="never">
+<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
+
+ <owner>erikchen@chromium.org</owner>
+ <owner>tdresser@chromium.org</owner>
+ <owner>fdoray@chromium.org</owner>
+ <owner>chrome-analysis-team@google.com</owner>
+ <summary>
+ This metric is emitted every 30 seconds after main message loop start, when
+ there is user activity. Each 30 second duration is divided into 100ms
+ intervals. This metric counts the number of these intervals that were
+ &quot;janky&quot;. An interval is janky if during it the UI or IO thread
+ executes an &quot;important&quot; task that was queued more than 100 ms ago,
+ or a non-important task or a native event handler that started executing
+ more than 100 ms ago. See
+ https://docs.google.com/document/d/1vDSGFvJblh7yJ3U3RVB_7qZLubyfTbQdQjuN1GoUNkc/edit
+ for more details.
+
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>
@@ -18717,7 +19782,7 @@ uploading your change for review.
</histogram>
<histogram name="Browser.Tabs.SelectionToVisibilityRequestTime"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>sadrul@chromium.org</owner>
<owner>sky@chromium.org</owner>
<summary>
@@ -18731,7 +19796,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Browser.Tabs.TabSwitchResult"
- enum="TabSwitchResult" expires_after="2019-08-31">
+ enum="TabSwitchResult" expires_after="M81">
<!-- Name completed by histogram_suffixes name="TabSwitchingType" -->
<owner>fdoray@chromium.org</owner>
@@ -18739,7 +19804,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Browser.Tabs.TotalIncompleteSwitchDuration"
- units="ms" expires_after="2019-08-31">
+ units="ms" expires_after="M81">
<!-- Name completed by histogram_suffixes name="TabSwitchingType" -->
<owner>fdoray@chromium.org</owner>
@@ -18751,7 +19816,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Browser.Tabs.TotalSwitchDuration" units="ms"
- expires_after="2020-03-22">
+ expires_after="M81">
<!-- Name completed by histogram_suffixes name="TabSwitchingType" -->
<owner>ejoe@google.com</owner>
@@ -18785,7 +19850,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BrowserActions.NumTabCreatedInBackground" units="tabNum">
+<histogram name="BrowserActions.NumTabCreatedInBackground" units="tabNum"
+ expires_after="M80">
<obsolete>
Deprecated in M77 with the removal of Browser Actions.
</obsolete>
@@ -18797,7 +19863,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BrowserActions.SelectedOption" enum="BrowserActionsMenuOption">
+<histogram name="BrowserActions.SelectedOption" enum="BrowserActionsMenuOption"
+ expires_after="M80">
<obsolete>
Deprecated in M77 with the removal of Browser Actions.
</obsolete>
@@ -18808,7 +19875,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserDialogs.ExternalProtocol.HandleState"
- enum="HandleStateType" expires_after="2020-03-29">
+ enum="HandleStateType" expires_after="2020-05-31">
<owner>dominickn@chromium.org</owner>
<owner>meacer@chromium.org</owner>
<summary>
@@ -18846,7 +19913,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>wfh@chromium.org</owner>
<summary>Count of renderer process crashes grouped by type.</summary>
</histogram>
@@ -18858,7 +19925,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>oshima@chromium.org</owner>
<summary>
Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
@@ -18896,6 +19963,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="BrowserRenderProcessHost.FramePrioritiesSeen"
+ enum="FramePrioritiesSeen" expires_after="2020-06-01">
+ <owner>ericrobinson@chromium.org</owner>
+ <owner>csharrison@chromium.org</owner>
+ <summary>
+ Determines what combination of low and normal priority frames were attached
+ to a render process during its lifetime. Recorded when the host for the
+ render process is destroyed.
+ </summary>
+</histogram>
+
<histogram name="BrowserRenderProcessHost.InvisibleMediaStreamFrameDepth"
units="frame_depth" expires_after="M72">
<owner>boliu@chromium.org</owner>
@@ -18920,7 +19998,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="BrowserRenderProcessHost.KeepAliveDuration.Fetch" units="ms">
+<histogram name="BrowserRenderProcessHost.KeepAliveDuration.Fetch" units="ms"
+ expires_after="M80">
<obsolete>
Removed June 2019.
</obsolete>
@@ -18932,7 +20011,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserRenderProcessHost.KeepAliveDuration.ServiceWorker"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed June 2019.
</obsolete>
@@ -18945,7 +20024,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserRenderProcessHost.KeepAliveDuration.SharedWorker"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed June 2019.
</obsolete>
@@ -18979,7 +20058,7 @@ uploading your change for review.
</histogram>
<histogram name="BrowserRenderProcessHost.SpareProcessMaybeTakeAction"
- enum="SpareProcessMaybeTakeAction" expires_after="2020-02-16">
+ enum="SpareProcessMaybeTakeAction" expires_after="2020-04-19">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
<summary>
@@ -19571,7 +20650,7 @@ uploading your change for review.
</histogram>
<histogram name="CaptivePortal.DetectResult" enum="CaptivePortalDetectResult"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>meacer@chromium.org</owner>
<summary>Records the result of a captive portal probe.</summary>
</histogram>
@@ -19898,7 +20977,7 @@ uploading your change for review.
</histogram>
<histogram name="Cast.Sender.VideoEncodeAcceleratorInitializeSuccess"
- enum="BooleanSuccess" expires_after="2020-03-01">
+ enum="BooleanSuccess" expires_after="2020-05-03">
<owner>posciak@chromium.org</owner>
<summary>
Indicates whether initialization of a video encode accelerator for Cast
@@ -20097,7 +21176,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.Crashed.UtilityProcessHash"
- enum="UtilityProcessNameHash" expires_after="2020-03-29">
+ enum="UtilityProcessNameHash" expires_after="2020-05-31">
<owner>wfh@chromium.org</owner>
<summary>
Count of child utility process crashes, bucketed by the hash of their
@@ -20168,7 +21247,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.Disconnected2" enum="ProcessType2"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>wfh@chromium.org</owner>
<summary>
Count of child process abnormal channel disconnects grouped by process type.
@@ -20231,7 +21310,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.HungRendererAvailableMemoryMB" units="MB"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>cduvall@chromium.org</owner>
<owner>cmumford@chromium.org</owner>
<summary>
@@ -20253,7 +21332,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.HungRendererInForeground"
- enum="BooleanForeground" expires_after="2020-03-29">
+ enum="BooleanForeground" expires_after="2020-05-31">
<owner>cduvall@chromium.org</owner>
<owner>cmumford@chromium.org</owner>
<summary>
@@ -20291,7 +21370,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.Killed2.OOM" enum="ProcessType2"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>oshima@chromium.org</owner>
<summary>
Out of ChildProcess.Killled, number of kills due to SIGKILL, which is a
@@ -20341,7 +21420,7 @@ uploading your change for review.
</histogram>
<histogram name="ChildProcess.Launched.UtilityProcessHash"
- enum="UtilityProcessNameHash" expires_after="2020-03-22">
+ enum="UtilityProcessNameHash" expires_after="2020-05-24">
<owner>wfh@chromium.org</owner>
<summary>
Count of child utility process launches, bucketed by the hash of their
@@ -20436,6 +21515,24 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Chrome.CommandLineFlagCount" units="switches"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of command line switches that were present at the start of a
+ chrome session.
+ </summary>
+</histogram>
+
+<histogram name="Chrome.CommandLineUncommonFlagCount" units="switches"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</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.
+ </summary>
+</histogram>
+
<histogram name="Chrome.MessageLoopProblem" enum="MessageLoopProblems"
expires_after="M81">
<owner>gab@chromium.org</owner>
@@ -20638,7 +21735,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeColors.AppliedColor" enum="ChromeColorsInfo"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>gayane@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -20647,7 +21744,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeColors.ChangesConfirmed"
- enum="BooleanChromeColorsChangesConfirmed" expires_after="2020-03-01">
+ enum="BooleanChromeColorsChangesConfirmed" expires_after="2020-05-03">
<owner>gayane@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -20657,7 +21754,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeColors.ColorOnLoad" enum="ChromeColorsInfo"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>gayane@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -20667,7 +21764,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeColors.RevertReason" enum="ChromeColorsRevertReason"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>gayane@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -20819,7 +21916,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.Apps.IntentPickerAction"
- enum="ArcIntentHandlerAction" expires_after="2020-03-29">
+ enum="ArcIntentHandlerAction" expires_after="2020-05-31">
<owner>elijahtaylor@google.com</owner>
<owner>dominickn@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -20830,7 +21927,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.Apps.IntentPickerDestinationPlatform"
- enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-03-01">
+ enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-05-03">
<owner>elijahtaylor@google.com</owner>
<owner>dominickn@chromium.org</owner>
<owner>shihuis@google.com</owner>
@@ -20936,7 +22033,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.CWP.CollectPerf"
- enum="ChromeOSProfileCollectionStatus" expires_after="2020-03-29">
+ enum="ChromeOSProfileCollectionStatus" expires_after="2020-05-31">
<owner>aalexand@google.com</owner>
<owner>gmx@chromium.org</owner>
<summary>
@@ -20988,7 +22085,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.CWP.UploadPerf" units="reports"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>aalexand@google.com</owner>
<owner>gmx@chromium.org</owner>
<summary>
@@ -21077,7 +22174,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.MemoryPressureLevel" enum="MemoryPressureLevel"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>xdai@chromium.org</owner>
<summary>
The memory pressure level in Chrome OS, which is recorded periodically (once
@@ -21100,7 +22197,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.PlatformVerification.Available"
- enum="BooleanAvailable" expires_after="2020-02-23">
+ enum="BooleanAvailable" expires_after="2020-04-26">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -21110,7 +22207,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.PlatformVerification.ExpiryStatus"
- enum="ChromeOSPlatformVerificationExpiryStatus">
+ enum="ChromeOSPlatformVerificationExpiryStatus" expires_after="M80">
<obsolete>
Removed in 2019/08 as the histogram is no longer in use. (crbug/975047)
</obsolete>
@@ -21123,7 +22220,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.PlatformVerification.Result"
- enum="ChromeOSPlatformVerificationResult" expires_after="2020-02-16">
+ enum="ChromeOSPlatformVerificationResult" expires_after="2020-04-19">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -21164,6 +22261,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="ChromeOS.SAML.SamlChallengeKeyHandlerResult"
+ enum="SamlChallengeKeyHandlerResult" expires_after="2020-06-01">
+ <owner>miersh@google.com</owner>
+ <owner>pmarko@chromium.com</owner>
+ <summary>
+ Tracks results of calculating response for a challenge from Verified Access
+ server for remove attestation during SAML authentication.
+ </summary>
+</histogram>
+
<histogram name="ChromeOS.SAML.Scraping.PasswordCount" units="units"
expires_after="M77">
<obsolete>
@@ -21242,7 +22349,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.SystemTray.FeaturePodCountOnOpen" units="count"
- expires_after="M80">
+ expires_after="2020-05-10">
<owner>tengs@chromium.org</owner>
<owner>amehfooz@chromium.org</owner>
<summary>
@@ -21283,7 +22390,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromeOS.SystemTray.Tablet.FeaturePodCountOnOpen"
- units="count" expires_after="M80">
+ units="count" expires_after="2020-05-10">
<owner>tengs@chromium.org</owner>
<owner>amehfooz@chromium.org</owner>
<summary>
@@ -21312,7 +22419,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ChromeOS.UrlXattrsCount" units="units" expires_after="M80">
+<histogram name="ChromeOS.UrlXattrsCount" units="units" expires_after="M81">
<owner>jorgelo@chromium.org</owner>
<owner>tnagel@chromium.org</owner>
<summary>
@@ -21387,7 +22494,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromiumAndroidLinker.LoadLibraryStatus"
- enum="LoadLibraryStatus" expires_after="M80">
+ enum="LoadLibraryStatus" expires_after="2020-05-10">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
@@ -21398,7 +22505,7 @@ uploading your change for review.
</histogram>
<histogram name="ChromiumAndroidLinker.RelinkerFallbackCount"
- enum="BooleanIsUseRelinker">
+ enum="BooleanIsUseRelinker" expires_after="M80">
<obsolete>
Deprecated 2019-07 in crbug.com/981599.
</obsolete>
@@ -21963,7 +23070,7 @@ uploading your change for review.
</histogram>
<histogram name="ComponentUpdater.Calls" enum="ComponentUpdaterCalls"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>sorin@chromium.org</owner>
<summary>
The number of times the component updater called UpdateClient::Install or
@@ -21988,13 +23095,13 @@ uploading your change for review.
</histogram>
<histogram name="ComponentUpdater.UpdateCompleteError"
- enum="UpdateClientErrors" expires_after="2020-02-16">
+ enum="UpdateClientErrors" expires_after="2020-05-24">
<owner>sorin@chromium.org</owner>
<summary>The result of an install or an update check.</summary>
</histogram>
<histogram name="ComponentUpdater.UpdateCompleteResult" enum="BooleanError"
- expires_after="2020-02-16">
+ expires_after="2020-05-24">
<owner>sorin@chromium.org</owner>
<summary>The result of an install or an update check.</summary>
</histogram>
@@ -22031,7 +23138,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Browser.CachedImagesCount" units="count">
+<histogram name="Compositing.Browser.CachedImagesCount" units="count"
+ expires_after="M80">
<obsolete>
Deprecated 05/2019 because it no longer reports. To be superseded by a
measurement related to percentage of cache/discardable memory used by image
@@ -22045,7 +23153,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Browser.CompositorFrame.Quads" units="quads">
+<histogram name="Compositing.Browser.CompositorFrame.Quads" units="quads"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019 because the research it was used for is complete.
</obsolete>
@@ -22058,7 +23167,7 @@ uploading your change for review.
<histogram
name="Compositing.Browser.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
- units="pixels/ms">
+ units="pixels/ms" expires_after="M80">
<obsolete>
Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
metric.
@@ -22098,8 +23207,9 @@ uploading your change for review.
</histogram>
<histogram name="Compositing.Browser.GPUMemoryForTilingsInKb" units="Kb"
- expires_after="M81">
- <owner>yigu@chromium.org</owner>
+ expires_after="M87">
+ <owner>pdr@chromium.org</owner>
+ <owner>ericrk@chromium.org</owner>
<summary>
The GPU memory allocated for tilings (in a browser process), summed over all
picture layers. Emitted once per drawing. Nothing is recorded if there are
@@ -22108,7 +23218,7 @@ uploading your change for review.
Tilings are used for decomposition of the layer's entire contents at a
picture screenspace resolution to do threaded rasterization.
- Team: animations-dev@chromium.org.
+ Team: paint-dev@chromium.org.
</summary>
</histogram>
@@ -22262,7 +23372,7 @@ uploading your change for review.
<histogram
name="Compositing.Browser.RenderPass.AppendQuadData.NumMissingTilesNoImageContent"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated 02/2016. We'd learned as much as we could from this metric and it
made no sense to keep it around.
@@ -22276,7 +23386,7 @@ uploading your change for review.
<histogram
name="Compositing.Browser.RenderPass.AppendQuadData.NumMissingTilesSomeImageContent"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated 02/2016. We'd learned as much as we could from this metric and it
made no sense to keep it around.
@@ -22288,6 +23398,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Compositing.CompositorFrameSinkSupport.ShouldSendBeginFrame"
+ enum="SendBeginFrameResult" expires_after="2020-06-01">
+ <owner>kylechar@chromium.org</owner>
+ <owner>sadrul@chromium.org</owner>
+ <summary>
+ Recorded for each OnBeginFrame() message that could potentially be sent to a
+ CompositorFrameSinkClient. The value indicates if the message was sent to
+ the client and why it was/wasn't sent.
+ </summary>
+</histogram>
+
<histogram name="Compositing.CompositorFrameSinkSupport.SubmitResult"
enum="CompositorFrameSinkSubmitResult" expires_after="2020-03-01">
<owner>kylechar@chromium.org</owner>
@@ -22321,7 +23442,7 @@ uploading your change for review.
</histogram>
<histogram name="Compositing.DirectRenderer.GL.DrawFrameUs"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>weiliangc@chromium.org</owner>
<summary>
Time spent drawing of composited layers by GLRenderer, in microseconds. This
@@ -22350,6 +23471,22 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Compositing.DirectRenderer.VK.DrawFrameUs"
+ units="microseconds" expires_after="2020-03-29">
+ <owner>penghuang@chromium.org</owner>
+ <summary>
+ Time spent drawing of composited layers by SkiaRenderer with Vulkan backend,
+ in microseconds. This is logged once per frame, when a frame should be
+ drawn.
+
+ Warning: This metric may include reports from clients with low-resolution
+ clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
+ will cause this metric to have an abnormal distribution. When considering
+ revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
+ solution.
+ </summary>
+</histogram>
+
<histogram name="Compositing.Display.Draw.Occlusion.Calculation.Time"
units="microseconds" expires_after="M82">
<owner>yiyix@chromium.org</owner>
@@ -22398,7 +23535,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Display.Draw.Quads" units="quads">
+<histogram name="Compositing.Display.Draw.Quads" units="quads"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019 because the research it was used for is complete.
</obsolete>
@@ -22436,9 +23574,32 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Compositing.Display.DrmOverlayManager.CacheHit" enum="Boolean"
+ expires_after="2020-09-01">
+ <owner>samans@chromium.org</owner>
+ <owner>rjkroege@chromium.org</owner>
+ <summary>
+ Indicates whether DrmOverlayManager was able to find the overlay
+ configuration in its cache. Recorded when DrmOverlayManager is asked to
+ verify an overlay configuration.
+ </summary>
+</histogram>
+
+<histogram name="Compositing.Display.FlattenedRenderPassCount" units="units"
+ expires_after="2020-07-02">
+ <owner>backer@chromium.org</owner>
+ <owner>rjkroege@chromium.org</owner>
+ <summary>
+ This is logged once per frame. It is the number of renderer passes after
+ flattening all possible render passes. If the value is more than one, then
+ an intermediate rendering target must be used during the rendering of the
+ frame for each render pass greater than one.
+ </summary>
+</histogram>
+
<histogram
name="Compositing.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
- units="pixels/ms">
+ units="pixels/ms" expires_after="M80">
<obsolete>
Deprecated 09/2015, replaced by similar metrics under Compositing.Renderer
and Compositing.Browser, depending on which process it occurs in.
@@ -22564,7 +23725,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Renderer.CachedImagesCount" units="count">
+<histogram name="Compositing.Renderer.CachedImagesCount" units="count"
+ expires_after="M80">
<obsolete>
Deprecated 05/2019 because it no longer reports. To be superseded by a
measurement related to percentage of cache/discardable memory used by image
@@ -22579,7 +23741,7 @@ uploading your change for review.
</histogram>
<histogram name="Compositing.Renderer.CALayerResult" enum="CALayerResult"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ccameron@chromium.org</owner>
<summary>
The outcome of attempting to replace all renderer tiles with CALayers.
@@ -22601,7 +23763,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Renderer.CompositorFrame.Quads" units="quads">
+<histogram name="Compositing.Renderer.CompositorFrame.Quads" units="quads"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019 because the research it was used for is complete.
</obsolete>
@@ -22614,7 +23777,7 @@ uploading your change for review.
<histogram
name="Compositing.Renderer.DisplayListRecordingSource.UpdateInvalidatedAreaPerMs"
- units="pixels/ms">
+ units="pixels/ms" expires_after="M80">
<obsolete>
Deprecated 05/2016. See Blink.Paint.UpdateTime as a related alternate
metric.
@@ -22653,8 +23816,10 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Compositing.Renderer.GPUMemoryForTilingsInKb" units="Kb">
- <owner>yigu@chromium.org</owner>
+<histogram name="Compositing.Renderer.GPUMemoryForTilingsInKb" units="Kb"
+ expires_after="M87">
+ <owner>pdr@chromium.org</owner>
+ <owner>ericrk@chromium.org</owner>
<summary>
The GPU memory allocated for tilings (in a renderer process), summed over
all picture layers. Emitted once per drawing. Nothing is recorded if there
@@ -22663,7 +23828,7 @@ uploading your change for review.
Tilings are used for decomposition of the layer's entire contents at a
picture screenspace resolution to do threaded rasterization.
- Team: animations-dev@chromium.org.
+ Team: paint-dev@chromium.org.
</summary>
</histogram>
@@ -22745,7 +23910,7 @@ uploading your change for review.
<histogram
name="Compositing.Renderer.PercentPictureLayersWithTextButLCDTextDisabled"
- units="%" expires_after="2019-12-01">
+ units="%" expires_after="2020-02-01">
<!-- Name completed by histogram_suffixes name="CompositingLCDTextDisabledCountSuffixes" -->
<owner>paint-dev@chromium.org</owner>
@@ -22758,7 +23923,7 @@ uploading your change for review.
</histogram>
<histogram name="Compositing.Renderer.PictureMemoryUsageKb" units="KB"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>paint-dev@chromium.org</owner>
<summary>
Total estimated memory used by SkPictures in the layer tree, in kilobytes.
@@ -22833,7 +23998,7 @@ uploading your change for review.
<histogram
name="Compositing.Renderer.RenderPass.AppendQuadData.NumMissingTilesNoImageContent"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated 02/2016. We'd learned as much as we could from this metric and it
made no sense to keep it around.
@@ -22847,7 +24012,7 @@ uploading your change for review.
<histogram
name="Compositing.Renderer.RenderPass.AppendQuadData.NumMissingTilesSomeImageContent"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated 02/2016. We'd learned as much as we could from this metric and it
made no sense to keep it around.
@@ -22861,7 +24026,7 @@ uploading your change for review.
<histogram
name="Compositing.RenderPass.AppendQuadData.CheckerboardedNeedRasterContentArea"
- units="pixels/frame" expires_after="2020-02-16">
+ units="pixels/frame" expires_after="2020-04-19">
<owner>weiliangc@chromium.org</owner>
<summary>
Checkerboarded area, in number of pixels, that has recording but does not
@@ -22959,7 +24124,7 @@ uploading your change for review.
</histogram>
<histogram name="Compositing.SurfaceAggregator.AggregateUs"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>weiliangc@chromium.org</owner>
<summary>
Time spent aggregating compositor frames from different surfaces in
@@ -22975,7 +24140,7 @@ uploading your change for review.
<histogram
name="Compositing.SurfaceAggregator.LatestInFlightSurface.ManhattanDistanceToPrimary"
- units="surfaces">
+ units="surfaces" expires_after="M80">
<obsolete>
Deprecated 10/2018. This metric didn't end up being useful.
</obsolete>
@@ -23015,7 +24180,7 @@ uploading your change for review.
<histogram
name="Compositing.SurfaceAggregator.SurfaceDrawQuad.UsingFallbackSurface"
- units="quads">
+ units="quads" expires_after="M80">
<obsolete>
Deprecated 10/2018. This metric didn't end up being useful.
</obsolete>
@@ -23172,6 +24337,111 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="ConfigureDisplays.External.Modeset.AttemptSucceeded"
+ enum="BooleanSuccess" expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Modeset attempt result of an external display. Every time an external
+ display is connected/disconnected, or when the display mode of the external
+ screen is changed by the user, Chrome attempts to modeset the display. This
+ metric tracks the result of those attempts. Resolution and RefreshRate
+ metrics will be recorded for each attempt.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.External.Modeset.FinalStatus"
+ enum="BooleanSuccess" expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Modeset attempt result of an internal display. This is recorded after Chrome
+ attempted all the available modes and finally modeset the display. All the
+ previously attempted modes and refreshes, including the successful one will
+ be recorded.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.External.Modeset.RefreshRate" units="Hz"
+ expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Refresh rate of the mode for the display we're about to modeset. This is
+ recorded every time an external display is connected/disconnected, or when
+ the display mode of the external screen is about to change.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.External.Modeset.Resolution"
+ enum="DisplayResolution" expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ DisplayResolution of the mode for the external display we're about to
+ modeset. 0 means the display was powered off. This is recorded every time an
+ external display is connected/disconnected, or when the display mode of the
+ external screen is about to change.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.Internal.Modeset.AttemptSucceeded"
+ enum="BooleanSuccess" expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Modeset attempt result of an internal display. Chrome might try additional
+ modes after a failed attempt. Every time an external display is
+ connected/disconnected, or when the display mode of the external screen is
+ changed by the user, Chrome attempts to modeset the display. This metric
+ tracks the result of those attempts. Resolution and RefreshRate metrics will
+ be recorded for each attempt.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.Internal.Modeset.FinalStatus"
+ enum="BooleanSuccess" expires_after="2020-07-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Modeset attempt result of an internal display. This is recorded after Chrome
+ attempted all the available modes and finally modeset the display. All the
+ previously attempted modes and refreshes, including the successful one will
+ be recorded.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.Internal.Modeset.RefreshRate" units="Hz"
+ expires_after="2020-07-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ Refresh rate of the mode for the display we're about to modeset. This is
+ recorded every time the internal display is powered on/off, or when an
+ external monitor is plugged in.
+ </summary>
+</histogram>
+
+<histogram name="ConfigureDisplays.Internal.Modeset.Resolution"
+ enum="DisplayResolution" expires_after="2020-10-30">
+ <owner>dcastagna@chromium.org</owner>
+ <owner>marcheu@chromium.org</owner>
+ <owner>chromeos-gfx@chromium.org</owner>
+ <summary>
+ DisplayResolution of the mode for the external display we're about to
+ modeset. 0 means the display was powered off. This is recorded every time
+ the internal display is powered on/off, or when an external monitor is
+ plugged in.
+ </summary>
+</histogram>
+
<histogram name="Conflicts.ConfirmedBadModules" units="modules"
expires_after="2018-08-30">
<owner>chrisha@chromium.org</owner>
@@ -23368,7 +24638,7 @@ uploading your change for review.
</histogram>
<histogram name="ContentCapture.CaptureContentTime" units="microseconds"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>michaelbai@chromium.org</owner>
<summary>The time taken to capture the on-screen content.</summary>
</histogram>
@@ -23399,7 +24669,7 @@ uploading your change for review.
</histogram>
<histogram name="ContentCapture.SentContentCount" units="count"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>michaelbai@chromium.org</owner>
<summary>The total number of content captures sent for a document.</summary>
</histogram>
@@ -23464,7 +24734,7 @@ uploading your change for review.
</histogram>
<histogram name="ContentSettings.DefaultCookiesSetting" enum="ContentSetting"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>toyoshim@chromium.org</owner>
<summary>The default cookies setting at profile open.</summary>
</histogram>
@@ -24764,8 +26034,9 @@ uploading your change for review.
</histogram>
<histogram name="ContextMenu.iOS.CopyImage" enum="ContextMenuIOSCopyImage"
- expires_after="2019-12-11">
+ expires_after="2020-12-11">
<owner>mrsuyi@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
<summary>
Logged when the copying image from context menu is invoked and relevant
events happen during the copying image procedure.
@@ -24773,8 +26044,9 @@ uploading your change for review.
</histogram>
<histogram name="ContextMenu.iOS.GetImageDataByJsResult"
- enum="ContextMenuIOSGetImageDataByJsResult" expires_after="2019-12-11">
+ enum="ContextMenuIOSGetImageDataByJsResult" expires_after="2020-12-11">
<owner>mrsuyi@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
<summary>
Result of getting image data by JavaScript for CopyImage, SaveImage and
SearchByImage from iOS context menu. Recorded when the JavaScript returns,
@@ -24803,7 +26075,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="ContextMenu.SelectedOption"
- enum="ContextMenuOption">
+ enum="ContextMenuOption" expires_after="M80">
<obsolete>
Removed from code as of 5/2019. WARNING: The code emitting this histogram
was broken on desktop, and logged many items that should not have been
@@ -24870,7 +26142,7 @@ uploading your change for review.
</histogram>
<histogram name="ContextMenu.Shown" enum="BooleanPresent"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>mpearson@chromium.org</owner>
<summary>
Recorded when a context menu is shown, sliced by whether a web contents was
@@ -24959,7 +26231,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.EnabledState" enum="BooleanEnabled">
+<histogram name="ContextualSuggestions.EnabledState" enum="BooleanEnabled"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -24972,7 +26245,7 @@ uploading your change for review.
</histogram>
<histogram name="ContextualSuggestions.Events"
- enum="ContextualSuggestions.Event">
+ enum="ContextualSuggestions.Event" expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -24986,7 +26259,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.FetchErrorCode" enum="NetErrorCodes">
+<histogram name="ContextualSuggestions.FetchErrorCode" enum="NetErrorCodes"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -24997,7 +26271,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.FetchLatencyMilliseconds" units="ms">
+<histogram name="ContextualSuggestions.FetchLatencyMilliseconds" units="ms"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25009,7 +26284,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.FetchRequestProtoSizeKB" units="KB">
+<histogram name="ContextualSuggestions.FetchRequestProtoSizeKB" units="KB"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25021,7 +26297,7 @@ uploading your change for review.
</histogram>
<histogram name="ContextualSuggestions.FetchResponseCode"
- enum="HttpResponseCode">
+ enum="HttpResponseCode" expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25032,7 +26308,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.FetchResponseNetworkBytes" units="bytes">
+<histogram name="ContextualSuggestions.FetchResponseNetworkBytes" units="bytes"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M75
</obsolete>
@@ -25056,7 +26333,7 @@ uploading your change for review.
</histogram>
<histogram name="ContextualSuggestions.PageViewClickLength"
- enum="ContextualSuggestions.ClickDuration">
+ enum="ContextualSuggestions.ClickDuration" expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25072,7 +26349,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.PageViewTime" units="ms">
+<histogram name="ContextualSuggestions.PageViewTime" units="ms"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25088,7 +26366,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ContextualSuggestions.Preference.State" enum="BooleanEnabled">
+<histogram name="ContextualSuggestions.Preference.State" enum="BooleanEnabled"
+ expires_after="M80">
<obsolete>
This feature was deprecated in M74
</obsolete>
@@ -25137,6 +26416,10 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Cookie.AgeFor" units="days" expires_after="M82">
+ <obsolete>
+ Deprecated 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>
@@ -25147,6 +26430,10 @@ uploading your change for review.
<histogram base="true" name="Cookie.AllAgesFor" units="days"
expires_after="M81">
+ <obsolete>
+ Deprecated 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>
@@ -25175,7 +26462,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.CommitProblem" enum="CookieCommitProblem"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>morlovich@chromium.org</owner>
<summary>
Recorded when a problem occurs trying to commit changes to the cookie store
@@ -25184,7 +26471,11 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.CookieDeleteEquivalent" enum="CookieDeleteEquivalent"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
+ <obsolete>
+ Deprecated 2019-10-23 as part of cookie histogram cleanup
+ (https://crbug.com/993120).
+ </obsolete>
<owner>mkwst@chromium.org</owner>
<summary>
Record when at attempt is made to delete an equivalent cookie on a set
@@ -25234,8 +26525,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Cookie.CookieSchemeRequestScheme" enum="CookieRequestScheme"
+ expires_after="M84">
+ <owner>bingler@chromium.org</owner>
+ <owner>chlily@chromium.org</owner>
+ <summary>
+ The scheme a cookie was set by and the scheme of the request that the cookie
+ was sent to. This is recorded once per cookie each time a URL request has
+ its headers set.
+ </summary>
+</histogram>
+
<histogram name="Cookie.CookieSourceScheme" enum="CookieSourceScheme"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>estark@chromium.org</owner>
<summary>
For each cookie added to the store, record whether its source URL has a
@@ -25244,7 +26546,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.CorruptMetaTable" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>tnagel@chromium.org</owner>
<summary>
Records the detection of a corrupted meta table. See http://crbug.com/111376
@@ -25260,7 +26562,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cookie.Count" units="units" expires_after="2020-02-16">
+<histogram name="Cookie.Count" units="units" expires_after="2020-05-10">
<owner>battre@chromium.org</owner>
<summary>
Number of cookies in the store (recorded every 10 minutes of active browsing
@@ -25275,7 +26577,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cookie.DeletionCause" enum="CookieDeletionCause">
+<histogram name="Cookie.DeletionCause" enum="CookieDeletionCause"
+ expires_after="M80">
<obsolete>
Removed Jul 2017 for lack of use.
</obsolete>
@@ -25322,7 +26625,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cookie.EvictedLastAccessMinutes" units="minutes">
+<histogram name="Cookie.EvictedLastAccessMinutes" units="minutes"
+ expires_after="M80">
<obsolete>
Removed Jul 2017 for lack of use.
</obsolete>
@@ -25351,7 +26655,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cookie.HeaderLength" units="bytes" expires_after="2020-03-08">
+<histogram name="Cookie.HeaderLength" units="bytes" expires_after="2020-05-10">
<owner>mkwst@chromium.org</owner>
<summary>
The size of each outgoing request's 'Cookie' header field's value, in bytes.
@@ -25402,7 +26706,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.LoadProblem" enum="CookieLoadProblem"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>morlovich@chromium.org</owner>
<summary>
Recorded when a problem is recorded when loading the persistent cookie
@@ -25411,7 +26715,11 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.NetworkSecurity" enum="CookieNetworkSecurity"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
+ <obsolete>
+ Deprecated 2019-10-31 as part of cookie histogram cleanup
+ (https://crbug.com/993120).
+ </obsolete>
<owner>tnagel@chromium.org</owner>
<summary>
Degree of protection against cookie theft. Recorded for each cookie when
@@ -25452,7 +26760,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.PriorityBlockingTime" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>pwnall@chromium.org</owner>
<summary>
This histogram records the total duration of time during which at least one
@@ -25654,7 +26962,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.TimeBlockedOnLoad" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>nharper@chromium.org</owner>
<summary>
The amount of time (ms) between the cookie store load starting and
@@ -25680,6 +26988,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Cookie.TimeDatabaseMigrationToV12" units="ms"
+ expires_after="2020-11-20">
+ <owner>chlily@chromium.org</owner>
+ <owner>morlovich@chromium.org</owner>
+ <summary>
+ The amount of time (ms) to migrate a v11 cookie database to v12. Migration
+ occurs upon first startup of a browser version with v12 database code.
+ </summary>
+</histogram>
+
<histogram name="Cookie.TimeDatabaseMigrationToV5" units="ms"
expires_after="2015-04-17">
<obsolete>
@@ -25753,7 +27071,7 @@ uploading your change for review.
</histogram>
<histogram name="Cookie.TimeKeyLoadTotalWait" units="ms"
- expires_after="2020-03-15">
+ expires_after="2020-05-17">
<owner>erikchen@chromium.org</owner>
<summary>
This histogram records the the total amount of time spent fetching the
@@ -25800,7 +27118,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cookie.Type" enum="CookieType" expires_after="2020-02-16">
+<histogram name="Cookie.Type" enum="CookieType" expires_after="2020-04-19">
<owner>mkwst@chromium.org</owner>
<summary>For each cookie added to the store, record it's type(s).</summary>
</histogram>
@@ -25900,7 +27218,7 @@ uploading your change for review.
</histogram>
<histogram name="Cras.HfpWidebandSpeechSupported" units="BooleanSupported"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>hychao@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -25936,7 +27254,7 @@ uploading your change for review.
</histogram>
<histogram name="Cras.HighestInputHardwareLevel" units="frames"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -25995,6 +27313,18 @@ uploading your change for review.
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
+ The runtime of Bluetooth input device that doesn't fall to any other
+ category we defined. i.e HSP, narrowband or wideband. The runtime is the
+ duration between opening and closing a device. The value is recorded when
+ the device is closed.
+ </summary>
+</histogram>
+
+<histogram name="Cras.InputDeviceBluetoothWideBandMicRuntime" units="seconds"
+ expires_after="2020-05-13">
+ <owner>hychao@chromium.org</owner>
+ <owner>chromeos-audio@google.com</owner>
+ <summary>
The runtime of input device Bluetooth wideband in CRAS(ChromeOS audio
server). The runtime is the duration between opening and closing a device.
The value is recorded when the device is closed.
@@ -26155,8 +27485,32 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Cras.InputStreamRuntime" units="seconds"
+ expires_after="2020-11-25">
+<!-- Name completed by histogram_suffixes
+ name="Cras.ClientType" -->
+
+ <owner>yuhsuan@chromium.org</owner>
+ <owner>chromeos-audio@google.com</owner>
+ <summary>
+ The runtime of input stream in CRAS(ChromeOS audio server). The runtime is
+ the duration between creating and destroying a stream. The value is recorded
+ when the stream is destroyed.
+ </summary>
+</histogram>
+
+<histogram name="Cras.kHfpWidebandSpeechSelectedCodec" enum="CrasHfpCodec"
+ expires_after="2020-10-15">
+ <owner>hychao@chromium.org</owner>
+ <owner>chromeos-audio@google.com</owner>
+ <summary>
+ For each single connection of bluetooth HFP record the result of codec
+ negotiation, if supported.
+ </summary>
+</histogram>
+
<histogram name="Cras.MissedCallbackFirstTimeInput" units="seconds"
- expires_after="2020-01-17">
+ expires_after="2020-05-17">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -26170,7 +27524,7 @@ uploading your change for review.
</histogram>
<histogram name="Cras.MissedCallbackFirstTimeOutput" units="seconds"
- expires_after="2020-01-17">
+ expires_after="2020-05-17">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -26207,7 +27561,7 @@ uploading your change for review.
</histogram>
<histogram name="Cras.MissedCallbackFrequencyInput" units="count"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -26218,7 +27572,7 @@ uploading your change for review.
</histogram>
<histogram name="Cras.MissedCallbackFrequencyOutput" units="count"
- expires_after="2020-01-17">
+ expires_after="2020-05-17">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -26277,9 +27631,10 @@ uploading your change for review.
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
- The runtime of output device Bluetooth in CRAS(ChromeOS audio server). The
- runtime is the duration between opening and closing a device. The value is
- recorded when the device is closed.
+ The runtime of Bluetooth output device in CRAS(ChromeOS audio server) that
+ doesn't belong to any category we defined. i.e A2DP, HFP or HSP. The runtime
+ is the duration between opening and closing a device. The value is recorded
+ when the device is closed.
</summary>
</histogram>
@@ -26393,8 +27748,22 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Cras.OutputStreamRuntime" units="seconds"
+ expires_after="2020-11-25">
+<!-- Name completed by histogram_suffixes
+ name="Cras.ClientType" -->
+
+ <owner>yuhsuan@chromium.org</owner>
+ <owner>chromeos-audio@google.com</owner>
+ <summary>
+ The runtime of output stream in CRAS(ChromeOS audio server). The runtime is
+ the duration between creating and destroying a stream. The value is recorded
+ when the stream is destroyed.
+ </summary>
+</histogram>
+
<histogram name="Cras.StreamCallbackThreshold" units="frames"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yuhsuan@chromium.org</owner>
<owner>chromeos-audio@google.com</owner>
<summary>
@@ -26488,7 +27857,7 @@ uploading your change for review.
</histogram>
<histogram name="CrashExitCodes.Renderer" enum="CrashExitCodes"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>wfh@chromium.org</owner>
<summary>
The exit codes for crashed renderer processes. Note: Due to
@@ -26703,7 +28072,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.FormatCompletedError"
- enum="CrosDisksClientFormatError" expires_after="2020-02-16">
+ enum="CrosDisksClientFormatError" expires_after="2020-04-19">
<owner>austinct@chromium.org</owner>
<summary>
The error code of disk format signals received from the Chrome OS cros-disks
@@ -26712,7 +28081,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.FormatTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>austinct@chromium.org</owner>
<summary>
Time taken for the Chrome OS cros-disks daemon to perform a format
@@ -26721,7 +28090,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.MountCompletedError"
- enum="CrosDisksClientMountError" expires_after="2020-02-02">
+ enum="CrosDisksClientMountError" expires_after="2020-05-03">
<owner>amistry@chromium.org</owner>
<summary>
The error code of disk mount signals received from the Chrome OS cros-disks
@@ -26739,7 +28108,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.MountTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-05-03">
<owner>amistry@chromium.org</owner>
<summary>
Time taken by the Chrome OS cros-disks daemon to perform a Mount operation.
@@ -26747,7 +28116,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.UnmountError" enum="CrosDisksClientMountError"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>amistry@chromium.org</owner>
<summary>
The error code of disk unmount operations returned from the Chrome OS
@@ -26756,7 +28125,7 @@ uploading your change for review.
</histogram>
<histogram name="CrosDisksClient.UnmountTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-05-03">
<owner>amistry@chromium.org</owner>
<summary>
Time taken by the Chrome OS cros-disks daemon to perform an Unmount
@@ -26861,14 +28230,14 @@ uploading your change for review.
</histogram>
<histogram name="Crostini.Backup" enum="CrostiniExportContainerResult"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Result of crostini backup.</summary>
</histogram>
<histogram name="Crostini.BackupCompressedSizeLog2" units="units"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>juwa@google.com</owner>
<owner>tbuckley@chromium.org</owner>
<summary>
@@ -26879,7 +28248,7 @@ uploading your change for review.
</histogram>
<histogram name="Crostini.BackupContainerSizeLog2" units="units"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>juwa@google.com</owner>
<owner>tbuckley@chromium.org</owner>
<summary>
@@ -26890,7 +28259,7 @@ uploading your change for review.
</histogram>
<histogram name="Crostini.BackupSizeRatio" units="units"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>juwa@google.com</owner>
<owner>tbuckley@chromium.org</owner>
<summary>
@@ -26900,19 +28269,31 @@ uploading your change for review.
</histogram>
<histogram name="Crostini.BackupTimeFailed" units="ms"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Time taken for failed backup.</summary>
</histogram>
<histogram name="Crostini.BackupTimeSuccess" units="ms"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Time taken for successful backup.</summary>
</histogram>
+<histogram base="true" name="Crostini.ContainerOsVersion"
+ enum="CrostiniContainerOsVersion" expires_after="2020-11-01">
+ <owner>davidmunro@chromium.org</owner>
+ <owner>nverne@chromium.org</owner>
+ <owner>benwells@chromium.org</owner>
+ <owner>tbuckley@chromium.org</owner>
+ <summary>
+ Recorded each time a Crostini container is launched, recording the OS
+ version running inside the container.
+ </summary>
+</histogram>
+
<histogram name="Crostini.Crosvm.CpuPercentage" units="%"
expires_after="2020-08-30">
<owner>tbuckley@chromium.org</owner>
@@ -26957,6 +28338,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Crostini.FilesystemCorruption" enum="CorruptionStates"
+ expires_after="2020-11-21">
+ <owner>sidereal@google.com</owner>
+ <owner>tbuckley@google.com</owner>
+ <summary>
+ Filesystem corruption events in the crostini VM, recorded every time
+ corruption is observed to affect the state of the system.
+ </summary>
+</histogram>
+
<histogram name="Crostini.RestarterResult" enum="CrostiniResult"
expires_after="2020-09-01">
<owner>sidereal@google.com</owner>
@@ -26969,26 +28360,33 @@ uploading your change for review.
</histogram>
<histogram name="Crostini.Restore" enum="CrostiniImportContainerResult"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Result of crostini restore.</summary>
</histogram>
<histogram name="Crostini.RestoreTimeFailed" units="ms"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Time taken for failed restore.</summary>
</histogram>
<histogram name="Crostini.RestoreTimeSuccess" units="ms"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>Time taken for successful restore.</summary>
</histogram>
+<histogram name="Crostini.SettingsEvent" enum="CrostiniSettingsEvent"
+ expires_after="M88">
+ <owner>victorhsieh@chromium.org</owner>
+ <owner>tbuckley@chromium.org</owner>
+ <summary>Record user's choice in Crostini Settings</summary>
+</histogram>
+
<histogram name="Crostini.SetupResult" enum="CrostiniSetupResult"
expires_after="M81">
<owner>benwells@chromium.org</owner>
@@ -27106,7 +28504,7 @@ uploading your change for review.
</histogram>
<histogram name="CryptAuth.ClientAppMetadataInstanceIdTokenFetch.Result"
- enum="InstanceIDResult" expires_after="2020-03-15">
+ enum="InstanceIDResult" expires_after="2020-05-17">
<owner>jlklein@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -27263,7 +28661,7 @@ uploading your change for review.
</histogram>
<histogram name="CryptAuth.Enrollment.Result" enum="BooleanSuccess"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>jhawkins@chromium.org</owner>
<summary>
The top-level result of the CryptAuth device enrollment process.
@@ -27305,6 +28703,11 @@ uploading your change for review.
<histogram name="CryptAuth.EnrollmentV2.AsyncTaskResult.GcmRegistration"
enum="CryptAuthAsyncTaskResult" expires_after="2020-06-01">
+ <obsolete>
+ Deprecated 2019-12-11 in favor of
+ CryptAuth.EnrollmentV2.GcmRegistration.Success because the timeout was
+ removed.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -27365,6 +28768,11 @@ uploading your change for review.
<histogram name="CryptAuth.EnrollmentV2.ExecutionTime.GcmRegistration"
units="ms" expires_after="2020-06-01">
+ <obsolete>
+ Deprecated 2019-12-11 in favor of
+ CryptAuth.EnrollmentV2.GcmRegistration.AttemptTime because too many results
+ were reaching the max time limit.
+ </obsolete>
<owner>nohle@chromium.org</owner>
<owner>better-together-dev@google.com</owner>
<summary>
@@ -27396,6 +28804,26 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="CryptAuth.EnrollmentV2.GcmRegistration.AttemptTime" units="ms"
+ expires_after="2020-06-01">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the execution time of the async GCM registration call during the
+ CryptAuth v2 Enrollment flow. Recorded when the async callback is invoked.
+ </summary>
+</histogram>
+
+<histogram name="CryptAuth.EnrollmentV2.GcmRegistration.Success"
+ units="boolean" expires_after="2020-06-01">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Records the success or failure of the async GCM registration call during the
+ CryptAuth v2 Enrollment flow. Recorded when the async callback is invoked.
+ </summary>
+</histogram>
+
<histogram name="CryptAuth.EnrollmentV2.InvocationReason"
enum="CryptAuthV2EnrollmentInvocationReason" expires_after="2020-06-01">
<owner>nohle@chromium.org</owner>
@@ -27437,8 +28865,40 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="CryptAuth.Gcm.Registration.AttemptTimeWithRetries" units="ms"
+ expires_after="2020-06-01">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ The time it takes the GCM driver to return the result of a GCM registration
+ request made by the CryptAuth GCM manager. CryptAuth registration with GCM
+ is only performed once, if successful, for a given user on a device as the
+ first step in CryptAuth v1 or v2 Enrollment. Recorded when the CryptAuth GCM
+ manager is notified by the GCM driver that the registration attempt
+ finished, successfully or not. The GCM driver might quietly retry failures
+ before notifying the CryptAuth GCM manager. The time recorded here
+ encompasses the possible retry attempts and delays from the GCM driver.
+ </summary>
+</histogram>
+
+<histogram name="CryptAuth.Gcm.Registration.Result" enum="GCMClientResult"
+ expires_after="2020-06-01">
+ <owner>nohle@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ The result code from a GCM registration request made by the CryptAuth GCM
+ manager. CryptAuth registration with GCM is only performed once, if
+ successful, for a given user on a device as the first step in CryptAuth v1
+ or v2 Enrollment. Recorded when the CryptAuth GCM manager is notified by the
+ GCM driver that the registration attempt finished, successfully or not. The
+ GCM driver might quietly retry failures before notifying the CryptAuth GCM
+ manager. This metric will not include results codes that were quietly
+ retried by the GCM driver.
+ </summary>
+</histogram>
+
<histogram name="Cryptohome.AsyncDBusRequest" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -27479,7 +28939,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.DeprecatedApiCalled"
- enum="CryptohomeDeprecatedApiCalled" expires_after="M80">
+ enum="CryptohomeDeprecatedApiCalled" expires_after="2020-05-10">
<owner>apronin@chromium.org</owner>
<owner>louiscollard@chromium.org</owner>
<owner>zuan@chromium.org</owner>
@@ -27621,7 +29081,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.Errors" enum="CryptohomeError"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>Cryptohome errors.</summary>
@@ -27663,7 +29123,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.HomedirEncryptionType" enum="HomedirEncryptionType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>dspaid@chromium.org</owner>
<summary>
The encryption type used for a user's cryptohome directory. This is logged
@@ -27672,7 +29132,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.InstallAttributesUsage"
- enum="InstallAttributesUsageEvent" expires_after="M80">
+ enum="InstallAttributesUsageEvent" expires_after="2020-05-10">
<owner>vsavu@google.com</owner>
<owner>igorcov@chromium.com</owner>
<summary>
@@ -27682,7 +29142,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.InstallAttributesValidation"
- enum="InstallAttributesValidationEvent" expires_after="M80">
+ enum="InstallAttributesValidationEvent" expires_after="2020-05-10">
<owner>vsavu@google.com</owner>
<owner>igorcov@chromium.com</owner>
<summary>
@@ -27779,7 +29239,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.ParallelTasks" units="count"
- expires_after="2020-01-01">
+ expires_after="2021-01-01">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -27819,7 +29279,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Cryptohome.TimeToMountAsync" units="ms">
+<histogram name="Cryptohome.TimeToMountAsync" units="ms" expires_after="M80">
<obsolete>
Deprecated 07/2019 as it is not used since crrev.com/c/1393048
</obsolete>
@@ -27870,7 +29330,7 @@ uploading your change for review.
</histogram>
<histogram name="Cryptohome.TpmResults" enum="CryptohomeTpmResults"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>afakhry@chromium.org</owner>
<summary>
The errors resulting from interacting with the Trusted Platform Module (TPM)
@@ -27878,7 +29338,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="CryptohomeClient" units="ms" expires_after="2020-03-22">
+<histogram name="CryptohomeClient" units="ms" expires_after="2020-05-24">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
@@ -27901,7 +29361,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.ClientAppId" enum="ClientAppId"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>yusufo@chromium.org</owner>
<summary>
Android: AppId declared by the launching application in EXTRA_APPLICATION_ID
@@ -28025,7 +29485,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.DynamicModule.ProportionalSet.OnModuleDestroy"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed in October 2019
</obsolete>
@@ -28039,7 +29499,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.DynamicModule.ProportionalSet.OnModuleLoad"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed in October 2019
</obsolete>
@@ -28053,7 +29513,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.DynamicModule.ResidentSet.OnModuleDestroy"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed in October 2019
</obsolete>
@@ -28066,7 +29526,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="CustomTabs.DynamicModule.ResidentSet.OnModuleLoad" units="KB">
+<histogram name="CustomTabs.DynamicModule.ResidentSet.OnModuleLoad" units="KB"
+ expires_after="M80">
<obsolete>
Removed in October 2019
</obsolete>
@@ -28079,6 +29540,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="CustomTabs.Experimental.Visible" enum="VisibleTab"
+ expires_after="2020-01-26">
+ <owner>asvitkine@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
+ <summary>
+ Experimental version of CustomTabs.Visible that is logged on a log start,
+ rather than log end, to check if this results in more logs being tagged.
+ </summary>
+</histogram>
+
<histogram name="CustomTabs.IntentToFirstCommitNavigationTime" units="ms"
expires_after="2016-10-13">
<obsolete>
@@ -28232,7 +29703,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.SpareWebContents.Status2"
- enum="SpareWebContentsStatus2" expires_after="2020-03-08">
+ enum="SpareWebContentsStatus2" expires_after="2020-05-10">
<owner>lizeb@chromium.org</owner>
<owner>mthiesse@chromium.org</owner>
<summary>
@@ -28244,7 +29715,7 @@ uploading your change for review.
</histogram>
<histogram name="CustomTabs.SpareWebContents.TimeBeforeDeath" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>lizeb@chromium.org</owner>
<summary>
Android: When a spare WebContents is created from Custom Tabs, record how
@@ -28276,9 +29747,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="CustomTabs.Visible" enum="VisibleTab"
- expires_after="2020-01-26">
+<histogram name="CustomTabs.Visible" enum="VisibleTab" expires_after="never">
+<!-- expires-never: Used to classify UMA reports by the dashboards. -->
+
<owner>yusufo@chromium.org</owner>
+ <owner>src/base/metrics/OWNERS</owner>
<summary>
Recorded only for Android. Records on every metrics upload whether the
currently visible tab is a custom tab. The custom tab is launched by a
@@ -28505,8 +29978,9 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.AuthExpired"
- enum="BooleanExpired" expires_after="M81">
- <owner>bengr@chromium.org</owner>
+ enum="BooleanExpired" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
<summary>
Total number of authentication required responses received from the Data
Reduction Proxy.
@@ -28519,8 +29993,9 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.AuthExpiredSessionKey"
- enum="DataReductionProxyConfigServiceAuthExpiredSessionKey">
- <owner>bengr@chromium.org</owner>
+ enum="DataReductionProxyConfigServiceAuthExpiredSessionKey"
+ expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
On receiving an authentication failure from the data reduction proxy,
@@ -28533,8 +30008,8 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.AuthFailure.LatencyPenalty"
- units="ms">
- <owner>bengr@chromium.org</owner>
+ units="ms" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Time from when the request starts to the time when the auth failure is
@@ -28545,7 +30020,7 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.ConnectionSetupTime"
- units="ms" expires_after="2019-12-31">
+ units="ms" expires_after="M90">
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -28557,8 +30032,9 @@ uploading your change for review.
<histogram
name="DataReductionProxy.ConfigService.FetchFailedAttemptsBeforeSuccess"
- units="units" expires_after="M81">
- <owner>bengr@chromium.org</owner>
+ units="units" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
<summary>
The number of failed attempts when retrieving the configuration from the
Data Reduction Proxy API before a successful attempt took place.
@@ -28570,8 +30046,9 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.FetchLatency" units="ms"
- expires_after="M81">
- <owner>bengr@chromium.org</owner>
+ expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
<summary>
Time from when the Data Reduction Proxy configuration request starts until
it completes.
@@ -28581,8 +30058,9 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.FetchResponseCode"
- enum="HttpResponseCode" expires_after="M81">
- <owner>bengr@chromium.org</owner>
+ enum="HttpResponseCode" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
<summary>
Count per HttpResponseCode when attempting to retrieve the Data Reduction
Proxy configuration from the Data Reduction Proxy API.
@@ -28590,7 +30068,7 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.HttpRequestRTT" units="ms"
- expires_after="2019-12-31">
+ expires_after="M90">
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -28600,8 +30078,8 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.HTTPRequests"
- enum="DataReductionProxyConfigServiceHTTPRequests">
- <owner>bengr@chromium.org</owner>
+ enum="DataReductionProxyConfigServiceHTTPRequests" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Upper bound on the count of HTTP requests that did or did not go through the
@@ -28615,9 +30093,9 @@ uploading your change for review.
</histogram>
<histogram name="DataReductionProxy.ConfigService.MainFrames"
- enum="DataReductionProxyConfigServiceMainFrames">
- <owner>bengr@chromium.org</owner>
+ enum="DataReductionProxyConfigServiceMainFrames" expires_after="M90">
<owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
<summary>
Upper bound on the count of main frame requests that did or did not go
through the data saver proxy.
@@ -29066,6 +30544,9 @@ uploading your change for review.
<histogram name="DataReductionProxy.Protocol.AcceptTransform"
enum="DataReductionProxyProtocolAcceptTransformEvent"
expires_after="2019-12-12">
+ <obsolete>
+ Obsolete as of 10/2018.
+ </obsolete>
<owner>dougarnett@chromium.org</owner>
<summary>
Records the sending of accepted transform headers to the data reduction
@@ -30064,7 +31545,10 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="DataUse.TrafficSize.System" units="bytes">
+<histogram name="DataUse.TrafficSize.System" units="bytes" expires_after="M80">
+ <obsolete>
+ Deprecated in M74 and replaced by DataUse.AllServicesKB.
+ </obsolete>
<owner>bengr@chromium.org</owner>
<summary>
The total data use of Chrome's services. There is no ResourceRequestInfo
@@ -30616,7 +32100,7 @@ uploading your change for review.
</histogram>
<histogram name="DevTools.BackgroundService.ClearEvents"
- enum="ServiceWorkerStatusCode" expires_after="M80">
+ enum="ServiceWorkerStatusCode" expires_after="M83">
<owner>yangguo@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -30628,7 +32112,7 @@ uploading your change for review.
</histogram>
<histogram name="DevTools.BackgroundService.GetEvents"
- enum="ServiceWorkerStatusCode" expires_after="M80">
+ enum="ServiceWorkerStatusCode" expires_after="M83">
<owner>rayankans@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -30639,7 +32123,7 @@ uploading your change for review.
</histogram>
<histogram name="DevTools.BackgroundService.LogEvent"
- enum="ServiceWorkerStatusCode" expires_after="M80">
+ enum="ServiceWorkerStatusCode" expires_after="M83">
<owner>rayankans@chromium.org</owner>
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
@@ -30651,7 +32135,7 @@ uploading your change for review.
</histogram>
<histogram name="DevTools.BackgroundService.StartRecording"
- enum="DevToolsBackgroundService" expires_after="M80">
+ enum="DevToolsBackgroundService" expires_after="M83">
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
@@ -31538,6 +33022,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="DirectWrite.Fonts.Proxy.MostFrequentScanningFailure"
+ enum="Hresult" expires_after="M82">
+ <owner>drott@chromium.org</owner>
+ <owner>layout-dev@chromium.org</owner>
+ <summary>
+ When scanning fonts for meta data as part of local matching, record the most
+ frequent failure of why no meta data was gathered for a font family.
+ Recorded in DWriteFontTableBuilder at the time of finishing scanning the
+ font files for their name meta information. Values are Windows HRESULT error
+ codes, including custom values for implementation specific failure cases.
+ Used for diagnosing https://crbug.com/1009402.
+ </summary>
+</histogram>
+
<histogram name="DirectWrite.Fonts.Proxy.NumFontFiles" units="font files"
expires_after="M82">
<owner>drott@chromium.org</owner>
@@ -31658,7 +33156,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Discarding.Urgent.TimeSinceStartup" units="ms">
+<histogram name="Discarding.Urgent.TimeSinceStartup" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 08/2019. Use Discarding.ReloadsPer10Minutes to assess whether
tabs are discarded too often.
@@ -31752,6 +33251,109 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="DiskCache.0.AsyncIOTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time for an async IO operation to complete. This covers content Writes
+ and Reads, measured from the cache thread.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.AsyncReadDispatchTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The synchronous portion of an async read.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.AsyncWriteDispatchTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The synchronous portion of an async write.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.AverageOpenEntries2" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of open disk cache entries at any given time.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.BufferBytes" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The total size of all the internal buffers.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.ByteIORate" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of KB accessed from the cache in a 30 seconds interval.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.CreateTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent creating a new entry on the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.DeletedAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The age of the last entry on the queue of deleted entries.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.DeleteData" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The size of the data portion of a given entry by the time it is deleted.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.DeletedRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The percentage of the deleted entries.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.DeleteFailed" units="files">
+ <owner>rvargas@chromium.org</owner>
+ <summary>Number of external files that we were unable to delete.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.DeleteHeader" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The size of the HTML headers of a given entry by the time it is deleted.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.Entries" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The number of entries currently stored on the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.EntriesFull" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries currently stored on the cache, after it is full.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.EntryAccessRate" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries accessed by the cache in a 30 seconds interval.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.EntrySize" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average size of an entry. It is only measured after the cache is full,
+ so evictions are taking place.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.Error" enum="DiskCacheError">
+ <owner>rvargas@chromium.org</owner>
+ <summary>Critical error ids.</summary>
+</histogram>
+
<histogram name="DiskCache.0.FilesAge" units="hours" expires_after="M77">
<obsolete>
Removed 2019-07-05
@@ -31760,7 +33362,536 @@ uploading your change for review.
<summary>The age of the cache's files (wall time).</summary>
</histogram>
-<histogram name="DiskCache.2.FilesAge" units="hours">
+<histogram name="DiskCache.0.FillupAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The age of the cache (in hours) by the time we reach the size limit.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FillupTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of hours required to fill up the cache, as measured by the cache
+ being running.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstByteIORate" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of KB accessed from the cache in a 30 seconds interval,
+ by the time we reach the cache size limit.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstEntryAccessRate" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of entries accessed by the cache in a 30 seconds
+ interval, by the time we reach the cache size limit.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstEntrySize" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average size of an entry by the time we reach the cache size limit.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstHighUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the entries that are highly reused, by the time we fill up
+ the cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstHitRatio" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio by the time we fill up the cache. Of course, we started with
+ an empty cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstLargeEntriesRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the cache used by entries of more than 512 KB, by the time
+ we reach the cache size limit.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstLowUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the entries that have been reused a few times, by the time
+ we fill up the cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstNoUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the entries that have never been reused, by the time we
+ fill up the cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.FirstResurrectRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of re-created deleted entries versus entries that we really
+ don't know about.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.GetRankings" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent reading the LRU-related portion of an entry.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.HighUseAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The age of the last entry on the queue of highly used entries.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.HighUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The percentage of the entries that are highly reused.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.HitRatio" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The current hit ratio. It is only measured after the cache is full, so
+ evictions are taking place, and data from the fill-up period is not
+ considered.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.HitRatioBySize2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each size. To calculate the hit ratio of caches of a
+ certain size, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.0.Size2.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.HitRatioByTotalTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each total time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.0.TotalTime.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.HitRatioByUseTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each use time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.0.UseTime.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.IndexLoad" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Percentage of the index table that is currently used (the cache is full).
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.KeySize" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The size of each key.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.LargeEntriesRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Percentage of the cache used by entries of more than 512 KB. It is only
+ measured after the cache is full, so evictions are taking place.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.LoadTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time to load the main entry data from disk, with a &quot;loaded&quot;
+ system.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.LowUseAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The age of the last entry on the queue of entries reused a few times.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.LowUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the entries that have been reused a few times.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.MaxOpenEntries2" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The maximum number of simultaneously open disk cache entries.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.MaxSize" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated. See MaxSize2.
+ </obsolete>
+ <owner>rvargas@chromium.org</owner>
+ <summary>The maximum size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.MaxSize2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The maximum size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.NoUseAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The age of the next entry to be evicted that has never been reused.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.NoUseRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The percentage of the entries that have never been reused.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.NumberOfReferences" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The number of open entry references at any given moment.</summary>
+ <details>
+ Closely related to AverageOpenEntries, but this one is not the average per
+ client but instead a direct histogram updated every 30 secs.
+ </details>
+</histogram>
+
+<histogram name="DiskCache.0.OpenTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent opening an entry already on the cache (cache hit).
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.PendingIO" units="operations">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The number of pending IO operations (Async IO).</summary>
+</histogram>
+
+<histogram name="DiskCache.0.ReadTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent reading from an entry.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.ResurrectRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of re-created deleted entries versus entries that we really
+ don't know about.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.ShortReport" enum="ShortReportReason">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The reason for not sending a full report.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.Size" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated. See Size2
+ </obsolete>
+ <owner>rvargas@chromium.org</owner>
+ <summary>The current size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.Size2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The current size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.SparseReadTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent reading from an sparse entry.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.SparseWriteTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent writing to an sparse entry.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalClearTimeV1" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent deleting the cache. (Clear browsing data).</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalClearTimeV2" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent deleting the cache. (Clear browsing data).</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalDoomCache" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of times that this cache has been deleted by the user.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalDoomRecentEntries" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of times that the user has deleted new entries from this cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalEvictionsGaJs" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The number of times that ga.js was evicted.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalFatalErrors" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of fatal errors detected for this cache (so we delete
+ everything).
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalIOTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The total time it takes to perform a payload IO operation (AKA, directed to
+ an entry). This is measured from the IO thread.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>Number of hours that the cache has been used.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTimeNotFull" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of hours that the cache has been in use, for users that still
+ have available space.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTrimDeletedTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent removing deleted entries from the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTrimTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent removing old entries from the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTrimTimeV1" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent removing old entries from the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.TotalTrimTimeV2" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent evicting entries from the cache (moving them to the deleted
+ list).
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TrimAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time that an entry lives in the cache without being accessed until it is
+ finally purged.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TrimDeletedItems" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are deleted on a single iteration.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TrimItemsV1" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are evicted on a single iteration.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TrimItemsV2" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are evicted (moved to the deleted list) on a
+ single iteration.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.TrimRate" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The number of entries that are evicted per hour of use.</summary>
+</histogram>
+
+<histogram name="DiskCache.0.UpdateRank" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent moving an entry to the front of the LRU list.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.UsedSpace" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the allowed disk space that we are currently using.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.UseTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Number of hours that the cache has been used since last week.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.0.WriteTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent writing to an entry.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.AsyncIOTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time for an async IO operation to complete. This covers content Writes
+ and Reads, measured from the cache thread. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.AsyncReadDispatchTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The synchronous portion of an async read. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.AsyncWriteDispatchTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The synchronous portion of an async write. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.AverageOpenEntries2" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of open disk cache entries at any given time.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.BufferBytes" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The total size of all the internal buffers. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.ByteIORate" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of KB accessed from the cache in a 30 seconds interval.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.CreateTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent creating a new entry on the cache. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.DeleteData" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The size of the data portion of a given entry by the time it is deleted.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.DeleteFailed" units="files">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Number of external files that we were unable to delete. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.DeleteHeader" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The size of the HTML headers of a given entry by the time it is deleted.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.Entries" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries currently stored on the cache. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.EntriesFull" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries currently stored on the cache, after it is full.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.EntryAccessRate" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries accessed by the cache in a 30 seconds interval.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.EntrySize" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average size of an entry. It is only measured after the cache is full,
+ so evictions are taking place. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.Error" enum="DiskCacheError">
+ <owner>rvargas@chromium.org</owner>
+ <summary>Critical error ids. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.FilesAge" units="hours" expires_after="M80">
<obsolete>
Removed 2019-07-05
</obsolete>
@@ -31770,6 +33901,441 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="DiskCache.2.FillupAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The age of the cache (in hours) by the time we reach the size limit.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FillupTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of hours required to fill up the cache, as measured by the cache
+ being running. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FirstByteIORate" units="KB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of KB accessed from the cache in a 30 seconds interval,
+ by the time we reach the cache size limit. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FirstEntryAccessRate" units="entries">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average number of entries accessed by the cache in a 30 seconds
+ interval, by the time we reach the cache size limit. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FirstEntrySize" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The average size of an entry by the time we reach the cache size limit.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FirstHitRatio" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio by the time we fill up the cache. Of course, we started with
+ an empty cache. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.FirstLargeEntriesRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the cache used by entries of more than 512 KB, by the time
+ we reach the cache size limit. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.GetRankings" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent reading the LRU-related portion of an entry. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.HitRatio" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The current hit ratio. It is only measured after the cache is full, so
+ evictions are taking place, and data from the fill-up period is not
+ considered. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.HitRatioBySize2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each size. To calculate the hit ratio of caches of a
+ certain size, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.2.Size2. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.HitRatioByTotalTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each total time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.2.TotalTime. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.HitRatioByUseTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The hit ratio for each use time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.2.UseTime. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.IndexLoad" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Percentage of the index table that is currently used (the cache is full).
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.KeySize" units="bytes">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The size of each key. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.LargeEntriesRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Percentage of the cache used by entries of more than 512 KB. It is only
+ measured after the cache is full, so evictions are taking place.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.LoadTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time to load the main entry data from disk, with a &quot;loaded&quot;
+ system. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.MaxOpenEntries2" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The maximum number of simultaneously open disk cache entries. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.MaxSize" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated. See MaxSize2.
+ </obsolete>
+ <owner>rvargas@chromium.org</owner>
+ <summary>The maximum size of the cache. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.MaxSize2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The maximum size of the cache. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.NumberOfReferences" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of open entry references at any given moment. Closely related to
+ AverageOpenEntries, but this one is not the average per client but instead a
+ direct histogram updated every 30 secs. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.OpenTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent opening an entry already on the cache (cache hit).
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.PendingIO" units="operations">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of pending IO operations (Async IO). Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.ReadTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent reading from an entry. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.ResurrectRatio" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of re-created deleted entries versus entries that we really
+ don't know about. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.ShortReport" enum="ShortReportReason">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The reason for not sending a full report. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.Size" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated. See Size2.
+ </obsolete>
+ <owner>rvargas@chromium.org</owner>
+ <summary>The current size of the cache. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.Size2" units="MB">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The current size of the cache. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalClearTimeV1" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent deleting the cache. (Clear browsing data). Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalClearTimeV2" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent deleting the cache. (Clear browsing data). Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalIOTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The total time it takes to perform a payload IO operation (AKA, directed to
+ an entry). This is measured from the IO thread. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Number of hours that the cache has been used. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalTrimDeletedTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent removing deleted entries from the cache. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalTrimTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent removing old entries from the cache. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalTrimTimeV1" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent removing old entries from the cache. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TotalTrimTimeV2" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent evicting entries from the cache (moving them to the deleted
+ list). Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TrimAge" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time that an entry lives in the cache without being accessed until it is
+ finally purged. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TrimDeletedItems" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are deleted on a single iteration. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TrimItemsV1" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are evicted on a single iteration. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TrimItemsV2" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are evicted (moved to the deleted list) on a
+ single iteration. Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.TrimRate" units="?">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The number of entries that are evicted per hour of use. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.UpdateRank" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The time spent moving an entry to the front of the LRU list. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.UsedSpace" units="%">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ The percentage of the allowed disk space that we are currently using.
+ Media-specific cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.UseTime" units="hours">
+ <owner>rvargas@chromium.org</owner>
+ <summary>
+ Number of hours that the cache has been used since last week. Media-specific
+ cache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.2.WriteTime" units="ms">
+ <owner>rvargas@chromium.org</owner>
+ <summary>The time spent writing to an entry. Media-specific cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.AsyncIOTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time for an async IO operation to complete. This covers content Writes
+ and Reads, measured from the cache thread. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.AsyncReadDispatchTime" units="ms"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The synchronous portion of an async read. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.AsyncWriteDispatchTime" units="ms"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The synchronous portion of an async write. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.AverageOpenEntries2" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of open disk cache entries at any given time. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.BufferBytes" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The total size of all the internal buffers. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.ByteIORate" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of KB accessed from the cache in a 30 seconds interval. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.CreateTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The time spent creating a new entry on the cache. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.DeleteData" units="bytes" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The size of the data portion of a given entry by the time it is deleted.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.DeleteFailed" units="files" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Number of external files that we were unable to delete. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.Entries" units="entries" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries currently stored on the cache. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.EntriesFull" units="entries" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries currently stored on the cache, after it is full.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.EntryAccessRate" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries accessed by the cache in a 30 seconds interval.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.EntrySize" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average size of an entry. It is only measured after the cache is full,
+ so evictions are taking place. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.Error" enum="DiskCacheError" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Critical error ids. AppCache.</summary>
+</histogram>
+
<histogram name="DiskCache.3.FilesAge" units="hours" expires_after="2018-08-30">
<obsolete>
Removed 2019-07-05
@@ -31778,6 +34344,404 @@ uploading your change for review.
<summary>The age of the cache's files (wall time). AppCache.</summary>
</histogram>
+<histogram name="DiskCache.3.FillupAge" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The age of the cache (in hours) by the time we reach the size limit.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FillupTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of hours required to fill up the cache, as measured by the cache
+ being running. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FirstByteIORate" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of KB accessed from the cache in a 30 seconds interval,
+ by the time we reach the cache size limit. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FirstEntryAccessRate" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of entries accessed by the cache in a 30 seconds
+ interval, by the time we reach the cache size limit. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FirstEntrySize" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average size of an entry by the time we reach the cache size limit.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FirstHitRatio" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio by the time we fill up the cache. Of course, we started with
+ an empty cache. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.FirstLargeEntriesRatio" units="%"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The percentage of the cache used by entries of more than 512 KB, by the time
+ we reach the cache size limit. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.GetRankings" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent reading the LRU-related portion of an entry. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.HitRatio" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The current hit ratio. It is only measured after the cache is full, so
+ evictions are taking place, and data from the fill-up period is not
+ considered. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.HitRatioBySize2" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each size. To calculate the hit ratio of caches of a
+ certain size, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.3.Size2. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.HitRatioByTotalTime" units="hours"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each total time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.3.TotalTime. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.HitRatioByUseTime" units="hours"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each use time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.3.UseTime. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.IndexLoad" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Percentage of the index table that is currently used (the cache is full).
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.KeySize" units="bytes" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The size of each key. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.LargeEntriesRatio" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Percentage of the cache used by entries of more than 512 KB. It is only
+ measured after the cache is full, so evictions are taking place. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.LoadTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time to load the main entry data from disk, with a &quot;loaded&quot;
+ system. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.MaxOpenEntries2" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The maximum number of simultaneously open disk cache entries. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.MaxSize" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated. See MaxSize2.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The maximum size of the cache. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.MaxSize2" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The maximum size of the cache. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.OpenTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent opening an entry already on the cache (cache hit). AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.PendingIO" units="operations" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of pending IO operations (Async IO). AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.ReadTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The time spent reading from an entry. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.ResurrectRatio" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The percentage of re-created deleted entries versus entries that we really
+ don't know about. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.ShortReport" enum="ShortReportReason"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The reason for not sending a full report. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.Size" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The current size of the cache. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.TotalIOTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The total time it takes to perform a payload IO operation (AKA, directed to
+ an entry). This is measured from the IO thread. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TotalTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Number of hours that the cache has been used. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.3.TotalTrimDeletedTime" units="ms"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent removing deleted entries from the cache. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TotalTrimTimeV1" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent removing old entries from the cache. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TotalTrimTimeV2" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent evicting entries from the cache (moving them to the deleted
+ list). AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TrimAge" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time that an entry lives in the cache without being accessed until it is
+ finally purged. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TrimDeletedItems" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are deleted on a single iteration. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TrimItemsV1" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are evicted on a single iteration. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TrimItemsV2" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are evicted (moved to the deleted list) on a
+ single iteration. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.TrimRate" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are evicted per hour of use. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.UpdateRank" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent moving an entry to the front of the LRU list. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.UsedSpace" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The percentage of the allowed disk space that we are currently using.
+ AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.UseTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Number of hours that the cache has been used since last week. AppCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.3.WriteTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The time spent writing to an entry. AppCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.AsyncIOTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time for an async IO operation to complete. This covers content Writes
+ and Reads, measured from the cache thread. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.AsyncReadDispatchTime" units="ms"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The synchronous portion of an async read. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.AsyncWriteDispatchTime" units="ms"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The synchronous portion of an async write. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.AverageOpenEntries2" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of open disk cache entries at any given time.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.BufferBytes" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The total size of all the internal buffers. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.ByteIORate" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of KB accessed from the cache in a 30 seconds interval.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.CreateTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent creating a new entry on the cache. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.DeleteData" units="bytes" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The size of the data portion of a given entry by the time it is deleted.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.DeleteFailed" units="files" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Number of external files that we were unable to delete. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.DeleteHeader" units="bytes" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The size of the HTML headers of a given entry by the time it is deleted.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.Entries" units="entries" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries currently stored on the cache. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.EntriesFull" units="entries" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries currently stored on the cache, after it is full.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.EntryAccessRate" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries accessed by the cache in a 30 seconds interval.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.EntrySize" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average size of an entry. It is only measured after the cache is full,
+ so evictions are taking place. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.Error" enum="DiskCacheError" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Critical error ids. ShaderCache.</summary>
+</histogram>
+
<histogram name="DiskCache.4.FilesAge" units="hours" expires_after="2018-08-30">
<obsolete>
Removed 2019-07-05
@@ -31786,6 +34750,353 @@ uploading your change for review.
<summary>The age of the cache's files (wall time). ShaderCache.</summary>
</histogram>
+<histogram name="DiskCache.4.FillupAge" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The age of the cache (in hours) by the time we reach the size limit.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FillupTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of hours required to fill up the cache, as measured by the cache
+ being running. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FirstByteIORate" units="KB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of KB accessed from the cache in a 30 seconds interval,
+ by the time we reach the cache size limit. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FirstEntryAccessRate" units="entries"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average number of entries accessed by the cache in a 30 seconds
+ interval, by the time we reach the cache size limit. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FirstEntrySize" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The average size of an entry by the time we reach the cache size limit.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FirstHitRatio" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio by the time we fill up the cache. Of course, we started with
+ an empty cache. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.FirstLargeEntriesRatio" units="%"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The percentage of the cache used by entries of more than 512 KB, by the time
+ we reach the cache size limit. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.GetRankings" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent reading the LRU-related portion of an entry. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.HitRatio" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The current hit ratio. It is only measured after the cache is full, so
+ evictions are taking place, and data from the fill-up period is not
+ considered. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.HitRatioBySize2" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each size. To calculate the hit ratio of caches of a
+ certain size, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.4.Size2. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.HitRatioByTotalTime" units="hours"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each total time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.4.TotalTime. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.HitRatioByUseTime" units="hours"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The hit ratio for each use time. To calculate the hit ratio of caches of a
+ certain age, take the ratio of a bin in this histogram to the same bin in
+ DiskCache.4.UseTime. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.IndexLoad" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Percentage of the index table that is currently used (the cache is full).
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.KeySize" units="bytes" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The size of each key. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.LargeEntriesRatio" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Percentage of the cache used by entries of more than 512 KB. It is only
+ measured after the cache is full, so evictions are taking place.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.LoadTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time to load the main entry data from disk, with a &quot;loaded&quot;
+ system. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.MaxOpenEntries2" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The maximum number of simultaneously open disk cache entries. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.MaxSize2" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The maximum size of the cache. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.OpenTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent opening an entry already on the cache (cache hit).
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.PendingIO" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of pending IO operations (Async IO). ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.ReadTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The time spent reading from an entry. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.ShortReport" enum="ShortReportReason"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The reason for not sending a full report. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.Size" units="MB" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The current size of the cache. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.TotalIOTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The total time it takes to perform a payload IO operation (AKA, directed to
+ an entry). This is measured from the IO thread. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.TotalTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Number of hours that the cache has been used. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.4.TotalTrimTimeV1" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent removing old entries from the cache. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.TrimAge" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time that an entry lives in the cache without being accessed until it is
+ finally purged. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.TrimItemsV1" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are evicted on a single iteration. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.TrimRate" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The number of entries that are evicted per hour of use. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.UpdateRank" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time spent moving an entry to the front of the LRU list. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.UsedSpace" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The percentage of the allowed disk space that we are currently using.
+ ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.UseTime" units="hours" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Number of hours that the cache has been used since last week. ShaderCache.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.4.WriteTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The time spent writing to an entry. ShaderCache.</summary>
+</histogram>
+
+<histogram name="DiskCache.BlockLoad_0" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The percentage of use for blocks of type 0 (links).</summary>
+</histogram>
+
+<histogram name="DiskCache.BlockLoad_1" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The percentage of use for blocks of type 1 (256 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.BlockLoad_2" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The percentage of use for blocks of type 2 (1024 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.BlockLoad_3" units="%" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The percentage of use for blocks of type 3 (4096 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.Blocks_0" units="blocks" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of used blocks of type 0 (links).</summary>
+</histogram>
+
+<histogram name="DiskCache.Blocks_1" units="blocks" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of used blocks of type 1 (256 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.Blocks_2" units="blocks" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of used blocks of type 2 (1024 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.Blocks_3" units="blocks" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of used blocks of type 3 (4096 bytes).</summary>
+</histogram>
+
+<histogram name="DiskCache.DeleteFailed2" units="files" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Number of block-files that we were unable to delete.</summary>
+</histogram>
+
+<histogram name="DiskCache.Entries" units="entries" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The number of entries currently stored on the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.Experiment" units="group" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The experiment group for this user.</summary>
+</histogram>
+
+<histogram name="DiskCache.HitRatio" units="?" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The current hit ratio. It is only measured after the cache is full, so
+ evictions are taking place, and data from the fill-up period is not
+ considered.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.LargeEntriesRatio" units="%" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Percentage of the cache used by entries of more than 512 KB. It is only
+ measured after the cache is full, so evictions are taking place.
+ </summary>
+</histogram>
+
+<histogram name="DiskCache.MaxSize" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The maximum size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.Size" units="MB" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>The current size of the cache.</summary>
+</histogram>
+
+<histogram name="DiskCache.SizeStats" units="?">
+ <owner>dmikurube@chromium.org</owner>
+ <summary>The size distribution of data stored on the cache.</summary>
+</histogram>
+
<histogram name="DiskCache.SizeStats2" units="KB" expires_after="M77">
<obsolete>
Removed 2019-07-05
@@ -31805,6 +35116,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="DiskCache.TrimAge" units="hours" expires_after="M80">
+ <obsolete>
+ Deprecated.
+ </obsolete>
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ The time that an entry lives in the cache without being accessed until it is
+ finally purged.
+ </summary>
+</histogram>
+
<histogram name="DisplayManager.InternalDisplayZoomPercentage" units="%">
<owner>malaykeshav@chromium.org</owner>
<summary>
@@ -33138,7 +36460,7 @@ uploading your change for review.
<owner>pstew@chromium.org</owner>
<summary>
Chrome OS document scan metric that tracks whether a document scan call to
- the image conversion process suceeded.
+ the image conversion process succeeded.
</summary>
</histogram>
@@ -33146,7 +36468,7 @@ uploading your change for review.
<owner>pstew@chromium.org</owner>
<summary>
Chrome OS document scan metric that tracks whether a document scan call to
- the sane backend process suceeded.
+ the sane backend process succeeded.
</summary>
</histogram>
@@ -33204,7 +36526,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="DomainBoundCerts.DBVersion" units="units">
+<histogram name="DomainBoundCerts.DBVersion" units="units" expires_after="M80">
<obsolete>
Feature was removed (crbug.com/875053).
</obsolete>
@@ -33266,7 +36588,8 @@ uploading your change for review.
<summary>Result of GetDomainBoundCert function.</summary>
</histogram>
-<histogram name="DomainBoundCerts.KillDatabaseResult" enum="BooleanSuccess">
+<histogram name="DomainBoundCerts.KillDatabaseResult" enum="BooleanSuccess"
+ expires_after="M80">
<obsolete>
Feature was removed (crbug.com/875053).
</obsolete>
@@ -33477,7 +36800,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="DomainReliability.UploadDuration" units="ms">
+<histogram name="DomainReliability.UploadDuration" units="ms"
+ expires_after="M80">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/807144
+ </obsolete>
<owner>juliatuttle@chromium.org</owner>
<summary>
The elapsed time between starting and finishing a Domain Reliability upload.
@@ -33525,6 +36852,9 @@ uploading your change for review.
<histogram name="DomainReliability.UploadLatency" units="ms"
expires_after="M77">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/807144
+ </obsolete>
<owner>juliatuttle@chromium.org</owner>
<summary>
The time from the first beacon in a Domain Reliability upload being recorded
@@ -33536,6 +36866,9 @@ uploading your change for review.
<histogram name="DomainReliability.UploadNetError" enum="NetErrorCodes"
expires_after="M77">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/807144
+ </obsolete>
<owner>juliatuttle@chromium.org</owner>
<summary>
The network error code (or OK if none) returned by the URLFetcher when a
@@ -33543,7 +36876,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="DomainReliability.UploadResponseCode" enum="HttpResponseCode">
+<histogram name="DomainReliability.UploadResponseCode" enum="HttpResponseCode"
+ expires_after="M80">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/807144
+ </obsolete>
<owner>juliatuttle@chromium.org</owner>
<summary>
The HTTP response code returned by the Domain Reliability collector when a
@@ -33551,7 +36888,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="DomainReliability.UploadSuccess" enum="BooleanSuccess">
+<histogram name="DomainReliability.UploadSuccess" enum="BooleanSuccess"
+ expires_after="M80">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/807144
+ </obsolete>
<owner>juliatuttle@chromium.org</owner>
<summary>Whether a Domain Reliability upload succeeded.</summary>
</histogram>
@@ -34005,7 +37346,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.BandwidthOverallBytesPerSecond" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dtrainor@chromium.org</owner>
<summary>
Overall bandwidth seen for the download. Note that this is measured at the
@@ -34143,7 +37484,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Download.Counts" enum="DownloadCountType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes name="DownloadSource" -->
<owner>xingliu@chromium.org</owner>
@@ -34154,7 +37495,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.CountsChrome" enum="ChromeDownloadCountType"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dtrainor@chromium.org</owner>
<summary>
Various individual counts in the download system, for example the number of
@@ -34527,7 +37868,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.HistorySize2" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>dtrainor@chromium.org</owner>
<summary>
The number of items in the History database, at the time a new download is
@@ -34552,7 +37893,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Download.InsecureBlocking.Extensions"
- enum="InsecureDownloadExtensions" expires_after="M80">
+ enum="InsecureDownloadExtensions" expires_after="M81">
<owner>jdeblasio@chromium.org</owner>
<owner>estark@chromium.org</owner>
<owner>cthomp@chromium.org</owner>
@@ -34563,7 +37904,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.InsecureBlocking.Totals"
- enum="InsecureDownloadSecurityStatus" expires_after="M80">
+ enum="InsecureDownloadSecurityStatus" expires_after="M81">
<owner>jdeblasio@chromium.org</owner>
<owner>estark@chromium.org</owner>
<owner>cthomp@chromium.org</owner>
@@ -34574,7 +37915,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Download.InsecureBlocking.Verification"
- enum="DownloadContentType" expires_after="M80">
+ enum="DownloadContentType" expires_after="M81">
<owner>jdeblasio@chromium.org</owner>
<owner>estark@chromium.org</owner>
<owner>cthomp@chromium.org</owner>
@@ -34671,7 +38012,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Download.InterruptedUnderrunBytes" units="units">
+<histogram name="Download.InterruptedUnderrunBytes" units="units"
+ expires_after="M80">
<obsolete>
Removed in 07/2019.
</obsolete>
@@ -34705,7 +38047,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadedFileAction" enum="DownloadedFileAction"
- expires_after="2020-01-15">
+ expires_after="2021-01-15">
<owner>eugenebut@chromium.org</owner>
<summary>
The action that a user takes on a file after it has been successfully
@@ -34724,7 +38066,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadedFileStatusCode" units="units"
- expires_after="2020-01-15">
+ expires_after="2021-01-15">
<owner>eugenebut@chromium.org</owner>
<owner>stkhapugin@chromium.org</owner>
<summary>
@@ -34733,7 +38075,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadFileInBackground"
- enum="DownloadFileInBackground" expires_after="2020-01-15">
+ enum="DownloadFileInBackground" expires_after="2021-01-15">
<owner>eugenebut@chromium.org</owner>
<summary>
Logged when the download is completed (successfully or not) or in-progress
@@ -34744,13 +38086,13 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadFileResult" enum="DownloadFileResult"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>eugenebut@chromium.org</owner>
<summary>Result when a user attempts to download a file on iOS.</summary>
</histogram>
<histogram name="Download.IOSDownloadInstallDrivePromoShown" enum="Boolean"
- expires_after="2020-01-15">
+ expires_after="2020-05-10">
<owner>eugenebut@chromium.org</owner>
<owner>pkl@chromium.org</owner>
<summary>
@@ -34760,7 +38102,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadMimeType" enum="DownloadMimeTypeResult"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>eugenebut@chromium.org</owner>
<summary>
MIME type of a download response. Logged when the download UI was offered by
@@ -34769,7 +38111,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.IOSDownloadPassKitResult"
- enum="DownloadPassKitResult" expires_after="2020-01-15">
+ enum="DownloadPassKitResult" expires_after="2021-01-15">
<owner>eugenebut@chromium.org</owner>
<summary>
Result when a user attempts to download a PassKit file on iOS.
@@ -34856,7 +38198,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.MapErrorNetworkFailed.NetworkService"
- enum="NetErrorCodes" expires_after="2020-03-29">
+ enum="NetErrorCodes" expires_after="2020-05-31">
<owner>dtrainor@chromium.org</owner>
<owner>qinmin@chromium.org</owner>
<summary>
@@ -34912,7 +38254,8 @@ uploading your change for review.
<summary>Records events for local media metadata parsing.</summary>
</histogram>
-<histogram name="Download.MediaParser.CompletionTime" units="ms">
+<histogram name="Download.MediaParser.CompletionTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated July 2019.
</obsolete>
@@ -35021,7 +38364,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.ParallelDownload.CreationEvent"
- enum="ParallelDownloadCreationEvent" expires_after="2020-03-29">
+ enum="ParallelDownloadCreationEvent" expires_after="2020-05-31">
<owner>xingliu@chromium.org</owner>
<summary>
When parallel downloading feature is enabled, a download may be created as
@@ -35196,7 +38539,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.ResumptionRestart.Counts"
- enum="DownloadResumptionRestartCountType" expires_after="2020-03-29">
+ enum="DownloadResumptionRestartCountType" expires_after="2020-05-31">
<owner>qinmin@chromium.org</owner>
<owner>xingliu@chromium.org</owner>
<summary>
@@ -35206,7 +38549,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.ResumptionRestart.Reason" enum="InterruptReason"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>qinmin@chromium.org</owner>
<owner>xingliu@chromium.org</owner>
<summary>
@@ -35380,7 +38723,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.Service.Files.FreeDiskSpace" units="%"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>xingliu@chromium.org</owner>
<summary>
The percentage of free disk space to total disk space. Recorded during
@@ -35446,7 +38789,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.Service.Finish.Type"
- enum="Download.Service.CompletionType" expires_after="2020-03-01">
+ enum="Download.Service.CompletionType" expires_after="2020-05-03">
<owner>xingliu@chromium.org</owner>
<summary>The completion type for downloads in download service.</summary>
</histogram>
@@ -35676,7 +39019,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.Start.ContentType.InsecureChain"
- enum="DownloadContentType" expires_after="2020-03-01">
+ enum="DownloadContentType" expires_after="2020-05-03">
<owner>cthomp@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -35698,7 +39041,7 @@ uploading your change for review.
</histogram>
<histogram name="Download.Start.ContentType.SecureChain"
- enum="DownloadContentType" expires_after="2020-03-01">
+ enum="DownloadContentType" expires_after="2020-05-03">
<owner>cthomp@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
@@ -36314,20 +39657,45 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="DrmUtil.CreateDisplaySnapshot.BitsPerChannel" units="bits"
+ expires_after="M89">
+ <owner>andrescj@chromium.org</owner>
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ Number of bits per channel described by a parsed EDID blob. This UMA is
+ recorded whenever the color space is extracted from an EDID blob.
+ </summary>
+</histogram>
+
<histogram name="DrmUtil.CreateDisplaySnapshot.HasEdidBlob" enum="Boolean"
expires_after="2020-07-24">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
<summary>
Whether an EDID blob was detected. This UMA is recorded whenever we attempt
to parse the EDID from a display.
</summary>
</histogram>
+<histogram name="DrmUtil.CreateDisplaySnapshot.IsHDR" enum="Boolean"
+ expires_after="M89">
+ <owner>andrescj@chromium.org</owner>
+ <owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ Whether a EDID blob contained an HDR transfer function (e.g. SMPT SE2084 or
+ HLG). This UMA is recorded whenever the color space is extracted from an
+ EDID blob.
+ </summary>
+</histogram>
+
<histogram name="DrmUtil.GetColorSpaceFromEdid.ChecksOutcome"
enum="EdidColorSpaceChecksOutcome" expires_after="2020-07-24">
<owner>andrescj@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
<summary>
When attempting to get the color space from an EDID blob, whether the sanity
checks passed (and if not, which check failed). This UMA is recorded
@@ -36361,7 +39729,7 @@ uploading your change for review.
</histogram>
<histogram name="EasyUnlock.AuthEvent.SignIn" enum="EasyUnlockAuthEvent"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Measures the use of Smart Lock on the sign-in screen: records whether a
@@ -36381,7 +39749,7 @@ uploading your change for review.
</histogram>
<histogram name="EasyUnlock.AuthEvent.Unlock" enum="EasyUnlockAuthEvent"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Measures the use of Smart Lock on the lock screen: records whether a Smart
@@ -37157,7 +40525,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.DMServerRequestSuccess"
- enum="EnterpriseDMServerRequestSuccess" expires_after="2020-02-23">
+ enum="EnterpriseDMServerRequestSuccess" expires_after="2020-04-26">
<owner>poromov@chromium.org</owner>
<summary>
Number of retries the client did to execute a DeviceManagementServer
@@ -37229,7 +40597,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.Enrollment" enum="EnterpriseEnrollmentType"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>mnissler@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
@@ -37366,7 +40734,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.FCMInvalidationService.DevicePolicyInvalidations"
- enum="EnterprisePolicyInvalidations" expires_after="2020-03-01">
+ enum="EnterprisePolicyInvalidations" expires_after="2020-05-03">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -37412,7 +40780,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.FCMInvalidationService.PolicyInvalidations"
- enum="EnterprisePolicyInvalidations" expires_after="2020-03-08">
+ enum="EnterprisePolicyInvalidations" expires_after="2020-05-10">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -37427,7 +40795,7 @@ uploading your change for review.
<histogram
name="Enterprise.FCMInvalidationService.PolicyInvalidationsRegistrationResult"
- enum="BooleanSuccess" expires_after="2020-03-08">
+ enum="BooleanSuccess" expires_after="2020-05-10">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -37495,6 +40863,10 @@ uploading your change for review.
<histogram name="Enterprise.InvalidDevicePolicyFiles" units="files"
expires_after="2020-07-02">
+ <obsolete>
+ Deprecated 10/2019, since no code reports it anymore. Superseded by
+ Enterprise.InvalidDevicePolicyFilesStatus.
+ </obsolete>
<owner>emaxx@chromium.org</owner>
<owner>igorcov@chromium.org</owner>
<summary>
@@ -37504,6 +40876,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Enterprise.InvalidDevicePolicyFilesStatus"
+ enum="InvalidDevicePolicyFilesStatus" expires_after="M83">
+ <owner>emaxx@chromium.org</owner>
+ <owner>igorcov@chromium.org</owner>
+ <owner>vsavu@chromium.org</owner>
+ <summary>
+ Chrome OS only. Result of checking if device policy files are valid when
+ reading the device policy data.
+ </summary>
+</histogram>
+
<histogram name="Enterprise.IOSPolicies" units="units">
<owner>mnissler@chromium.org</owner>
<summary>
@@ -37556,7 +40939,7 @@ uploading your change for review.
<histogram name="Enterprise.MachineLevelUserCloudPolicyEnrollment.Result"
enum="MachineLevelUserCloudPolicyEnrollmentResult"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>zmin@chromium.org</owner>
<summary>The result of machine level user cloud policy enrollment.</summary>
</histogram>
@@ -37588,7 +40971,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.Policies" enum="EnterprisePolicies"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mnissler@chromium.org</owner>
<summary>
A set of enterprise policy rules that are in use. This is recorded every 24
@@ -37639,7 +41022,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.PolicyInvalidations"
- enum="EnterprisePolicyInvalidations" expires_after="2020-03-01">
+ enum="EnterprisePolicyInvalidations" expires_after="2020-05-03">
<owner>mnissler@chromium.org</owner>
<summary>
Events for counting user policy invalidations received with and without
@@ -37650,7 +41033,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.PolicyInvalidationsRegistrationResult"
- enum="BooleanSuccess" expires_after="2020-02-14">
+ enum="BooleanSuccess" expires_after="2020-04-19">
<owner>poromov@chromium.org</owner>
<summary>
Tracks the result of registration for policy invalidations. It will fail
@@ -37822,7 +41205,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.SchemaMismatchedValueIgnored" enum="BooleanSuccess"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<owner>poromov@chromium.org</owner>
<owner>hendrich@chromium.org</owner>
<summary>
@@ -37853,7 +41236,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.TiclInvalidationService.DevicePolicyInvalidations"
- enum="EnterprisePolicyInvalidations" expires_after="2020-03-01">
+ enum="EnterprisePolicyInvalidations" expires_after="2020-05-03">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -37899,7 +41282,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.TiclInvalidationService.PolicyInvalidations"
- enum="EnterprisePolicyInvalidations" expires_after="2020-03-08">
+ enum="EnterprisePolicyInvalidations" expires_after="2020-05-10">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -37914,7 +41297,7 @@ uploading your change for review.
<histogram
name="Enterprise.TiclInvalidationService.PolicyInvalidationsRegistrationResult"
- enum="BooleanSuccess" expires_after="2020-03-08">
+ enum="BooleanSuccess" expires_after="2020-05-10">
<owner>askaraitzhan@google.com</owner>
<owner>isandrk@chromium.org</owner>
<summary>
@@ -38086,7 +41469,7 @@ uploading your change for review.
</histogram>
<histogram name="Enterprise.UserSession.Logins"
- enum="EnterpriseUserSessionLogins" expires_after="2020-02-23">
+ enum="EnterpriseUserSessionLogins" expires_after="2020-04-26">
<owner>xiyuan@chromium.org</owner>
<owner>sduraisamy@chromium.org</owner>
<summary>Tracks the sign-in events on an enrolled device.</summary>
@@ -38205,7 +41588,7 @@ uploading your change for review.
</histogram>
<histogram name="EnterpriseCheck.IsDomainJoined" enum="BooleanEnabled"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>mad@chromium.org</owner>
<summary>
Whether the machine is joined to an AD domain. This check is performed once
@@ -38214,7 +41597,7 @@ uploading your change for review.
</histogram>
<histogram name="EnterpriseCheck.IsEnterpriseUser" enum="BooleanEnabled"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>rogerta@chromium.org</owner>
<summary>
Whether the machine is considered an enterprise user. An enterprise user is
@@ -38337,7 +41720,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.AggregatedLatency.Renderer2" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initiation of any input event and the renderer receiving and
@@ -38686,7 +42069,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.FrameEventRouting.TouchEventAckQueueSize" units="units"
- expires_after="2020-03-15">
+ expires_after="2020-05-17">
<owner>wjmaclean@chromium.org</owner>
<owner>kenrb@chromium.org</owner>
<summary>
@@ -38748,7 +42131,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Event.HitTest" enum="EventHitTest" expires_after="2020-03-29">
+<histogram name="Event.HitTest" enum="EventHitTest" expires_after="2020-05-31">
<owner>dtapuska@chromium.org</owner>
<summary>
For each hit test, records whether it was a hit or miss, and why.
@@ -38779,6 +42162,9 @@ uploading your change for review.
<histogram name="Event.InputEventPrediction.Accuracy.Mouse" units="pixels"
expires_after="M81">
+ <obsolete>
+ Deprecated 10/2019.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="InputEventPredictionAccuracy" -->
@@ -38794,7 +42180,10 @@ uploading your change for review.
</histogram>
<histogram name="Event.InputEventPrediction.Accuracy.Scroll" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
+ <obsolete>
+ Deprecated 10/2019.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="InputEventPredictionAccuracy" -->
@@ -38811,7 +42200,11 @@ uploading your change for review.
</histogram>
<histogram name="Event.InputEventPrediction.Accuracy.Scroll.OverPredict"
- units="pixels" expires_after="M80">
+ units="pixels" expires_after="2020-05-10">
+ <obsolete>
+ Deprecated 10/2019. Replaced by
+ Event.InputEventPrediction.Scroll.OverPrediction.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="InputEventPredictionAccuracy" -->
@@ -38828,7 +42221,11 @@ uploading your change for review.
</histogram>
<histogram name="Event.InputEventPrediction.Accuracy.Scroll.UnderPredict"
- units="pixels" expires_after="M80">
+ units="pixels" expires_after="2020-05-10">
+ <obsolete>
+ Deprecated 10/2019. Replaced by
+ Event.InputEventPrediction.Scroll.UnderPrediction.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="InputEventPredictionAccuracy" -->
@@ -38847,6 +42244,9 @@ uploading your change for review.
<histogram name="Event.InputEventPrediction.Accuracy.Touch" units="pixels"
expires_after="M82">
+ <obsolete>
+ Deprecated 10/2019.
+ </obsolete>
<!-- Name completed by histogram_suffixes
name="InputEventPredictionAccuracy" -->
@@ -38861,8 +42261,74 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Event.InputEventPrediction.Scroll.OverPrediction"
+ units="pixels" expires_after="M85">
+ <owner>eirage@chromium.org</owner>
+ <owner>axantoine@google.com</owner>
+ <summary>
+ Overshoot distance in pixels between a predicted scroll position and the
+ corresponding interpolated real scroll position that occurred at the
+ prediction time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram name="Event.InputEventPrediction.Scroll.PredictionJitter"
+ units="pixels" expires_after="M85">
+ <owner>eirage@chromium.org</owner>
+ <owner>axantoine@google.com</owner>
+ <summary>
+ Euclidean distance in pixels between two successive variations of touch
+ scroll deltas which are the difference between a predicted scroll position
+ and its corresponding interpolated real position that occurred at prediction
+ time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram name="Event.InputEventPrediction.Scroll.UnderPrediction"
+ units="pixels" expires_after="M85">
+ <owner>eirage@chromium.org</owner>
+ <owner>axantoine@google.com</owner>
+ <summary>
+ Undershoot distance in pixels between a predicted scroll position and the
+ corresponding interpolated real scroll position that occurred at the
+ prediction time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram name="Event.InputEventPrediction.Scroll.VisualJitter" units="pixels"
+ expires_after="M85">
+ <owner>eirage@chromium.org</owner>
+ <owner>axantoine@google.com</owner>
+ <summary>
+ Euclidean distance in pixels between two successive variations of touch
+ scroll deltas which are the difference between a predicted scroll position
+ and the interpolated real position that occurred at frame time.
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
+<histogram name="Event.InputEventPrediction.Scroll.WrongDirection"
+ enum="Boolean" expires_after="M85">
+ <owner>eirage@chromium.org</owner>
+ <owner>axantoine@google.com</owner>
+ <summary>
+ Boolean that indicates whether the prediction is in the same direction as
+ the real trajectory at the same prediction time. True means the direction is
+ not the same (wrong direction).
+
+ Team: input-dev@chromium.org.
+ </summary>
+</histogram>
+
<histogram name="Event.Latency.BlockingTime.KeyPressDefaultAllowed" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -38927,7 +42393,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.BlockingTime.TouchStartDefaultAllowed"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the renderer main thread receiving a touchstart event and
@@ -39519,7 +42985,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.EndToEnd.KeyPress" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<owner>input-dev@chromium.org</owner>
<summary>
@@ -39536,7 +43002,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.EndToEnd.Mouse" units="microseconds"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>input-dev@chromium.org</owner>
<summary>
Time between the OS receiving a mouse event and the resulting GPU frame
@@ -39559,6 +43025,15 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Event.Latency.EndToEnd.TouchpadPinch2" units="microseconds"
+ expires_after="2020-04-05">
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ Time between the OS receiving a touchpad pinch event and the resulting GPU
+ frame swap. If no swap was induced by the event, no recording is made.
+ </summary>
+</histogram>
+
<histogram name="Event.Latency.EventToRender.TouchpadPinch"
units="microseconds" expires_after="M81">
<owner>input-dev@chromium.org</owner>
@@ -39569,7 +43044,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.HitTest" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>paint-dev@chromium.org</owner>
<owner>schenney@chromium.org</owner>
<summary>
@@ -39588,7 +43063,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.HitTestRecursive" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>paint-dev@chromium.org</owner>
<owner>schenney@chromium.org</owner>
<summary>
@@ -39681,7 +43156,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.QueueingTime.TouchMoveDefaultPrevented"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between sending a touchmove event to the renderer main thread and when
@@ -39693,7 +43168,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.QueueingTime.TouchStartDefaultAllowed"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between sending a touchstart event to the renderer main thread and when
@@ -39705,7 +43180,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.QueueingTime.TouchStartDefaultPrevented"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between sending a touchstart event to the renderer main thread and when
@@ -39815,7 +43290,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.Scroll.Wheel.TimeToScrollUpdateSwapBegin2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and start of the frame swap
@@ -39968,7 +43443,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin2"
- units="microseconds" expires_after="2020-03-22">
+ units="microseconds" expires_after="2020-05-24">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
@@ -39981,6 +43456,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Event.Latency.ScrollBegin.TopControlsMoved" enum="Boolean"
+ expires_after="2020-06-01">
+ <owner>sadrul@chromium.org</owner>
+ <owner>chrome-gpu-metrics@google.com</owner>
+ <summary>
+ Records whether the browser top-controls (i.e. omnibox, toolbar) moved
+ because of the scroll-begin event (i.e. the first scroll-update event of
+ that sequence).
+ </summary>
+</histogram>
+
<histogram name="Event.Latency.ScrollBegin.Touch.AverageLag" units="pixels"
expires_after="M85">
<owner>eirage@chromium.org</owner>
@@ -39996,7 +43482,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollBegin.Touch.BrowserNotifiedToBeforeGpuSwap2"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the browser receives the notification of the first ScrollUpdate
@@ -40008,7 +43494,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.EventTimeToRAFTime"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-05-10">
<owner>eirage@chromium.org</owner>
<owner>axantoine@google.com</owner>
<summary>
@@ -40059,6 +43545,9 @@ uploading your change for review.
<histogram name="Event.Latency.ScrollBegin.Touch.RAFTimeToFrameSwapEnd"
units="microseconds" expires_after="M80">
+ <obsolete>
+ Deprecated 10/2019 due to lack of usage.
+ </obsolete>
<owner>eirage@chromium.org</owner>
<owner>axantoine@google.com</owner>
<summary>
@@ -40085,7 +43574,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Touch.TimeToHandled2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the first generated
@@ -40174,7 +43663,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollBegin.Wheel.BrowserNotifiedToBeforeGpuSwap2"
- units="microseconds" expires_after="2020-03-22">
+ units="microseconds" expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the browser receives the notification of the first ScrollUpdate
@@ -40186,7 +43675,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.GpuSwap2" units="microseconds"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between gpu starts to swap the first ScrollUpdate gesture event in a
@@ -40204,7 +43693,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the first ScrollUpdate gesture event in a given scroll gesture
@@ -40235,7 +43724,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the first generated
@@ -40382,7 +43871,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin2"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
</obsolete>
@@ -40401,7 +43890,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin3"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Replaced by *.TimeToScrollUpdateSwapBegin4 https://crbug.com/849735 in M68.
</obsolete>
@@ -40418,7 +43907,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin4"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-05-10">
<owner>nozlghadr@chromium.org</owner>
<summary>
Time between initial creation of a ScrollUpdate gesture event generated from
@@ -40618,7 +44107,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin2"
- units="microseconds" expires_after="2020-03-22">
+ units="microseconds" expires_after="2020-05-24">
<owner>nzolghadr@chromium.org</owner>
<summary>
Time between initial creation of a wheel/touch event and start of the frame
@@ -40630,8 +44119,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Event.Latency.ScrollUpdate.TopControlsMoved" enum="Boolean"
+ expires_after="2020-06-01">
+ <owner>sadrul@chromium.org</owner>
+ <owner>chrome-gpu-metrics@google.com</owner>
+ <summary>
+ Records whether the browser top-controls (i.e. omnibox, toolbar) moved
+ because of the scroll-update event (other than the first update event in the
+ sequence).
+ </summary>
+</histogram>
+
<histogram name="Event.Latency.ScrollUpdate.Touch.AverageLag" units="pixels"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>eirage@chromium.org</owner>
<owner>nzolghadr@chromium.org</owner>
<summary>
@@ -40698,7 +44198,10 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.EventTimeToRAFTime"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-05-10">
+ <obsolete>
+ Deprecated 10/2019 due to lack of usage.
+ </obsolete>
<owner>eirage@chromium.org</owner>
<owner>axantoine@google.com</owner>
<summary>
@@ -40729,7 +44232,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with touch source, is handled on
@@ -40746,7 +44249,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.RAFTimeToFrameSwapEnd"
- units="microseconds" expires_after="2020-03-22">
+ units="microseconds" expires_after="2020-05-24">
<owner>eirage@chromium.org</owner>
<owner>axantoine@google.com</owner>
<summary>
@@ -40761,7 +44264,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollUpdate.Touch.RendererSwapToBrowserNotified2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by ScrollUpdate
@@ -40773,7 +44276,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollUpdate.Touch.TimeToFirstScrollUpdateSwapBegin2"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Replaced by Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2.
</obsolete>
@@ -40793,7 +44296,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a touch event and the generated
@@ -40899,7 +44402,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollUpdate.Wheel.BrowserNotifiedToBeforeGpuSwap2"
- units="microseconds" expires_after="2020-03-29">
+ units="microseconds" expires_after="2020-05-31">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the browser receives the notification of a ScrollUpdate gesture
@@ -40927,7 +44430,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the ScrollUpdate gesture event with wheel source, is handled on
@@ -40945,7 +44448,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollUpdate.Wheel.RendererSwapToBrowserNotified2"
- units="microseconds" expires_after="2020-02-23">
+ units="microseconds" expires_after="2020-04-26">
<owner>tdresser@chromium.org</owner>
<summary>
Time between the renderer starts to swap a frame induced by ScrollUpdate
@@ -40957,7 +44460,7 @@ uploading your change for review.
<histogram
name="Event.Latency.ScrollUpdate.Wheel.TimeToFirstScrollUpdateSwapBegin2"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Replaced by Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2.
</obsolete>
@@ -40977,7 +44480,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>tdresser@chromium.org</owner>
<summary>
Time between initial creation of a wheel event and the generated
@@ -41269,7 +44772,7 @@ uploading your change for review.
</histogram>
<histogram name="Event.PassiveListeners" enum="EventResultType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dtapuska@chromium.org</owner>
<summary>
The result of handling of MouseWheel, TouchStart, TouchMove, TouchEnd events
@@ -41317,7 +44820,7 @@ uploading your change for review.
<histogram
name="Event.PassiveListeners.ForcedNonBlockingLatencyDueToUnresponsiveMainThread"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Deprecated 04/2018 due to cancellation of experiment.
</obsolete>
@@ -41335,6 +44838,9 @@ uploading your change for review.
<histogram name="Event.PassiveListeners.Latency" units="microseconds"
expires_after="M81">
+ <obsolete>
+ Deprecated as of M80 due to the lack of usage.
+ </obsolete>
<owner>dtapuska@chromium.org</owner>
<summary>
Time between when a cancelable event was generated and the event processed
@@ -41354,6 +44860,9 @@ uploading your change for review.
<histogram
name="Event.Pen.InputEventTimeStamp.DeltaBetweenTimeNowAndPerformanceCount.Negative"
units="microseconds" expires_after="2020-03-29">
+ <obsolete>
+ Deprecated 10/2019 due to the completion of the experiment.
+ </obsolete>
<owner>nzolghadr@chromium.org</owner>
<owner>sarsha@microsoft.com</owner>
<summary>
@@ -41368,6 +44877,9 @@ uploading your change for review.
<histogram
name="Event.Pen.InputEventTimeStamp.DeltaBetweenTimeNowAndPerformanceCount.Positive"
units="microseconds" expires_after="M79">
+ <obsolete>
+ Deprecated 10/2019 due to the completion of the experiment.
+ </obsolete>
<owner>nzolghadr@chromium.org</owner>
<owner>sarsha@microsoft.com</owner>
<summary>
@@ -41427,6 +44939,9 @@ uploading your change for review.
<histogram name="Event.Scroll.TouchGestureLatency" units="ms"
expires_after="M79">
+ <obsolete>
+ Deprecated as of 10/2019 due to no further need of data.
+ </obsolete>
<owner>nzolghadr@chromium.org</owner>
<owner>dlibby@microsoft.com</owner>
<summary>
@@ -41495,6 +45010,9 @@ uploading your change for review.
<histogram
name="Event.Touch.InputEventTimeStamp.DeltaBetweenTimeNowAndPerformanceCount.Negative"
units="microseconds" expires_after="2020-03-29">
+ <obsolete>
+ Deprecated 10/2019 due to the completion of the experiment.
+ </obsolete>
<owner>nzolghadr@chromium.org</owner>
<owner>sarsha@microsoft.com</owner>
<summary>
@@ -41509,6 +45027,9 @@ uploading your change for review.
<histogram
name="Event.Touch.InputEventTimeStamp.DeltaBetweenTimeNowAndPerformanceCount.Positive"
units="microseconds" expires_after="2020-03-29">
+ <obsolete>
+ Deprecated 10/2019 due to the completion of the experiment.
+ </obsolete>
<owner>nzolghadr@chromium.org</owner>
<owner>sarsha@microsoft.com</owner>
<summary>
@@ -41993,6 +45514,9 @@ uploading your change for review.
<histogram name="Event.VizHitTestSurfaceLayer.ResultsMatch"
enum="VizHitTestResultsMatchEnums" expires_after="M81">
+ <obsolete>
+ Deprecated as of 11/2019. The verification path is removed.
+ </obsolete>
<owner>yigu@chromium.org</owner>
<summary>
This tracks how often the cc layer based hit testing fast path result
@@ -42134,7 +45658,7 @@ uploading your change for review.
</histogram>
<histogram name="ExploreSites.MonthlyHostCount" units="hosts"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>dimich@chromium.org</owner>
<summary>
Number of unique hosts visited by the user during the last 30 days. Reported
@@ -42145,8 +45669,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ExploreSites.NavBackTime" units="ms" expires_after="M80">
- <owner>angelii@google.com</owner>
+<histogram name="ExploreSites.NavBackTime" units="ms" expires_after="M85">
<owner>chili@chromium.org</owner>
<owner>dewittj@chromium.org</owner>
<summary>
@@ -42192,7 +45715,7 @@ uploading your change for review.
</histogram>
<histogram name="ExploreSites.SiteTilesClickIndex2" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>dewittj@chromium.org</owner>
<owner>petewil@chromium.org</owner>
<summary>
@@ -42646,7 +46169,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionBubble.WipeoutUserSelection"
- enum="ExtensionBubbleAction">
+ enum="ExtensionBubbleAction" expires_after="M80">
<obsolete>
Stopped recording in 2019-07. Data was no longer required.
</obsolete>
@@ -42683,7 +46206,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionContentVerifyJob.TimeSpentUS" units="microseconds"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<summary>
The time taken in computation (hashing actual bytes read and comparing
@@ -42797,14 +46320,14 @@ uploading your change for review.
<histogram name="ExtensionInstallVerifier.GetSignatureResult"
enum="ExtensionInstallVerifierGetSignatureResult"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>The result of the verifier trying to get a new signature.</summary>
</histogram>
<histogram name="ExtensionInstallVerifier.InitResult"
- enum="ExtensionInstallVerifierInitResult" expires_after="2019-12-31">
+ enum="ExtensionInstallVerifierInitResult" expires_after="2020-06-30">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -43281,7 +46804,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.BookmarkApp.TimeBetweenOpenAppAndLastNavigation"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/05 as PWA link capturing has been removed.
</obsolete>
@@ -43421,7 +46944,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.ComputedHashesInitTime"
- units="ms" expires_after="2019-11-30">
+ units="ms" expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43432,7 +46955,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.ComputedHashesReadResult"
- enum="BooleanSuccess" expires_after="2019-11-30">
+ enum="BooleanSuccess" expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43443,7 +46966,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.FetchResult"
- enum="BooleanSuccess" expires_after="2019-11-30">
+ enum="BooleanSuccess" expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43454,7 +46977,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.ReadContentHashTime" units="ms"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
@@ -43465,7 +46988,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.VerifiedContentsInitResult"
- enum="BooleanSuccess" expires_after="2019-11-30">
+ enum="BooleanSuccess" expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43477,7 +47000,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContentVerification.VerifiedContentsInitTime"
- units="ms" expires_after="2019-11-30">
+ units="ms" expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43489,7 +47012,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ContextMenuAction"
- enum="ExtensionContextMenuAction" expires_after="2019-12-30">
+ enum="ExtensionContextMenuAction" expires_after="never">
+<!-- expires-never: Monitoring extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<owner>karandeepb@chromium.org</owner>
<summary>
@@ -43553,7 +47078,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.CorruptPolicyExtensionDetected2" enum="BooleanHit"
- expires_after="2019-11-30">
+ expires_after="2020-05-31">
<owner>burunduk@chromium.org</owner>
<owner>lazyboy@chromium.org</owner>
<owner>poromov@chromium.org</owner>
@@ -43566,9 +47091,10 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.CorruptPolicyExtensionResolved" units="ms"
- expires_after="2019-11-30">
+ expires_after="2020-05-31">
<owner>burunduk@chromium.org</owner>
<owner>lazyboy@chromium.org</owner>
+ <owner>poromov@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
Fires when we've successfully resinstalled a corrupt enterprise policy
@@ -43601,6 +47127,9 @@ uploading your change for review.
<histogram name="Extensions.CrxFetchFailureRetryCountGoogleUrl" units="units"
expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
@@ -43611,6 +47140,9 @@ uploading your change for review.
<histogram name="Extensions.CrxFetchFailureRetryCountOtherUrl" units="units"
expires_after="2018-08-30">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
@@ -43662,8 +47194,11 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.Database.Open" enum="LevelDBStatus"
- expires_after="M81">
- <owner>cmumford@chromium.org</owner>
+ expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>The result of an open attempt to an Extensions database.</summary>
</histogram>
@@ -43713,7 +47248,7 @@ uploading your change for review.
<histogram
name="Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated Dec 2018. Replaced with
Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions2.
@@ -43827,7 +47362,7 @@ uploading your change for review.
<histogram
name="Extensions.DeclarativeNetRequest.ShouldBlockRequestTime.AllExtensions"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated May 2018. Replaced with
Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions
@@ -43865,7 +47400,7 @@ uploading your change for review.
<histogram
name="Extensions.DeclarativeNetRequest.ShouldRedirectRequestTime.AllExtensions"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated May 2018. Replaced with
Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions
@@ -44160,7 +47695,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.DocsOfflineIconState" enum="ExtensionIconState">
+<histogram name="Extensions.DocsOfflineIconState" enum="ExtensionIconState"
+ expires_after="M80">
<obsolete>
Removed 2019-06.
</obsolete>
@@ -44350,7 +47886,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.ExtensionCreationTime" units="microseconds">
+<histogram name="Extensions.ExtensionCreationTime" units="microseconds"
+ expires_after="M80">
<obsolete>
Removed 2019-05.
</obsolete>
@@ -44395,7 +47932,10 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ExtensionHostMonitoring.MaxActiveLoading"
- units="units" expires_after="2019-12-31">
+ units="units" expires_after="2019-11-21">
+ <obsolete>
+ Removed 2019-11
+ </obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The maximum number of ExtensionHosts (primarily background/event pages) that
@@ -44405,7 +47945,10 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ExtensionHostMonitoring.MaxInQueue" units="units"
- expires_after="2019-12-31">
+ expires_after="2019-11-21">
+ <obsolete>
+ Removed 2019-11
+ </obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The maximum number of ExtensionHosts (primarily background/event pages) in
@@ -44415,7 +47958,10 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ExtensionHostMonitoring.NumLoaded" units="units"
- expires_after="2019-12-31">
+ expires_after="2019-11-21">
+ <obsolete>
+ Removed 2019-11
+ </obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The total number of ExtensionHosts that completed loading in the first
@@ -44424,7 +47970,10 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ExtensionHostMonitoring.NumQueued" units="units"
- expires_after="2019-12-31">
+ expires_after="2019-11-21">
+ <obsolete>
+ Removed 2019-11
+ </obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The total number of ExtensionHosts (primarily background/event pages) that
@@ -44509,6 +48058,9 @@ uploading your change for review.
<histogram name="Extensions.ExtensionUpdaterFirstUpdateCheckErrorsGoogleUrl"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="M75">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
Records the error codes of the extension updater update check errors. These
@@ -44520,6 +48072,9 @@ uploading your change for review.
<histogram name="Extensions.ExtensionUpdaterFirstUpdateCheckErrorsNonGoogleUrl"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="M75">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
Records the error codes of the extension updater update check errors. These
@@ -44531,6 +48086,9 @@ uploading your change for review.
<histogram name="Extensions.ExtensionUpdaterRawUpdateCalls" units="extensions"
expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
The number of extensions that are checked for update. This number is emitted
@@ -44541,6 +48099,9 @@ uploading your change for review.
<histogram name="Extensions.ExtensionUpdaterUpdateCalls" units="extensions"
expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
The number of extensions that are passed over to the extension updater for
@@ -44551,6 +48112,9 @@ uploading your change for review.
<histogram name="Extensions.ExtensionUpdaterUpdateFoundCount"
units="extensions" expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
The number of extensions that have updates in an update check session.
@@ -44684,6 +48248,21 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Extensions.ForceInstalledFailureCacheStatus"
+ enum="ExtensionInstallationDownloadingCacheStatus"
+ expires_after="2020-05-01">
+ <owner>askaraitzhan@google.com</owner>
+ <owner>burunduk@chromium.org</owner>
+ <owner>poromov@chromium.org</owner>
+ <summary>
+ Status of cache entry about enterprise policy forced extension which failed
+ to install. Recorded for each forced extension that failed to install after
+ 5 minutes. Recorded together with
+ &quot;Extensions.ForceInstalledTimedOutCount&quot; histogram, but for every
+ extension not installed at the moment.
+ </summary>
+</histogram>
+
<histogram name="Extensions.ForceInstalledFailureCrxInstallError"
enum="ExtensionInstallationCrxInstallError" expires_after="2020-05-01">
<owner>askaraitzhan@google.com</owner>
@@ -44789,7 +48368,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.FunctionCalls" enum="ExtensionFunctions">
+<histogram name="Extensions.FunctionCalls" enum="ExtensionFunctions"
+ expires_after="M80">
<obsolete>
Replaced by Extensions.Functions.ComponentExtensionCalls,
Extensions.Functions.ExtensionCalls, and Extensions.Functions.WebUICalls
@@ -45204,7 +48784,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.InitPrefStoreTime" units="ms">
+<histogram name="Extensions.InitPrefStoreTime" units="ms" expires_after="M80">
<obsolete>
Deprecated 7/2019.
</obsolete>
@@ -45236,7 +48816,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InjectEnd_BlockingScriptCount" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring core extensions performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Number of blocking scripts injected at document end by extensions.
@@ -45244,7 +48826,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InjectEnd_ScriptCount" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring core extensions performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>Number of scripts injected at document end by extensions.</summary>
</histogram>
@@ -45258,7 +48842,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InjectIdle_BlockingScriptCount" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring core extensions performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Number of blocking scripts injected at document idle by extensions.
@@ -45266,7 +48852,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InjectIdle_ScriptCount" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring core extensions performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>Number of scripts injected at document idle by extensions.</summary>
</histogram>
@@ -45296,7 +48884,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InjectStart_CssCount" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitors core extension performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>Number of css files injected by extensions.</summary>
</histogram>
@@ -45306,8 +48896,9 @@ uploading your change for review.
<summary>Number of scripts injected at document start by extensions.</summary>
</histogram>
-<histogram name="Extensions.InjectStart_Time" units="ms"
- expires_after="2019-12-31">
+<histogram name="Extensions.InjectStart_Time" units="ms" expires_after="never">
+<!-- expires-never: Monitors core extension performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Time taken to inject css/scripts at document start by extensions. Not
@@ -45351,7 +48942,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.InstallPrompt.Type"
- enum="ExtensionInstallPromptType">
+ enum="ExtensionInstallPromptType" expires_after="M80">
<obsolete>
Stopped recording 2019-07. The previous enum was garbled.
</obsolete>
@@ -45432,7 +49023,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.LoadAllComponentTime" units="ms"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Time taken to load all component extensions at profile open. This happens as
@@ -45441,7 +49034,10 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.LoadAllTime" units="ms" expires_after="2019-12-31">
+<histogram name="Extensions.LoadAllTime" units="ms" expires_after="2019-11-01">
+ <obsolete>
+ Deprecated as of 2019-11. Replaced by Extensions.LoadAllTime2.
+ </obsolete>
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Time taken to load all non-component extensions at profile open. This
@@ -45450,7 +49046,9 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.LoadAllTime2" units="ms" expires_after="2019-12-31">
+<histogram name="Extensions.LoadAllTime2" units="ms" expires_after="never">
+<!-- expires-never: Monitoring core extensions system performance. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
Time taken to load all non-component extensions at profile open and record
@@ -45476,8 +49074,9 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.LoadAppUser" units="units"
- expires_after="2019-12-31">
+<histogram name="Extensions.LoadAppUser" units="units" expires_after="never">
+<!-- expires-never: Monitoring extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The number of user-installed apps loaded by each user at profile open.
@@ -45485,7 +49084,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.LoadBrowserAction" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The number of browser action extensions loaded at profile open.
@@ -45557,7 +49158,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.LoadNoExtensionAction" units="units"
- expires_after="2019-12-31">
+ expires_after="never">
+<!-- expires-never: Monitoring extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The number of extensions that had neither a page nor browser action
@@ -45621,7 +49224,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram base="true" name="Extensions.LongInjectionTaskTime" units="ms">
+<histogram base="true" name="Extensions.LongInjectionTaskTime" units="ms"
+ expires_after="M80">
<obsolete>
Removed June 2019.
</obsolete>
@@ -46367,7 +49971,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.PopupCreateTime" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The time taken between a user clicking on a button to open a popup, and the
@@ -46389,7 +49993,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.PopupLoadTime2" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The time taken for an extension popup to load its initial URL. This may not
@@ -46402,12 +50006,28 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.ProcessManagerStartupHostsTime" units="ms"
+ expires_after="2019-12-02">
+ <obsolete>
+ Replaced by Extensions.ProcessManagerStartupHostsTime2 - 12/2019
+ </obsolete>
+ <owner>rdevlin.cronin@chromium.org</owner>
+ <owner>extensions-core@chromium.org</owner>
+ <summary>
+ The time taken to start up persistent background pages for extensions in
+ ExtensionProcessManager when the extension system notifies that it is ready.
+ </summary>
+</histogram>
+
+<histogram name="Extensions.ProcessManagerStartupHostsTime2" units="ms"
expires_after="2020-12-01">
<owner>rdevlin.cronin@chromium.org</owner>
<owner>extensions-core@chromium.org</owner>
<summary>
The time taken to start up persistent background pages for extensions in
ExtensionProcessManager when the extension system notifies that it is ready.
+ This version of the histogram does not include cases where the background
+ page startup is deferred, which would have been logged as ~0ms startup in
+ Extensions.ProcessManagerStartupHostsTime.
</summary>
</histogram>
@@ -46423,7 +50043,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Extensions.ResourceDirectoryTimestampQueryLatency" units="ms">
+<histogram name="Extensions.ResourceDirectoryTimestampQueryLatency" units="ms"
+ expires_after="M80">
<obsolete>
Stopped recording 2019-07. Data no longer needed.
</obsolete>
@@ -46461,7 +50082,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.RuntimeHostPermissions.ExtensionHasWithheldHosts"
- enum="BooleanHasWithheldHosts" expires_after="2019-11-30">
+ enum="BooleanHasWithheldHosts" expires_after="never">
+<!-- expires-never: Monitors core extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<owner>karandeepb@chromium.org</owner>
<summary>
@@ -46474,7 +50097,9 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.RuntimeHostPermissions.GrantedHostCount"
- units="Granted hosts" expires_after="2019-11-30">
+ units="Granted hosts" expires_after="never">
+<!-- expires-never: Monitors core extension usage. -->
+
<owner>rdevlin.cronin@chromium.org</owner>
<owner>karandeepb@chromium.org</owner>
<summary>
@@ -46749,7 +50374,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.SyncGetMessageBundle" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The amount of synchronous time spent retrieving an extension's message
@@ -46780,7 +50405,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Extensions.TimeYieldedBetweenContentScriptRuns"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed June 2019.
</obsolete>
@@ -46813,6 +50438,9 @@ uploading your change for review.
<histogram name="Extensions.UnifiedExtensionUpdaterUpdateCalls"
units="extensions" expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
The number of extensions that are passed over to the unified extension
@@ -46876,7 +50504,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.UnpackFailureInstallCause"
- enum="ExtensionInstallCause">
+ enum="ExtensionInstallCause" expires_after="M80">
<obsolete>
Stopped recording 2019-07.
</obsolete>
@@ -46898,7 +50526,7 @@ uploading your change for review.
</histogram>
<histogram name="Extensions.UnpackSuccessInstallCause"
- enum="ExtensionInstallCause">
+ enum="ExtensionInstallCause" expires_after="M80">
<obsolete>
Stopped recording 2019-07.
</obsolete>
@@ -47000,6 +50628,9 @@ uploading your change for review.
<histogram name="Extensions.UpdateManifestDuplicateEntryCount" units="entries"
expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
Counts the number of entries with the same extension ID found in the update
@@ -47011,6 +50642,9 @@ uploading your change for review.
<histogram name="Extensions.UpdateManifestHasProdVersionMinCounts"
units="extensions" expires_after="M77">
+ <obsolete>
+ Expired.
+ </obsolete>
<owner>waffles@chromium.org</owner>
<summary>
The number of prodversionmin attributes appearing in an update manifest of
@@ -47350,7 +50984,7 @@ uploading your change for review.
<histogram
name="Extensions.WebRequest.WS_CookiesAreModifiedOnBeforeSendHeaders"
- units="boolean">
+ units="boolean" expires_after="M80">
<obsolete>
Removed as of Jan 2019.
</obsolete>
@@ -47582,7 +51216,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionToolbarModel.BrowserActionsPermanentlyHidden"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Stopped recording 2019-07.
</obsolete>
@@ -47608,7 +51242,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionUrlRequest.Latency" units="ms"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<summary>The time taken to complete an extension url request.</summary>
</histogram>
@@ -47643,7 +51277,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionUrlRequest.SeekPosition" units="units"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<summary>
When fetching a chrome-extension:// URL, this indicates the first byte
@@ -47655,7 +51289,7 @@ uploading your change for review.
</histogram>
<histogram name="ExtensionUrlRequest.TotalKbRead" units="KB"
- expires_after="2019-11-30">
+ expires_after="2020-11-30">
<owner>lazyboy@chromium.org</owner>
<summary>
The total number of bytes read for a chrome-extension:// URL, logged when
@@ -47795,11 +51429,23 @@ uploading your change for review.
</histogram>
<histogram name="FCMInvalidations.FailedSubscriptionsErrorCode"
- enum="NetErrorCodes" expires_after="M78">
+ enum="NetErrorCodes" expires_after="never">
+<!-- expires-never: For monitoring FCM based invalidations. -->
+
<owner>melandory@chromium.org</owner>
<summary>Net error codes for failed subscription requests.</summary>
</histogram>
+<histogram name="FCMInvalidations.FCMMessagesDeleted"
+ enum="BooleanDeletedOrNot" expires_after="M82">
+ <owner>treib@chromium.org</owner>
+ <owner>melandory@chromium.org</owner>
+ <summary>
+ Recorded whenever the GCM client announces that some FCM messages were
+ deleted. Note that this does not record the number of deleted messages.
+ </summary>
+</histogram>
+
<histogram name="FCMInvalidations.FCMMessageStatus"
enum="FCMInvalidationMessageStatus" expires_after="never">
<!-- expires-never: For monitoring FCM based invalidations. -->
@@ -47821,6 +51467,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="FCMInvalidations.ResetClientIDStatus" enum="InstanceIDResult"
+ expires_after="M83">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Status of resetting the client instance ID, which includes unregistering
+ from FCM servers.
+ </summary>
+</histogram>
+
<histogram name="FCMInvalidations.SubscriptionRequestStatus"
enum="FCMInvalidationSubscriptionStatus" expires_after="never">
<!-- expires-never: For monitoring FCM based invalidations. -->
@@ -47855,6 +51511,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="FCMInvalidations.TokenStateOnRegistrationRequest"
+ enum="TokenStateOnRegistrationRequest" expires_after="never">
+<!-- expires-never: For monitoring FCM based invalidations. -->
+
+ <owner>melandory@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Records the outcome of instance ID token requests (i.e. whether the token
+ changed). Such requests are made when invalidations are first enabled (e.g.
+ on sign-in), and then periodically every 24 hours.
+ </summary>
+</histogram>
+
<histogram name="FCMInvalidations.UnsubscriptionRequestStatus"
enum="FCMInvalidationSubscriptionStatus" expires_after="never">
<!-- expires-never: For monitoring FCM based invalidations. -->
@@ -47916,7 +51585,7 @@ uploading your change for review.
</histogram>
<histogram name="Feedback.HappinessTrackingSurvey.BubbleUsage"
- enum="HappinessTrackingSurveyDesktopBubbleUsage" expires_after="M80">
+ enum="HappinessTrackingSurveyDesktopBubbleUsage" expires_after="M82">
<owner>weili@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
@@ -47940,6 +51609,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Feedback.HappinessTrackingSurvey.ShouldShowSurveyReason"
+ enum="HappinessTrackingSurveyShouldShowSurveyReasons" expires_after="M82">
+ <owner>weili@chromium.org</owner>
+ <owner>robliao@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
+ criteria, the first criterion is reported here.
+ </summary>
+</histogram>
+
<histogram name="Feedback.RequestSource" enum="FeedbackSource"
expires_after="2020-04-05">
<owner>afakhry@chromium.org</owner>
@@ -47996,7 +51676,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="FileBrowser.CrostiniSharedPaths.Depth"
- units="depth" expires_after="2020-03-29">
+ units="depth" expires_after="2020-05-31">
<owner>joelhockey@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<summary>
@@ -48137,7 +51817,7 @@ uploading your change for review.
</histogram>
<histogram name="FileBrowser.FormatFileSystemType"
- enum="FileManagerFormatFileSystemType" expires_after="2020-02-16">
+ enum="FileManagerFormatFileSystemType" expires_after="2020-04-19">
<owner>austinct@chromium.org</owner>
<summary>
Chrome OS File Browser: this records the filesystem selected when formatting
@@ -48784,8 +52464,11 @@ uploading your change for review.
</histogram>
<histogram name="FileSystem.DirectoryDatabaseInit"
- enum="FileSystemDatabaseInitResult" expires_after="2020-02-23">
- <owner>tzik@chromium.org</owner>
+ enum="FileSystemDatabaseInitResult" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>The result of FileSystemDirectoryDatabase initialization.</summary>
</histogram>
@@ -48816,8 +52499,11 @@ uploading your change for review.
</histogram>
<histogram name="FileSystem.OriginDatabaseInit"
- enum="FileSystemDatabaseInitResult" expires_after="2020-02-23">
- <owner>tzik@chromium.org</owner>
+ enum="FileSystemDatabaseInitResult" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>The result of FileSystemOriginDatabase initialization.</summary>
</histogram>
@@ -48856,6 +52542,30 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Fingerprint.Reset.ResetContextMode"
+ enum="FingerprintSensorMode" expires_after="M85">
+ <owner>tomhughes@chromium.org</owner>
+ <owner>norvez@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="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
<owner>rsorokin@chromium.org</owner>
@@ -48921,6 +52631,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Fingerprint.Unlock.Match.PositiveMatchSecretCorrect"
+ enum="BooleanCorrect" expires_after="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
<owner>norvez@chromium.org</owner>
@@ -48930,6 +52651,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Fingerprint.Unlock.MigrationForPositiveMatchSecretResult"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
<owner>norvez@chromium.org</owner>
@@ -48965,6 +52696,26 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Fingerprint.Unlock.ReadPositiveMatchSecret.Success"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
+ <owner>yichengli@chromium.org</owner>
+ <owner>norvez@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="M85">
<owner>rsorokin@chromium.org</owner>
@@ -49115,7 +52866,7 @@ uploading your change for review.
</histogram>
<histogram name="FirstRun.NewUserExperience.NtpBackgroundInteraction"
- enum="NuxNtpBackgroundInteractions" expires_after="M80">
+ enum="NuxNtpBackgroundInteractions" expires_after="2020-05-10">
<owner>hcarmona@chromium.org</owner>
<owner>johntlee@chromium.org</owner>
<summary>
@@ -49262,7 +53013,7 @@ uploading your change for review.
</histogram>
<histogram name="ForceDiceMigration.RevokeTokenAction" enum="RevokeTokenAction"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>msalama@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -49286,7 +53037,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Gaia.AuthFetcher.ListAccounts.NetErrorCodes.Retry"
- enum="NetErrorCodes">
+ enum="NetErrorCodes" expires_after="M80">
<obsolete>
Deprecated 2019-09. Enough data has been collected for investigation of
https://crbug.com/876306
@@ -49302,7 +53053,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Gaia.AuthFetcher.ListAccounts.ProcessUptime.Error" units="ms">
+<histogram name="Gaia.AuthFetcher.ListAccounts.ProcessUptime.Error" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 2019-09. Enough data has been collected for investigation of
https://crbug.com/876306
@@ -49321,7 +53073,7 @@ uploading your change for review.
</histogram>
<histogram name="Gaia.AuthFetcher.ListAccounts.ProcessUptime.Success"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 2019-09. Enough data has been collected for investigation of
https://crbug.com/876306
@@ -49339,7 +53091,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Error" units="ms">
+<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Error" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 2019-09. Enough data has been collected for investigation of
https://crbug.com/876306
@@ -49357,7 +53110,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Success" units="ms">
+<histogram name="Gaia.AuthFetcher.ListAccounts.SystemUptime.Success" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 2019-09. Enough data has been collected for investigation of
https://crbug.com/876306
@@ -49597,8 +53351,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="GCM.Database.Open" enum="LevelDBStatus" expires_after="M88">
- <owner>cmumford@chromium.org</owner>
+<histogram name="GCM.Database.Open" enum="LevelDBStatus" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>The result of a database open attempt by the GCM store.</summary>
</histogram>
@@ -49679,6 +53436,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GCM.GetInstanceIDData.ClientStarted" enum="GCMClientResult"
+ expires_after="M83">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Reports the client-started state when the GCM driver requested a read of the
+ instance id although the client was not ready. If != Success, the client is
+ likely leaking a registration.
+ </summary>
+</histogram>
+
<histogram name="GCM.HeartbeatMissedDelta" units="ms"
expires_after="2018-08-30">
<owner>zea@chromium.org</owner>
@@ -49688,6 +53456,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram base="true" name="GCM.IgnoredWriteResult" enum="BooleanSuccess"
+ expires_after="M83">
+<!-- Name completed by histogram_suffixes name="IgnoredWriteResultOperation" -->
+
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Result of the outcome of persisting a change in the GCMStore. This histogram
+ is to meausure the frequency of such events and assess their severity. For
+ example, failing to write when calling AdddInstanceIDData() likely results
+ in leaked FCM registrations.
+ </summary>
+</histogram>
+
<histogram name="GCM.IncomingSendErrors" units="messages">
<owner>peter@chromium.org</owner>
<summary>
@@ -49697,7 +53479,7 @@ uploading your change for review.
</histogram>
<histogram name="GCM.LoadStatus" enum="GCMLoadStatus"
- expires_after="2020-03-01">
+ expires_after="2020-05-24">
<owner>jianli@chromium.org</owner>
<summary>Status code of loading from the persistent GCM store.</summary>
</histogram>
@@ -49803,6 +53585,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GCM.RegistrationRequest.NetErrorCode" enum="NetErrorCodes"
+ expires_after="2020-06-01">
+ <owner>peter@chromium.org</owner>
+ <owner>platform-capabilities@chromium.org</owner>
+ <summary>
+ Net error code from a GCM registration attempt. Recorded when URL loading
+ completes.
+ </summary>
+</histogram>
+
<histogram name="GCM.RegistrationRequestStatus"
enum="GCMRegistrationRequestStatus" expires_after="M82">
<owner>peter@chromium.org</owner>
@@ -49882,6 +53674,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GCM.SendWebPushMessageForbiddenBody"
+ enum="ForbiddenResponseBody" expires_after="M80">
+ <owner>alexchau@chromium.org</owner>
+ <owner>peter@chromium.org</owner>
+ <summary>
+ Categorized response body when 403: Forbidden is received from sending web
+ push messages. Recorded when received response after message has been sent.
+ All platforms.
+ </summary>
+</histogram>
+
<histogram name="GCM.SendWebPushMessagePayloadSize" units="units"
expires_after="2020-04-05">
<owner>alexchau@chromium.org</owner>
@@ -49902,6 +53705,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GCM.SendWebPushMessageStatusCode"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-04-05">
+ <owner>alexchau@chromium.org</owner>
+ <owner>peter@chromium.org</owner>
+ <summary>
+ Result code from sending web push messages. Logs net::Error if it's not
+ net::OK. Logs net::OK if response header is not present. Otherwise, logs
+ HTTP status code returned. Recorded when received response after message has
+ been sent.
+ </summary>
+</histogram>
+
<histogram name="GCM.StoreDestroySucceeded" enum="BooleanSuccess">
<owner>zea@chromium.org</owner>
<summary>
@@ -50719,7 +54534,7 @@ uploading your change for review.
</histogram>
<histogram name="GoogleUpdate.Result.Session" enum="BooleanSuccess"
- expires_after="2019-11-30">
+ expires_after="2020-02-15">
<!-- Name completed by histogram_suffixes name="GoogleUpdate.Result.UpdateType" -->
<owner>dtrainor@chromium.org</owner>
@@ -50731,7 +54546,7 @@ uploading your change for review.
</histogram>
<histogram name="GoogleUpdate.Result.TimeWindow" enum="BooleanSuccess"
- expires_after="2019-11-30">
+ expires_after="2020-02-15">
<!-- Name completed by histogram_suffixes name="GoogleUpdate.Result.UpdateType" -->
<owner>dtrainor@chromium.org</owner>
@@ -50747,7 +54562,7 @@ uploading your change for review.
</histogram>
<histogram name="GoogleUpdate.StartingUpdateState"
- enum="BooleanAlreadyUpdating" expires_after="2019-11-30">
+ enum="BooleanAlreadyUpdating" expires_after="2020-02-15">
<owner>dtrainor@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
@@ -50806,7 +54621,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.ANGLE.Buffer11CPUMemoryMB" units="MB"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>cwallez@chromium.org</owner>
<summary>
The sum of the size of the CPU-side memory allocations of Buffer11's copies
@@ -51055,7 +54870,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.BlacklistFeatureTestResults"
- enum="GPUBlacklistFeatureTestResults" expires_after="2020-03-29">
+ enum="GPUBlacklistFeatureTestResults" expires_after="2020-05-31">
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
@@ -51076,7 +54891,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.BlacklistFeatureTestResultsWindows2"
- enum="GPUBlacklistFeatureTestResultsWindows2" expires_after="2020-03-08">
+ enum="GPUBlacklistFeatureTestResultsWindows2" expires_after="2020-05-10">
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
@@ -51094,7 +54909,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.BlacklistTestResultsPerEntry"
- enum="GPUBlacklistTestResultPerEntry" expires_after="2020-02-23">
+ enum="GPUBlacklistTestResultPerEntry" expires_after="2020-04-26">
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which the GPU process is blocked
@@ -51103,7 +54918,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.BlockStatusForClient3DAPIs"
- enum="BlockStatusForClient3DAPIs">
+ enum="BlockStatusForClient3DAPIs" expires_after="M80">
<obsolete>
Removed in M77.
</obsolete>
@@ -51141,6 +54956,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GPU.CompositingMode" enum="CompositingMode"
+ expires_after="never">
+ <owner>kylechar@chromium.org</owner>
+ <summary>
+ Records what compositing mode (software, GL, etc.) Chrome is using every
+ five minutes. This is the default compositing mode that most windows will
+ use. There are some window types (eg. menus on some platforms) that always
+ use software compositing and ignore the default.
+ </summary>
+</histogram>
+
<histogram name="GPU.ContextLost" enum="ContextLostReason" expires_after="M81">
<owner>sievers@chromium.org</owner>
<summary>
@@ -51148,7 +54974,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="GPU.ContextMemory" units="MB" expires_after="2020-02-16">
+<histogram name="GPU.ContextMemory" units="MB" expires_after="2020-04-19">
<owner>ericrk@chromium.org</owner>
<summary>The amount of memory used by a GL Context.</summary>
</histogram>
@@ -51198,7 +55024,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.D3DShaderModel" enum="ShaderModel"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>jmadill@chromium.org</owner>
<summary>
ANGLE's currently active D3D shader model version. Logged once every startup
@@ -51243,7 +55069,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.DirectComposition.CompositionMode"
- enum="DxgiFramePresentationMode" expires_after="2020-03-08">
+ enum="DxgiFramePresentationMode" expires_after="2020-05-10">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -51407,7 +55233,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.DirectComposition.NumPendingFrames" units="frames"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
@@ -51662,7 +55488,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2020-03-08">
+<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2020-05-10">
<owner>jmadill@chromium.org</owner>
<owner>jonahr@chromium.org</owner>
<summary>
@@ -51687,7 +55513,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.EGLDisplayType" enum="EGLDisplayType"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>jbauman@chromium.org</owner>
<summary>The display type used to ask for an EGLDisplay.</summary>
</histogram>
@@ -51698,7 +55524,8 @@ uploading your change for review.
<summary>The error states generated by OpenGL calls.</summary>
</histogram>
-<histogram base="true" name="GPU.EstablishGpuChannelDuration" units="ms">
+<histogram base="true" name="GPU.EstablishGpuChannelDuration" units="ms"
+ expires_after="M80">
<obsolete>
Expired in M75.
</obsolete>
@@ -51717,6 +55544,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Gpu.GL.ProgramBuildTime" units="ms" expires_after="M82">
+ <owner>ccameron@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ The time that elapsed between a call to glCreateProgram and the call to
+ query GL_LINK_STATUS via glGetProgramiv in Skia's GrGLInterface. This
+ encompasses the creation of the vertex, fragment, and geometry shaders,
+ their compilation, and their linking. This is called for every program
+ created by Skia via the GrGLInterface.
+ </summary>
+</histogram>
+
<histogram name="GPU.GLImplementation" enum="GLImplementation"
expires_after="2020-11-01">
<owner>magchen@chromium.org</owner>
@@ -51727,6 +55566,36 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GPU.GpuBlockedBetweenSwapsUs" units="microseconds"
+ expires_after="2020-01-01">
+ <obsolete>
+ Removed November 27, 2019. See GPU.GpuBlockedBetweenSwapsUs2.
+ </obsolete>
+ <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 the time Gpu Main thread was blocked (difference
+ between wall time and cpu time) during tasks execution for currect frame.
+ Only reported when there is single surface swap in the same vsync interval.
+ Only reported for platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="GPU.GpuBlockedBetweenSwapsUs2" units="microseconds"
+ expires_after="2020-12-01">
+ <owner>vasilyt@chromium.org</owner>
+ <owner>backer@chromium.org</owner>
+ <summary>
+ This metric recorded only with --enable-gpu-blocked-time flag. This is
+ logged once per frame if the output surface provides timing information. It
+ measures the time Gpu Main thread was blocked (difference between wall time
+ and cpu time) during tasks execution for currect frame. Only reported when
+ there is single surface swap in the same vsync interval. Only reported for
+ platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
<histogram name="GPU.GPUChannelHostWaitTime" units="ms"
expires_after="2019-10-07">
<obsolete>
@@ -51782,7 +55651,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.GPUProcessDetailedExitStatus"
- enum="ProcessDetailedExitStatus" expires_after="2020-03-01">
+ enum="ProcessDetailedExitStatus" expires_after="2020-05-03">
<owner>wnwen@chromium.org</owner>
<summary>
Breakdown of exit status for gpu processes. Only recorded on Android.
@@ -51790,7 +55659,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.GPUProcessExitCode" enum="GPUProcessExitCode"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jbauman@chromium.org</owner>
<summary>
Counts for the exit codes returned by the GPU process when it terminated.
@@ -51798,7 +55667,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.GPUProcessInitialized" enum="BooleanSuccess"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>vmiura@chromium.org</owner>
<summary>
Whether the GPU process successfully initialized or failed and then exitted
@@ -51818,7 +55687,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.GPUProcessLaunchTime" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>vmiura@chromium.org</owner>
<summary>
Startup time of the GPU process as measured by the GPU process host.
@@ -51875,14 +55744,14 @@ uploading your change for review.
</histogram>
<histogram name="GPU.GPUProcessTerminationStatus2" enum="GpuTerminationStatus"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>vmiura@chromium.org</owner>
<summary>
Counts for each time the GPU Process Host detects the process dies.
</summary>
</histogram>
-<histogram name="GPU.GrContextMemoryKb" units="KB" expires_after="2020-04-01">
+<histogram name="GPU.GrContextMemoryKb" units="KB" expires_after="2020-05-31">
<owner>enne@chromium.org</owner>
<owner>khushalsagar@chromium.org</owner>
<summary>
@@ -51924,7 +55793,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.IOSurface.CATransactionTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took to update the CALayer tree and commit the transaction.
@@ -51933,7 +55802,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.IOSurface.CreateTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to IOSurfaceCreate to complete.
@@ -51949,7 +55818,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.IOSurface.TexImageTime" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to CGLTexImageIOSurface2D to complete.
@@ -51975,7 +55844,10 @@ uploading your change for review.
</histogram>
<histogram name="Gpu.Metal.TestShaderCompileSucceeded" enum="BooleanSuccess"
- expires_after="M80">
+ expires_after="2019-12-03">
+ <obsolete>
+ It is not planned to use this approach to determine if Metal is to be used.
+ </obsolete>
<owner>ccameron@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -51986,8 +55858,37 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Gpu.Metal.TestShaderCompileTime" units="ms"
+ expires_after="M82">
+ <owner>ccameron@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Compiling a MTLLibrary will sometimes hang forever. When initializing the
+ gpu process, a test shader is compiled to see if the MTLCompilerService is
+ responding or not. This records the time that it took for the compile to
+ succeeded, up to 1 minute. After 1 minute, a timeout sentinel value of 3
+ minutes is reported.
+ </summary>
+</histogram>
+
+<histogram name="Gpu.Metal.TestShaderMethodTime" units="ms" expires_after="M82">
+ <owner>ccameron@chromium.org</owner>
+ <owner>graphics-dev@chromium.org</owner>
+ <summary>
+ Compiling a MTLLibrary will sometimes hang forever. When initializing the
+ gpu process, a test shader is compiled to see if the MTLCompilerService is
+ is responding or not. This records the time that it took for the compile
+ method to finish (not including the time for the compile itself to finish),
+ up to 1 minute. After 1 minute, a timeout sentinel value of 3 minutes is
+ reported.
+ </summary>
+</histogram>
+
<histogram name="Gpu.MetalProxy.NewLibraryAttempt" units="units"
- expires_after="M80">
+ expires_after="2019-12-03">
+ <obsolete>
+ This did not substantially improve the situation and was removed.
+ </obsolete>
<owner>ccameron@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -51998,7 +55899,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Gpu.MetalProxy.NewLibraryTime" units="ms" expires_after="M80">
+<histogram name="Gpu.MetalProxy.NewLibraryTime" units="ms" expires_after="M82">
<owner>ccameron@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -52009,7 +55910,10 @@ uploading your change for review.
</histogram>
<histogram name="Gpu.MetalProxy.NewRenderPipelineStateAttempt" units="units"
- expires_after="M80">
+ expires_after="2019-12-03">
+ <obsolete>
+ This did not substantially improve the situation and was removed.
+ </obsolete>
<owner>ccameron@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -52021,7 +55925,7 @@ uploading your change for review.
</histogram>
<histogram name="Gpu.MetalProxy.NewRenderPipelineStateTime" units="ms"
- expires_after="M80">
+ expires_after="M82">
<owner>ccameron@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -52032,7 +55936,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.OopRaster.GlyphCacheMiss"
- enum="OopRasterGlyphCacheMissType" expires_after="2020-03-29">
+ enum="OopRasterGlyphCacheMissType" expires_after="2020-05-31">
<owner>khushalsagar@chromium.org</owner>
<summary>
During OutOfProcess(Oop) raster, the renderer generates and sends the
@@ -52043,7 +55947,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="GPU.OopRaster.PaintOpSerializationSize" units="bytes">
+<histogram name="GPU.OopRaster.PaintOpSerializationSize" units="bytes"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019.
</obsolete>
@@ -52056,7 +55961,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.Output.ColorSpace" enum="DXGI_COLOR_SPACE_TYPE"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -52066,7 +55971,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2020-02-23">
+<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2020-05-03">
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -52088,7 +55993,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.PassthroughDoLinkProgramTime" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>jmadill@chromium.org</owner>
<owner>jonahr@google.com</owner>
<summary>
@@ -52120,7 +56025,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.SwiftShader"
- enum="GPUProcessLifetimeEvent" expires_after="2020-03-01">
+ enum="GPUProcessLifetimeEvent" expires_after="2020-05-31">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
@@ -52396,6 +56301,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GPU.SwapTimeUs" units="microseconds"
+ expires_after="2020-05-10">
+ <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 the time of SwapBuffers call. Only reported when
+ there is single surface swap in the same vsync interval. Only reported for
+ platforms supporting high resolution clocks.
+ </summary>
+</histogram>
+
<histogram name="GPU.SwiftShaderLifetimeEvents" enum="GPUProcessLifetimeEvent"
expires_after="2018-06-05">
<obsolete>
@@ -52408,7 +56325,7 @@ uploading your change for review.
</histogram>
<histogram name="GPU.TextureR16Ext_LuminanceF16" enum="GpuTextureResultR16_L16"
- expires_after="M79">
+ expires_after="2020-04-19">
<owner>hubbe@chromium.org</owner>
<owner>rijubrata.bhaumik@intel.com</owner>
<owner>media-dev@chromium.org</owner>
@@ -52503,6 +56420,41 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="GPU.WatchdogThread.ExtraThreadTime" units="# timeouts"
+ expires_after="2020-05-01">
+<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
+
+ <owner>magchen@chromium.org</owner>
+ <owner>zmo@chromium.org</owner>
+ <summary>
+ The number of extra timeouts the GPU main thread needs to make any progress
+ after the first watchdog timeout.
+ </summary>
+</histogram>
+
+<histogram name="GPU.WatchdogThread.Timeout" enum="GpuWatchdogTimeoutEvent"
+ expires_after="2020-05-01">
+<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
+
+ <owner>magchen@chromium.org</owner>
+ <owner>zmo@chromium.org</owner>
+ <summary>
+ Recorded timeout events when the GPU watchdog V2 enters OnWatchdogTimeout.
+ </summary>
+</histogram>
+
+<histogram name="GPU.WatchdogThread.WaitTime" units="ms"
+ expires_after="2020-05-01">
+<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
+
+ <owner>magchen@chromium.org</owner>
+ <owner>zmo@chromium.org</owner>
+ <summary>
+ Record the wait time in OnWatchdogTimeout() for the GPU main thread to make
+ any progress.
+ </summary>
+</histogram>
+
<histogram name="GPU.WebGraphicsContext3D_Init_CanLoseContext"
enum="GPUWebGraphicsContext3D_Init_CanLoseContext">
<owner>vmiura@chromium.org</owner>
@@ -52648,7 +56600,7 @@ uploading your change for review.
</histogram>
<histogram name="Graphics.Smoothness.FrameSequenceLength" units="count"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sadrul@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
@@ -52697,7 +56649,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="GridTabSwitcher.DirtySpan" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -52708,7 +56660,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="GridTabSwitcher.FramePerSecond" units="frame/sec"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -52718,7 +56670,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="GridTabSwitcher.MaxFrameInterval" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -52728,7 +56680,7 @@ uploading your change for review.
</histogram>
<histogram name="GridTabSwitcher.ThumbnailFetchingResult"
- enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2020-03-01">
+ enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2020-05-03">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
@@ -52738,7 +56690,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="GwpAsan.AllocatorOom.Malloc" units="allocations"
- expires_after="M80">
+ expires_after="2020-05-10">
<owner>vtsyrklevich@chromium.org</owner>
<owner>dynamic-tools@google.com</owner>
<summary>
@@ -52749,7 +56701,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="GwpAsan.AllocatorOom.PartitionAlloc"
- units="allocations" expires_after="M80">
+ units="allocations" expires_after="2020-05-10">
<owner>vtsyrklevich@chromium.org</owner>
<owner>dynamic-tools@google.com</owner>
<summary>
@@ -52760,7 +56712,7 @@ uploading your change for review.
</histogram>
<histogram name="GwpAsan.CrashAnalysisResult" enum="GwpAsanCrashAnalysisResult"
- expires_after="M80">
+ expires_after="2020-05-17">
<owner>vtsyrklevich@chromium.org</owner>
<owner>dynamic-tools@google.com</owner>
<summary>
@@ -53135,6 +57087,15 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Histogram.PendingProcessNotResponding" units="processes"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ When metrics services (UMA) ran an update, the number of child processes
+ that did not respond, providing histogram updates, before the timeout.
+ </summary>
+</histogram>
+
<histogram name="Histogram.PermanentNameChanged" enum="HistogramNameHash">
<owner>asvitkine@chromium.org</owner>
<owner>bcwhite@chromium.org</owner>
@@ -53144,6 +57105,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Histogram.ReceivedProcessGroupCount" enum="BooleanEnabled"
+ expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ When metrics services (UMA) ran an update, the number of times the process
+ groups (renderer processes and plugin/gpu processes) did not respond,
+ providing histogram updates, before the timeout.
+ </summary>
+</histogram>
+
<histogram name="Histogram.TooManyBuckets.1000" enum="HistogramNameHash"
expires_after="M78">
<owner>asvitkine@chromium.org</owner>
@@ -53517,6 +57488,11 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="History.GetFavIconFromDB" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>Time to check the thumbnail database for an url's favicon.</summary>
+</histogram>
+
<histogram name="History.HistoryPageView" enum="HistoryPageView"
expires_after="2020-03-01">
<owner>calamity@chromium.org</owner>
@@ -53545,6 +57521,11 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="History.InitTime" units="ms" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>TBD</summary>
+</histogram>
+
<histogram name="History.InMemoryDBItemCount" units="units"
expires_after="2020-02-16">
<owner>sky@chromium.org</owner>
@@ -54196,7 +58177,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="HttpCache.AccessToDone" units="ms" expires_after="2020-02-16">
+<histogram name="HttpCache.AccessToDone" units="ms" expires_after="2020-04-19">
<owner>morlovich@chromium.org</owner>
<summary>
For every http cache transaction with a pattern (see HttpCache.Pattern), the
@@ -54228,7 +58209,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2020-03-01">
+<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2020-05-03">
<owner>morlovich@chromium.org</owner>
<summary>
For http cache transactions in which a network request was sent, the time
@@ -54324,7 +58305,7 @@ uploading your change for review.
</histogram>
<histogram name="HttpCache.Pattern" enum="HttpCachePattern"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>morlovich@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>For each http cache transaction, the recorded pattern.</summary>
@@ -54467,6 +58448,15 @@ uploading your change for review.
<summary>The time it takes to open a hyphenation dictionary file.</summary>
</histogram>
+<histogram name="Image.ResampleMS" units="?" expires_after="M79">
+ <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <summary>
+ Time it takes to do high-quality image resampling for images that are
+ resized. Non-resized images and ones our heuristic decides can be done
+ &quot;badly&quot; are not counted.
+ </summary>
+</histogram>
+
<histogram name="ImageAnnotationService.AccessibilityV1.CacheHit"
enum="BooleanCacheHit" expires_after="2020-03-31">
<owner>amoylan@chromium.org</owner>
@@ -54657,7 +58647,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.Events" enum="ImageFetcherEvent"
- expires_after="2019-12-01">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54668,7 +58658,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromCacheTime" units="ms"
- expires_after="2020-06-06">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54678,7 +58668,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromCacheTimeJava" units="ms"
- expires_after="2020-06-06">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54688,7 +58678,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromNativeTimeJava" units="ms"
- expires_after="2020-06-06">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54698,7 +58688,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromNetworkAfterCacheHit" units="ms"
- expires_after="2020-06-06">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54708,7 +58698,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.ImageLoadFromNetworkTime" units="ms"
- expires_after="2020-06-06">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54718,7 +58708,7 @@ uploading your change for review.
</histogram>
<histogram name="ImageFetcher.LoadImageMetadata" units="ms"
- expires_after="2020-06-30">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54726,8 +58716,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="ImageFetcher.RequestStatusCode"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-12-01">
+ <owner>fgorski@chromium.org</owner>
+ <owner>wylieb@chromium.org</owner>
+ <summary>
+ Android: The integer status code of network requests made by the image data
+ fetcher. This code includes both protocol(1xx-5xx) and non-protocol(-xxx)
+ errors. Recorded when a request completes.
+ </summary>
+</histogram>
+
<histogram name="ImageFetcher.TimeSinceLastCacheLRUEviction" units="ms"
- expires_after="2019-12-01">
+ expires_after="2020-12-01">
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<summary>
@@ -54918,7 +58919,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ImportantFile.TimeToWrite" units="ms">
+<histogram name="ImportantFile.TimeToWrite" units="ms"
+ expires_after="2019-11-05">
+ <obsolete>
+ Removed in 2019-11.
+ </obsolete>
<owner>mamir@chromium.org</owner>
<summary>
Time used to atomically write string into a file using ImportantFileWriter.
@@ -55272,6 +59277,46 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InputMethod.Handwriting.Actions" enum="ImeHandwritingActions"
+ expires_after="2020-03-01">
+ <owner>shend@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Types of actions performed by the user during handwriting, recorded when the
+ user performs a gesture action.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Handwriting.CharsEdited10s" units="chars"
+ expires_after="2020-03-01">
+ <owner>shend@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Number of characters written in a 10 second interval, recorded every 10s
+ while the handwriting keyboard is active.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Handwriting.CharsEdited5s" units="chars"
+ expires_after="2020-03-01">
+ <owner>shend@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Number of characters written in a 5 second interval, recorded every 5s while
+ the handwriting keyboard is active.
+ </summary>
+</histogram>
+
+<histogram name="InputMethod.Handwriting.CharsEdited60s" units="chars"
+ expires_after="2020-03-01">
+ <owner>shend@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Number of characters written in a 60 second interval, recorded every 60s
+ while the handwriting keyboard is active.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.ID" enum="InputMethodID"
expires_after="2015-07-16">
<obsolete>
@@ -55496,6 +59541,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InputMethod.VirtualKeyboard.KeyboardShownLongTail" units="ms"
+ expires_after="2020-11-08">
+ <owner>jopalmer@chromium.org</owner>
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ Time to show the on-screen keyboard in milliseconds. Similar to
+ InputMethod.VirtualKeyboard.KeyboardShown but with a larger maximum to
+ capture more of the distribution.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout">
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -55505,6 +59561,7 @@ uploading your change for review.
</histogram>
<histogram name="InputMethod.VirtualKeyboard.LayoutSwitch" units="units">
+ <owner>dvallet@google.com</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
The count of layout switching actions while virtual keyboard is alive.
@@ -55532,6 +59589,15 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InputMethod.VirtualKeyboard.SwitchMode" enum="IMEVKMode"
+ expires_after="2020-06-30">
+ <owner>essential-inputs-team@google.com</owner>
+ <summary>
+ The count of user actions to switch keyboard mode (floating, docked).
+ Recorded when the user clicks in the docked/floating keyboard menu option.
+ </summary>
+</histogram>
+
<histogram name="InputMethod.VirtualKeyboard.TapCount" units="units">
<owner>essential-inputs-team@google.com</owner>
<summary>
@@ -55978,6 +60044,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InstanceID.GeneratedNewID" enum="BooleanHit"
+ expires_after="M83">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Counts the events when the GCM integration generates and registers a new
+ instance ID with FCM. This histogram acts as a pure counter and only emits
+ 'true' values. The goal of the histogram is to detect potential instance ID
+ leaks. It's best interpreted in relation to the reported number of
+ syncing/sync-transport users.
+ </summary>
+</histogram>
+
<histogram name="InstanceID.GetToken.CompleteTime" units="ms"
expires_after="2018-08-30">
<owner>jianli@chromium.org</owner>
@@ -55988,6 +60067,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InstanceID.GetToken.NetErrorCode" enum="NetErrorCodes"
+ expires_after="2020-06-01">
+ <owner>peter@chromium.org</owner>
+ <owner>platform-capabilities@chromium.org</owner>
+ <summary>
+ Net error code from an Instance ID GetToken attempt. Recorded when URL
+ loading completes.
+ </summary>
+</histogram>
+
<histogram name="InstanceID.GetToken.OptionsCount" units="options"
expires_after="2019-01-30">
<owner>peter@chromium.org</owner>
@@ -56496,7 +60585,7 @@ uploading your change for review.
<histogram
name="InstantTethering.GattConnectionAttempt.EffectiveSuccessRateWithRetries"
- enum="BooleanSuccess">
+ enum="BooleanSuccess" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56516,7 +60605,7 @@ uploading your change for review.
<histogram
name="InstantTethering.GattConnectionAttempt.EffectiveSuccessRateWithRetries.Background"
- enum="BooleanSuccess">
+ enum="BooleanSuccess" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56612,6 +60701,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="InstantTethering.KeepAliveTickle.Result" enum="BooleanSuccess"
+ expires_after="2020-12-16">
+ <owner>hansberry@chromium.org</owner>
+ <owner>better-together-dev@google.com</owner>
+ <summary>
+ Captures the count of successful and failed attempts to send a
+ 'KeepAliveTickle' message to the phone.
+ </summary>
+</histogram>
+
<histogram name="InstantTethering.MultiDeviceFeatureState"
enum="MultiDevice_FeatureState" expires_after="2020-02-19">
<owner>hansberry@chromium.org</owner>
@@ -56634,7 +60733,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.AdvertisementToConnectionDuration"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56656,7 +60755,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.ConnectionToAuthenticationDuration"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56669,7 +60768,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.ConnectionToAuthenticationDuration.Background"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56746,7 +60845,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56760,7 +60859,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.ReceiveAdvertisementToConnectionDuration.Background"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56777,7 +60876,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.StartScanToConnectionDuration.Background"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56793,7 +60892,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.StartScanToReceiveAdvertisementDuration"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -56806,7 +60905,7 @@ uploading your change for review.
<histogram
name="InstantTethering.Performance.StartScanToReceiveAdvertisementDuration.Background"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019/02 in favor of MultiDevice.* equivalent.
</obsolete>
@@ -57328,6 +61427,9 @@ uploading your change for review.
<histogram name="Invalidations.NetworkChannel"
enum="InvalidationNetworkChannel" expires_after="M76">
+ <obsolete>
+ Histogram for the deprecated implementation.
+ </obsolete>
<owner>pavely@chromium.org</owner>
<owner>melandory@chromium.org</owner>
<summary>Network channel used for invalidations.</summary>
@@ -57484,7 +61586,7 @@ uploading your change for review.
</histogram>
<histogram name="IOS.FinishedURLMatchesCurrentItem" enum="Boolean"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>danyao@chromium.org</owner>
<summary>
When a navigation is finished, the web view URL is expected to match that of
@@ -57534,7 +61636,7 @@ uploading your change for review.
</histogram>
<histogram name="IOS.MainThreadFreezeDetection.RecoveredAfter" units="ms"
- expires_after="2019-11-30">
+ expires_after="2020-06-30">
<owner>olivierrobin@chromium.org</owner>
<summary>
The time during which main thread was not responding. 0 if application was
@@ -57545,7 +61647,7 @@ uploading your change for review.
</histogram>
<histogram name="IOS.NTP.Impression" enum="IOSNTPImpression"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>gambard@chromium.org</owner>
<summary>
The type of NTP impressions on iOS, split by type of suggestions shown
@@ -57563,13 +61665,13 @@ uploading your change for review.
</histogram>
<histogram name="IOS.PageLoadCount.Counts"
- enum="IOSPageLoadCountNavigationType" expires_after="2020-03-29">
+ enum="IOSPageLoadCountNavigationType" expires_after="2020-05-31">
<owner>danyao@chromium.org</owner>
<summary>The number of navigation started events by navigation type.</summary>
</histogram>
<histogram name="IOS.PageLoadCount.LoadingStarted" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>danyao@chromium.org</owner>
<summary>
The &quot;true&quot; value of this boolean histogram counts the number of
@@ -57812,7 +61914,7 @@ uploading your change for review.
</histogram>
<histogram name="IOS.WKWebViewClobberedHistory" enum="Boolean"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>danyao@chromium.org</owner>
<summary>
Measures the number of main frame navigations in slim navigation manager
@@ -57844,7 +61946,7 @@ uploading your change for review.
</histogram>
<histogram name="IOS.WKWebViewStartProvisionalNavigationWithEmptyURL"
- enum="Boolean" expires_after="2020-02-16">
+ enum="Boolean" expires_after="2020-04-19">
<owner>mrsuyi@chromium.org</owner>
<owner>eugenebut@chromium.org</owner>
<summary>
@@ -58257,7 +62359,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Keyboard.ShortcutViewer.SearchUpdateTime" units="microseconds">
+<histogram name="Keyboard.ShortcutViewer.SearchUpdateTime" units="microseconds"
+ expires_after="M80">
<obsolete>
Deprecated 2019-06. Shortcut viewer has been in production for many
milestones and its performance is adequate.
@@ -58272,7 +62375,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Keyboard.ShortcutViewer.SearchUpdateTimeVisual" units="ms">
+<histogram name="Keyboard.ShortcutViewer.SearchUpdateTimeVisual" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 2019-06. Shortcut viewer has been in production for many
milestones and its performance is adequate.
@@ -58288,7 +62392,7 @@ uploading your change for review.
</histogram>
<histogram name="Keyboard.ShortcutViewer.StartupTime" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>jamescook@chromium.org</owner>
<owner>msw@chromium.org</owner>
<owner>wutao@chromium.org</owner>
@@ -58300,7 +62404,7 @@ uploading your change for review.
</histogram>
<histogram name="KeyboardAccessory.AccessoryActionImpression"
- enum="AccessoryAction" expires_after="2020-03-29">
+ enum="AccessoryAction" expires_after="2020-05-31">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records whenever users faces an action in the accessory bar or
@@ -58309,7 +62413,7 @@ uploading your change for review.
</histogram>
<histogram name="KeyboardAccessory.AccessoryActionSelected"
- enum="AccessoryAction" expires_after="2020-03-29">
+ enum="AccessoryAction" expires_after="2020-05-31">
<owner>fhorschig@chromium.org</owner>
<summary>
Android only. Records whenever users select an action in the accessory bar
@@ -58381,7 +62485,7 @@ uploading your change for review.
</histogram>
<histogram name="Kiosk.Launch.CryptohomeFailure" enum="LoginFailureReason"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>xiyuan@chromium.org</owner>
<summary>Tracks cryptohome failure during kiosk launch.</summary>
</histogram>
@@ -58477,7 +62581,7 @@ uploading your change for review.
</histogram>
<histogram name="LanguageSettings.PageImpression"
- enum="LanguageSettingsPageType" expires_after="2020-02-16">
+ enum="LanguageSettingsPageType" expires_after="2020-04-26">
<owner>googleo@chromium.org</owner>
<summary>The type of panes which language settings loads.</summary>
</histogram>
@@ -58497,7 +62601,7 @@ uploading your change for review.
</histogram>
<histogram name="Launch.FlagsAtStartup" enum="LoginCustomFlags"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>asvitkine@chromium.org</owner>
<summary>
Logs which Chrome flags from about:flags were active on start up. Note that
@@ -58507,7 +62611,7 @@ uploading your change for review.
</histogram>
<histogram name="Launch.HomeScreen" enum="LaunchFromHomeScreen"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>dfalcantara@chromium.org</owner>
<summary>
Records how Chrome handled a launch from an Android Home screen shortcut.
@@ -58515,7 +62619,7 @@ uploading your change for review.
</histogram>
<histogram name="Launch.HomeScreenSource" enum="LaunchFromHomeScreenSource"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dominickn@chromium.org</owner>
<summary>
Records the source of an Android homescreen launch intent used to launch
@@ -58539,7 +62643,7 @@ uploading your change for review.
</histogram>
<histogram name="Launch.IntentFlags" enum="LaunchIntentFlags"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>dfalcantara@chromium.org</owner>
<summary>
Records flags (and combinations of flags) that were attached to the Intent
@@ -58559,7 +62663,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Launch.MashService" enum="MashService">
+<histogram name="Launch.MashService" enum="MashService" expires_after="M80">
<obsolete>
Deprecated 2019-05 -- removed as part of removing mash code
</obsolete>
@@ -59059,7 +63163,7 @@ uploading your change for review.
</histogram>
<histogram name="Linux.GlibcVersion" enum="LinuxGlibcVersion"
- expires_after="2020-02-16">
+ expires_after="2020-05-31">
<owner>thestig@chromium.org</owner>
<summary>
The version of glibc used. (Linux only) Logged on each start up.
@@ -59099,7 +63203,7 @@ uploading your change for review.
</histogram>
<histogram name="LoadingPredictor.PreconnectCount" units="origins"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alexilin@chromium.org</owner>
<summary>
The number of origins that were preconnected for a page load. It includes
@@ -59109,7 +63213,7 @@ uploading your change for review.
</histogram>
<histogram name="LoadingPredictor.PreconnectHitsPercentage" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alexilin@chromium.org</owner>
<summary>
The percentage of origins that were preconnected and requested by a page
@@ -59120,7 +63224,7 @@ uploading your change for review.
</histogram>
<histogram name="LoadingPredictor.PreconnectLearningCount" units="origins"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alexilin@chromium.org</owner>
<summary>
When the loading predictor has origins in the local database for a given
@@ -59129,7 +63233,7 @@ uploading your change for review.
</histogram>
<histogram name="LoadingPredictor.PreconnectLearningPrecision" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alexilin@chromium.org</owner>
<summary>
When the loading predictor has origins in the local database for a given
@@ -59161,7 +63265,7 @@ uploading your change for review.
</histogram>
<histogram name="LoadingPredictor.PreresolveCount" units="hosts"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alexilin@chromium.org</owner>
<summary>
The number of hosts that were preresolved for a page load. It includes only
@@ -59242,7 +63346,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="LocalDiscovery.IsFirewallReady" enum="BooleanEnabled">
+<histogram name="LocalDiscovery.IsFirewallReady" enum="BooleanEnabled"
+ expires_after="M80">
<obsolete>
Removed July 2019.
</obsolete>
@@ -59255,7 +63360,7 @@ uploading your change for review.
</histogram>
<histogram name="LocalDiscovery.PrivetNotificationsEvent"
- enum="PrivetNotificationsEvent">
+ enum="PrivetNotificationsEvent" expires_after="M80">
<obsolete>
Removed July 2019.
</obsolete>
@@ -59575,7 +63680,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.OfflineFailure.IsKnownUser" enum="LoginIsKnownUser"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>glevin@chromium.org</owner>
<summary>
On offline login failure, records whether it is for an existing user.
@@ -59583,7 +63688,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.OfflineSuccess.Attempts" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>glevin@chromium.org</owner>
<summary>
On offline login success, records number of attempts, including success.
@@ -59591,7 +63696,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.PasswordChangeFlow" enum="LoginPasswordChangeFlow"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>xiyuan@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -59624,7 +63729,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.ReauthReason" enum="LoginReauthReasons"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>achuith@chromium.org</owner>
<summary>
Tracks the reason why a user was sent through the GAIA re-auth flow.
@@ -59647,13 +63752,13 @@ uploading your change for review.
</histogram>
<histogram name="Login.SuccessReason" enum="LoginSuccessReason"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>achuith@chromium.org</owner>
<summary>Chrome OS login success reason.</summary>
</histogram>
<histogram name="Login.TokenCheckResponseTime" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>glevin@chromium.org</owner>
<summary>
Time between sending a request to, and receiving a reply from, GAIA token
@@ -59671,7 +63776,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.UsersActiveWeekly" units="users"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>alemate@chromium.org</owner>
<owner>achuith@chromium.org</owner>
<summary>
@@ -59691,7 +63796,7 @@ uploading your change for review.
</histogram>
<histogram name="Login.UserType" enum="LoginUserType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>cmasone@chromium.org</owner>
<summary>
Chrome OS histogram that keeps track of the way a user logs in and whether
@@ -60034,6 +64139,7 @@ uploading your change for review.
<histogram name="Manifest.FetchResult" enum="ManifestFetchResultType"
expires_after="2020-04-05">
+ <owner>mgiuca@chromium.org</owner>
<owner>mlamouri@chromium.org</owner>
<summary>
Tracks whether the Manifest fetch succeed and why it failed if it failed.
@@ -60042,6 +64148,7 @@ uploading your change for review.
<histogram name="Manifest.HasProperty" enum="Boolean"
expires_after="2020-04-05">
+ <owner>mgiuca@chromium.org</owner>
<owner>mlamouri@chromium.org</owner>
<summary>
Tracks which properties of a Manifest were present when it was parsed. If a
@@ -60051,13 +64158,18 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Manifest.IsEmpty" enum="Boolean" expires_after="2020-04-05">
+<histogram name="Manifest.IsEmpty" enum="Boolean" expires_after="2020-02-04">
+ <obsolete>
+ Deprecated as of 2019-10-21.
+ </obsolete>
+ <owner>mgiuca@chromium.org</owner>
<owner>mlamouri@chromium.org</owner>
<summary>Tracks whether the parsed Manifest is the empty Manifest.</summary>
</histogram>
<histogram name="Manifest.ParseSuccess" enum="Boolean"
expires_after="2020-04-05">
+ <owner>mgiuca@chromium.org</owner>
<owner>mlamouri@chromium.org</owner>
<summary>
Tracks the Manifest parsing result. A failure will be recorded if the
@@ -60104,7 +64216,7 @@ uploading your change for review.
</histogram>
<histogram name="ManualFallback.VisibleSuggestions.OpenCreditCards"
- units="Suggestions" expires_after="2019-12-31">
+ units="Suggestions" expires_after="2020-06-30">
<owner>javierrobles@chromium.org</owner>
<summary>
Tracks the number of autofill suggestions present when the user taps on the
@@ -60113,7 +64225,7 @@ uploading your change for review.
</histogram>
<histogram name="ManualFallback.VisibleSuggestions.OpenPasswords"
- units="Suggestions" expires_after="2019-12-31">
+ units="Suggestions" expires_after="2020-06-30">
<owner>javierrobles@chromium.org</owner>
<summary>
Tracks the number of password suggestions present when the user taps on the
@@ -60122,7 +64234,7 @@ uploading your change for review.
</histogram>
<histogram name="ManualFallback.VisibleSuggestions.OpenProfiles"
- units="Suggestions" expires_after="2019-12-31">
+ units="Suggestions" expires_after="2020-06-30">
<owner>javierrobles@chromium.org</owner>
<summary>
Tracks the number of autofill suggestions present when the user taps on the
@@ -60893,8 +65005,11 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.OutputStreamsCanceledByBrowser" units="streams"
- expires_after="2020-04-05">
- <owner>maxmorin@chromium.org</owner>
+ expires_after="2019-10-24">
+ <obsolete>
+ Deprecated as of October 2019.
+ </obsolete>
+ <owner>armax@chromium.org</owner>
<summary>
When a mojo audio stream factory is destructed, the streams it created are
also destructed. This is a potential source of stat differences between the
@@ -60914,9 +65029,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.CaptureDelayMs" units="ms"
- expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The time, in milliseconds, between when a block of audio is read from the
soundcard and when it's presented to the audio processor. Used in
@@ -60925,9 +65040,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.CaptureDelayVarianceMs"
- units="ms squared" expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ units="ms squared" expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The variance of the capture delay in milliseconds (see
Media.Audio.Processing.CaptureDelayMs). Logged once every second and
@@ -60936,9 +65051,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.RenderDelayMs" units="ms"
- expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The time, in milliseconds, between when a block of audio is presented to the
audio processor and the time it's played out on the soundcard. Used in
@@ -60947,9 +65062,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.RenderDelayVarianceMs"
- units="ms squared" expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ units="ms squared" expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The variance of the render delay in milliseconds (see
Media.Audio.Processing.RenderDelayMs). Logged once every second and
@@ -60958,9 +65073,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.TotalDelayMs" units="ms"
- expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The estimated total audio system delay presented to the audio processor. The
sum of the individual capture and render delays at similar points in time.
@@ -60968,9 +65083,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.Audio.Processing.TotalDelayVarianceMs"
- units="ms squared" expires_after="2019-12-01">
- <owner>ossu@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
+ units="ms squared" expires_after="2020-04-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
The variance of the total delay in milliseconds (see
Media.Audio.Processing.TotalDelayMs). Logged once every second and
@@ -61038,7 +65153,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Media.Audio.Render.BrowserCallbackRegularity" units="units">
+<histogram name="Media.Audio.Render.BrowserCallbackRegularity" units="units"
+ expires_after="M80">
<obsolete>
Deprecated June 2019.
</obsolete>
@@ -61774,7 +65890,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Media.AudioSamplesPerSecond" enum="AudioSampleRate">
+<histogram name="Media.AudioSamplesPerSecond" enum="AudioSampleRate"
+ expires_after="M80">
<obsolete>
Deprecated 06/2019 in issue 975301.
</obsolete>
@@ -62064,6 +66181,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.BytesReadFromCache" units="KB" expires_after="M82">
+ <obsolete>
+ Deprecated 10/2019 in issue 1000058; no longer needed.
+ </obsolete>
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>Kb read by media demuxer from MultiBuffer cache.</summary>
@@ -62071,6 +66191,9 @@ uploading your change for review.
<histogram name="Media.BytesReadFromNetwork" units="KB"
expires_after="2020-04-05">
+ <obsolete>
+ Deprecated 10/2019 in issue 1000058; no longer needed.
+ </obsolete>
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>Kb read by from network into MultiBuffer cache.</summary>
@@ -62078,6 +66201,9 @@ uploading your change for review.
<histogram base="true" name="Media.BytesReceived" units="KB"
expires_after="2019-10-15">
+ <obsolete>
+ Deprecated 10/2019 in issue 1000058; no longer needed.
+ </obsolete>
<owner>hubbe@chromium.org</owner>
<owner>dalecurtis@chromium.org</owner>
<summary>
@@ -63132,7 +67258,7 @@ uploading your change for review.
</histogram>
<histogram name="Media.FallbackHardwareAudioSamplesPerSecond"
- enum="AudioSampleRate">
+ enum="AudioSampleRate" expires_after="M80">
<obsolete>
Removed 06/2019 in issue 975072. Not useful.
</obsolete>
@@ -63221,6 +67347,29 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Media.GlobalMediaControls.DismissReason"
+ enum="GlobalMediaControlsDismissReason" expires_after="2020-12-10">
+ <owner>steimel@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Recorded each time a media session is dismissed or removed from the Global
+ Media Controls. Records the reason why it happened (e.g. user clicked the
+ dismiss button or playback stopped).
+ </summary>
+</histogram>
+
+<histogram name="Media.GlobalMediaControls.InteractionDelayAfterPause"
+ units="ms" expires_after="2020-12-10">
+ <owner>steimel@chromium.org</owner>
+ <owner>media-dev@chromium.org</owner>
+ <summary>
+ Recorded each time a paused media session is interacted with (e.g. playing
+ the media or clicking on the notification to go back to the tab). Records
+ the time passed since it was last interacted with (or since when it was
+ paused if this is the first post-pause interaction).
+ </summary>
+</histogram>
+
<histogram name="Media.GlobalMediaControls.RepeatUsage" enum="BooleanIsRepeat"
expires_after="2020-12-10">
<owner>steimel@chromium.org</owner>
@@ -63326,7 +67475,8 @@ uploading your change for review.
<summary>Samples per second of the hardware audio device.</summary>
</histogram>
-<histogram name="Media.HardwareAudioSamplesPerSecondUnexpected" units="Hz">
+<histogram name="Media.HardwareAudioSamplesPerSecondUnexpected" units="Hz"
+ expires_after="M80">
<obsolete>
Removed 06/2019 in issue 975072. Not useful.
</obsolete>
@@ -65144,7 +69294,10 @@ uploading your change for review.
</histogram>
<histogram name="Media.Video.Autoplay.Muted.Blocked"
- enum="AutoplayBlockedReason" expires_after="M82">
+ enum="AutoplayBlockedReason">
+ <obsolete>
+ Deprecated as of M80, autoplaying muted videos can no longer be blocked.
+ </obsolete>
<owner>mlamouri@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
@@ -65326,7 +69479,7 @@ uploading your change for review.
</histogram>
<histogram name="Media.Video.TimeFromForegroundToFirstFrame.DisableTrack"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated as of 06/2019 -- no longer used after background track disable
has launched.
@@ -65342,7 +69495,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Media.Video.TimeFromForegroundToFirstFrame.Paused" units="ms">
+<histogram name="Media.Video.TimeFromForegroundToFirstFrame.Paused" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated as of 06/2019 -- no longer used after background track disable
has launched.
@@ -65570,7 +69724,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Media.VideoCaptureApi.Mac" enum="CaptureApiMac">
+<histogram name="Media.VideoCaptureApi.Mac" enum="CaptureApiMac"
+ expires_after="M80">
<obsolete>
Deprecated July 30th. This is no longer used.
</obsolete>
@@ -65608,7 +69763,7 @@ uploading your change for review.
<histogram
name="Media.VideoCaptureService.DurationFromLastConnectToClosingConnection"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 07/2017 in favor of the more differentiated durations.
</obsolete>
@@ -65780,8 +69935,9 @@ uploading your change for review.
<summary>Pixel format used in HTML5 video. Emitted on video load.</summary>
</histogram>
-<histogram name="Media.VideoFrameSubmitter" units="ms"
- expires_after="2020-06-28">
+<histogram name="Media.VideoFrameSubmitter" units="ms" expires_after="never">
+<!-- expires-never: used by ChromeOS test infrastructure -->
+
<owner>mcasas@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -65791,7 +69947,9 @@ uploading your change for review.
</histogram>
<histogram name="Media.VideoFrameSubmitter.PreSubmitBuffering" units="ms"
- expires_after="2020-06-28">
+ expires_after="never">
+<!-- expires-never: used by ChromeOS test infrastructure -->
+
<owner>mcasas@chromium.org</owner>
<owner>chromeos-gfx@chromium.org</owner>
<summary>
@@ -66239,6 +70397,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Channel.ConnectResult" enum="BooleanSuccess"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Whether opening Cast channel succeeds or not. Recorded when all opening
channel attempts (including retry attempts) finish.
@@ -66248,6 +70407,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Channel.Error"
enum="MediaRouterCastChannelError" expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Errors encountered on a Cast channel. Recorded when a Cast channel fails to
open, or when an opened channel fails to respond to keepalive ping request
@@ -66258,6 +70418,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Discovery.CachedSinksAvailableCount"
units="devices" expires_after="M85">
<owner>btolsch@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of Cast devices available from the device cache at the time of a
new network connection.
@@ -66267,6 +70428,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Discovery.ConnectedDevicesCount"
units="devices" expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of connected Cast devices. Recorded when browser finishes
discovering Cast devices. Recording happens roughly once per hour.
@@ -66276,6 +70438,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Discovery.KnownDevicesCount" units="devices"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of known Cast devices. Recorded when browser finishes discovering
Cast devices. Recording happens roughly once per hour.
@@ -66285,12 +70448,14 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Discovery.SinkSource"
enum="MediaRouterCastSinkSource" expires_after="M85">
<owner>btolsch@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>The source of discovery for a newly-created Cast sink.</summary>
</histogram>
<histogram name="MediaRouter.Cast.Mdns.Channel.Open_Failure" units="ms"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken to fail to open a cast channel. Recorded when
one opening channel attempt fails.
@@ -66300,6 +70465,7 @@ uploading your change for review.
<histogram name="MediaRouter.Cast.Mdns.Channel.Open_Success" units="ms"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken to successfully open a cast channel. Recorded
when one opening channel attempt succeeds.
@@ -66309,6 +70475,7 @@ uploading your change for review.
<histogram name="MediaRouter.Dial.AvailableDevicesCount" units="devices"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of available DIAL devices. Recorded when browser finishes
discovering DIAL devices. Recording happens roughly once per hour.
@@ -66340,6 +70507,7 @@ uploading your change for review.
<histogram name="MediaRouter.Dial.KnownDevicesCount" units="devices"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of known DIAL devices. Recorded when browser finishes discovering
DIAL devices. Recording happens roughly once per hour.
@@ -66361,6 +70529,7 @@ uploading your change for review.
<histogram name="MediaRouter.Dial.ParsingError"
enum="MediaRouterDialParsingError" expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Error encountered while parsing DIAL device description XML text. Recorded
when utility process returns an invalid DIAL device description object to
@@ -66382,6 +70551,7 @@ uploading your change for review.
<histogram name="MediaRouter.Icon.Click.Location"
enum="MediaRouterDialogOpenOrigin" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>Location the user clicked to open the Media Router dialog.</summary>
</histogram>
@@ -66399,6 +70569,7 @@ uploading your change for review.
<histogram name="MediaRouter.NetworkMonitor.ConnectionType"
enum="DiscoveryNetworkMonitorConnectionType" expires_after="M85">
<owner>btolsch@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Network connection type reported by DiscoveryNetworkMonitor whenever it
detects a change in the set of networks connected to the host device which
@@ -66409,6 +70580,7 @@ uploading your change for review.
<histogram name="MediaRouter.NetworkMonitor.NetworkChangeEventDelta" units="ms"
expires_after="M85">
<owner>btolsch@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Time between network change events reported by DiscoveryNetworkMonitor.
</summary>
@@ -66438,6 +70610,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.CreateRoute.Result.WiredDisplay"
enum="MediaRouteProviderResult" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Result of a request to the wired display MediaRouteProvider to create a
route.
@@ -66458,6 +70631,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.JoinRoute.Result.WiredDisplay"
enum="MediaRouteProviderResult" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Result of a request to the wired display MediaRouteProvider to join a route.
</summary>
@@ -66470,6 +70644,7 @@ uploading your change for review.
dialog, and the new Views dialog does not have it.
</obsolete>
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Records whether the Media Route Provider succeeded or failed to create a
controller for a media route.
@@ -66479,6 +70654,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.TerminateRoute.Result"
enum="MediaRouteProviderResult" expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Result of a request to the extension (or an unknown) MediaRouteProvider to
terminate a route.
@@ -66488,6 +70664,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.TerminateRoute.Result.WiredDisplay"
enum="MediaRouteProviderResult" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Result of a request to the wired display MediaRouteProvider to terminate a
route.
@@ -66497,6 +70674,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.Version" enum="MediaRouteProviderVersion"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Records how the major version of the Media Router component extension
compares to the major version of the browser.
@@ -66506,6 +70684,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.WakeReason"
enum="MediaRouteProviderWakeReason" expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Reason that the Media Router woke the Media Route Provider event page.
</summary>
@@ -66514,6 +70693,7 @@ uploading your change for review.
<histogram name="MediaRouter.Provider.Wakeup" enum="MediaRouteProviderWakeup"
expires_after="M85">
<owner>mfoltz@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Records the outcome of waking the Media Router component's event page.
</summary>
@@ -66522,6 +70702,7 @@ uploading your change for review.
<histogram name="MediaRouter.Route.CreationOutcome"
enum="MediaRouterCreateRouteOutcome" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of times a Media Router create route response succeeds or fails.
This breaks down the different failure types in to separate buckets.
@@ -66535,6 +70716,7 @@ uploading your change for review.
the new Views dialog does not have it.
</obsolete>
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The outcome of querying Media Route Providers for a sink by ID.
&quot;Success&quot; indicates that a sink was found. This is recorded when
@@ -66545,6 +70727,7 @@ uploading your change for review.
<histogram name="MediaRouter.Sink.SelectedType" enum="MediaSinkType"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The type of the Media Sink that media is being Cast to. Recorded each time
the user selects a Media Sink to start Casting.
@@ -66554,6 +70737,7 @@ uploading your change for review.
<histogram name="MediaRouter.Source.CastingSource"
enum="MediaRouterSourceTypes" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The source of a Media Router session. This is recorded to keep track of what
kind of media is being streamed.
@@ -66563,6 +70747,7 @@ uploading your change for review.
<histogram name="MediaRouter.Source.LocalFileFormat" enum="MediaContainers"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The file format of a local media Media Router session. This is recorded when
a casting session begins to keep track of what kind of media is being
@@ -66573,6 +70758,7 @@ uploading your change for review.
<histogram name="MediaRouter.Source.LocalFileSize" units="MB"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The file size of a local media Media Router session. This is recorded when a
casting session begins to keep track of what kind of media is being
@@ -66584,6 +70770,7 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Action.CloseLatency" units="ms"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken from the user opening the Media Router dialog
to the user closing the dialog. This is only recorded if closing the dialog
@@ -66594,6 +70781,7 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Action.StartLocal.Latency" units="ms"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken from the Media Router dialog showing the sink
list and being populated with at least one device to the user selecting a
@@ -66604,12 +70792,14 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Action.StartLocalPosition"
enum="MediaRouterSinkPositionLabel" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>The index of the sink that was selected in the sink list.</summary>
</histogram>
<histogram name="MediaRouter.Ui.Action.StartLocalSessionSuccessful"
enum="BooleanSuccess" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of times a session was successfully started versus failed.
</summary>
@@ -66618,17 +70808,29 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Action.StopRoute" enum="MediaRouteType"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>The number of times a user stops different types of routes.</summary>
</histogram>
<histogram name="MediaRouter.Ui.Device.Count" units="units" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Counts the number of devices known and populated to the Media Router dialog
three seconds after the dialog loads. Always expected to be non-negative.
</summary>
</histogram>
+<histogram name="MediaRouter.Ui.Dialog.IconStateAtOpen"
+ enum="MediaRouterIconState" expires_after="M90">
+ <owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>
+ Whether the Cast toolbar icon is in its ephemeral state (shown only when the
+ feature is active), or is pinned to the toolbar by user pref / admin policy.
+ </summary>
+</histogram>
+
<histogram name="MediaRouter.Ui.Dialog.LoadedWebUiRouteController" units="ms"
expires_after="M77">
<obsolete>
@@ -66636,6 +70838,7 @@ uploading your change for review.
dialog, and the new Views dialog does not have it.
</obsolete>
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds it takes the WebUI route controls in the route
details view to be populated after the view is opened.
@@ -66645,6 +70848,7 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Dialog.LoadedWithData" units="ms"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken from the user click to open the Media Router
dialog to initializing the dialog with data.
@@ -66653,6 +70857,7 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Dialog.Paint" units="ms" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
Duration in milliseconds taken from a user click to open the Media Router
dialog to the initial paint.
@@ -66662,11 +70867,24 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.FirstAction" enum="MediaRouterUserAction"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The first action taken by the user after opening the Media Router dialog.
</summary>
</histogram>
+<histogram name="MediaRouter.Ui.IconStateAtInit" enum="MediaRouterIconState"
+ expires_after="2020-12-01">
+ <owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>
+ Whether the Cast toolbar icon is in its ephemeral state (shown only when the
+ feature is active), or is pinned to the toolbar by user pref / admin policy.
+ Recorded whenever the browser is initialized for a regular (not incognito or
+ guest) profile.
+ </summary>
+</histogram>
+
<histogram name="MediaRouter.Ui.InitialState" enum="MediaRouterInitialViews"
expires_after="M77">
<obsolete>
@@ -66674,6 +70892,7 @@ uploading your change for review.
Cast dialog opened in sink list view or route details view.
</obsolete>
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The view that was shown when the Media Router dialog is initially opened.
</summary>
@@ -66682,6 +70901,7 @@ uploading your change for review.
<histogram name="MediaRouter.Ui.Navigate.SourceSelection"
enum="MediaRouterSourceTypes" expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of times the user selects a specific cast source type.
</summary>
@@ -66690,6 +70910,7 @@ uploading your change for review.
<histogram name="MediaRouter.WiredDisplay.AvailableDevicesCount" units="units"
expires_after="M85">
<owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
<summary>
The number of Media Sinks available for Casting a Presentation API URL to
local screens. Recorded at most once an hour, when the Wired Display Media
@@ -67677,7 +71898,7 @@ uploading your change for review.
<histogram
name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtIntervention"
- units="seconds">
+ units="seconds" expires_after="M80">
<obsolete>
Deprecated 1/2019 because RendererTimeSinceLastNavigationAtDetection
replaced this metric by expanding coverage to include detection-only mode.
@@ -67789,6 +72010,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Memory.Experimental.Renderer.HighestPrivateMemoryFootprint"
+ units="MB" expires_after="2020-12-31">
+ <owner>tasak@google.com</owner>
+ <owner>bartekn@google.com</owner>
+ <summary>
+ The highest private memory footprint of a renderer process in [X mins after
+ the first page navigation, Y mins after the first page navigation]. [X, Y]
+ is [0, 2], [2, 4], [4, 8], and [8, 16]. The metric is recorded at the Y's
+ timing.
+ </summary>
+</histogram>
+
<histogram name="Memory.Experimental.Renderer.LoadsInMainFrameDuringUptime"
units="loads" expires_after="M77">
<owner>keishi@chromium.org</owner>
@@ -67798,6 +72031,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="Memory.Experimental.Renderer.PeakResidentSet.AtHighestPrivateMemoryFootprint"
+ units="MB" expires_after="2020-12-31">
+ <owner>tasak@google.com</owner>
+ <owner>bartekn@google.com</owner>
+ <summary>
+ The peak RSS size(VmHMW) of a render process when the highest private memory
+ footprint is observed after the first navigation start.
+ </summary>
+</histogram>
+
<histogram name="Memory.Experimental.Renderer.PrivateMemoryFootprint.MacOS"
units="MB" expires_after="2018-01-03">
<obsolete>
@@ -67827,6 +72071,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="Memory.Experimental.Renderer.WebpageCount.AtHighestPrivateMemoryFootprint"
+ units="counts" expires_after="2020-12-31">
+ <owner>tasak@google.com</owner>
+ <owner>bartekn@google.com</owner>
+ <summary>
+ The number of webpages when the highest private memory footprint of renderer
+ process is observed after the first navigation start.
+ </summary>
+</histogram>
+
<histogram base="true" name="Memory.Experimental.Renderer2" units="MB"
expires_after="2020-04-05">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
@@ -67862,7 +72117,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.Experimental.SwapOutPerSecond" units="swaps/s">
+<histogram name="Memory.Experimental.SwapOutPerSecond" units="swaps/s"
+ expires_after="M80">
<obsolete>
Deprecated June 2019.
</obsolete>
@@ -68155,9 +72411,8 @@ uploading your change for review.
<owner>jonross@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
- The maximum amount of memory of the GPU process, when one of a tab switch,
- page load or scroll occurs. Currently only tab switching has been
- implemented.
+ The maximum amount of memory of the GPU process during a particular
+ interaction (e.g. tab-switch, page-load, scroll etc.).
</summary>
</histogram>
@@ -68546,7 +72801,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.ParkableString.CompressionRatio" units="%">
+<histogram name="Memory.ParkableString.CompressionRatio" units="%"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019. No longer recorded.
</obsolete>
@@ -68632,7 +72888,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.ParkableString.TotalSizeKb" units="KB">
+<histogram name="Memory.ParkableString.TotalSizeKb" units="KB"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019. No longer recorded.
</obsolete>
@@ -69045,7 +73302,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.Stats.Win.AvailPageFile2" units="MB">
+<histogram name="Memory.Stats.Win.AvailPageFile2" units="MB"
+ expires_after="M80">
<obsolete>
Deprecated in 05/2019
</obsolete>
@@ -69156,7 +73414,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.Stats.Win.TotalPhys2" units="MB">
+<histogram name="Memory.Stats.Win.TotalPhys2" units="MB" expires_after="M80">
<obsolete>
Deprecated in 05/2019
</obsolete>
@@ -69183,7 +73441,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Memory.Stats.Win.TotalVirtual2" units="MB">
+<histogram name="Memory.Stats.Win.TotalVirtual2" units="MB" expires_after="M80">
<obsolete>
Deprecated in 05/2019
</obsolete>
@@ -69965,29 +74223,44 @@ uploading your change for review.
</histogram>
<histogram base="true" name="Mobile.DefaultBrowser.BrowserCount" units="units"
- expires_after="2020-04-05">
+ expires_after="never">
<!-- Name completed by histogram_suffixes name="Mobile.DefaultBrowser.Type" -->
+<!-- expires-never: Used to keep track of Android browser ecosystem. -->
+
<owner>dtrainor@chromium.org</owner>
- <summary>Android: The number of browsers installed on the device.</summary>
+ <owner>nyquist@chromium.org</owner>
+ <summary>
+ Android: The number of browsers installed on the device. Logged when a new
+ session is started.
+ </summary>
</histogram>
<histogram name="Mobile.DefaultBrowser.State" enum="MobileDefaultBrowserState"
- expires_after="M77">
+ expires_after="never">
+<!-- expires-never: Used to keep track of Android browser ecosystem. -->
+
<owner>dtrainor@chromium.org</owner>
+ <owner>nyquist@chromium.org</owner>
<summary>
Android: Whether or not the device has a default browser and whether or not
- it is a system installed browser.
+ it is a system installed browser. Logged when a new session is started.
</summary>
</histogram>
<histogram base="true" name="Mobile.DefaultBrowser.SystemBrowserCount"
- units="units" expires_after="2020-04-05">
+ units="units" expires_after="never">
<!-- Name completed by histogram_suffixes
name="Mobile.DefaultBrowser.SystemDefaultBrowser.Type" -->
+<!-- expires-never: Used to keep track of Android browser ecosystem. -->
+
<owner>dtrainor@chromium.org</owner>
- <summary>Android: The number of system installed browsers.</summary>
+ <owner>nyquist@chromium.org</owner>
+ <summary>
+ Android: The number of system installed browsers. Logged when a new session
+ is started.
+ </summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Badge.Tapped"
@@ -70098,6 +74371,36 @@ uploading your change for review.
<summary>Records the context when a Password Modal was presented.</summary>
</histogram>
+<histogram name="Mobile.Messages.Translate.Banner.Event"
+ enum="MobileMessagesTranslateBannerEvent" expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records the context when an iOS user taps on a Translate Banner Action
+ Button.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Messages.Translate.Modal.Event"
+ enum="MobileMessagesTranslateModalEvent" expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records when an iOS user initiates an Translate specific Infobar Modal
+ event.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Messages.Translate.Modal.Present"
+ enum="MobileMessagesTranslateModalPresent" expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records the context when an iOS user initiates a Translate Modal
+ presentation.
+ </summary>
+</histogram>
+
<histogram name="Mobile.RecentTabsManager.TotalTabsFromOtherDevicesOpenAll"
units="count" expires_after="2022-04-19">
<owner>sczs@chromium.org</owner>
@@ -70109,7 +74412,7 @@ uploading your change for review.
</histogram>
<histogram name="Mobile.Splash.TranslucencyRemovalFailed" enum="Boolean"
- expires_after="M80">
+ expires_after="M86">
<owner>pshmakov@chromium.org</owner>
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -70339,7 +74642,7 @@ uploading your change for review.
</histogram>
<histogram name="MobileDownload.FirstBackground.InterruptionCount"
- units="interruptions" expires_after="2019-12-05">
+ units="interruptions" expires_after="2020-04-05">
<owner>hnakashima@chromium.org</owner>
<owner>hanxi@chromium.org</owner>
<owner>qinmin@chromium.org</owner>
@@ -70350,7 +74653,7 @@ uploading your change for review.
</histogram>
<histogram name="MobileDownload.FirstBackground.Reason" enum="InterruptReason"
- expires_after="2019-12-05">
+ expires_after="2020-04-05">
<owner>hnakashima@chromium.org</owner>
<owner>hanxi@chromium.org</owner>
<owner>qinmin@chromium.org</owner>
@@ -70504,7 +74807,7 @@ uploading your change for review.
</histogram>
<histogram name="MobileFre.PrivacyLinkTappedStatus"
- enum="MobileFreLinkTappedStatus">
+ enum="MobileFreLinkTappedStatus" expires_after="M82">
<owner>justincohen@chromium.org</owner>
<summary>
iOS: Records the status of the privacy page after user taps on the privacy
@@ -70603,7 +74906,9 @@ uploading your change for review.
</histogram>
<histogram name="MobileIntent.PageLoadDueToExternalApp" enum="ClientAppId"
- expires_after="2020-04-05">
+ expires_after="never">
+<!-- expires-never: Navigation (external-apps) heartbeat metric for Android. -->
+
<owner>tedchoc@chromium.org</owner>
<summary>
Android: Count of page loads started by intents from external apps.
@@ -70767,7 +75072,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="MobileStartup.MobileMultiWindowInstances" units="units">
+<histogram name="MobileStartup.MobileMultiWindowInstances" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -70783,7 +75089,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="MobileStartup.MobileMultiWindowSession" units="%">
+<histogram name="MobileStartup.MobileMultiWindowSession" units="%"
+ expires_after="M80">
<obsolete>
Deprecated 7/2019. No longer tracked.
</obsolete>
@@ -71328,7 +75635,7 @@ uploading your change for review.
</histogram>
<histogram name="MPArch.ChildProcessLaunchSubsequent" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ppi@chromium.org</owner>
<summary>
The time it takes to spawn child sub processes not counting the first one.
@@ -71479,7 +75786,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiDevice.BetterTogetherSuite.MultiDeviceFeatureState"
- enum="MultiDevice_FeatureState" expires_after="2020-02-16">
+ enum="MultiDevice_FeatureState" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71525,7 +75832,7 @@ uploading your change for review.
<histogram
name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Disable.FailedFeature"
- enum="MultiDevice_DeviceSyncService_Features" expires_after="2020-02-16">
+ enum="MultiDevice_DeviceSyncService_Features" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71535,7 +75842,7 @@ uploading your change for review.
<histogram
name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Enable.FailedFeature"
- enum="MultiDevice_DeviceSyncService_Features" expires_after="2020-02-16">
+ enum="MultiDevice_DeviceSyncService_Features" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>Breaks down which features failed when attempted to enable.</summary>
@@ -71551,7 +75858,7 @@ uploading your change for review.
<histogram
name="MultiDevice.DeviceSyncService.SetSoftwareFeatureState.Result.FailureReason"
enum="MultiDevice_DeviceSyncService_DeviceSyncRequestFailureReason"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71600,7 +75907,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.Performance.ConnectionToAuthenticationDuration.Background"
- units="ms" expires_after="2020-02-23">
+ units="ms" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71616,7 +75923,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.Performance.ReceiveAdvertisementToConnectionDuration.Background"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71632,7 +75939,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.Performance.StartScanToAuthenticationDuration.Background"
- units="ms" expires_after="2020-03-29">
+ units="ms" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71649,7 +75956,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.Performance.StartScanToConnectionDuration.Background"
- units="ms" expires_after="2020-03-08">
+ units="ms" expires_after="2020-05-10">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71665,7 +75972,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.Performance.StartScanToReceiveAdvertisementDuration.Background"
- units="ms" expires_after="2020-03-01">
+ units="ms" expires_after="2020-05-03">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71681,7 +75988,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.ReceiveAdvertisementToAuthentication.EffectiveSuccessRateWithRetries"
- enum="BooleanSuccess" expires_after="2020-03-29">
+ enum="BooleanSuccess" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71693,7 +76000,7 @@ uploading your change for review.
<histogram
name="MultiDevice.SecureChannel.BLE.ReceiveAdvertisementToGattConnection.EffectiveSuccessRateWithRetries"
- enum="BooleanSuccess" expires_after="2020-03-29">
+ enum="BooleanSuccess" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71704,7 +76011,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiDevice.Setup.HostStatus"
- enum="MultiDevice_Setup_HostStatus" expires_after="2020-03-01">
+ enum="MultiDevice_Setup_HostStatus" expires_after="2020-05-24">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<summary>
@@ -71724,7 +76031,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiDeviceSetup.OOBE.UserChoice"
- enum="MultiDeviceSetupOOBEUserChoice" expires_after="2020-03-29">
+ enum="MultiDeviceSetupOOBEUserChoice" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<owner>khorimoto@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
@@ -71797,7 +76104,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiProfile.SigninUserUIPath"
- enum="MultiProfileSigninUserAction" expires_after="2020-03-29">
+ enum="MultiProfileSigninUserAction" expires_after="2020-05-31">
<owner>skuhne@chromium.org</owner>
<summary>
Count the number of times each UI path is taken for signing into a new
@@ -71807,7 +76114,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiProfile.SwitchActiveUserUIPath"
- enum="MultiProfileSwitchActiveUserAction" expires_after="2020-03-08">
+ enum="MultiProfileSwitchActiveUserAction" expires_after="2020-05-10">
<owner>skuhne@chromium.org</owner>
<summary>
Count the number of times each UI path is taken for switching the active
@@ -71831,7 +76138,7 @@ uploading your change for review.
</histogram>
<histogram name="MultiProfile.TeleportWindowType"
- enum="MultiProfileTeleportWindowType" expires_after="2020-03-29">
+ enum="MultiProfileTeleportWindowType" expires_after="2020-05-31">
<owner>skuhne@chromium.org</owner>
<summary>
Counts the number of teleported windows by types in separated desktop mode.
@@ -71862,8 +76169,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="NaCl.AppType" enum="NaClAppTypeEnum"
+ expires_after="2020-12-31">
+ <owner>dschuff@chromium.org</owner>
+ <owner>adamk@chromium.org</owner>
+ <owner>bbudge@chromium.org</owner>
+ <summary>
+ Type of NaCl/PNaCl application/extension. Recorded at plugin creation time
+ after the permission check.
+ </summary>
+</histogram>
+
<histogram name="NaCl.Client.Helper.InitState" enum="NaClHelperStatus"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71873,7 +76191,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Client.Helper.StateOnFork" enum="NaClHelperStatus"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71891,7 +76209,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.HttpStatusCodeClass.Manifest.InstalledApp"
- enum="NaClHttpStatusCodeClass" expires_after="2019-12-31">
+ enum="NaClHttpStatusCodeClass" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71913,7 +76231,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.HttpStatusCodeClass.Nexe.InstalledApp"
- enum="NaClHttpStatusCodeClass" expires_after="2019-12-31">
+ enum="NaClHttpStatusCodeClass" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71924,7 +76242,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.HttpStatusCodeClass.Nexe.NotInstalledApp"
- enum="NaClHttpStatusCodeClass" expires_after="2019-12-31">
+ enum="NaClHttpStatusCodeClass" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71935,7 +76253,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.Plugin" enum="NaClPluginErrorCode"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71943,7 +76261,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.Plugin.InstalledApp"
- enum="NaClPluginErrorCode" expires_after="2019-12-31">
+ enum="NaClPluginErrorCode" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71954,7 +76272,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.Plugin.NotInstalledApp"
- enum="NaClPluginErrorCode" expires_after="2019-12-31">
+ enum="NaClPluginErrorCode" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71965,7 +76283,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.SelLdr" enum="NaClSelLdrErrorCode"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71973,7 +76291,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.SelLdr.InstalledApp"
- enum="NaClSelLdrErrorCode" expires_after="2019-12-31">
+ enum="NaClSelLdrErrorCode" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71983,7 +76301,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.LoadStatus.SelLdr.NotInstalledApp"
- enum="NaClSelLdrErrorCode" expires_after="2019-12-31">
+ enum="NaClSelLdrErrorCode" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -71993,7 +76311,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Manifest.IsDataURI" enum="NaClManifestType"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72013,7 +76331,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="NaCl.ModuleUptime.Crash" units="ms" expires_after="2019-12-31">
+<histogram name="NaCl.ModuleUptime.Crash" units="ms" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72021,7 +76339,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.ModuleUptime.Normal" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72074,7 +76392,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Options.PNaCl.OptLevel" enum="PNaClOptionsOptLevelEnum"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72103,7 +76421,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.CompileKBPerSec" units="KB/s"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72114,7 +76432,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.CompileTime" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72125,7 +76443,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.LinkTime" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72136,7 +76454,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.LoadCompiler" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72146,7 +76464,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.LoadLinker" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72156,7 +76474,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.PctCompiledWhenFullyDownloaded"
- units="%" expires_after="2019-12-31">
+ units="%" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72168,7 +76486,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedKBPerSec" units="KB/s"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72180,7 +76498,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.PNaClLoadTime.TotalUncachedTime" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72191,21 +76509,21 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.ShutdownTime.Total" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
<summary>The time it took the NaCl module to shut down.</summary>
</histogram>
-<histogram name="NaCl.Perf.Size.Manifest" units="KB" expires_after="2019-12-31">
+<histogram name="NaCl.Perf.Size.Manifest" units="KB" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
<summary>The size of the manifest file.</summary>
</histogram>
-<histogram name="NaCl.Perf.Size.Nexe" units="KB" expires_after="2019-12-31">
+<histogram name="NaCl.Perf.Size.Nexe" units="KB" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72214,7 +76532,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="NaCl.Perf.Size.Pexe" units="KB" expires_after="2019-12-31">
+<histogram name="NaCl.Perf.Size.Pexe" units="KB" expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72225,7 +76543,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.Size.PexeNexeSizePct" units="%"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72236,7 +76554,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.Size.PNaClTranslatedNexe" units="KB"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72248,7 +76566,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.LoadModule" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72256,7 +76574,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.LoadModulePerMB" units="milliseconds/MB"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72267,7 +76585,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.ManifestDownload" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72277,7 +76595,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.NaClOverhead" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72302,7 +76620,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.NexeDownload" units="ms"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72333,7 +76651,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.Perf.StartupTime.TotalPerMB" units="milliseconds/MB"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72358,7 +76676,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.ValidationCache.Query" enum="NaClValidationCacheEnum"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72368,7 +76686,7 @@ uploading your change for review.
</histogram>
<histogram name="NaCl.ValidationCache.Set" enum="NaClValidationCacheEnum"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>dschuff@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>bbudge@chromium.org</owner>
@@ -72621,7 +76939,11 @@ uploading your change for review.
</histogram>
<histogram name="Navigation.ClientRedirectCycle.RedirectToReferrer"
- enum="Boolean" expires_after="M82">
+ enum="Boolean" expires_after="M79">
+ <obsolete>
+ Deprecated 11/2019 in favor of
+ Previews.DeferAllScript.RedirectLoopDetectedUsingCache.
+ </obsolete>
<owner>dougarnett@chromium.org</owner>
<summary>
Records when a client redirect cycle that is directly back to the referrer
@@ -72845,7 +77167,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Navigation.Intercept.Ignored" enum="Boolean">
+<histogram name="Navigation.Intercept.Ignored" enum="Boolean"
+ expires_after="M80">
<obsolete>
Deprecated May 2019
</obsolete>
@@ -72856,7 +77179,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Navigation.Intercept.WillStart" units="microseconds">
+<histogram name="Navigation.Intercept.WillStart" units="microseconds"
+ expires_after="M80">
<obsolete>
Deprecated May 2019
</obsolete>
@@ -72982,9 +77306,10 @@ uploading your change for review.
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chormium.org</owner>
<summary>
- The maximum number of frames that are present in a WebContents. Recorded
- once when the main frame is moving away from current page. This can be when
- the main frame is being destroyed or when it starts loading new content.
+ 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
+ be when the WebContents is being destroyed or when it starts loading new
+ content.
</summary>
</histogram>
@@ -73178,7 +77503,11 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Navigation.Renderer.ReadyToCommitUntilCommit" units="ms">
+<histogram name="Navigation.Renderer.ReadyToCommitUntilCommit" units="ms"
+ expires_after="M80">
+ <obsolete>
+ Removed October 2019
+ </obsolete>
<owner>arthursonzogni@chromium.org</owner>
<owner>clamy@chromium.org</owner>
<owner>nasko@chromium.org</owner>
@@ -73213,7 +77542,7 @@ uploading your change for review.
<histogram
name="Navigation.ResourceHandler.ProceedWithResponseUntilFirstReadCompleted"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Obsolete as of 06/2018.
</obsolete>
@@ -73228,7 +77557,7 @@ uploading your change for review.
<histogram
name="Navigation.ResourceHandler.ResponseStartedUntilProceedWithResponse"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Obsolete as of 06/2018.
</obsolete>
@@ -73473,7 +77802,10 @@ uploading your change for review.
</histogram>
<histogram base="true" name="NavigationPredictor.AccuracyActionTaken"
- enum="NavigationPredictorAccuracyActionTaken">
+ enum="NavigationPredictorAccuracyActionTaken" expires_after="M80">
+ <obsolete>
+ Deprecated 10/2019 Milestone 80.
+ </obsolete>
<owner>tbansal@chromium.org</owner>
<summary>
Tracks the accuracy of the action taken by navigation predictor. Recorded at
@@ -73490,6 +77822,50 @@ uploading your change for review.
</summary>
</histogram>
+<histogram base="true" name="NavigationPredictor.CountOfStartedPrerenders"
+ units="count" expires_after="M85">
+ <owner>tbansal@chromium.org</owner>
+ <owner>ryansturm@chromium.org</owner>
+ <summary>
+ Reports data about the clicked link with regards to whether it was
+ prerendered by the Navigation Predictor. Recorded when the page is navigated
+ away from.
+ </summary>
+</histogram>
+
+<histogram base="true" name="NavigationPredictor.CountOfURLsAboveThreshold"
+ units="count" expires_after="M85">
+ <owner>tbansal@chromium.org</owner>
+ <owner>ryansturm@chromium.org</owner>
+ <summary>
+ Reports data about the clicked link with regards to whether it was
+ prerendered by the Navigation Predictor. Recorded when the page is navigated
+ away from.
+ </summary>
+</histogram>
+
+<histogram base="true" name="NavigationPredictor.CountOfURLsInPredictedSet"
+ units="count" expires_after="M85">
+ <owner>tbansal@chromium.org</owner>
+ <owner>ryansturm@chromium.org</owner>
+ <summary>
+ Reports data about the clicked link with regards to whether it was
+ prerendered by the Navigation Predictor. Recorded when the page is navigated
+ away from.
+ </summary>
+</histogram>
+
+<histogram base="true" name="NavigationPredictor.LinkClickedPrerenderResult"
+ enum="NavigationPredictorLinkClickedPrerenderResult" expires_after="M85">
+ <owner>ryansturm@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Reports data about the clicked link with regards to whether it was
+ prerendered by the Navigation Predictor. Recorded when the user clicks a
+ link.
+ </summary>
+</histogram>
+
<histogram name="NavigationSuggestion.Event" enum="NavigationSuggestionEvent">
<owner>meacer@chromium.org</owner>
<summary>
@@ -74476,7 +78852,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.AlternativeServiceServers.MorePrefsEntries" units="units">
+<histogram name="Net.AlternativeServiceServers.MorePrefsEntries" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 2019/8.
</obsolete>
@@ -74664,7 +79041,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.AutoReload.ErrorAtFirstSuccess" enum="NetErrorCodes">
+<histogram name="Net.AutoReload.ErrorAtFirstSuccess" enum="NetErrorCodes"
+ expires_after="M80">
<obsolete>
Deprecated and removed 06/2019.
</obsolete>
@@ -75035,7 +79413,7 @@ uploading your change for review.
<histogram
name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus"
- enum="CTComplianceStatus">
+ enum="CTComplianceStatus" expires_after="M80">
<obsolete>
Deprecated Nov 2017, replaced with
Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2
@@ -75054,7 +79432,7 @@ uploading your change for review.
<histogram
name="Net.CertificateTransparency.CTRequiredConnectionComplianceStatus.SSL"
- enum="CTComplianceStatus">
+ enum="CTComplianceStatus" expires_after="M80">
<obsolete>
Deprecated Nov 2017, replaced with
Net.CertificateTransparency.CTRequiredConnectionComplianceStatus2
@@ -76156,7 +80534,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.DailyContentLength" units="KB">
+<histogram name="Net.DailyContentLength" units="KB" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76168,7 +80546,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.DailyContentLength_DataReductionProxyEnabled" units="KB">
+<histogram name="Net.DailyContentLength_DataReductionProxyEnabled" units="KB"
+ expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76183,7 +80562,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_Https"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76212,7 +80591,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.DailyContentLength_DataReductionProxyEnabled_ShortBypass"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76244,7 +80623,7 @@ uploading your change for review.
<histogram
name="Net.DailyContentLength_DataReductionProxyEnabled_UnknownBypass"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76304,7 +80683,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_LongBypass"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76319,7 +80698,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.DailyContentPercent_DataReductionProxyEnabled_ShortBypass"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76378,7 +80757,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.DailyContentSavingPercent_DataReductionProxyEnabled"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Removed; refer to Experimental.Bytes.Network
</obsolete>
@@ -76833,6 +81212,85 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="Net.DNS.DnsTransaction.EsniTask.EsniTransactionEndToEndElapsed"
+ units="ms" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ Total time elapsed from the beginning of ESNI-type DnsTasks to the
+ completion of ESNI-type DnsTransactions executed during these tasks.
+ Recorded only for DnsTasks specifically with DnsQueryType::ESNI, i.e. *not*
+ for those made during the normal built-in resolver flow.
+ </summary>
+</histogram>
+
+<histogram name="Net.DNS.DnsTransaction.EsniUnspecTask.EsniMinusNonEsni"
+ units="ms" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ For an UNSPECIFIED-type DnsTask, the total end-to-end elapsed time from the
+ beginning of the task to the completion of its final ESNI-type
+ DnsTransaction, minus the total end-to-end elapsed time to the completion of
+ the task's final non-ESNI-type transaction. Recorded only when the built-in
+ resolver is configured to make ESNI queries alongside A and AAAA queries,
+ and only when the task's ESNI transaction finishes after its final non-ESNI
+ transaction.
+ </summary>
+</histogram>
+
+<histogram
+ name="Net.DNS.DnsTransaction.EsniUnspecTask.EsniTransactionEndToEndElapsed"
+ units="ms" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ Total time elapsed from the beginning of a DnsTask to the completion of an
+ ESNI transaction. Recorded only when the built-in resolver is configured to
+ make ESNI queries alongside A and AAAA queries.
+ </summary>
+</histogram>
+
+<histogram name="Net.DNS.DnsTransaction.EsniUnspecTask.NonEsniEndToEndElapsed"
+ units="ms" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ Total time elapsed from the beginning of an UNSPECIFIED-type DnsTask to the
+ completion of its final non-ESNI-type DnsTransaction. Recorded only when the
+ built-in resolver is configured to make ESNI queries alongside A and AAAA
+ queries.
+ </summary>
+</histogram>
+
+<histogram name="Net.DNS.DnsTransaction.EsniUnspecTask.NonEsniMinusEsni"
+ units="ms" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ For an UNSPECIFIED-type DnsTask, the total end-to-end elapsed time from the
+ beginning of the task to the completion of its final non-ESNI-type
+ DnsTransaction, minus the total end-to-end elapsed time to the completion of
+ the task's final ESNI-type transaction. Recorded only when the built-in
+ resolver is configured to make ESNI queries alongside A and AAAA queries,
+ and only when the task's final non-ESNI transaction finishes no earlier than
+ its ESNI transaction.
+ </summary>
+</histogram>
+
+<histogram name="Net.DNS.DnsTransaction.EsniUnspecTask.SuccessOrTimeout"
+ enum="SuccessTimeoutStarted" expires_after="M82">
+ <owner>davidvc@chromium.org</owner>
+ <owner>ericorth@chromium.org</owner>
+ <summary>
+ Records successful completions and DnsTask-level timeout cancellations of
+ ESNI (TLS 1.3 Encrypted Server Name Indication, Draft 4)-type DNS
+ transactions. Recorded only when the built-in resolver is configured to make
+ ESNI queries alongside A and AAAA queries.
+ </summary>
+</histogram>
+
<histogram base="true" name="Net.DNS.DnsTransaction.Insecure.FailureTime"
units="ms" expires_after="M81">
<!-- Name completed by histogram_suffixes
@@ -77047,7 +81505,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.DNS.RecordParser.DomainNameLength" units="octets">
+<histogram name="Net.DNS.RecordParser.DomainNameLength" units="octets"
+ expires_after="M80">
<obsolete>
Deprecated 8/2019.
</obsolete>
@@ -77221,7 +81680,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram base="true" name="Net.DNS.TotalTimeTyped" units="ms">
+<histogram base="true" name="Net.DNS.TotalTimeTyped" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 9/2019.
</obsolete>
@@ -77645,7 +82105,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksShown"
- enum="NetErrorNavigationCorrectionTypes" expires_after="M80">
+ enum="NetErrorNavigationCorrectionTypes" expires_after="M86">
<owner>edwardjung@chromium.org</owner>
<summary>
Counts of the type of navigation correction suggestions shown on the network
@@ -77654,7 +82114,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.ErrorPageCounts.NavigationCorrectionLinksUsed"
- enum="NetErrorNavigationCorrectionTypes" expires_after="M80">
+ enum="NetErrorNavigationCorrectionTypes" expires_after="M86">
<owner>edwardjung@chromium.org</owner>
<summary>
Usage of navigation correction suggestions shown on the network error page.
@@ -78583,7 +83043,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.HttpRequestCompletionErrorCodes" enum="NetErrorCodes">
+<histogram name="Net.HttpRequestCompletionErrorCodes" enum="NetErrorCodes"
+ expires_after="M80">
<obsolete>
Removed in M79.
</obsolete>
@@ -78909,7 +83370,7 @@ uploading your change for review.
<histogram
name="Net.JobControllerSet.CountOfJobController.NonPreconnect.PendingRequest"
- units="job_controllers">
+ units="job_controllers" expires_after="M80">
<obsolete>
Deprecated 01/2018.
</obsolete>
@@ -78922,7 +83383,7 @@ uploading your change for review.
<histogram
name="Net.JobControllerSet.CountOfJobController.NonPreconnect.RequestGone"
- units="job_controllers">
+ units="job_controllers" expires_after="M80">
<obsolete>
Deprecated 01/2018.
</obsolete>
@@ -79017,6 +83478,13 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.KeepaliveRequest.Result" enum="KeepaliveRequestResult"
+ expires_after="2020-06-30">
+ <owner>yhirano@chromium.org</owner>
+ <owner>kinuko@chromium.org</owner>
+ <summary>The end state of keepalive request.</summary>
+</histogram>
+
<histogram name="Net.KeepaliveRequest.UrlPlusHeadersSize" units="bytes"
expires_after="2020-06-30">
<owner>yhirano@chromium.org</owner>
@@ -79222,7 +83690,10 @@ uploading your change for review.
</histogram>
<histogram name="Net.NetworkErrorLogging.RequestOutcome"
- enum="NetNetworkErrorLoggingRequestOutcome">
+ enum="NetNetworkErrorLoggingRequestOutcome" expires_after="M80">
+ <obsolete>
+ Deprecated 11/2019 for cleanup. https://crbug.com/1007122
+ </obsolete>
<owner>chlily@chromium.org</owner>
<summary>
When Network Error Logging observes a completed request that might generate
@@ -79539,7 +84010,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.PreconnectSkippedToProxyServers" units="count">
+<histogram name="Net.PreconnectSkippedToProxyServers" units="count"
+ expires_after="M80">
<obsolete>
Deprecated September 2019
</obsolete>
@@ -80317,6 +84789,34 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicChromiumPacketReader.ShouldStopReadingInLoop"
+ enum="BooleanHit" expires_after="M82">
+ <obsolete>
+ Deprecated 11/2019, associated bug is root-caused and fixed.
+ </obsolete>
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rch@chromium.org</owner>
+ <summary>
+ The number of times that QuicChromiumPacketReader should stop reading in the
+ loop at StartReading. This data will be compared against crashes and help
+ investigate https://crbug.com/1014092.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicChromiumPacketReader.ShouldStopReadingOnReadComplete"
+ enum="BooleanHit" expires_after="M82">
+ <obsolete>
+ Deprecated 11/2019, associated bug is root-caused and fixed.
+ </obsolete>
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rch@chromium.org</owner>
+ <summary>
+ The number of times that QuicChromiumPacketReader should stop reading after
+ finishing the previous read. This data will be compared against crashes and
+ help investigate https://crbug.com/1014092.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicClientHelloRejectReasons" enum="QuicRejectReasons">
<owner>rch@chromium.org</owner>
<summary>
@@ -80510,11 +85010,21 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicNetworkDegradingDurationTillConnected" units="ms"
+ expires_after="M82">
+ <owner>zhongyi@chromium.org</owner>
+ <owner>rch@chromium.org</owner>
+ <summary>
+ Time from when QUIC detects performance degradation on the current network
+ to when QUIC notices a new network is connected.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicNetworkDegradingDurationTillDisconnected" units="ms">
<owner>zhongyi@chromium.org</owner>
<summary>
- The time from QUIC detecting network performance degradation to network
- disconnection.
+ Time from when QUIC detects performance degradation on the current network
+ to when QUIC notices the current network is disconnected.
</summary>
</histogram>
@@ -81060,6 +85570,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicSession.FreshDnsResolutionTime" units="ms"
+ expires_after="2020-06-30">
+ <owner>renjietang@chromium.org</owner>
+ <owner>zhongyi@chromium.org</owner>
+ <summary>
+ The time for a fresh DNS resolution from DoResolveHost to having a fresh DNS
+ result.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.GapBetweenWriteErrorAndNetworkDisconnection"
units="ms">
<owner>zhongyi@chromium.org</owner>
@@ -81127,6 +85647,42 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicSession.HeaderCompressionRatioHpackReceived" units="%"
+ expires_after="2020-10-08">
+ <owner>bnc@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ Header compression ratio as percentage for received headers using HPACK.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.HeaderCompressionRatioHpackSent" units="%"
+ expires_after="2020-10-08">
+ <owner>bnc@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ Header compression ratio as percentage for sent headers using HPACK.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.HeaderCompressionRatioQpackReceived" units="%"
+ expires_after="2020-10-08">
+ <owner>bnc@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ Header compression ratio as percentage for received headers using QPACK.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.HeaderCompressionRatioQpackSent" units="%"
+ expires_after="2020-10-08">
+ <owner>bnc@chromium.org</owner>
+ <owner>src/net/quic/OWNERS</owner>
+ <summary>
+ Header compression ratio as percentage for sent headers using QPACK.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.HeadersHOLBlockedTime" units="Milliseconds"
expires_after="2018-05-09">
<obsolete>
@@ -81685,6 +86241,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicSession.StaleConnectionTime" units="ms"
+ expires_after="2020-06-30">
+ <owner>renjietang@chromium.org</owner>
+ <owner>zhongyi@chromium.org</owner>
+ <summary>
+ The time a QUIC connection from invalid stale dns result takes to do Crypto
+ handshake. This starts on DoConnect and ends when the connection finishes.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.StaleHostRacing" enum="Boolean">
<owner>renjietang@chromium.org</owner>
<summary>True if the stale host is used in racing connection.</summary>
@@ -81887,6 +86453,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Net.QuicSession.ValidConnectionTime" units="ms"
+ expires_after="2020-06-30">
+ <owner>renjietang@chromium.org</owner>
+ <owner>zhongyi@chromium.org</owner>
+ <summary>
+ The time a QUIC connection that will be confirmed takes for Crypto
+ handshake. The event starts on DoConnect, and ends when the connection
+ finishes.
+ </summary>
+</histogram>
+
<histogram name="Net.QuicSession.VerifyProofTime" units="ms">
<owner>rch@chromium.org</owner>
<summary>
@@ -82531,6 +87108,30 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="Net.SameSiteBlockedCookieSiteEngagement.CookieInsecureAndSameSiteNone"
+ enum="SiteEngagementLevel" expires_after="2020-12-31">
+ <owner>chlily@chromium.org</owner>
+ <owner>morlovich@chromium.org</owner>
+ <summary>
+ The site engagement level of a frame that triggers the
+ CookieInsecureAndSameSiteNone warning, whether the cookie was actually
+ blocked or not. Recorded every time one or more cookies triggers the
+ warning.
+ </summary>
+</histogram>
+
+<histogram name="Net.SameSiteBlockedCookieSiteEngagement.CookieNoSameSite"
+ enum="SiteEngagementLevel" expires_after="2020-12-31">
+ <owner>chlily@chromium.org</owner>
+ <owner>morlovich@chromium.org</owner>
+ <summary>
+ The site engagement level of a frame that triggers the CookieNoSameSite
+ warning, whether the cookie was actually blocked or not. Recorded every time
+ one or more cookies triggers the warning.
+ </summary>
+</histogram>
+
<histogram name="Net.Socket.IdleSocketFate" enum="IdleSocketFate"
expires_after="2017-09-21">
<obsolete>
@@ -82941,7 +87542,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.SpdyRecvBytes" units="bytes">
+<histogram name="Net.SpdyRecvBytes" units="bytes" expires_after="M80">
<obsolete>
Deprecated because it took up too much space and nobody used it.
</obsolete>
@@ -82960,7 +87561,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.SpdySendBytes" units="bytes">
+<histogram name="Net.SpdySendBytes" units="bytes" expires_after="M80">
<obsolete>
Deprecated because it took up too much space and nobody used it.
</obsolete>
@@ -83193,7 +87794,7 @@ uploading your change for review.
<summary>Percentage of sessions which sent settings to the server.</summary>
</histogram>
-<histogram name="Net.SpdyStreamDownloadTime" units="ms">
+<histogram name="Net.SpdyStreamDownloadTime" units="ms" expires_after="M80">
<obsolete>
Deprecated because it took up too much space and nobody used it.
</obsolete>
@@ -83239,7 +87840,7 @@ uploading your change for review.
<summary>The number of stream stalls per session.</summary>
</histogram>
-<histogram name="Net.SpdyStreamTime" units="ms">
+<histogram name="Net.SpdyStreamTime" units="ms" expires_after="M80">
<obsolete>
Deprecated because it took up too much space and nobody used it.
</obsolete>
@@ -83250,7 +87851,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.SpdyStreamTimeToFirstByte" units="ms">
+<histogram name="Net.SpdyStreamTimeToFirstByte" units="ms" expires_after="M80">
<obsolete>
Deprecated because it took up too much space and nobody used it.
</obsolete>
@@ -83410,7 +88011,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.SSL_Connection_Latency_Full_Handshake" units="ms">
+<histogram name="Net.SSL_Connection_Latency_Full_Handshake" units="ms"
+ expires_after="M80">
<obsolete>
Removed 2019-07-19. No longer tracked.
</obsolete>
@@ -83509,7 +88111,7 @@ uploading your change for review.
<histogram
name="Net.SSL_Connection_Latency_PostQuantumSupported_Full_Handshake"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated as of 2016-12-01.
</obsolete>
@@ -83533,7 +88135,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Net.SSL_Connection_Latency_Resume_Handshake" units="ms">
+<histogram name="Net.SSL_Connection_Latency_Resume_Handshake" units="ms"
+ expires_after="M80">
<obsolete>
Removed 2019-07-19. No longer tracked.
</obsolete>
@@ -83944,7 +88547,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.SSLTLS13Downgrade" enum="BooleanDowngrade"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -83955,7 +88558,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.SSLTLS13DowngradeTLS13Experiment" enum="BooleanDowngrade"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -83967,7 +88570,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.SSLTLS13DowngradeType" enum="TLS13DowngradeType"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -83977,7 +88580,7 @@ uploading your change for review.
</histogram>
<histogram name="Net.SSLTLS13DowngradeTypeTLS13Experiment"
- enum="TLS13DowngradeType" expires_after="2019-12-31">
+ enum="TLS13DowngradeType" expires_after="2020-06-30">
<owner>svaldez@chromium.org</owner>
<owner>davidben@chromium.org</owner>
<summary>
@@ -84537,6 +89140,32 @@ uploading your change for review.
<summary>The time spent in closesocket call in UDPSocketWin::Close.</summary>
</histogram>
+<histogram name="Net.URLRequest.ReferrerHasInformativePath"
+ enum="BooleanPathIsInformative" expires_after="2020-03-30">
+<!-- Name completed by histogram_suffixes name="ReferrerPolicySameOrigin" -->
+
+ <owner>davidvc@chromium.org</owner>
+ <owner>kaustubhag@chromium.org</owner>
+ <summary>
+ Records for each URLRequest whether its referrer contains more information
+ than just its origin (this is the case exactly when it has at least one
+ character apart from a leading slash in its path, e.g. http://example.com/a
+ but not http://example.com/ nor http://example.com).
+ </summary>
+</histogram>
+
+<histogram name="Net.URLRequest.ReferrerPolicyForRequest"
+ enum="URLRequestReferrerPolicy" expires_after="2020-03-30">
+<!-- Name completed by histogram_suffixes name="ReferrerPolicySameOrigin" -->
+
+ <owner>davidvc@chromium.org</owner>
+ <owner>kaustubhag@chromium.org</owner>
+ <summary>
+ Records the distribution of referrer policies provided with outgoing
+ URLRequests, and whether or not the requests were cross-origin.
+ </summary>
+</histogram>
+
<histogram name="Net.URLRequest.ReferrerPolicyHeaderPresentOnRedirect"
enum="BooleanPresent">
<owner>estark@chromium.org</owner>
@@ -86517,8 +91146,9 @@ uploading your change for review.
</histogram>
<histogram name="Network.Shill.PortalDetectionMultiProbeResult"
- enum="PortalDetectionMultiProbeResult" expires_after="2019-12-31">
+ enum="PortalDetectionMultiProbeResult" expires_after="2020-12-31">
<owner>matthewmwang@chromium.org</owner>
+ <owner>cros-network-metrics@google.com</owner>
<summary>
Chrome OS network metric recording portal detection results of both the HTTP
and HTTPS probes. This is recorded every time a portal detection trial
@@ -86841,7 +91471,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Network.Shill.Wifi.ApMode" enum="WiFiApMode">
+<histogram name="Network.Shill.Wifi.ApMode" enum="WiFiApMode"
+ expires_after="M80">
<obsolete>
Deprecated as of 05/2019.
</obsolete>
@@ -87656,7 +92287,7 @@ uploading your change for review.
</histogram>
<histogram name="Network.Shill.Wimax.ExpiredLeaseLengthSeconds2"
- units="seconds">
+ units="seconds" expires_after="M80">
<obsolete>
Wimax support has been dropped from shill since M76.
</obsolete>
@@ -88367,7 +92998,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.ReceivedMessageAction"
- enum="ContentSuggestionsBreakingNewsMessageAction">
+ enum="ContentSuggestionsBreakingNewsMessageAction" expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88381,7 +93012,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.SubscriptionRequestStatus"
- enum="ContentSuggestionsStatusCode">
+ enum="ContentSuggestionsStatusCode" expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88395,7 +93026,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.TimeSinceLastTokenValidation"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88410,7 +93041,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.TokenRetrievalResult"
- enum="InstanceIDResult">
+ enum="InstanceIDResult" expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88424,7 +93055,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.UnsubscriptionRequestStatus"
- enum="ContentSuggestionsStatusCode">
+ enum="ContentSuggestionsStatusCode" expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88438,7 +93069,8 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.BreakingNews.WasTokenValidBeforeValidation"
- enum="ContentSuggestionsBreakingNewsTokenValidationOutcome">
+ enum="ContentSuggestionsBreakingNewsTokenValidationOutcome"
+ expires_after="M80">
<obsolete>
Removed 04/2019. Breaking News feature removed.
</obsolete>
@@ -88488,7 +93120,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.CountOnNtpOpenedIfVisible.Articles.Prefetched.Offline"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated in October 2017 (M63) and replaced by
CountOnNtpOpenedIfVisible.Articles.Prefetched.Offline2, because
@@ -88775,7 +93407,7 @@ uploading your change for review.
<histogram
name="NewTabPage.ContentSuggestions.Shown.Articles.Prefetched.Offline"
- units="index">
+ units="index" expires_after="M80">
<obsolete>
Deprecated in October 2017 (M63) and replaced by
Shown.Articles.Prefetched.Offline2, because underreported. UI checked
@@ -89106,6 +93738,15 @@ uploading your change for review.
<summary>The default pane when the NTP is first opened.</summary>
</histogram>
+<histogram name="NewTabPage.ExploreOffline.Action"
+ enum="NewTabPage.ExploreOffline.Action" expires_after="2020-08-01">
+ <owner>shaktisahu@chromium.org</owner>
+ <owner>clank-downloads@google.com</owner>
+ <summary>
+ Android: Records user actions on the explore offline card on the NTP.
+ </summary>
+</histogram>
+
<histogram name="NewTabPage.Feed.ImageFetchResult" enum="FeedImageFetchResult"
expires_after="2018-10-17">
<obsolete>
@@ -89720,8 +94361,9 @@ uploading your change for review.
</histogram>
<histogram name="NewTabPage.RecentTabsPage.TimeVisibleAndroid" units="ms"
- expires_after="M77">
+ expires_after="M82">
<owner>pkotwicz@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
<summary>
Records the amount of time that the &quot;Recent Tabs&quot; page is visible
and Chrome is in the foreground on Android. The metric is recorded whenever
@@ -89829,7 +94471,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="NewTabPage.SearchSuggestions.RequestLatency" units="ms">
+<histogram name="NewTabPage.SearchSuggestions.RequestLatency" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 2019-03 as it doesn't correctly capture all request states.
</obsolete>
@@ -90677,6 +95320,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Notifications.Announcement.Events"
+ enum="AnnouncementNotificationEvent" expires_after="2020-10-30">
+ <owner>dtrainor@chromium.org</owner>
+ <owner>xingliu@chromium.org</owner>
+ <summary>
+ Records the events when the announcement notification is shown, clicked, or
+ closed.
+ </summary>
+</histogram>
+
<histogram name="Notifications.AppNotificationStatus"
enum="NotificationAppStatus">
<owner>peter@chromium.org</owner>
@@ -90710,7 +95363,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Database.DeleteAllForOriginsResult"
- enum="NotificationDatabaseStatus" expires_after="M80">
+ enum="NotificationDatabaseStatus" expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90771,7 +95424,9 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Database.OpenResult"
- enum="NotificationDatabaseStatus" expires_after="M88">
+ enum="NotificationDatabaseStatus" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90790,7 +95445,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Database.ReadResourcesForTriggeredResult"
- enum="NotificationDatabaseStatus" expires_after="M80">
+ enum="NotificationDatabaseStatus" expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90801,7 +95456,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Database.ReadResourcesResult"
- enum="NotificationDatabaseStatus" expires_after="M80">
+ enum="NotificationDatabaseStatus" expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90832,7 +95487,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Database.WriteTriggeredResult"
- enum="NotificationDatabaseStatus" expires_after="M80">
+ enum="NotificationDatabaseStatus" expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90871,7 +95526,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.ExtensionNotificationActionCount"
- units="buttons" expires_after="M80">
+ units="buttons" expires_after="M86">
<owner>dewittj@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90898,7 +95553,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.ExtensionNotificationType"
- enum="ExtensionNotificationType" expires_after="M80">
+ enum="ExtensionNotificationType" expires_after="M86">
<owner>dewittj@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90921,6 +95576,9 @@ uploading your change for review.
<histogram name="Notifications.HeaderClick"
enum="NotificationHeaderClickAction" expires_after="M80">
+ <obsolete>
+ Deprecated Nov 2019 because the histogram data was not being used.
+ </obsolete>
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -90983,7 +95641,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Notifications.LoadFailTime" units="ms">
+<histogram name="Notifications.LoadFailTime" units="ms" expires_after="M80">
<obsolete>
Deprecated in June 2019.
</obsolete>
@@ -90996,7 +95654,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Notifications.LoadFileSize" units="bytes">
+<histogram name="Notifications.LoadFileSize" units="bytes" expires_after="M80">
<obsolete>
Deprecated in June 2019.
</obsolete>
@@ -91008,7 +95666,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Notifications.LoadFinishTime" units="ms">
+<histogram name="Notifications.LoadFinishTime" units="ms" expires_after="M80">
<obsolete>
Deprecated in June 2019.
</obsolete>
@@ -91021,7 +95679,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Notifications.LoadScaleDownTime" units="ms">
+<histogram name="Notifications.LoadScaleDownTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated in June 2019.
</obsolete>
@@ -91100,7 +95759,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Permissions.RevokeDeleteCount" units="units"
- expires_after="M80">
+ expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -91376,7 +96035,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Triggers.HasShowTrigger" enum="Boolean"
- expires_after="M80">
+ expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -91387,7 +96046,7 @@ uploading your change for review.
</histogram>
<histogram name="Notifications.Triggers.ShowTriggerDelay" units="days"
- expires_after="M80">
+ expires_after="M86">
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -91831,7 +96490,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.CellularSignalStrength.LevelAvailable"
- enum="BooleanAvailable" expires_after="2020-01-26">
+ enum="BooleanAvailable" expires_after="2020-05-17">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -91968,7 +96627,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.EffectiveConnectionType.OnECTComputation"
- enum="NQEEffectiveConnectionType" expires_after="2020-03-29">
+ enum="NQEEffectiveConnectionType" expires_after="2020-05-31">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -92028,7 +96687,7 @@ uploading your change for review.
<histogram
name="NQE.ExternalEstimateProvider.RTT.Accuracy.EstimatedObservedDiff"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Obsoleted in February 2018.
</obsolete>
@@ -92086,7 +96745,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.Kbps.OnECTComputation" units="Kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>bengr@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -92107,7 +96766,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.MainFrame.EffectiveConnectionType"
- enum="NQEEffectiveConnectionType" expires_after="2020-03-22">
+ enum="NQEEffectiveConnectionType" expires_after="2020-05-24">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -92430,7 +97089,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.TransportRTT.OnECTComputation" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>bengr@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -92515,7 +97174,7 @@ uploading your change for review.
</histogram>
<histogram name="NQE.WifiSignalStrength.LevelAvailable" enum="BooleanAvailable"
- expires_after="2020-02-16">
+ expires_after="2020-05-03">
<owner>tbansal@chromium.org</owner>
<owner>bengr@chromium.org</owner>
<summary>
@@ -92537,7 +97196,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ntp.searchurls.total" units="units">
+<histogram name="ntp.searchurls.total" units="units" expires_after="M80">
<obsolete>
Deprecated 04/2016 as doesn't have data nor owner.
</obsolete>
@@ -92632,7 +97291,7 @@ uploading your change for review.
</histogram>
<histogram name="OAuth2Login.MergeSessionFailure" enum="GoogleServiceAuthError"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>tbarzic@chromium.org</owner>
<summary>
Failure reason of MergeSession call during Chrome OS login, Chrome Signin or
@@ -92744,7 +97403,7 @@ uploading your change for review.
</histogram>
<histogram name="OccludedWindowMouseEvents" units="events"
- expires_after="2019-12-01">
+ expires_after="2020-04-01">
<owner>davidbienvenu@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
@@ -93035,7 +97694,7 @@ uploading your change for review.
</histogram>
<histogram name="OfflinePages.Background.ResourceCompletion.Css"
- enum="BooleanEnabled">
+ enum="BooleanEnabled" expires_after="M80">
<obsolete>
Removed as of 7/2019. No longer needed.
</obsolete>
@@ -93368,7 +98027,7 @@ uploading your change for review.
<histogram
name="OfflinePages.ConsistencyCheck.Persistent.PagesMissingArchiveFileCount"
- units="pages">
+ units="pages" expires_after="M80">
<obsolete>
Deprecated 04/2018, since saving public offline pages to external download
directory needs a different consistency check strategy.
@@ -93382,7 +98041,7 @@ uploading your change for review.
<histogram
name="OfflinePages.ConsistencyCheck.Persistent.PagesMissingDbEntryCount"
- units="pages">
+ units="pages" expires_after="M80">
<obsolete>
Deprecated 04/2018, since saving public offline pages to external download
directory needs a different consistency check strategy.
@@ -95207,7 +99866,68 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Omnibox.LocalHistoryZeroSuggest.AsyncDeleteTime" units="ms"
+ expires_after="M80">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The length of time it takes for the corresponding URLs that would produce a
+ deleted match to be queried asynchronously and deleted. Triggered when user
+ deletes a local history zero-prefix suggestion.
+ </summary>
+</histogram>
+
+<histogram name="Omnibox.LocalHistoryZeroSuggest.MaxMatchesCount" units="count"
+ expires_after="M80">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The maximum number of matches returned by the provider. 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.SearchTermsSeenCount"
+ units="count" expires_after="M80">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The number of search terms examined until the maximum possible matches are
+ fulfilled. Used to determine the upper bound of search terms to query from
+ the keyword search terms database. 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.SyncDeleteTime" units="ms"
+ expires_after="M80">
+ <owner>mahmadi@chromium.org</owner>
+ <owner>tommycli@chromium.org</owner>
+ <summary>
+ The length of time it takes to handle the deletion request for a match and
+ to update the list of provider matches synchronously. Triggered when user
+ requests to delete a local history zero-prefix suggestion.
+ </summary>
+</histogram>
+
<histogram name="Omnibox.MatchStability.AsyncMatchChange" units="position"
+ expires_after="2019-11-10">
+ <obsolete>
+ Deprecated 2019-11-10. Replaced by Omnibox.MatchStability.AsyncMatchChange2.
+ </obsolete>
+ <owner>tommycli@chromium.org</owner>
+ <owner>jdonnelly@chromium.org</owner>
+ <summary>
+ This histogram was buggy and the data should be disregarded.
+
+ The original intent was to count asynchronous match updates for each
+ position. The implementation had a bug, and it overcounted.
+ </summary>
+</histogram>
+
+<histogram name="Omnibox.MatchStability.AsyncMatchChange2" units="position"
expires_after="2020-03-01">
<owner>tommycli@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
@@ -95571,7 +100291,7 @@ uploading your change for review.
<histogram
name="Omnibox.SearchProvider.GetMostRecentKeywordTermsDefaultProviderTime"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deleted in August 2018 in M-70.
</obsolete>
@@ -95999,7 +100719,7 @@ uploading your change for review.
</histogram>
<histogram name="Omnibox.ZeroSuggest.Eligible.OnFocus"
- enum="ZeroSuggestEligibleOnFocus">
+ enum="ZeroSuggestEligibleOnFocus" expires_after="M80">
<obsolete>
Deprecated 05/2019 because histogram was not recorded in every circumstance.
Superseded by Omnibox.ZeroSuggest.Eligible.OnFocusV2.
@@ -96188,7 +100908,7 @@ uploading your change for review.
</histogram>
<histogram name="OOBE.ErrorScreensTime.Update" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>achuith@chromium.org</owner>
<summary>Time spent on error screens during update.</summary>
</histogram>
@@ -96234,64 +100954,73 @@ uploading your change for review.
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.AppCount" units="units"
- expires_after="2019-08-30">
+ expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>play-bm-eng@google.com</owner>
<summary>The number of recommended apps.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.DownloadTime" units="ms"
- expires_after="2019-08-30">
+ expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>play-bm-eng@google.com</owner>
<summary>The time it takes to fetch the recommended apps.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.ResponseCode"
- enum="HttpResponseCode" expires_after="2019-08-30">
+ enum="HttpResponseCode" expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The response code of fetching the recommended apps.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.ResponseParseResult"
- enum="RecommendAppsResponseParseResult" expires_after="2019-08-30">
+ enum="RecommendAppsResponseParseResult" expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The result of parsing the recommend-apps response.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Fetcher.ResponseSize" units="KB"
- expires_after="2019-08-30">
+ expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The size of the recommend-apps JSON response.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Screen.Action"
- enum="RecommendAppsScreenAction" expires_after="2019-08-30">
+ enum="RecommendAppsScreenAction" expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The user action on the recommend apps screen.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Screen.SelectedAppCount" units="units"
- expires_after="2019-08-30">
+ expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The number of apps user selected.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Screen.SelectedRecommendedPercentage"
- units="%" expires_after="2019-08-30">
+ units="%" expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>The ratio of selected and recommended apps.</summary>
</histogram>
<histogram name="OOBE.RecommendApps.Screen.State"
- enum="RecommendAppsScreenState" expires_after="2019-08-30">
+ enum="RecommendAppsScreenState" expires_after="2020-08-30">
<owner>rsorokin@chromium.org</owner>
+ <owner>cros-oac@google.com</owner>
<owner>chromesky-eng@google.com</owner>
<summary>Whether the reocmmend apps screen is shown.</summary>
</histogram>
@@ -96316,6 +101045,26 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="OptimizationGuide.ClearFetchedHints.StoreAvailable"
+ units="BooleanAvailable" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ Records whether the optimization guide store was available when fetched
+ hints are cleared from the store after browser history is cleared.
+ </summary>
+</histogram>
+
+<histogram name="OptimizationGuide.ClearHostModelFeatures.StoreAvailable"
+ units="BooleanAvailable" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ Records whether the optimization guide store was available when host model
+ features are cleared from the store after browser history is cleared.
+ </summary>
+</histogram>
+
<histogram name="OptimizationGuide.HintCache.FetchedHint.TimeToExpiration"
units="seconds" expires_after="M85">
<owner>mcrouse@chromium.org</owner>
@@ -96414,6 +101163,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="OptimizationGuide.Hints.NavigationHostCoverage.AtCommit"
+ enum="BooleanCovered" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ Records once per navigation if the host that was navigated to was included
+ in a hints fetch request in the last 7 days, even if no hints were returned,
+ or had a hint served via the Optimization Hints component at commit.
+ </summary>
+</histogram>
+
<histogram name="OptimizationGuide.Hints.NavigationHostCoverage.BeforeCommit"
enum="BooleanCovered" expires_after="M85">
<owner>sophiechang@chromium.org</owner>
@@ -96484,7 +101244,46 @@ uploading your change for review.
<summary>
Records when hints fetching is enabled whether the HTTPS host being
navigated to was included in a hints fetch request and any hints returned
- have not since expired.
+ have not since expired. Captured at navigation start so it will not include
+ hints fetched based on the current navigation.
+ </summary>
+</histogram>
+
+<histogram
+ name="OptimizationGuide.HintsFetcher.NavigationHostCoveredByFetch.AtCommit"
+ enum="BooleanCovered" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>dougarnett@chromium.org</owner>
+ <summary>
+ Records when hints fetching is enabled whether the HTTPS host being
+ navigated to was included in a hints fetch request and any hints returned
+ have not since expired. Captured after a navigation navigation is committed
+ in order to determine if the fetch attempt made at navigation start
+ succeeded or not.
+ </summary>
+</histogram>
+
+<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.BatchUpdate"
+ enum="OptimizationGuideHintsFetcherRequestStatus"
+ expires_after="2020-11-17">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>dougarnett@chromium.org</owner>
+ <summary>
+ The status of making a Batch Update context request of the OptmizationGuide
+ HintsFetcher. This includes whether a network request was actually sent or
+ not.
+ </summary>
+</histogram>
+
+<histogram name="OptimizationGuide.HintsFetcher.RequestStatus.PageNavigation"
+ enum="OptimizationGuideHintsFetcherRequestStatus"
+ expires_after="2020-11-17">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>dougarnett@chromium.org</owner>
+ <summary>
+ The status of making a Page Navigation context request of the
+ OptmizationGuide HintsFetcher. This includes whether a network request was
+ actually sent or not.
</summary>
</histogram>
@@ -96570,6 +101369,30 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="OptimizationGuide.PredictionManager.HostModelFeaturesMapSize"
+ units="total host count" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ Records the number of host model features loaded into the map used by the
+ PredictionManager. This is recorded when the host model features are loaded
+ from the store.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="OptimizationGuide.PredictionModelEvaluationLatency" units="ms"
+ expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ The duration of evaluating a prediction model for a registered optimization
+ target. Recorded every time a prediction model is successfuly evaluated by
+ the prediction manager. Not recorded if a cached decision is used or if the
+ evaluation fails.
+ </summary>
+</histogram>
+
<histogram
name="OptimizationGuide.PredictionModelFetcher.GetModelsRequest.HostCount"
units="total host count" expires_after="M85">
@@ -96615,6 +101438,27 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="OptimizationGuide.PredictionModelStore.HostModelFeaturesLoadMetadataResult"
+ enum="BooleanLoaded" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ Records the result of loading the host model features metadata while
+ initializing the OptimizationGuideStore.
+ </summary>
+</histogram>
+
+<histogram name="OptimizationGuide.PredictionModelStore.OnLoadCollided"
+ enum="BooleanLoadCollided" expires_after="M85">
+ <owner>mcrouse@chromium.org</owner>
+ <owner>sophiechang@chromium.org</owner>
+ <summary>
+ For each load of a prediction model from the OptimizationGuideStore, reports
+ whether the load collided with an update being made to the store.
+ </summary>
+</histogram>
+
<histogram name="OptimizationGuide.ProcessHintsResult"
enum="OptimizationGuideProcessHintsResult" expires_after="M85">
<owner>dougarnett@chromium.org</owner>
@@ -96671,7 +101515,7 @@ uploading your change for review.
</histogram>
<histogram name="OriginTrials.ValidationResult" enum="OriginTrialTokenStatus"
- expires_after="M80">
+ expires_after="M83">
<owner>chasej@chromium.org</owner>
<owner>iclelland@chromium.org</owner>
<owner>feature-control@chromium.org</owner>
@@ -96724,6 +101568,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="OSCrypt.Win.KeyDecryptionError" enum="WinGetLastError"
+ expires_after="2021-01-01">
+ <owner>wfh@chromium.org</owner>
+ <owner>forshaw@chromium.org</owner>
+ <summary>
+ The Windows GetLastError after a failure from calling into DPAPI to decrypt
+ the master key for the os_crypt library on Windows. This is recorded during
+ the OSCrypt::Init each time the decryption fails.
+ </summary>
+</histogram>
+
<histogram name="OSX.BluetoothAvailability" enum="BluetoothAvailability"
expires_after="2018-08-30">
<obsolete>
@@ -97067,7 +101922,7 @@ uploading your change for review.
</histogram>
<histogram name="Overscroll.Cancelled3" enum="OverscrollNavigationType"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>nzolghadr@chromium.org</owner>
<summary>
Overscroll gestures that were aborted before they were completed.
@@ -97118,7 +101973,7 @@ uploading your change for review.
</histogram>
<histogram name="Overscroll.Navigated3" enum="OverscrollNavigationType"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>nzolghadr@chromium.org</owner>
<summary>
Navigations that were triggered due to completed overscroll gesture. Note
@@ -97155,7 +102010,7 @@ uploading your change for review.
</histogram>
<histogram name="Overscroll.Started3" enum="OverscrollNavigationType"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>nzolghadr@chromium.org</owner>
<summary>
Overscroll gestures initiated by the user. Note that not all overscroll
@@ -97504,7 +102359,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Bytes" units="units"
- expires_after="2020-01-05">
+ expires_after="2022-01-05">
<owner>jkarlin@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<summary>
@@ -97739,7 +102594,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.All.Navigations.NonAdFrameRenavigatedToAd"
- enum="DidNavigateToAd">
+ enum="DidNavigateToAd" expires_after="M80">
<obsolete>
Deprecated In July 2018.
</obsolete>
@@ -97796,7 +102651,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.AdFrames"
- units="Frames">
+ units="Frames" expires_after="M80">
<obsolete>
Deprecated In May 2017.
</obsolete>
@@ -97812,7 +102667,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.PercentAdFrames"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated In May 2017.
</obsolete>
@@ -97829,7 +102684,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.Google.FrameCounts.MainFrameParent.TotalFrames"
- units="Frames">
+ units="Frames" expires_after="M80">
<obsolete>
Deprecated In May 2017.
</obsolete>
@@ -97843,7 +102698,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.Google.Navigations.AdFrameRenavigatedToAd"
- enum="DidNavigateToAd">
+ enum="DidNavigateToAd" expires_after="M80">
<obsolete>
Deprecated In July 2017. Use
PageLoad.Clients.Ads.All.Navigations.AdFrameRenavigatedToAd instead.
@@ -97864,7 +102719,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Ads.Google.Navigations.NonAdFrameRenavigatedToAd"
- enum="DidNavigateToAd">
+ enum="DidNavigateToAd" expires_after="M80">
<obsolete>
Deprecated In July 2017. Use
PageLoad.Clients.Ads.All.Navigations.NonAdFrameRenavigatedToAd instead.
@@ -97930,6 +102785,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PageLoad.Clients.Ads.HeavyAds.IgnoredByReload"
+ enum="BooleanIgnored" expires_after="2020-10-08">
+ <owner>johnidel@chromium.org</owner>
+ <owner>jkarlin@chromium.org</owner>
+ <summary>
+ Records whether a possible intervention was ignored because the page was the
+ result of a reload. This is checked prior to checking whether a given site
+ is blocklisted. Therefore it is possible this histogram records |Ignored|
+ when the intervention wouldn't have actually triggered. This is recorded
+ when an ad frame becomes eligible for the heavy ad intervention to unload
+ it.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Clients.Ads.HeavyAds.UserDidReload"
enum="BooleanReloaded" expires_after="2020-10-08">
<owner>johnidel@chromium.org</owner>
@@ -98080,7 +102949,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.AMP.InteractiveTiming.FirstInputDelay3.Subframe"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed July 2019 in favor of FirstInputDelay4.
</obsolete>
@@ -98216,7 +103085,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentPaint.Subframe"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 7/2019.
</obsolete>
@@ -98236,7 +103105,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentPaint.Subframe.FullNavigation"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 7/2019.
</obsolete>
@@ -98262,7 +103131,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.CompressionRatio"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98295,7 +103164,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Inflation"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98324,7 +103193,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.InflationPercent"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98355,7 +103224,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.NonProxied"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98384,7 +103253,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Original"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98413,7 +103282,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.PercentProxied"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98442,7 +103311,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Proxied"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98471,7 +103340,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.Bytes.Network.Savings"
- units="KB">
+ units="KB" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98500,7 +103369,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.DataReductionProxy.Experimental.CompletedResources.Network.PercentProxied"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated 10/2018
</obsolete>
@@ -98661,7 +103530,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Scheme.HTTP.PaintTiming.UnderStat.UserInitiated.NewNavigation"
- enum="PageLoadTimingUnderStat" expires_after="2019-12-31">
+ enum="PageLoadTimingUnderStat" expires_after="2020-12-31">
<owner>dougarnett@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -98689,7 +103558,7 @@ uploading your change for review.
<histogram
name="PageLoad.Clients.Scheme.HTTPS.PaintTiming.UnderStat.UserInitiated.NewNavigation"
- enum="PageLoadTimingUnderStat" expires_after="2019-12-31">
+ enum="PageLoadTimingUnderStat" expires_after="2020-12-31">
<owner>dougarnett@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -98782,6 +103651,51 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PageLoad.Clients.SubresourceLoading.CookiesQueryTime"
+ units="ms" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ How long the query to the cookie manager took to complete. Recorded on every
+ query response.
+ </summary>
+</histogram>
+
+<histogram
+ name="PageLoad.Clients.SubresourceLoading.DaysSinceLastVisitToOrigin"
+ units="days" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ The number of days since any origin in the redirect chain was last visited,
+ according to the history service. Recorded whenever there was a previous
+ visit to record.
+ </summary>
+</histogram>
+
+<histogram name="PageLoad.Clients.SubresourceLoading.HasPreviousVisitToOrigin"
+ enum="BooleanPreviouslyVisited" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Whether or not there was a previous visit to any origin in the redirect
+ chain, as reported by the history service. Each positive entry corresponds
+ to a single entry in
+ &quot;PageLoad.Clients.SubresourceLoading.DaysSinceLastVisitToOrigin&quot;.
+ Recorded on page end for every committed page load.
+ </summary>
+</histogram>
+
+<histogram name="PageLoad.Clients.SubresourceLoading.HistoryQueryTime"
+ units="ms" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ How long the query to the history service took to complete. Recorded on
+ every query response.
+ </summary>
+</histogram>
+
<histogram
name="PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached"
units="count of subresources" expires_after="M90">
@@ -98805,6 +103719,27 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PageLoad.Clients.SubresourceLoading.MainFrameHadCookies"
+ enum="Boolean" expires_after="M90">
+ <owner>robertogden@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Whether or not any main frame request in the redirect chain had cookies.
+ </summary>
+</histogram>
+
+<histogram
+ name="PageLoad.Clients.ThirdParty.Frames.NavigationToFirstContentfulPaint"
+ units="ms" expires_after="2021-11-01">
+ <owner>jkarlin@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ The time from navigation start to the first contentful paint of third-party
+ frames on pages. Note that this can be significantly delayed due to lazy
+ loading.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.Clients.ThirdParty.Origins.CookieRead" units="Count"
expires_after="2021-07-01">
<owner>jkarlin@chromium.org</owner>
@@ -98866,7 +103801,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Cpu" units="units"
- expires_after="2020-01-05">
+ expires_after="2022-01-05">
<owner>ericrobinson@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -98881,6 +103816,28 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PageLoad.Cpu.TotalUsage" units="ms" expires_after="2020-11-18">
+ <owner>alexmt@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ Recorded when the page is destroyed or the app is backgrounded on mobile.
+ Records the total wall time of tasks attributable to the page across its
+ lifetime. Considers both the CPU usage while the page is in the foreground
+ and in the background.
+ </summary>
+</histogram>
+
+<histogram name="PageLoad.Cpu.TotalUsageForegrounded" units="ms"
+ expires_after="2020-11-18">
+ <owner>alexmt@chromium.org</owner>
+ <owner>johnidel@chromium.org</owner>
+ <summary>
+ Recorded when the page is destroyed or the app is backgrounded on mobile.
+ Records the total wall time of tasks attributable to the page across its
+ lifetime. Does not consider CPU usage while a page is backgrounded.
+ </summary>
+</histogram>
+
<histogram name="PageLoad.CSSTiming.Parse.BeforeFirstContentfulPaint"
units="ms" expires_after="2018-05-30">
<obsolete>
@@ -98917,7 +103874,7 @@ uploading your change for review.
<histogram
name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -98927,7 +103884,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -98937,7 +103894,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.DocumentTiming.NavigationToLoadEventFired" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -99009,7 +103966,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Background"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -99033,7 +103990,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Close"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -99044,7 +104001,7 @@ uploading your change for review.
<histogram base="true"
name="PageLoad.Experimental.AbortTiming.ForwardBackNavigation" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -99054,7 +104011,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.NewNavigation"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -99074,7 +104031,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Reload"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -99084,7 +104041,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PageLoad.Experimental.AbortTiming.Stop" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
This metric is still experimental and not yet ready to be relied upon.
@@ -99093,7 +104050,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PageLoad.Experimental.Bytes.Cache" units="KB">
+<histogram name="PageLoad.Experimental.Bytes.Cache" units="KB"
+ expires_after="M80">
<obsolete>
Deprecated in favor of PageLoad.Experimental.Bytes.Cache2.
</obsolete>
@@ -99118,7 +104076,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.Bytes.Network" units="KB"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jkarlin@chromium.org</owner>
<summary>
The number of prefiltered (e.g., compressed) response body KiloBytes loaded
@@ -99129,7 +104087,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.Bytes.NetworkIncludingHeaders"
- units="KB" expires_after="2020-03-22">
+ units="KB" expires_after="2020-05-24">
<owner>jkarlin@chromium.org</owner>
<summary>
The number of prefiltered (e.g., compressed) KiloBytes loaded over the
@@ -99139,7 +104097,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PageLoad.Experimental.Bytes.Total" units="KB">
+<histogram name="PageLoad.Experimental.Bytes.Total" units="KB"
+ expires_after="M80">
<obsolete>
Deprecated in favor of PageLoad.Experimental.Bytes.Total2.
</obsolete>
@@ -99247,7 +104206,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.CompletedResources.Total"
- units="resources">
+ units="resources" expires_after="M80">
<obsolete>
Deprecated in favor of PageLoad.Experimental.CompletedResources.Total2.
</obsolete>
@@ -99313,7 +104272,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.LayoutStability.JankScore"
- units="scorex10">
+ units="scorex10" expires_after="M80">
<obsolete>
Deprecated 7/2019, replaced by
PageLoad.LayoutInstability.CumulativeShiftScore
@@ -99341,7 +104300,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.NavigationToInteractive" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dproy@chromium.org</owner>
<owner>tdresser@chromium.org</owner>
<summary>
@@ -99404,7 +104363,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus"
- enum="FirstMeaningfulPaintSignalStatus">
+ enum="FirstMeaningfulPaintSignalStatus" expires_after="M80">
<obsolete>
Deprecated in favor of
PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2.
@@ -99419,7 +104378,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintSignalStatus2"
- enum="FirstMeaningfulPaintSignalStatus">
+ enum="FirstMeaningfulPaintSignalStatus" expires_after="M80">
<obsolete>
Deprecated as of 05/17/2017.
</obsolete>
@@ -99443,7 +104402,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.FirstMeaningfulPaintToNetworkStable"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated as of 05/17/2017.
</obsolete>
@@ -99460,7 +104419,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.ForegroundToFirstMeaningfulPaint"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>ksakamoto@chromium.org</owner>
<summary>
Measures the time from a background tab being switched to the foreground to
@@ -99510,7 +104469,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.LargestContentPaint.AllFrames.ContentType"
- enum="LargestContentType">
+ enum="LargestContentType" expires_after="M80">
<obsolete>
Deprecated 7/2019, replaced by
PageLoad.PaintTiming.LargestContentfulPaint.ContentType
@@ -99529,7 +104488,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.LargestContentPaint.ContentType"
- enum="LargestContentType">
+ enum="LargestContentType" expires_after="M80">
<obsolete>
Deprecated 7/2019, replaced by
PageLoad.PaintTiming.LargestContentfulPaint.MainFrame.ContentType
@@ -99548,7 +104507,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>ksakamoto@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -99580,7 +104539,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.NavigationToLargestContentPaint.AllFrames"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 7/2019, replaced by
PageLoad.PaintTiming.NavigationToLargestContentfulPaint
@@ -99656,7 +104615,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>ksakamoto@chromium.org</owner>
<summary>
Measures the time from when the HTML parser started, to the first meaningful
@@ -99690,7 +104649,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.Renderer.FirstMeaningfulPaintDetector.FirstMeaningfulPaintOrdering"
- enum="FirstMeaningfulPaintOrdering">
+ enum="FirstMeaningfulPaintOrdering" expires_after="M80">
<obsolete>
Renamed to
PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.FirstMeaningfulPaintOrdering
@@ -99704,7 +104663,7 @@ uploading your change for review.
<histogram
name="PageLoad.Experimental.Renderer.FirstMeaningfulPaintDetector.HadNetworkQuiet"
- enum="NetworkQuietStatus">
+ enum="NetworkQuietStatus" expires_after="M80">
<obsolete>
Renamed to
PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.HadNetworkQuiet
@@ -99721,7 +104680,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Experimental.TimeToInteractiveStatus"
- enum="TimeToInteractiveStatus" expires_after="2020-03-22">
+ enum="TimeToInteractiveStatus" expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<owner>dproy@chromium.org</owner>
<summary>
@@ -99868,7 +104827,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.FrameCounts.AnyParentFrame.AdFrames"
- units="Ad frames">
+ units="Ad frames" expires_after="M80">
<obsolete>
Deprecated 09/2019 in favor of PageLoad.FrameCounts.AdFrames.Total.
</obsolete>
@@ -100041,7 +105000,11 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputDelay3" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-05-24">
+ <obsolete>
+ Removed in July 2019 in favor of PageLoad.InteractiveTiming.FirstInputDelay4
+ which includes input events which were filtered previously.
+ </obsolete>
<owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -100063,9 +105026,6 @@ uploading your change for review.
<owner>speed-metrics-dev@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
<summary>
- This metric will replace PageLoad.InteractiveTiming.FirstInputDelay3 if the
- SkipTouchEventFilter experiment launches.
-
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. Recorded on first page interaction. See
@@ -100123,7 +105083,12 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp3" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-05-24">
+ <obsolete>
+ Removed in July 2019 in favor of
+ PageLoad.InteractiveTiming.FirstInputTimestamp4 which includes input events
+ which were filtered previously.
+ </obsolete>
<owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -100134,13 +105099,10 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp4" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
- This metric will replace PageLoad.InteractiveTiming.FirstInputTimestamp3 if
- the SkipTouchEventFilter experiment launches.
-
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. Recorded on first page interaction.
See https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
@@ -100228,7 +105190,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.InteractiveTiming.InputTimestamp3" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-05-24">
<owner>tdresser@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -100376,7 +105338,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Internal.ErrorCode" enum="InternalErrorLoadEvent"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<owner>bmcquade@chromium.org</owner>
<summary>
@@ -100398,7 +105360,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Internal.NavigationStartedInForeground"
- enum="BooleanForeground" expires_after="2020-03-22">
+ enum="BooleanForeground" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<summary>Whether a navigation started in the foreground.</summary>
</histogram>
@@ -100432,7 +105394,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Internal.PageLoadTimingStatus"
- enum="PageLoadTimingStatus" expires_after="2020-03-22">
+ enum="PageLoadTimingStatus" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<summary>
The status of PageLoadTiming structs received from the render process over
@@ -100616,7 +105578,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Internal.Renderer.PresentationTime.DeltaFromSwapTime"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>sadrul@chromium.org</owner>
<summary>
'Swap time' is the timestamp of the renderer submitting a CompositorFrame,
@@ -100632,7 +105594,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.Internal.Renderer.PresentationTime.Valid"
- enum="Boolean" expires_after="2020-03-22">
+ enum="Boolean" expires_after="2020-05-24">
<owner>sadrul@chromium.org</owner>
<summary>
This boolean keeps track of whether a valid presentation-timestamp was
@@ -100643,7 +105605,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore"
- units="scorex10" expires_after="2020-03-22">
+ units="scorex10" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>skobes@chromium.org</owner>
<summary>
@@ -100655,7 +105617,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame"
- units="scorex10" expires_after="2020-03-22">
+ units="scorex10" expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>skobes@chromium.org</owner>
<summary>
@@ -100675,7 +105637,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.PageTiming.ForegroundDuration" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<summary>
For page loads that start in the foreground, measures the duration of time
@@ -100712,7 +105674,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.PageTiming.NavigationToFirstForeground" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -100791,7 +105753,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>maxlg@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -100805,7 +105767,7 @@ uploading your change for review.
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint.MainFrame"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>maxlg@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
@@ -100829,7 +105791,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.ParseTiming.NavigationToParseStart" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -100860,7 +105822,7 @@ uploading your change for review.
</histogram>
<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bmcquade@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
@@ -101171,7 +106133,7 @@ uploading your change for review.
<histogram
name="PageLoad.Timing2.ParseBlockedOnScriptLoadFromDocumentWrite.ParseComplete"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
deprecated in favor of
PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite
@@ -101446,7 +106408,7 @@ uploading your change for review.
</histogram>
<histogram name="PaintHolding.CommitTrigger2" enum="PaintHoldingCommitTrigger2"
- expires_after="M80">
+ expires_after="M82">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -101468,7 +106430,7 @@ uploading your change for review.
</histogram>
<histogram name="PaintHolding.InputTiming2" enum="PaintHoldingInputTiming"
- expires_after="M80">
+ expires_after="M82">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
@@ -101665,7 +106627,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordBubble.DisplayDisposition"
- enum="PasswordBubbleDisplayDisposition" expires_after="2020-03-22">
+ enum="PasswordBubbleDisplayDisposition" expires_after="2020-05-24">
<owner>vasilii@chromium.org</owner>
<summary>
When the password management bubble opened, what state was it in?
@@ -101673,7 +106635,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordGeneration.Event" enum="PasswordGenerationEvent"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>kolos@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
@@ -101690,7 +106652,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordGeneration.GeneratedPasswordWasEdited"
- enum="BooleanGeneratedPasswordWasEdited" expires_after="2020-03-22">
+ enum="BooleanGeneratedPasswordWasEdited" expires_after="2020-05-24">
<owner>kolos@chromium.org</owner>
<summary>
Measures the frequency of user editing of generated passwords. Uploaded once
@@ -101895,7 +106857,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PasswordManager.AccountsPerSiteHiRes"
- units="units" expires_after="2020-03-22">
+ units="units" expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -101950,7 +106912,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.ActionsTakenV3"
- enum="PasswordManagerActionsTakenV3" expires_after="2020-03-22">
+ enum="PasswordManagerActionsTakenV3" expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -102000,7 +106962,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.AffiliationDummyData.RequestResultCount"
- units="results">
+ units="results" expires_after="M80">
<obsolete>
No longer recorded as of May 2015.
</obsolete>
@@ -102014,7 +106976,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.AffiliationDummyData.RequestSuccess"
- enum="BooleanSuccess">
+ enum="BooleanSuccess" expires_after="M80">
<obsolete>
No longer recorded as of May 2015.
</obsolete>
@@ -102151,7 +107113,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.ApplySyncChanges.AddLoginSyncError"
- enum="PasswordAddLoginSyncError" expires_after="2020-03-22">
+ enum="PasswordAddLoginSyncError" expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -102162,7 +107124,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.ApplySyncChanges.UpdateLoginSyncError"
- enum="PasswordUpdateLoginSyncError" expires_after="M80">
+ enum="PasswordUpdateLoginSyncError" expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -102173,7 +107135,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.ApplySyncChangesState"
- enum="PasswordApplySyncChangesState" expires_after="2020-03-22">
+ enum="PasswordApplySyncChangesState" expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -102230,6 +107192,9 @@ uploading your change for review.
<histogram name="PasswordManager.BlacklistedSites.NeedNormalization"
enum="BooleanNeedsNormalization" expires_after="M80">
+ <obsolete>
+ Corresponding clean-up logic got introduced in M76 and has run its course.
+ </obsolete>
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -102376,8 +107341,21 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PasswordManager.CompromisedCredentials" enum="CompromiseType"
+ expires_after="2020-11-26">
+ <owner>bdea@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Collects the type of compromised credential when it is added, updated, or
+ removed from the table. Compromised credentials are saved passwords that are
+ added when they are leaked or phished, updated when signon_realm and/or
+ username is changed, or removed when the password is dropped from the
+ password_manager or the password has changed.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.CredentialsWithDuplicates" units="units"
- expires_after="M80">
+ expires_after="M82">
<owner>dvadym@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -102392,7 +107370,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.CredentialsWithMismatchedDuplicates"
- units="units" expires_after="M80">
+ units="units" expires_after="M82">
<owner>dvadym@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -102537,7 +107515,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.EmptyUsernames.WithoutCorrespondingNonempty"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated as of 06/2019.
</obsolete>
@@ -102561,7 +107539,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PasswordManager.ExportedPasswordsPerUserInCSV" units="units">
+<histogram name="PasswordManager.ExportedPasswordsPerUserInCSV" units="units"
+ expires_after="M80">
<obsolete>
Deprecated as of 2019/07. Password exporting has been rolled out.
</obsolete>
@@ -102572,7 +107551,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.ExportPasswordsToCSVResult"
- enum="ExportPasswordsResult">
+ enum="ExportPasswordsResult" expires_after="M80">
<obsolete>
Deprecated as of 2019/07. Password exporting has been rolled out.
</obsolete>
@@ -102582,6 +107561,16 @@ uploading your change for review.
<summary>The success or error type of exporting passwords into CSV.</summary>
</histogram>
+<histogram name="PasswordManager.FieldInfoTableRows" units="rows"
+ expires_after="M84">
+ <owner>dvadym@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Records number of rows in FieldInfoTable, which contains locally learned
+ predictions about field types. Recorded once for the profile on startup.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.FilledCredentialWasFromAndroidApp"
enum="PasswordManagerFilledAndroidCredentials">
<owner>msramek@chromium.org</owner>
@@ -102912,7 +107901,7 @@ uploading your change for review.
<histogram
name="PasswordManager.KeychainMigration.NumChromeOwnedInaccessiblePasswords"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated as of 09/2016.
</obsolete>
@@ -102924,7 +107913,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.KeychainMigration.NumFailedPasswords"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated as of 06/2019.
</obsolete>
@@ -102937,7 +107926,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.KeychainMigration.NumPasswordsOnFailure"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated as of 06/2019.
</obsolete>
@@ -102962,7 +107951,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.KWalletDeserializationStatus"
- enum="BooleanSuccess">
+ enum="BooleanSuccess" expires_after="M80">
<obsolete>
Deprecated as of 07/2019.
</obsolete>
@@ -102976,7 +107965,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.AccessTokenFetchStatus"
- enum="GoogleServiceAuthError" expires_after="2020-01-31">
+ enum="GoogleServiceAuthError" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -102986,7 +107975,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.AccessTokenNetErrorCode"
- enum="NetErrorCodes" expires_after="2020-01-31">
+ enum="NetErrorCodes" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -102996,22 +107985,21 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.AnalyzeSingleLeakResponseResult"
- enum="PasswordAnalyzeLeakResponseResult" expires_after="2020-01-31">
+ enum="PasswordAnalyzeLeakResponseResult" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>Result of analyzing a single leak response.</summary>
</histogram>
<histogram name="PasswordManager.LeakDetection.AnalyzeSingleLeakResponseTime"
- units="ms" expires_after="2020-01-31">
+ units="ms" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>The time it took to analyze a single leak lookup response.</summary>
</histogram>
<histogram name="PasswordManager.LeakDetection.DialogDismissalReason"
- enum="PasswordLeakDetectionDialogDismissalReason"
- expires_after="2020-01-31">
+ enum="PasswordLeakDetectionDialogDismissalReason" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103021,7 +108009,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.Enabled" enum="BooleanEnabled"
- expires_after="2020-01-31">
+ expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103030,8 +108018,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PasswordManager.LeakDetection.Error"
+ enum="PasswordLeakDetectionError" expires_after="M84">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>vasilii@chromium.org</owner>
+ <summary>
+ Shows the error that happened in password leak detection on sign-in.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.LeakDetection.HttpResponseCode"
- enum="HttpResponseCode" expires_after="2020-01-31">
+ enum="HttpResponseCode" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103041,7 +108038,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.LookupSingleLeakResponseResult"
- enum="PasswordLeakLookupResponseResult" expires_after="2020-01-31">
+ enum="PasswordLeakLookupResponseResult" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103051,7 +108048,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.NetErrorCode"
- enum="NetErrorCodes" expires_after="2020-01-31">
+ enum="NetErrorCodes" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103061,7 +108058,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.NotifyIsLeakedTime" units="ms"
- expires_after="2020-01-31">
+ expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103071,7 +108068,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.ObtainAccessTokenTime"
- units="ms" expires_after="2020-01-31">
+ units="ms" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103081,7 +108078,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.PrepareSingleLeakRequestTime"
- units="ms" expires_after="2020-01-31">
+ units="ms" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103090,7 +108087,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.ReceiveSingleLeakResponseTime"
- units="ms" expires_after="2020-01-31">
+ units="ms" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103100,7 +108097,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.SingleLeakResponsePrefixes"
- units="prefixes" expires_after="2020-01-31">
+ units="prefixes" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103110,7 +108107,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LeakDetection.SingleLeakResponseSize"
- units="bytes" expires_after="2020-01-31">
+ units="bytes" expires_after="M84">
<owner>jdoerrie@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103120,7 +108117,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LinuxBackendMigration.Adoption"
- enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2019-11-01">
+ enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2020-04-01">
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103130,7 +108127,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LinuxBackendMigration.AttemptResult"
- enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2019-11-01">
+ enum="LinuxPasswordsMigrationToEncryptionStatus" expires_after="2020-04-01">
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103140,7 +108137,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LinuxBackendMigration.TimeIntoEncrypted"
- units="units" expires_after="2019-11-01">
+ units="units" expires_after="2020-04-01">
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103152,7 +108149,10 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.LinuxBackendMigration.TimeIntoNative"
- units="units" expires_after="2019-11-01">
+ units="units" expires_after="M80">
+ <obsolete>
+ Removed 10/2019.
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103247,7 +108247,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.MergeSyncData.AddLoginSyncError"
- enum="PasswordAddLoginSyncError" expires_after="2020-03-22">
+ enum="PasswordAddLoginSyncError" expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -103258,7 +108258,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.MergeSyncData.UpdateLoginSyncError"
- enum="PasswordUpdateLoginSyncError" expires_after="M80">
+ enum="PasswordUpdateLoginSyncError" expires_after="2020-05-24">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -103280,7 +108280,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.NewlySavedPasswordIsGenerated"
- enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2020-03-22">
+ enum="BooleanNewlySavedPasswordIsGenerated" expires_after="2020-05-24">
<owner>nepper@chromium.org</owner>
<owner>battre@chromium.org</owner>
<owner>kolos@chromium.org</owner>
@@ -103314,7 +108314,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.NumPasswordsDeletedDuringRollback"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated as of 06/2019.
</obsolete>
@@ -103347,7 +108347,7 @@ uploading your change for review.
<histogram name="PasswordManager.Onboarding.ResultOfSavingFlow"
enum="PasswordManagerOnboardingResultOfSavingFlow"
- expires_after="2020-01-31">
+ expires_after="2020-05-24">
<owner>achulkov@google.com</owner>
<owner>ioanap@chromium.org</owner>
<summary>
@@ -103359,7 +108359,7 @@ uploading your change for review.
<histogram name="PasswordManager.Onboarding.ResultOfSavingFlowAfterOnboarding"
enum="PasswordManagerOnboardingResultOfSavingFlow"
- expires_after="2020-01-31">
+ expires_after="2020-05-24">
<owner>achulkov@google.com</owner>
<owner>ioanap@chromium.org</owner>
<summary>
@@ -103370,7 +108370,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.Onboarding.State"
- enum="PasswordManagerOnboardingState" expires_after="2020-01-31">
+ enum="PasswordManagerOnboardingState" expires_after="2020-05-24">
<owner>achulkov@google.com</owner>
<owner>ioanap@chromium.org</owner>
<summary>
@@ -103381,7 +108381,7 @@ uploading your change for review.
<histogram name="PasswordManager.Onboarding.UIDismissalReason"
enum="PasswordManagerOnboardingUIDismissalReason"
- expires_after="2020-01-31">
+ expires_after="2020-05-24">
<owner>achulkov@google.com</owner>
<owner>ioanap@chromium.org</owner>
<summary>
@@ -103409,7 +108409,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.PasswordDropdownItemSelected"
- enum="PasswordDropdownSelectedOption" expires_after="2020-03-22">
+ enum="PasswordDropdownSelectedOption" expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103418,7 +108418,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.PasswordDropdownShown"
- enum="PasswordDropdownState" expires_after="2020-03-22">
+ enum="PasswordDropdownState" expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>Logs the state of the password dropdown when it's shown.</summary>
@@ -103512,7 +108512,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.PasswordSavedWithManualFallback"
- enum="BooleanPasswordSavedWithFallback" expires_after="2020-03-22">
+ enum="BooleanPasswordSavedWithFallback" expires_after="2020-05-24">
<owner>kolos@chromium.org</owner>
<summary>
Measures whether users save passwords with automatic prompt or manual
@@ -103529,7 +108529,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.PasswordSyncState" enum="PasswordSyncState"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103618,6 +108618,16 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PasswordManager.RemoveCompromisedCredentials"
+ enum="PasswordStoreChange" expires_after="2020-11-26">
+ <owner>bdea@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Collects the cause of why remove SQL statement is called on the compromised
+ credentials table.
+ </summary>
+</histogram>
+
<histogram name="PasswordManager.RemovedCorruptedPasswords" units="units">
<owner>vasilii@chromium.org</owner>
<summary>
@@ -103726,7 +108736,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.SaveUIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-03-22">
+ enum="PasswordManagerUIDismissalReason" expires_after="2020-05-24">
<owner>vasilii@chromium.org</owner>
<summary>Why was the save password UI (bubble or infobar) closed?</summary>
</histogram>
@@ -103889,7 +108899,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PasswordManager.SignInPromoCountTilNoThanks" units="units">
+<histogram name="PasswordManager.SignInPromoCountTilNoThanks" units="units"
+ expires_after="M80">
<obsolete>
Deprecated as of 06/19.
</obsolete>
@@ -103925,7 +108936,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.StoreDecryptionResult"
- enum="PasswordDecryptionResult" expires_after="2019-11-01">
+ enum="PasswordDecryptionResult" expires_after="2020-05-01">
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103947,6 +108958,9 @@ uploading your change for review.
<histogram name="PasswordManager.StorePerformance.AddLogin" units="units"
expires_after="2019-11-01">
+ <obsolete>
+ Removed as of October 2019
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103957,6 +108971,9 @@ uploading your change for review.
<histogram name="PasswordManager.StorePerformance.GetLogin" units="units"
expires_after="2019-11-01">
+ <obsolete>
+ Removed as of October 2019
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103967,6 +108984,9 @@ uploading your change for review.
<histogram name="PasswordManager.StorePerformance.GetLogins" units="units"
expires_after="2019-11-01">
+ <obsolete>
+ Removed as of October 2019
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103977,6 +108997,9 @@ uploading your change for review.
<histogram name="PasswordManager.StorePerformance.RemoveLogin" units="units"
expires_after="2019-11-01">
+ <obsolete>
+ Removed as of October 2019
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -103987,6 +109010,9 @@ uploading your change for review.
<histogram name="PasswordManager.StorePerformance.UpdateLogin" units="units"
expires_after="2019-11-01">
+ <obsolete>
+ Removed as of October 2019
+ </obsolete>
<owner>cfroussios@chromium.org</owner>
<owner>dvadym@chromium.org</owner>
<summary>
@@ -104084,7 +109110,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PasswordManager.SuggestionShown" enum="PasswordSuggestionType">
+<histogram name="PasswordManager.SuggestionShown" enum="PasswordSuggestionType"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -104141,7 +109168,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.SyncPasswordHashChange"
- enum="GaiaPasswordHashChange" expires_after="2020-03-22">
+ enum="GaiaPasswordHashChange" expires_after="2020-05-24">
<owner>dvadym@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104161,7 +109188,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PasswordManager.TimeReadingExportedPasswords" units="ms">
+<histogram name="PasswordManager.TimeReadingExportedPasswords" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated as of 2019/07. Password exporting has been rolled out.
</obsolete>
@@ -104213,7 +109241,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PasswordManager.TotalAccountsHiRes.ByType"
- units="units" expires_after="2020-03-22">
+ units="units" expires_after="2020-05-24">
<owner>battre@chromium.org</owner>
<owner>vasilii@chromium.org</owner>
<summary>
@@ -104266,7 +109294,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.UIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-03-22">
+ enum="PasswordManagerUIDismissalReason" expires_after="2020-05-24">
<owner>vasilii@chromium.org</owner>
<summary>
Why was the password manager's UI (bubble or infobar) closed? Save and
@@ -104294,7 +109322,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordManager.UpdateUIDismissalReason"
- enum="PasswordManagerUIDismissalReason" expires_after="2020-03-22">
+ enum="PasswordManagerUIDismissalReason" expires_after="2020-05-24">
<owner>vasilii@chromium.org</owner>
<summary>Why was the update password UI (bubble or infobar) closed?</summary>
</histogram>
@@ -104339,6 +109367,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PasswordProtection.CacheVerdictDuration" units="ms"
+ expires_after="2020-01-01">
+ <obsolete>
+ Removed since caching is not the root cause of time out issue.
+ </obsolete>
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ The time it takes for PasswordProtectionService to cache a verdict.
+ </summary>
+</histogram>
+
<histogram name="PasswordProtection.ChromeSettingsAction"
enum="PasswordProtectionWarningAction">
<owner>vakh@chromium.org</owner>
@@ -104351,7 +109391,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.DomFeatureExtractionDuration" units="ms"
- expires_after="M79">
+ expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104388,8 +109428,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PasswordProtection.GetCachedVerdictDuration" units="ms"
+ expires_after="2020-01-01">
+ <obsolete>
+ Removed since caching is not the root cause of time out issue.
+ </obsolete>
+ <owner>xinghuilu@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ The time it takes for PasswordProtectionService to get a cached verdict.
+ </summary>
+</histogram>
+
<histogram name="PasswordProtection.InterstitialAction"
- enum="PasswordProtectionWarningAction">
+ enum="PasswordProtectionWarningAction" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104423,7 +109475,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.ModalWarningDialogAction"
- enum="PasswordProtectionWarningAction">
+ enum="PasswordProtectionWarningAction" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104448,7 +109500,7 @@ uploading your change for review.
<histogram
name="PasswordProtection.NumberOfVerdictsMigratedDuringInitialization"
- units="verdicts">
+ units="verdicts" expires_after="M80">
<obsolete>
Deprecated in M71+.
</obsolete>
@@ -104484,7 +109536,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PasswordProtection.PasswordAlertModeOutcome"
- enum="PasswordProtectionRequestOutcome">
+ enum="PasswordProtectionRequestOutcome" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104494,7 +109546,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.PasswordProtectionResponseOrErrorCode"
- enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-03-22">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104516,7 +109568,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.PasswordReuseSyncAccountType"
- enum="PasswordProtectionSyncAccountType" expires_after="2020-03-22">
+ enum="PasswordProtectionSyncAccountType" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104551,7 +109603,7 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.RequestNetworkDuration" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104561,7 +109613,7 @@ uploading your change for review.
</histogram>
<histogram base="true" name="PasswordProtection.RequestOutcome"
- enum="PasswordProtectionRequestOutcome" expires_after="2020-03-22">
+ enum="PasswordProtectionRequestOutcome" expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -104608,13 +109660,13 @@ uploading your change for review.
</histogram>
<histogram name="PasswordProtection.Verdict" enum="PasswordProtectionVerdict"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Verdict types returned by Safe Browsing server for a password protection
request. Request can be triggered when user focuses on a password field or
- enters a protected password.
+ enters a protected password (syncing, signed-in, or saved).
</summary>
</histogram>
@@ -104630,7 +109682,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.CanMakePayment.NotUsed.WithShowEffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -104666,7 +109718,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.CanMakePayment.Used.FalseWithShowEffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -104679,7 +109731,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.CanMakePayment.Used.TrueWithShowEffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -104715,7 +109767,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.CheckoutFunnel.NoShow"
- enum="PaymentRequestNoShowReason" expires_after="2020-03-22">
+ enum="PaymentRequestNoShowReason" expires_after="2020-05-24">
<owner>sebsg@chromium.org</owner>
<summary>
The reason that leads to the Payment Request not being shown to the user.
@@ -104768,7 +109820,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.Events" units="bitfield value"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>sebsg@chromium.org</owner>
<summary>
A bitfield representing the different events that happened during the
@@ -104777,7 +109829,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.JourneyLoggerHasRecorded" enum="Boolean"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>sahel@chromium.org</owner>
<summary>
Whether a journey logger has recorded an events bit field or not.
@@ -104829,7 +109881,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.NumberOfSelectionAdds" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>sebsg@chromium.org</owner>
<summary>
The number of times the user added an entry during a Payment Request.
@@ -104884,13 +109936,14 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PaymentRequest.ServiceWorkerStatusCodeTimeout" enum="Boolean">
+<histogram name="PaymentRequest.ServiceWorkerStatusCodeTimeout" enum="Boolean"
+ expires_after="2020-05-24">
<owner>sahel@chromium.org</owner>
<summary>True when a service worker times out 5 mins after request.</summary>
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>sahel@chromium.org</owner>
<summary>
Records the time between a payment request .show() and its completion.
@@ -104898,7 +109951,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed.Shown" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes name="PaymentRequestCompletedInstrument" -->
<owner>sahel@chromium.org</owner>
@@ -104909,7 +109962,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.TimeToCheckout.Completed.SkippedShow"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<!-- Name completed by histogram_suffixes name="PaymentRequestCompletedInstrument" -->
<owner>sahel@chromium.org</owner>
@@ -104940,7 +109993,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.TransactionAmount.Completed"
- enum="PaymentRequestTransactionSize" expires_after="2020-03-22">
+ enum="PaymentRequestTransactionSize" expires_after="2020-05-24">
<owner>sahel@chromium.org</owner>
<summary>
Records the transaction amounts completed using payment request API after
@@ -104949,7 +110002,7 @@ uploading your change for review.
</histogram>
<histogram name="PaymentRequest.TransactionAmount.Triggered"
- enum="PaymentRequestTransactionSize" expires_after="2020-03-22">
+ enum="PaymentRequestTransactionSize" expires_after="2020-05-24">
<owner>sahel@chromium.org</owner>
<summary>
Records the transaction amounts triggered using payment request API after
@@ -104959,7 +110012,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.UserDidNotHaveCompleteSuggestionsForEverything.EffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -104972,7 +110025,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.UserDidNotHaveInitialFormOfPayment.EffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
Replaced by PaymentRequest.NumberOfSuggestionsShown.PaymentMethod on July
19th 2017.
@@ -104986,7 +110039,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.UserDidNotHaveSuggestionsForEverything.EffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -104999,7 +110052,7 @@ uploading your change for review.
<histogram
name="PaymentRequest.UserHadCompleteSuggestionsForEverything.EffectOnCompletion"
- enum="PaymentRequestFlowCompletionStatus">
+ enum="PaymentRequestFlowCompletionStatus" expires_after="M80">
<obsolete>
M62+ Part of PaymentRequest.Events
</obsolete>
@@ -105034,7 +110087,7 @@ uploading your change for review.
</histogram>
<histogram name="PDF.Actions" enum="ChromePDFViewerActions"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hnakashima@chromium.org</owner>
<summary>
Tracks user actions in the PDF viewer. Logged when the document is opened
@@ -105079,7 +110132,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PDF.HasAttachment" enum="Boolean" expires_after="2020-03-29">
+<histogram name="PDF.HasAttachment" enum="Boolean" expires_after="2020-05-31">
<owner>hnakashima@chromium.org</owner>
<summary>
Measures if PDFs opened in the PDF viewer have attachments. This is logged
@@ -105127,7 +110180,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PDF.PageCount" units="pages" expires_after="2020-02-16">
+<histogram name="PDF.PageCount" units="pages" expires_after="2020-04-19">
<owner>hnakashima@chromium.org</owner>
<summary>
Tracks the number of pages in PDF documents opened in the PDF viewer.
@@ -105228,10 +110281,23 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PerformanceManager.AgentsByTime" units="units"
+ expires_after="2019-12-30">
+ <owner>bokan@chromium.org</owner>
+ <owner>kouhei@chromium.org</owner>
+ <owner>platform-architecture-dev@chromium.org</owner>
+ <summary>
+ Tracks the total number of agents hosted by the browser by time. An entry in
+ bucket N corresponds to N agents being hosted across all live renderer
+ process for 1 second. Recorded on state changes and every 5 minutes.
+ </summary>
+</histogram>
+
<histogram name="PerformanceManager.AgentsPerRendererByTime" units="units"
expires_after="2019-12-30">
<owner>bokan@chromium.org</owner>
<owner>kouhei@chromium.org</owner>
+ <owner>platform-architecture-dev@chromium.org</owner>
<summary>
Tracks the number of agents hosted per renderer by time. An entry in bucket
N corresponds to N agents being hosted by a renderer process for 1 second.
@@ -105239,6 +110305,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="PerformanceManager.AgentsUniqueByTime" units="units"
+ expires_after="2019-12-30">
+ <owner>bokan@chromium.org</owner>
+ <owner>kouhei@chromium.org</owner>
+ <owner>platform-architecture-dev@chromium.org</owner>
+ <summary>
+ Tracks the number of unique agents hosted by the browser by time. An entry
+ in bucket N corresponds to N unique agents being hosted across all live
+ renderer process for 1 second. Unique means that the agent count would
+ remain the same if they were in one process (i.e. they have different
+ protocol+site). Recorded on state changes and every 5 minutes.
+ </summary>
+</histogram>
+
<histogram
name="PerformanceManager.BrowsingInstancePluralityVisibilityState.ByPageTime"
enum="BrowsingInstancePluralityVisibilityState" expires_after="2019-09-30">
@@ -105487,6 +110567,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Permissions.Action.WithDisposition" enum="PermissionAction"
+ expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Tracks the action that a user had taken per permission prompt UI
+ disposition. Suffixed by the UI disposition that the prompt used. Recorded
+ when a permission prompt has been resolved.
+ </summary>
+</histogram>
+
<histogram name="Permissions.AutoBlocker.EmbargoPromptSuppression"
enum="PermissionEmbargoStatus" expires_after="M90">
<owner>dominickn@chromium.org</owner>
@@ -105587,6 +110679,57 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Permissions.CrowdDeny.DidHoldbackQuietUi" enum="Boolean"
+ expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Whenever a notification permission prompt is to be displayed, crowd deny
+ might trigger based on site reputation which will result in a quiet
+ permission prompt UI to be used. Whenever this happens, there is a small
+ chance that the normal UI will still be used. This records, when a quiet UI
+ is supposed to be shown, whether it has been randomly selected into the
+ hold-back group. In this case the normal UI will be displayed unless
+ overriden by the user Prefences.
+ </summary>
+</histogram>
+
+<histogram name="Permissions.CrowdDeny.PreloadData.NotificationUxQuality"
+ enum="CrowdDenyNotificationUxQuality" expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records, each time a notification permission prompt is about to be shown,
+ the NotificationUxQuality result for the requesting origin.
+ </summary>
+</histogram>
+
+<histogram name="Permissions.CrowdDeny.SafeBrowsing.RequestDuration" units="ms"
+ expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records, each time a Safe Browsing request is made in response to a website
+ requesting the notification permission, how long that Safe Browsing request
+ took. This also includes all delays introduced by thread hopping.
+ </summary>
+</histogram>
+
+<histogram name="Permissions.CrowdDeny.SafeBrowsing.Verdict"
+ enum="CrowdDenySafeBrowsingVerdict" expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records, each time a Safe Browsing request is made in response to a website
+ requesting the notification permission, the Safe Browsing verdict regarding
+ the notification prompt experience on that site.
+ </summary>
+</histogram>
+
<histogram name="Permissions.Engagement.Accepted" units="%">
<owner>dominickn@chromium.org</owner>
<owner>kcarattini@chromium.org</owner>
@@ -105795,7 +110938,7 @@ uploading your change for review.
</histogram>
<histogram name="Permissions.Prompt.Infobar.DetailsExpanded" enum="Boolean"
- expires_after="M80">
+ expires_after="M82">
<owner>andypaicu@chromium.org</owner>
<owner>engedy@chromium.org</owner>
<owner>hkamila@chromium.org</owner>
@@ -105869,6 +111012,42 @@ uploading your change for review.
</summary>
</histogram>
+<histogram
+ name="Permissions.QuietNotificationPrompts.DidEnableAdapativelyInPrefs"
+ enum="Boolean" expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records, each time the quiet UI gets enabled in preferences, whether it was
+ enabled by the adaptive activation logic.
+ </summary>
+</histogram>
+
+<histogram
+ name="Permissions.QuietNotificationPrompts.EnabledStateInPrefsChangedTo"
+ enum="BooleanEnabled" expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records when the quiet notification permission UI state changes, that is, it
+ either gets enabled or disabled, in preferences.
+ </summary>
+</histogram>
+
+<histogram name="Permissions.QuietNotificationPrompts.IsEnabledInPrefs"
+ enum="BooleanEnabled" expires_after="2020-12-01">
+ <owner>andypaicu@chromium.org</owner>
+ <owner>engedy@chromium.org</owner>
+ <owner>hkamila@chromium.org</owner>
+ <summary>
+ Records whether the quiet notification permission UI is enabled in
+ preferences at profile creation. No sample recorded when notifications are
+ set to be blocked completely.
+ </summary>
+</histogram>
+
<histogram name="Permissions.Requested.CrossOrigin" enum="PermissionStatus"
expires_after="2017-02-23">
<obsolete>
@@ -106253,7 +111432,7 @@ uploading your change for review.
</histogram>
<histogram name="Platform.Cast.MeminfoMemAvailable2" units="MiB"
- expires_after="2019-11-30">
+ expires_after="2021-11-30">
<owner>halliwell@chromium.org</owner>
<summary>
/proc/meminfo's 'MemAvailable' in MiB. Collected every 5s on Cast devices
@@ -106274,7 +111453,7 @@ uploading your change for review.
</histogram>
<histogram name="Platform.Cast.MeminfoMemFreeDerived2" units="MiB"
- expires_after="2019-11-30">
+ expires_after="2021-11-30">
<owner>halliwell@chromium.org</owner>
<summary>
Collect free + buffers + cache memory in MiB every 5s on Cast devices,
@@ -106952,6 +112131,48 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Platform.SATA.AvailableReservedSpace" units="%"
+ expires_after="2020-10-25">
+ <owner>asavery@chromium.org</owner>
+ <owner>gwendal@chromium.org</owner>
+ <summary>
+ The remaining reserved space (SMART 232). The value counts down typically
+ from 100 to 0, sent at boot.
+ </summary>
+</histogram>
+
+<histogram name="Platform.SATA.LogicalSectorsRead" units="512-byte sectors"
+ expires_after="2020-10-25">
+ <owner>asavery@chromium.org</owner>
+ <owner>gwendal@chromium.org</owner>
+ <summary>
+ The total number of 512-byte sectors written during the lifetime of the
+ device, sent at boot.
+ </summary>
+</histogram>
+
+<histogram name="Platform.SATA.LogicalSectorsWritten" units="512-byte sectors"
+ expires_after="2020-10-25">
+ <owner>asavery@chromium.org</owner>
+ <owner>gwendal@chromium.org</owner>
+ <summary>
+ The total number of 512-byte sectors written during the lifetime of the
+ device, sent at boot.
+ </summary>
+</histogram>
+
+<histogram name="Platform.SATA.PercentageUsed" units="%"
+ expires_after="2020-10-25">
+ <owner>asavery@chromium.org</owner>
+ <owner>gwendal@chromium.org</owner>
+ <summary>
+ Percentage Used Endurance Indicator. A value of 0 indicates a new device, a
+ value of 100 indicates the device is at the end of its lifespan as projected
+ by the manufacturer. Values greater than 100 indicate the device is beyond
+ the projected lifespan. Maximum value is 255, sent at boot.
+ </summary>
+</histogram>
+
<histogram name="Platform.ServiceFailureHashes" units="units"
expires_after="M77">
<obsolete>
@@ -108603,7 +113824,7 @@ uploading your change for review.
<histogram
name="PLT.BeginToFinish_LinkLoadNormal_ExtensionWebRequestAdblockPlus"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 6/2014. Replaced by
BeginToFinish_LinkLoadNormal_ExtensionWebRequest.
@@ -108665,7 +113886,7 @@ uploading your change for review.
<histogram
name="PLT.BeginToFinish_LinkLoadReload_ExtensionWebRequestAdblockPlus"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 6/2014. Replaced by
BeginToFinish_LinkLoadReload_ExtensionWebRequest.
@@ -108727,7 +113948,7 @@ uploading your change for review.
<histogram
name="PLT.BeginToFinish_LinkLoadStaleOk_ExtensionWebRequestAdblockPlus"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 6/2014. Replaced by
BeginToFinish_LinkLoadStaleOk_ExtensionWebRequest.
@@ -109842,7 +115063,7 @@ uploading your change for review.
</histogram>
<histogram name="Plugin.FlashUsage" enum="FlashUsage"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>yzshen@chromium.org</owner>
<owner>thestig@chromium.org</owner>
<summary>Collects Flash usage data.</summary>
@@ -110032,7 +115253,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PluginVm.EngagementTime.PluginVm" units="ms"
+<histogram name="PluginVm.EngagementTime.PluginVmTotal" units="ms"
expires_after="2020-04-01">
<owner>timloh@google.com</owner>
<owner>joelhockey@google.com</owner>
@@ -110053,12 +115274,12 @@ uploading your change for review.
Engagement time metrics, along with foreground and background time, are only
collected on users with Plugin VM enabled. All four metrics are accumulated
and recorded to UMA once a day. For Total Plugin VM engagement time, see
- PluginVm.EngagementTime.PluginVm.
+ PluginVm.EngagementTime.PluginVmTotal.
</summary>
</histogram>
<histogram name="PluginVm.Image.DownloadedSize" units="MB"
- expires_after="2019-12-01">
+ expires_after="2020-12-31">
<owner>aoldemeier@chromium.org</owner>
<owner>okalitova@chromium.org</owner>
<owner>timloh@chromium.org</owner>
@@ -110069,7 +115290,7 @@ uploading your change for review.
</histogram>
<histogram name="PluginVm.LaunchResult" enum="PluginVmLaunchResult"
- expires_after="2019-12-01">
+ expires_after="2020-12-31">
<owner>aoldemeier@chromium.org</owner>
<owner>okalitova@chromium.org</owner>
<owner>timloh@chromium.org</owner>
@@ -110080,7 +115301,7 @@ uploading your change for review.
</histogram>
<histogram name="PluginVm.SetupResult" enum="PluginVmSetupResult"
- expires_after="2020-02-02">
+ expires_after="2020-12-31">
<owner>aoldemeier@chromium.org</owner>
<owner>okalitova@chromium.org</owner>
<owner>timloh@chromium.org</owner>
@@ -110089,7 +115310,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PluginVm.SetupTime" units="ms" expires_after="2020-02-23">
+<histogram name="PluginVm.SetupTime" units="ms" expires_after="2020-12-31">
<owner>aoldemeier@chromium.org</owner>
<owner>okalitova@chromium.org</owner>
<owner>timloh@chromium.org</owner>
@@ -110101,7 +115322,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Power.BacklightLevelOnAC" units="%" expires_after="2020-03-01">
+<histogram name="Power.BacklightLevelOnAC" units="%" expires_after="2020-05-03">
<owner>tbroch@chromium.org</owner>
<summary>
The level of the backlight as a percentage when the user is on AC. Sampled
@@ -110110,7 +115331,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BacklightLevelOnBattery" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>tbroch@chromium.org</owner>
<summary>
The level of the backlight as a percentage when the user is on battery.
@@ -110119,7 +115340,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryChargeHealth" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery charge health percentage. Sampled once when device starts
@@ -110151,7 +115372,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryDischargeRate" units="mW"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery discharge rate in mW sampled every 30 seconds while the
@@ -110217,7 +115438,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryDischargeRateWhileSuspended" units="mW"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS battery discharge rate in mW while the system was suspended,
@@ -110229,7 +115450,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryInfoSample" enum="BatteryInfoSampleResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>tbroch@chromium.org</owner>
<summary>
Counts the number of times we have read the battery status from sysfs and if
@@ -110237,7 +115458,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2020-03-22">
+<histogram name="Power.BatteryPercentDrop" units="%" expires_after="2020-05-24">
<owner>ryansturm@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
@@ -110271,7 +115492,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryRemainingAtStartOfSessionOnAC" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -110301,7 +115522,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.BatteryRemainingWhenChargeStarts" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS remaining battery charge as percent of the maximum battery charge,
@@ -110381,7 +115602,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.ConnectedChargingPorts"
- enum="PowerConnectedChargingPorts" expires_after="2020-03-22">
+ enum="PowerConnectedChargingPorts" expires_after="2020-05-24">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -110407,7 +115628,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.DarkResumeWakeDurationMs.Other" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>chirantan@chromium.org</owner>
<owner>abhishekbh@chromium.org</owner>
<owner>ravisadineni@chromium.org</owner>
@@ -110448,7 +115669,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.DarkResumeWakeupsPerHour" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>chirantan@chromium.org</owner>
<summary>
The number of times a system woke up in dark resume in an hour. Note that
@@ -110490,7 +115711,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.ExternalDisplayOpenResult"
- enum="ExternalDisplayOpenResult" expires_after="2020-02-16">
+ enum="ExternalDisplayOpenResult" expires_after="2020-04-19">
<owner>tbroch@chromium.org</owner>
<summary>
The result of attempting to open an I2C device to control an external
@@ -110500,7 +115721,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.FirmwareResumeTimeOnAC" units="ms"
- expires_after="2020-01-26">
+ expires_after="2020-05-10">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the firmware took to resume the Chrome OS device from
@@ -110509,7 +115730,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.FirmwareResumeTimeOnBattery" units="ms"
- expires_after="2020-01-20">
+ expires_after="2020-05-10">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the firmware took to resume the Chrome OS device from
@@ -110548,7 +115769,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.IdleSuspendCountDaily" units="count"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -110610,7 +115831,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2020-03-29">
+<histogram name="Power.IdleTimeOnBattery" units="ms" expires_after="2020-05-31">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -110620,7 +115841,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.KernelResumeTimeOnAC" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to resume the Chrome OS device from
@@ -110646,7 +115867,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.KernelSuspendTimeOnBattery" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
The time that the kernel took to suspend-to-RAM the Chrome OS device when
@@ -110655,7 +115876,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.KeyboardBacklightLevel" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>tbroch@chromium.org</owner>
<summary>
The level of the keyboard backlight as a percentage. Sampled every 30
@@ -110664,7 +115885,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.LengthOfSession" units="seconds"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>tbroch@chromium.org</owner>
<summary>
The length of time, in seconds, that a user spent in a single session.
@@ -110674,7 +115895,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.LidClosedSuspendCountDaily" units="count"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Number of times that that the system has suspended in response to its lid
@@ -110697,7 +115918,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.Mac.AppleSMCOpened" enum="BooleanSuccess"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sdy@chromium.org</owner>
<summary>
When metrics collection started, records true if a handle to the System
@@ -110813,7 +116034,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.NumberOfSessionsPerCharge" units="units"
- expires_after="2020-01-26">
+ expires_after="2020-04-26">
<owner>tbroch@chromium.org</owner>
<summary>
The number of user sessions that occured since the last time that the device
@@ -110847,7 +116068,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.PowerButtonPressInLaptopMode"
- enum="PowerButtonPressType" expires_after="2020-03-29">
+ enum="PowerButtonPressType" expires_after="2020-05-31">
<owner>minch@chromium.org</owner>
<summary>
Press power button in laptop mode will result in different scenarios
@@ -110857,7 +116078,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.PowerButtonPressInTabletMode"
- enum="PowerButtonPressType" expires_after="2020-03-29">
+ enum="PowerButtonPressType" expires_after="2020-05-31">
<owner>minch@chromium.org</owner>
<summary>
Press power button in tablet mode will result in different scenarios
@@ -110867,7 +116088,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.PowerSupplyMaxPower" units="W"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -110888,7 +116109,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.PowerSupplyType" enum="PowerSupplyType"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>bleung@chromium.org</owner>
<owner>tbroch@chromium.org</owner>
<summary>
@@ -110919,7 +116140,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.SuspendAttempt" enum="SuspendAttempt"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts on Chrome OS. Samples are reported before
@@ -110929,7 +116150,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.SuspendAttemptsBeforeCancel" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
@@ -110940,7 +116161,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.SuspendAttemptsBeforeSuccess" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
The number of suspend attempts performed for a single suspend request (e.g.
@@ -110950,7 +116171,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.SuspendResult" enum="SuspendResult"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
The results of suspend attempts on Chrome OS. Samples are reported after
@@ -110994,7 +116215,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.TimeInSuspendAtBoot" units="minutes"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at boot
@@ -111003,7 +116224,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.TimeInSuspendAtResume" units="minutes"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbroch@chromium.org</owner>
<summary>
Chrome OS time in minutes spent in suspend-to-RAM mode sampled at resume.
@@ -111022,7 +116243,7 @@ uploading your change for review.
</histogram>
<histogram name="Power.UserBrightnessAdjustmentsPerSessionOnBattery"
- units="units" expires_after="2020-03-01">
+ units="units" expires_after="2020-05-03">
<owner>tbroch@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
@@ -111102,7 +116323,7 @@ uploading your change for review.
</histogram>
<histogram name="PowerML.SmartDimModel.Result"
- enum="PowerMLSmartDimModelResult" expires_after="2020-03-29">
+ enum="PowerMLSmartDimModelResult" expires_after="2020-05-31">
<owner>jiameng@chromium.org</owner>
<summary>
This is the status code returned by the model when calculating a user
@@ -111530,7 +116751,7 @@ uploading your change for review.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.BodySize" units="bytes"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -111541,7 +116762,7 @@ uploading your change for review.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.BodySizeTotal" units="bytes"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -111553,7 +116774,7 @@ uploading your change for review.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.Count" units="count"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -111565,7 +116786,7 @@ uploading your change for review.
</histogram>
<histogram name="PrefetchedSignedExchangeCache.HeadersSizeTotal" units="bytes"
- expires_after="2019-12-31">
+ expires_after="2020-06-30">
<owner>horo@chromium.org</owner>
<owner>webpackage-dev@chromium.org</owner>
<summary>
@@ -111577,7 +116798,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PrefService.CreateProfilePrefsTime" units="ms">
+<histogram name="PrefService.CreateProfilePrefsTime" units="ms"
+ expires_after="M80">
<obsolete>
Removed 07/2019.
</obsolete>
@@ -112656,7 +117878,7 @@ uploading your change for review.
</histogram>
<histogram name="Prerender.PrerenderStartToReleaseContentsTime" units="ms"
- expires_after="2019-12-06">
+ expires_after="2020-06-06">
<owner>justincohen@chromium.org</owner>
<summary>
This is the time from when a prerendered page begins to load to when it is
@@ -112892,7 +118114,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.ContextMenuAction.LoFi"
- enum="PreviewsContextMenuActionLoFi">
+ enum="PreviewsContextMenuActionLoFi" expires_after="M80">
<obsolete>
Functionality removed in M77.
</obsolete>
@@ -112944,7 +118166,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.DeferAllScript.DenyListMatch" enum="BooleanDetected"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>tbansal@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -112954,7 +118176,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.DeferAllScript.RedirectLoopDetectedUsingCache"
- enum="BooleanDetected" expires_after="2020-03-22">
+ enum="BooleanDetected" expires_after="2020-05-24">
<owner>tbansal@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -112964,7 +118186,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.EligibilityReason" enum="PreviewsEligibilityReason"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>ryansturm@chromium.org</owner>
<summary>
When evaluating whether to show a user a preview, the preview might be
@@ -112992,7 +118214,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.HintCacheLevelDBStore.Status"
- enum="PreviewsHintCacheLevelDBStoreStatus">
+ enum="PreviewsHintCacheLevelDBStoreStatus" expires_after="M80">
<obsolete>
Replaced by OptimizationGuide.HintCacheLevelDBStore.LoadMetadataResult in
07/2019.
@@ -113091,7 +118313,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Previews.InfoBarAction" enum="PreviewsInfoBarAction">
+<histogram name="Previews.InfoBarAction" enum="PreviewsInfoBarAction"
+ expires_after="M80">
<obsolete>
Removed in M76.
</obsolete>
@@ -113162,12 +118385,13 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OmniboxAction" enum="PreviewsUserOmniboxAction"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>robertogden@chromium.org</owner>
<summary>User interactions with the Previews Android Omnibox UI.</summary>
</histogram>
-<histogram name="Previews.OmniboxLiteStringShown" enum="BooleanShown">
+<histogram name="Previews.OmniboxLiteStringShown" enum="BooleanShown"
+ expires_after="M80">
<obsolete>
Removed July 2019.
</obsolete>
@@ -113215,7 +118439,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OptimizationGuide.HintCache.HasHint.AtCommit"
- enum="NQEEffectiveConnectionType">
+ enum="NQEEffectiveConnectionType" expires_after="M80">
<obsolete>
Deprecated in favor of OptimizationGuide.HintCache.HasHint.AtCommit as of
08/2019.
@@ -113228,7 +118452,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OptimizationGuide.HintCache.HasHint.BeforeCommit"
- enum="NQEEffectiveConnectionType">
+ enum="NQEEffectiveConnectionType" expires_after="M80">
<obsolete>
Deprecated in favor of OptimizationGuide.HintCache.HasHint.BeforeCommit as
of 08/2019.
@@ -113255,7 +118479,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OptimizationGuide.HintCache.HostMatch.AtCommit"
- enum="NQEEffectiveConnectionType">
+ enum="NQEEffectiveConnectionType" expires_after="M80">
<obsolete>
Deprecated in favor of OptimizationGuide.HintCache.HostMatch.AtCommit as of
08/2019.
@@ -113272,7 +118496,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OptimizationGuide.HintCache.PageMatch.AtCommit"
- enum="NQEEffectiveConnectionType">
+ enum="NQEEffectiveConnectionType" expires_after="M80">
<obsolete>
Deprecated in favor of OptimizationGuide.HintCache.PageMatch.AtCommit as of
08/2019.
@@ -113312,7 +118536,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.OptOut.UserOptedOut" enum="PreviewsUserOptedOut"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>ryansturm@chromium.org</owner>
<summary>
Whether the user chose to reload the original page when shown a preview.
@@ -113327,12 +118551,13 @@ uploading your change for review.
</histogram>
<histogram name="Previews.PageEndReason" enum="PageEndReason"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>robertogden@chromium.org</owner>
<summary>Records why the page load ended on a given preview type.</summary>
</histogram>
-<histogram name="Previews.ProcessHintsResult" enum="PreviewsProcessHintsResult">
+<histogram name="Previews.ProcessHintsResult" enum="PreviewsProcessHintsResult"
+ expires_after="M80">
<obsolete>
Merged with OptimizationGuide.ProcessHintsResult in 07/2019.
</obsolete>
@@ -113345,7 +118570,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.ServerLitePage.BlacklistReasons"
- enum="PreviewsServerLitePageBlacklistReason" expires_after="2020-03-29">
+ enum="PreviewsServerLitePageBlacklistReason" expires_after="2020-05-31">
<owner>robertogden@chromium.org</owner>
<summary>
The reason that a navigation is blacklisted from loading a server lite page
@@ -113377,7 +118602,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.ServerLitePage.IneligibleReasons"
- enum="PreviewsServerLitePageIneligibleReason" expires_after="2020-03-22">
+ enum="PreviewsServerLitePageIneligibleReason" expires_after="2020-05-24">
<owner>robertogden@chromium.org</owner>
<summary>
The reasons that a navigation is not eligible to be shown a server lite page
@@ -113505,7 +118730,7 @@ uploading your change for review.
</histogram>
<histogram name="Previews.ServerLitePage.ServerResponse"
- enum="PreviewsServerLitePageServerResponse" expires_after="2020-03-22">
+ enum="PreviewsServerLitePageServerResponse" expires_after="2020-05-24">
<owner>robertogden@chromium.org</owner>
<summary>
The type of response given by the previews server when a server lite page
@@ -113660,6 +118885,18 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Printing.CUPS.HighestIppVersion" enum="IppVersion"
+ expires_after="2020-11-02">
+ <owner>skau@chromium.org</owner>
+ <owner>pawliczek@chromium.org</owner>
+ <summary>
+ Records the highest IPP version reported by a printer when we query the
+ printer for attributes. Useful to understand the population of printers
+ currently used. Recorded during printer setup for IPP printers. Recorded
+ only on ChromeOS.
+ </summary>
+</histogram>
+
<histogram name="Printing.CUPS.IppAttributes" enum="IppAttribute"
expires_after="M82">
<owner>vkuzkokov@chromium.org</owner>
@@ -113905,7 +119142,7 @@ uploading your change for review.
<owner>pawliczek@chromium.org</owner>
<owner>skau@chromium.org</owner>
<summary>
- Records the number of print server that must be queried according to
+ Records the number of print servers that must be queried according to
policies. Only non-zero values are recorded. The histogram is emitted when
ExternalPrintServers* policies are loaded and processed. It happens when a
profile is opened or when one of the policies is modified.
@@ -113951,7 +119188,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.InitializationTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>thestig@chromium.org</owner>
<summary>
Time from when print preview is intiated until the preview PDF generation is
@@ -114003,7 +119240,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.PageCount.Initial" units="units"
- expires_after="2020-02-23">
+ expires_after="M77">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -114026,7 +119263,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PrintPreview.PageCount.PrintToCloudPrint" units="units">
+<histogram name="PrintPreview.PageCount.PrintToCloudPrint" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -114062,7 +119300,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PrintPreview.PageCount.PrintToPDF" units="units">
+<histogram name="PrintPreview.PageCount.PrintToPDF" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -114084,7 +119323,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PrintPreview.PageCount.PrintWithExtension" units="units">
+<histogram name="PrintPreview.PageCount.PrintWithExtension" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -114095,7 +119335,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="PrintPreview.PageCount.PrintWithPrivet" units="units">
+<histogram name="PrintPreview.PageCount.PrintWithPrivet" units="units"
+ expires_after="M80">
<obsolete>
Deprecated 07/2019.
</obsolete>
@@ -114151,7 +119392,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.PrintDocumentType"
- enum="PrintPreviewPrintDocumentTypeBuckets" expires_after="2020-03-29">
+ enum="PrintPreviewPrintDocumentTypeBuckets" expires_after="2020-05-31">
<owner>rbpotter@chromium.org</owner>
<summary>
Track type of documents printed (HTML vs PDF). Recorded immediately after a
@@ -114160,7 +119401,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.PrintSettings" enum="PrintSettings"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>thestig@chromium.org</owner>
<summary>
Track the popularity of print settings. (Settings when printing to PDF are
@@ -114195,7 +119436,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.RegeneratePreviewRequest.BeforePrint"
- units="units" expires_after="2020-02-16">
+ units="units" expires_after="2020-05-10">
<owner>thestig@chromium.org</owner>
<summary>
The number of times regenerate preview requests received before the user
@@ -114204,7 +119445,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.RenderAndGeneratePDFTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>thestig@chromium.org</owner>
<summary>
Time taken to render and generate PDF for print preview. (Includes time to
@@ -114237,7 +119478,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.RenderToPDFTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>thestig@chromium.org</owner>
<summary>Time taken to render to PDF for print preview.</summary>
</histogram>
@@ -114269,7 +119510,7 @@ uploading your change for review.
</histogram>
<histogram name="PrintPreview.UserAction" enum="PrintPreviewUserActionType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>thestig@chromium.org</owner>
<summary>
Action taken by the user in the preview tab such as print, cancel, print to
@@ -114321,7 +119562,7 @@ uploading your change for review.
</histogram>
<histogram name="Privacy.DoNotTrackSetting" enum="BooleanEnabled"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>mkwst@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<summary>
@@ -114341,7 +119582,7 @@ uploading your change for review.
</histogram>
<histogram name="Privacy.ThirdPartyCookieBlockingSetting" enum="BooleanEnabled"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>mkwst@chromium.org</owner>
<owner>msramek@chromium.org</owner>
<summary>
@@ -114412,13 +119653,13 @@ uploading your change for review.
</histogram>
<histogram name="Profile.AddNewUser" enum="ProfileAddNewUser"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>rogerta@chromium.org</owner>
<summary>The frequency of ways that new user profiles are added.</summary>
</histogram>
<histogram name="Profile.AndroidAccountManagementMenu"
- enum="ProfileAndroidAccountManagementMenu" expires_after="2020-02-16">
+ enum="ProfileAndroidAccountManagementMenu" expires_after="2020-04-26">
<owner>aruslan@chromium.org</owner>
<summary>
Track user interactions that can be performed in the Android account
@@ -114488,7 +119729,8 @@ uploading your change for review.
<summary>Length of time to setup profile.</summary>
</histogram>
-<histogram name="Profile.CreateBrowserContextServicesTime" units="ms">
+<histogram name="Profile.CreateBrowserContextServicesTime" units="ms"
+ expires_after="M80">
<obsolete>
Removed 07/2019.
</obsolete>
@@ -114544,7 +119786,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Profile.CreateTimeCanceledNoTimeout" units="ms">
+<histogram name="Profile.CreateTimeCanceledNoTimeout" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated as of 6/2019.
</obsolete>
@@ -114584,7 +119827,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.DeleteProfileAction" enum="ProfileDeleteAction"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<owner>anthonyvd@chromium.org</owner>
@@ -114703,7 +119946,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.Menu.OpenedAfterAvatarAnimation" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-24">
<owner>droger@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -114725,7 +119968,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.NetUserCount" enum="ProfileNetUserCount"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>rogerta@chromium.org</owner>
<summary>
Counts of users added and deleted. Percentages are not meaningful. Please
@@ -114794,7 +120037,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.NumberOfActiveProfiles" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>feuunk@chromium.org</owner>
<summary>
Counts the number of profiles on a user's machine at least every 24 hours
@@ -114833,7 +120076,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.NumberOfProfiles" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>rogerta@chromium.org</owner>
<summary>
Counts the number of profiles on a user's machine at least every 24 hours
@@ -114937,7 +120180,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Profile.OnLocaleReadyTime" units="ms">
+<histogram name="Profile.OnLocaleReadyTime" units="ms" expires_after="M80">
<obsolete>
Removed 07/2019.
</obsolete>
@@ -114999,7 +120242,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Profile.ProfileImplDoFinalInit" units="ms">
+<histogram name="Profile.ProfileImplDoFinalInit" units="ms" expires_after="M80">
<obsolete>
Removed 07/2019.
</obsolete>
@@ -115180,7 +120423,7 @@ uploading your change for review.
</histogram>
<histogram name="Profile.TriggeredReset" enum="BooleanReset"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>robertshield@chromium.org</owner>
<summary>
Indicates whether a profile had a reset trigger that caused it to launch a
@@ -115287,7 +120530,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ProfileReset.SendFeedback" enum="Boolean">
+<histogram name="ProfileReset.SendFeedback" enum="Boolean" expires_after="M80">
<obsolete>
Removed 07/2019. No longer tracked.
</obsolete>
@@ -115435,7 +120678,7 @@ uploading your change for review.
</histogram>
<histogram name="ProximityAuth.BleWeaveConnectionResult"
- enum="ProximityAuth_BleWeaveConnectionResult" expires_after="2020-03-29">
+ enum="ProximityAuth_BleWeaveConnectionResult" expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how often each BLE weave connection result occurs.
@@ -115444,7 +120687,7 @@ uploading your change for review.
<histogram name="ProximityAuth.BluetoothGattConnectionResult"
enum="ProximityAuth_BluetoothGattConnectionResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -115458,7 +120701,7 @@ uploading your change for review.
<histogram name="ProximityAuth.BluetoothGattNotifySessionResult"
enum="ProximityAuth_BluetoothGattServiceOperationResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -115472,7 +120715,7 @@ uploading your change for review.
<histogram name="ProximityAuth.BluetoothGattWriteCharacteristicResult"
enum="ProximityAuth_BluetoothGattServiceOperationResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hansberry@chromium.org</owner>
<summary>
Provides a breakdown of how many times each possible Bluetooth GATT
@@ -115492,7 +120735,7 @@ uploading your change for review.
</histogram>
<histogram name="ProxyOverriddenBubble.UserSelection"
- units="ExtensionBubbleAction" expires_after="2019-12-31">
+ units="ExtensionBubbleAction" expires_after="2020-12-31">
<owner>rdevlin.cronin@chromium.org</owner>
<summary>
The action taken by the user when the &quot;proxy overridden&quot; extension
@@ -115668,7 +120911,7 @@ uploading your change for review.
</histogram>
<histogram name="PushMessaging.QueuedMessagesCount" units="units"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>mamir@chromium.org</owner>
<summary>
When a message arrives for a lazy subscription and Chrome isn't in the
@@ -115995,42 +121238,6 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="QuicSession.HeaderCompressionRatioHpackReceived" units="%"
- expires_after="2020-10-08">
- <owner>bnc@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
- <summary>
- Header compression ratio as percentage for received headers using HPACK.
- </summary>
-</histogram>
-
-<histogram name="QuicSession.HeaderCompressionRatioHpackSent" units="%"
- expires_after="2020-10-08">
- <owner>bnc@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
- <summary>
- Header compression ratio as percentage for sent headers using HPACK.
- </summary>
-</histogram>
-
-<histogram name="QuicSession.HeaderCompressionRatioQpackReceived" units="%"
- expires_after="2020-10-08">
- <owner>bnc@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
- <summary>
- Header compression ratio as percentage for received headers using QPACK.
- </summary>
-</histogram>
-
-<histogram name="QuicSession.HeaderCompressionRatioQpackSent" units="%"
- expires_after="2020-10-08">
- <owner>bnc@chromium.org</owner>
- <owner>src/net/quic/OWNERS</owner>
- <summary>
- Header compression ratio as percentage for sent headers using QPACK.
- </summary>
-</histogram>
-
<histogram name="QuicSession.Qpack.HeaderListCountWhenBlockedStreamLimited"
units="count" expires_after="2020-10-08">
<owner>bnc@chromium.org</owner>
@@ -116083,7 +121290,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.AgeOfOriginInDays" units="days"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>jarrydg@chromium.org</owner>
<summary>
How many days it's been since an origin's temporary storage has been
@@ -116092,7 +121299,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.AvailableDiskSpace" units="MB"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>
Amount of free disk space for the storage directory. Logged at irregular
@@ -116121,7 +121328,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Quota.DiskspaceShortage" units="MB" expires_after="2020-03-22">
+<histogram name="Quota.DiskspaceShortage" units="MB" expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>
Difference between acceptable lower limit of diskspace and actual free
@@ -116195,7 +121402,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.EvictionRoundsPerHour" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>Number of eviction rounds in an hour.</summary>
</histogram>
@@ -116222,7 +121429,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.GlobalUsageOfTemporaryStorage" units="MB"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>Global usage of temporary storage.</summary>
</histogram>
@@ -116247,7 +121454,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.NumberOfEvictedOriginsPerRound" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>jarrydg@chromium.org</owner>
<summary>Number of evicted origins per round.</summary>
</histogram>
@@ -116317,7 +121524,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.PercentDiskAvailable" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>
Percentage of the storage device that is free. Logged at irregular
@@ -116344,7 +121551,7 @@ uploading your change for review.
</histogram>
<histogram name="Quota.PercentUsedForTemporaryStorage2" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>
Percentage of the storage device that is being use for temporary storage.
@@ -116425,7 +121632,7 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2020-03-22">
+<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2020-05-24">
<owner>jarrydg@chromium.org</owner>
<summary>
Total disk space for the storage directory. Logged at irregular intervals.
@@ -116576,7 +121783,7 @@ uploading your change for review.
</histogram>
<histogram name="RecurrenceRanker.ConfigurationError"
- enum="RecurrenceRankerConfigurationError">
+ enum="RecurrenceRankerConfigurationError" expires_after="M80">
<obsolete>
Replaced by RecurrenceRanker.InitializationStatus.
</obsolete>
@@ -116624,7 +121831,7 @@ uploading your change for review.
</histogram>
<histogram name="RecurrenceRanker.SerializationError"
- enum="RecurrenceRankerSerializationError">
+ enum="RecurrenceRankerSerializationError" expires_after="M80">
<obsolete>
Replaced by RecurrenceRanker.SerializationStatus.
</obsolete>
@@ -116660,7 +121867,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="RecurrenceRanker.UsageError" enum="RecurrenceRankerUsageError">
+<histogram name="RecurrenceRanker.UsageError" enum="RecurrenceRankerUsageError"
+ expires_after="M80">
<obsolete>
The cases this reported can no longer occur.
</obsolete>
@@ -116673,6 +121881,10 @@ uploading your change for review.
</histogram>
<histogram name="Referrer.HeaderLength" units="bytes">
+ <obsolete>
+ We successfully shipped a 4k restriction in M77, and no longer require the
+ data on `referer` header length.
+ </obsolete>
<owner>mkwst@chromium.org</owner>
<summary>
The size of each outgoing request's 'Referer' header field's value, in
@@ -117138,6 +122350,12 @@ uploading your change for review.
<histogram name="Renderer4.Browser.RasterTaskSchedulingDelay"
units="microseconds" expires_after="2020-08-22">
+ <obsolete>
+ Obsolete as of 11/2019. Replaced by
+ Renderer4.Browser.RasterTaskSchedulingDelayNoAtRasterDecodes since the
+ semantics changed: we used to count raster tasks that depended on at-raster
+ image decodes, but this is no longer the case.
+ </obsolete>
<owner>andrescj@chromium.org</owner>
<owner>chromeos-gfx@google.com</owner>
<summary>
@@ -117147,6 +122365,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Renderer4.Browser.RasterTaskSchedulingDelayNoAtRasterDecodes"
+ units="microseconds" expires_after="2020-11-30">
+ <owner>andrescj@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ The wall time elapsed between creating a raster task in the client and being
+ ready to issue raster work to the driver in the GPU process. This includes
+ time decoding and uploading images. Note that this does not count raster
+ tasks that depend on at-raster image decodes. Since this metric is only
+ reported for Chrome OS clients, it has data only from high-resolution
+ clocks.
+ </summary>
+</histogram>
+
<histogram name="Renderer4.Browser.RasterTaskTotalDuration"
units="microseconds">
<owner>khushalsagar@chromium.org</owner>
@@ -117418,6 +122650,9 @@ uploading your change for review.
<histogram name="Renderer4.GpuRasterizationSlowPathsWithNonAAPaint"
enum="BooleanHasSlowPathsWithNonAAPaint" expires_after="M78">
+ <obsolete>
+ Deprecated 10/2019.
+ </obsolete>
<owner>ericrk@chromium.org</owner>
<owner>enne@chromium.org</owner>
<summary>
@@ -117429,7 +122664,11 @@ uploading your change for review.
</histogram>
<histogram name="Renderer4.GpuRasterizationSuitableContent"
- enum="BooleanEnabled">
+ enum="BooleanEnabled" expires_after="M79">
+ <obsolete>
+ Deprecated 10/2019. Gpu rasterization is no longer dynamically triggerd by
+ content.
+ </obsolete>
<owner>ericrk@chromium.org</owner>
<owner>enne@chromium.org</owner>
<summary>
@@ -117538,6 +122777,19 @@ uploading your change for review.
</summary>
</histogram>
+<histogram base="true" name="Renderer4.ImageUploadTaskDurationUs"
+ units="microseconds" expires_after="2020-10-15">
+<!-- Name completed by histogram_suffixes name="DecodedImageType" -->
+
+ <owner>sashamcintosh@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ This metric records the duration of an image upload for the raster path in
+ the compositor. It is recorded every time we upload an image. The metric is
+ optionally suffixed by the image type (WebP, Jpeg, etc.) or OutOfRaster.
+ </summary>
+</histogram>
+
<histogram name="Renderer4.InvalidationRegionApproximateRectCount"
units="rects">
<owner>wiltzius@chromium.org</owner>
@@ -117732,6 +122984,12 @@ uploading your change for review.
<histogram name="Renderer4.Renderer.RasterTaskSchedulingDelay"
units="microseconds" expires_after="2020-08-22">
+ <obsolete>
+ Obsolete as of 11/2019. Replaced by
+ Renderer4.Renderer.RasterTaskSchedulingDelayNoAtRasterDecodes since the
+ semantics changed: we used to count raster tasks that depended on at-raster
+ image decodes, but this is no longer the case.
+ </obsolete>
<owner>andrescj@chromium.org</owner>
<owner>chromeos-gfx@google.com</owner>
<summary>
@@ -117741,6 +122999,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Renderer4.Renderer.RasterTaskSchedulingDelayNoAtRasterDecodes"
+ units="microseconds" expires_after="2020-11-30">
+ <owner>andrescj@chromium.org</owner>
+ <owner>chromeos-gfx@google.com</owner>
+ <summary>
+ The wall time elapsed between creating a raster task in the client and being
+ ready to issue raster work to the driver in the GPU process. This includes
+ time decoding and uploading images. Note that this does not count raster
+ tasks that depend on at-raster image decodes. Since this metric is only
+ reported for Chrome OS clients, it has data only from high-resolution
+ clocks.
+ </summary>
+</histogram>
+
<histogram name="Renderer4.Renderer.RasterTaskTotalDuration"
units="microseconds">
<owner>khushalsagar@chromium.org</owner>
@@ -117805,6 +123077,20 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="Renderer4.ScrollingThread" enum="ScrollingThreadStatus"
+ expires_after="2020-11-21">
+<!-- Name completed by histogram_suffixes name="ScrollSourceDevice" -->
+
+ <owner>bokan@chromium.org</owner>
+ <owner>input-dev@chromium.org</owner>
+ <summary>
+ For each scroll gesture (i.e. at GestureScrollBegin), records whether the
+ scroll is: handled unblocked on the compositor thread, handled on the
+ compositor thread but blocked on main thread event listeners, or being
+ handled on the main thread. Broken down by scroll device.
+ </summary>
+</histogram>
+
<histogram name="Renderer4.Snapshot" units="units" expires_after="2019-02-14">
<obsolete>
Deprecated at an unknown time. No longer used in code.
@@ -118215,7 +123501,7 @@ uploading your change for review.
<histogram
name="RendererScheduler.ExpectedTaskQueueingDurationWithoutMainFrame"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Removed March 2019.
</obsolete>
@@ -118855,7 +124141,7 @@ uploading your change for review.
<histogram
name="RendererScheduler.TaskQueueManager.ImmediateTaskQueueingDuration"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed from code 2017-08.
</obsolete>
@@ -118940,8 +124226,25 @@ uploading your change for review.
</histogram>
<histogram base="true"
+ name="RendererScheduler.TimeRunningOtherAgentsWhileTaskReady"
+ units="microseconds" expires_after="M80">
+ <owner>fdoray@chromium.org</owner>
+ <owner>etiennep@chromium.org</owner>
+ <summary>
+ Time spent running tasks from other agents between when an agent task
+ becomes ready and when it starts running. A non-delayed task is ready when
+ it is posted. A delayed task is ready when its delay expires. Recorded for 1
+ out of 1000 tasks.
+ </summary>
+</histogram>
+
+<histogram base="true"
name="RendererScheduler.TimeRunningOtherFramesWhileTaskReady"
units="microseconds" expires_after="M78">
+ <obsolete>
+ Deprecated 11/2019. Replace with
+ RendererScheduler.TimeRunningOtherAgentsWhileTaskReady.
+ </obsolete>
<owner>fdoray@chromium.org</owner>
<owner>etiennep@chromium.org</owner>
<summary>
@@ -119768,7 +125071,8 @@ uploading your change for review.
</summary>
</histogram>
-<histogram name="ResourceCoordinator.Measurement.Duration" units="ms">
+<histogram name="ResourceCoordinator.Measurement.Duration" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -119777,7 +125081,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceCoordinator.Measurement.Memory.ExtraProcesses"
- units="processes">
+ units="processes" expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -119791,7 +125095,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceCoordinator.Measurement.Memory.LateNotification"
- enum="Boolean">
+ enum="Boolean" expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -119803,7 +125107,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceCoordinator.Measurement.Memory.Outcome"
- enum="MemoryMeasurementOutcome">
+ enum="MemoryMeasurementOutcome" expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -119814,7 +125118,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceCoordinator.Measurement.Memory.UnmeasuredProcesses"
- units="processes">
+ units="processes" expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -119826,7 +125130,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceCoordinator.Measurement.TotalProcesses"
- units="processes">
+ units="processes" expires_after="M80">
<obsolete>
Deprecated April 2019. No longer recorded.
</obsolete>
@@ -120078,7 +125382,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Host.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120166,7 +125470,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Host.PrefetchFromCacheUsedFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120195,7 +125499,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Host.PrefetchFromNetworkUsedFromCache"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120210,7 +125514,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Host.PrefetchFromNetworkUsedFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120318,7 +125622,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourcePrefetchPredictor.MainFrameRequestStats"
- enum="ResourcePrefetchPredictorMainFrameRequestStats">
+ enum="ResourcePrefetchPredictorMainFrameRequestStats" expires_after="M80">
<obsolete>
Obsoleted in M-69.
</obsolete>
@@ -120428,7 +125732,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated 01/2013. Replaced with specific ones for Url and Host.
</obsolete>
@@ -120598,7 +125902,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourcePrefetchPredictor.RequestStats"
- enum="ResourcePrefetchPredictorRequestStats">
+ enum="ResourcePrefetchPredictorRequestStats" expires_after="M80">
<obsolete>
Obsoleted in M-69.
</obsolete>
@@ -120676,7 +125980,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Url.PredictedPrefetchFromNetworkPercentOfTotalFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120764,7 +126068,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Url.PrefetchFromCacheUsedFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120793,7 +126097,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Url.PrefetchFromNetworkUsedFromCache"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120808,7 +126112,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.Url.PrefetchFromNetworkUsedFromNetwork"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated September 2016. No longer recorded.
</obsolete>
@@ -120852,7 +126156,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.UrlTableMainFrameUrlsDeletedNotInHistory"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Deprecated October 2012. No longer recorded.
</obsolete>
@@ -120866,7 +126170,7 @@ uploading your change for review.
<histogram
name="ResourcePrefetchPredictor.UrlTableMainFrameUrlsDeletedNotInHistoryPercent"
- units="%">
+ units="%" expires_after="M80">
<obsolete>
Deprecated October 2012. No longer recorded.
</obsolete>
@@ -120949,8 +126253,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceScheduler.ActiveSchedulerClientsCount" units="clients"
- expires_after="M80">
- <owner>jfwang@chromium.org</owner>
+ expires_after="M85">
<owner>tbansal@chromium.org</owner>
<summary>
The number of active resource scheduler clients indicates the severity of
@@ -121046,7 +126349,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceScheduler.NonDelayableLastEndToNonDelayableStart"
- units="ms" expires_after="M82">
+ units="ms" expires_after="M85">
<owner>tbansal@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -121059,7 +126362,7 @@ uploading your change for review.
<histogram
name="ResourceScheduler.NonDelayableLastEndToNonDelayableStart.NonDelayableNotInFlight"
- units="ms" expires_after="M82">
+ units="ms" expires_after="M85">
<owner>tbansal@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -121086,7 +126389,7 @@ uploading your change for review.
</histogram>
<histogram name="ResourceScheduler.NonDelayableLastStartToNonDelayableStart"
- units="ms" expires_after="M82">
+ units="ms" expires_after="M85">
<owner>tbansal@chromium.org</owner>
<owner>dougarnett@chromium.org</owner>
<summary>
@@ -121399,6 +126702,17 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="SafeBrowsing.CheckBrowseUrl.HasLocalMatch"
+ enum="BooleanMatched" expires_after="2020-08-05">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs whether the Safe Browsing check via CheckBrowseUrl method matched any
+ local hash prefixes. Logged each time the Safe Browsing reputation of a URL
+ is checked using local blocklists.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.CheckUrl.Timeout" units="Boolean"
expires_after="2020-08-05">
<owner>vakh@chromium.org</owner>
@@ -121437,6 +126751,297 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="SafeBrowsing.DeepScan.Download.BypassedByUser.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the duration from the time the binary is uploaded for deep
+ scanning of a download request until the time the user decides to bypass the
+ verdict. It is logged once for each binary upload when the user bypasses the
+ verdict.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.BytesPerSeconds" units="bytes"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the bytes/sec from the size of a download request divided by
+ the duration of a successful deep scanning upload request. It is logged once
+ for each successful binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request. It is
+ logged once for each binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.FailedToGetToken.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request with a
+ FailedToGetToken result. It is logged once for each binary upload with that
+ result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.FailedToGetVerdict.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request with a
+ non-successful scan verdict. It is logged once for each binary upload with
+ that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.FileTooLarge.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request with a
+ FileTooLarge result. It is logged once for each binary upload with that
+ result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.Success.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request with a
+ Success result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.Timeout.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ SB.This records the deep scanning duration of a user download request with a
+ Timeout result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Download.Unknown.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user download request with an
+ Unknown result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.BytesPerSeconds"
+ units="bytes" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the bytes/sec from the size of an upload request caused by a
+ &quot;drag and drop&quot; from the user divided by the duration of a
+ successful deep scanning upload request. It is logged once for each
+ successful binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.CancelledByUser.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the duration from the time the binary is uploaded for deep
+ scanning of a &quot;drag and drop&quot; until the time the user decides to
+ cancel the upload. It is logged once for each binary upload when the user
+ bypasses the verdict.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request. It is logged once for each binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.FailedToGetToken.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request with a FailedToGetToken result. It is logged once for each binary
+ upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.FailedToGetVerdict.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request with a non-successful scan verdict. It is logged once for each
+ binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.FileTooLarge.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request with a FileTooLarge result. It is logged once for each binary upload
+ with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.Success.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request with a Success result. It is logged once for each binary upload with
+ that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.Timeout.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ SB.This records the deep scanning duration of a user &quot;drag and
+ drop&quot; request with a Timeout result. It is logged once for each binary
+ upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.DragAndDrop.Unknown.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user &quot;drag and drop&quot;
+ request with an Unknown result. It is logged once for each binary upload
+ with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.BytesPerSeconds" units="bytes"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the bytes/sec from the size of an upload request divided by the
+ duration of a successful deep scanning upload request. It is logged once for
+ each successful binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.CancelledByUser.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the duration from the time the binary is uploaded for deep
+ scanning of an upload until the time the user decides to cancel the upload.
+ It is logged once for each binary upload when the user bypasses the verdict.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request. It is
+ logged once for each binary upload.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.FailedToGetToken.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request with a
+ FailedToGetToken result. It is logged once for each binary upload with that
+ result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.FailedToGetVerdict.Duration"
+ units="ms" expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request with a
+ non-successful scan verdict. It is logged once for each binary upload with
+ that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.FileTooLarge.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request with a
+ FileTooLarge result. It is logged once for each binary upload with that
+ result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.Success.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request with a
+ Success result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.Timeout.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ SB.This records the deep scanning duration of a user upload request with a
+ Timeout result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.DeepScan.Upload.Unknown.Duration" units="ms"
+ expires_after="M85">
+ <owner>domfc@chromium.org</owner>
+ <owner>webprotect-team@google.com</owner>
+ <summary>
+ This records the deep scanning duration of a user upload request with an
+ Unknown result. It is logged once for each binary upload with that result.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.EnabledSettingChanged" enum="BooleanEnabled"
expires_after="2015-10-16">
<obsolete>
@@ -121450,7 +127055,7 @@ uploading your change for review.
</histogram>
<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateResult"
- enum="SBFileTypeUpdateResult" expires_after="M80">
+ enum="SBFileTypeUpdateResult" expires_after="M86">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -121465,6 +127070,9 @@ uploading your change for review.
<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateTypeCount"
units="number of file types" expires_after="M80">
+ <obsolete>
+ Removed in M80 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -121478,8 +127086,8 @@ uploading your change for review.
</histogram>
<histogram name="SafeBrowsing.FileTypeUpdate.DynamicUpdateVersion"
- units="FileTypePolicies Version" expires_after="M80">
- <owner>vdrubery@chromium.org</owner>
+ units="FileTypePolicies Version" expires_after="M86">
+ <owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Integer version number citing which version of the proto data chrome just
@@ -121492,7 +127100,7 @@ uploading your change for review.
</histogram>
<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleResult"
- enum="SBFileTypeUpdateResult" expires_after="M80">
+ enum="SBFileTypeUpdateResult" expires_after="M86">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -121506,6 +127114,9 @@ uploading your change for review.
<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleTypeCount"
units="number of file types" expires_after="M80">
+ <obsolete>
+ Removed in M80 due to lack of use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -121518,7 +127129,7 @@ uploading your change for review.
</histogram>
<histogram name="SafeBrowsing.FileTypeUpdate.ResourceBundleVersion"
- units="FileTypePolicies Version" expires_after="M80">
+ units="FileTypePolicies Version" expires_after="M86">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -121776,6 +127387,49 @@ uploading your change for review.
</summary>
</histogram>
+<histogram name="SafeBrowsing.RT.Backoff.State" enum="BooleanEnabled"
+ expires_after="2020-12-05">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs if the real time URL lookup service is currently in backoff state due
+ to previous errors. Logged each time a top frame URL navigation happens in
+ non-incognito mode for users who have real time URL lookups enabled.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.RT.LocalMatch.Result"
+ enum="SafeBrowsingAllowlistAsyncMatch" expires_after="2020-08-05">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs the result of checking the URL against the local Safe Browsing high
+ confidence allowlist. Logged each time a top frame URL navigation happens
+ for users who have the real time URL lookups enabled.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.RT.Network.Result"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="2020-08-05">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Response or error codes from SafeBrowsing real time URL lookups. Logged on
+ each resource check for which a lookup request is sent to the server.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsing.RT.Network.Time" units="ms"
+ expires_after="2020-08-05">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Logs the roundtrip time it took to perform a Safe Browsing real time URL
+ lookup. Logged on each resource check for which a lookup request is sent to
+ the server.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.RT.ResourceTypes.Checked"
enum="ContentResourceType2" expires_after="2020-08-05">
<owner>vakh@chromium.org</owner>
@@ -122080,6 +127734,16 @@ uploading your change for review.
<summary>Track get hash response hits for V4 full hash requests.</summary>
</histogram>
+<histogram name="SafeBrowsing.V4GetHash.CountOfPrefixes" units="prefixes"
+ expires_after="2020-12-03">
+ <owner>vakh@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ The number of prefixes included in a full hash request sent to the Google
+ Safe Browsing servers.
+ </summary>
+</histogram>
+
<histogram name="SafeBrowsing.V4GetHash.Network.Result"
enum="CombinedHttpResponseAndNetErrorCode">
<owner>vakh@google.com</owner>
@@ -122215,7 +127879,8 @@ Safe Browsing lookup mechanism is working as expected -->
</summary>
</histogram>
-<histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Time" units="ms">
+<histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdate.Time" units="ms"
+ expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122248,7 +127913,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessFullUpdate.DecodeAdditions.Time"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122297,7 +127962,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessPartialUpdate.ApplyUpdate.Time"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122332,7 +127997,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeAdditions.Time"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122361,7 +128026,7 @@ and applied correctly. -->
</histogram>
<histogram name="SafeBrowsing.V4ProcessPartialUpdate.DecodeRemovals.Time"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122415,7 +128080,8 @@ parsed correctly. -->
</summary>
</histogram>
-<histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Time" units="ms">
+<histogram name="SafeBrowsing.V4ReadFromDisk.ApplyUpdate.Time" units="ms"
+ expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122447,7 +128113,8 @@ and applied correctly. -->
</summary>
</histogram>
-<histogram name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Time" units="ms">
+<histogram name="SafeBrowsing.V4ReadFromDisk.DecodeAdditions.Time" units="ms"
+ expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -122743,6 +128410,93 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
+<histogram name="SafeBrowsingBinaryUploadRequest.DlpResult"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ This records whether DLP scanning succeeded or not. It is logged once for
+ each binary upload with DLP scanning enabled (file download or upload with
+ the appropriate enterprise policies enabled).
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingBinaryUploadRequest.Duration" units="ms"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ This records the duration of each binary upload request. It is logged once
+ for each binary upload (file download or upload with the appropriate
+ enterprise policies enabled).
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingBinaryUploadRequest.MalwareResult"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ This records whether the malware deep scanning succeeded or not. It is
+ logged once for each binary upload with malware scanning enabled (file
+ download or upload with the appropriate enterprise policies enabled).
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingBinaryUploadRequest.Result"
+ enum="SafeBrowsingBinaryUploadResult" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ This records the outcome of each binary upload request. It is logged once
+ for each binary upload (file download or upload with the appropriate
+ enterprise policies enabled).
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingFCMService.IncomingMessageHasKey" enum="Boolean"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Whether the incoming message has the expected key. Recorded on every FCM
+ message received by the Safe Browsing FCM handler.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingFCMService.IncomingMessageHasValidToken"
+ enum="Boolean" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Whether the incoming message has a token that was previously registered with
+ the FCM handler. Recorded on every FCM message received by the Safe Browsing
+ FCM handler.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingFCMService.IncomingMessageParsedBase64"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Whether the incoming message was successfully parsed as valid base64-encoded
+ data. Recorded on every FCM message received by the Safe Browsing FCM
+ handler.
+ </summary>
+</histogram>
+
+<histogram name="SafeBrowsingFCMService.IncomingMessageParsedProto"
+ enum="BooleanSuccess" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Whether the incoming message was successfully parsed as a valid
+ base64-encoded serialized proto. Recorded on every FCM message received by
+ the Safe Browsing FCM handler.
+ </summary>
+</histogram>
+
<histogram name="SB.BloomFilter" units="ms" expires_after="2014-07-09">
<obsolete>
Has not been generated for years (7/8/14).
@@ -123081,7 +128835,7 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
-<histogram name="SB2.Delay" units="ms">
+<histogram name="SB2.Delay" units="ms" expires_after="M80">
<obsolete>
Deprecated in M65. Replaced by SB2.NoUserActionResourceLoadingDelay
</obsolete>
@@ -123096,7 +128850,7 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
-<histogram name="SB2.Delay.MainFrame" units="ms">
+<histogram name="SB2.Delay.MainFrame" units="ms" expires_after="M80">
<obsolete>
Deprecated in M65.
</obsolete>
@@ -123110,7 +128864,7 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
-<histogram name="SB2.Delay.Subresource" units="ms">
+<histogram name="SB2.Delay.Subresource" units="ms" expires_after="M80">
<obsolete>
Deprecated in M65.
</obsolete>
@@ -123518,7 +129272,7 @@ failing to fetch the updates which puts users' security at risk. -->
</summary>
</histogram>
-<histogram name="SB2.Network" units="ms">
+<histogram name="SB2.Network" units="ms" expires_after="M80">
<obsolete>
Deprecated in M65.
</obsolete>
@@ -123756,7 +129510,7 @@ failing to fetch the updates which puts users' security at risk. -->
</histogram>
<histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -123917,7 +129671,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SB2.RemoteCall.Result" enum="SB2RemoteCallResult"
- expires_after="2020-03-01">
+ expires_after="2020-05-24">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124186,7 +129940,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.CheckDownloadStats"
- enum="SBClientDownloadCheckDownloadStats" expires_after="2020-03-29">
+ enum="SBClientDownloadCheckDownloadStats" expires_after="2020-05-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -124319,7 +130073,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.DownloadExtensions"
- enum="SBClientDownloadExtensions" expires_after="2020-03-29">
+ enum="SBClientDownloadExtensions" expires_after="2020-05-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -124472,7 +130226,8 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
-<histogram name="SBClientDownload.ExtractDmgFeaturesTime" units="ms">
+<histogram name="SBClientDownload.ExtractDmgFeaturesTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated in M76, replaced by
SBClientDownload.ExtractDmgFeaturesTimeMedium.
@@ -124487,7 +130242,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.ExtractDmgFeaturesTimeMedium" units="ms"
- expires_after="M79">
+ expires_after="M83">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>rsesek@chromium.org</owner>
@@ -124512,7 +130267,8 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
-<histogram name="SBClientDownload.ExtractRarFeaturesTime" units="ms">
+<histogram name="SBClientDownload.ExtractRarFeaturesTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated in M76, replaced by
SBClientDownload.ExtractRarFeaturesTimeMedium.
@@ -124551,7 +130307,8 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
-<histogram name="SBClientDownload.ExtractZipFeaturesTime" units="ms">
+<histogram name="SBClientDownload.ExtractZipFeaturesTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated in M76, replaced by
SBClientDownload.ExtractZipFeaturesTimeMedium.
@@ -124652,7 +130409,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.RarHeadersEncrypted" enum="Boolean"
- expires_after="M79">
+ expires_after="M83">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124715,7 +130472,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.UnsupportedScheme"
- enum="SBClientDownloadExtensions">
+ enum="SBClientDownloadExtensions" expires_after="M80">
<obsolete>
Deprecated M76, since there had been no such downloads for over a year.
</obsolete>
@@ -124729,6 +130486,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientDownload.ZipArchiveUncompressedSizeOverflow"
enum="Boolean" expires_after="M79">
+ <obsolete>
+ Deprecated in M79 due to lack of use, and no future plans for use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124739,6 +130499,9 @@ Safe Browsing lookups, which is critical for security. -->
<histogram name="SBClientDownload.ZipCompressionRatio" units="%"
expires_after="M79">
+ <obsolete>
+ Deprecated in M79 due to lack of use, and no future plans for use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124748,7 +130511,11 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
-<histogram name="SBClientDownload.ZipEntrySize" units="MB" expires_after="M79">
+<histogram name="SBClientDownload.ZipEntrySize" units="MB"
+ expires_after="2020-04-26">
+ <obsolete>
+ Deprecated in M79 due to lack of use, and no future plans for use.
+ </obsolete>
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124836,7 +130603,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientDownload.ZipFileSuccess" enum="BooleanSuccess"
- expires_after="M80">
+ expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -124999,7 +130766,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBClientPhishing.ClientDeterminesPhishing"
- enum="BooleanIsPhishing">
+ enum="BooleanIsPhishing" expires_after="M80">
<obsolete>
Removed in M77 due to lack of use.
</obsolete>
@@ -125264,7 +131031,8 @@ Safe Browsing lookups, which is critical for security. -->
</summary>
</histogram>
-<histogram name="SBClientPhishing.TooManyFeatures" units="units">
+<histogram name="SBClientPhishing.TooManyFeatures" units="units"
+ expires_after="2020-05-31">
<owner>vakh@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -125298,7 +131066,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBDownloadFeedback.ActiveFeedbacks" units="units"
- expires_after="M80">
+ expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -125343,7 +131111,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBDownloadFeedback.MetadataErrors"
- enum="CombinedHttpResponseAndNetErrorCode">
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="M82">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
@@ -125380,7 +131148,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBDownloadFeedback.SizeFailure" units="bytes"
- expires_after="M80">
+ expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -125390,7 +131158,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBDownloadFeedback.SizeSuccess" units="bytes"
- expires_after="M80">
+ expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -125425,7 +131193,7 @@ Safe Browsing lookups, which is critical for security. -->
</histogram>
<histogram name="SBDownloadFeedback.UploadResult"
- enum="SBDownloadFeedbackUploadResult" expires_after="M80">
+ enum="SBDownloadFeedbackUploadResult" expires_after="M83">
<owner>drubery@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<owner>mattm@chromium.org</owner>
@@ -125711,6 +131479,71 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="SBMultipartUploader.FailedUploadDuration" units="s"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Measures the total duration (including delay due to retries) of a failed
+ upload request. This is recorded after the last retry on every failed
+ upload.
+ </summary>
+</histogram>
+
+<histogram name="SBMultipartUploader.NetworkRequestResponseCodeOrError"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ The HTTP response code or net error from each upload attempt. This is
+ recorded once for each network request made as part of an upload, i.e. if an
+ upload fails the first time, but a retry succeeds, this metric is recorded
+ twice.
+ </summary>
+</histogram>
+
+<histogram name="SBMultipartUploader.RetriesNeeded" units="retries"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Counts how many retries were needed to complete the upload request. This is
+ emitted for every successful upload.
+ </summary>
+</histogram>
+
+<histogram name="SBMultipartUploader.SuccessfulUploadDuration" units="s"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Measures the total duration (including delay due to retries) of a successful
+ upload request. This is recorded for every successful upload.
+ </summary>
+</histogram>
+
+<histogram name="SBMultipartUploader.UploadSize" units="bytes"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ The size of the upload request body. This is a combination of the upload
+ data and metadata. This is recorded once for each upload, regardless of
+ whether it was successful.
+ </summary>
+</histogram>
+
+<histogram name="SBMultipartUploader.UploadSuccess" enum="BooleanSuccess"
+ expires_after="M85">
+ <owner>drubery@chromium.org</owner>
+ <owner>chrome-safebrowsing-alerts@google.com</owner>
+ <summary>
+ Whether the overall upload request succeeded or not. This is recorded once
+ for an upload request, regardless of how many retries were needed to
+ complete the upload.
+ </summary>
+</histogram>
+
<histogram name="SBOffDomainInclusion.Abort" enum="ContentResourceType"
expires_after="2015-12-22">
<obsolete>
@@ -126705,7 +132538,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Scheduling.Renderer.DrawIntervalWithCompositedAnimations2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>paint-dev@chromium.org</owner>
<summary>
The time delta between the draw times of back-to-back BeginImplFrames,
@@ -126741,7 +132574,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Scheduling.Renderer.DrawIntervalWithMainThreadAnimations2"
- units="microseconds" expires_after="2020-02-16">
+ units="microseconds" expires_after="2020-04-19">
<owner>paint-dev@chromium.org</owner>
<summary>
The time delta between the draw times of back-to-back BeginImplFrames of new
@@ -126871,7 +132704,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ScreenLocker.AuthenticationFailure" enum="UnlockType"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>sammiequon@chromium.org</owner>
<summary>
What type of authentication was attempted when the user failed to unlock the
@@ -129053,6 +134886,7 @@ should be kept until we remove incident reporting. -->
<histogram name="Search.iOS.SelectDefaultSearchEngine"
enum="OmniboxSearchEngineType" expires_after="2020-02-04">
<owner>mrsuyi@chromium.org</owner>
+ <owner>gambard@chromium.org</owner>
<summary>
When an iOS user changes the default search engine in chrome Settings,
records the search engine's type.
@@ -129186,7 +135020,7 @@ should be kept until we remove incident reporting. -->
<histogram
name="Security.HTTPBad.NavigationStartedAfterUserWarnedAboutSensitiveInput"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages. This
metric was recorded only after sensitive input events, which were removed.
@@ -129249,7 +135083,7 @@ should be kept until we remove incident reporting. -->
<histogram
name="Security.HTTPBad.WebContentsDestroyedAfterUserWarnedAboutSensitiveInput"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 2018-12 after HTTPBad was rolled out for all HTTP pages. This
metric was recorded only after sensitive input events, which were removed.
@@ -129901,7 +135735,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -130105,7 +135939,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.CanMakePaymentEvent.Time" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>jinho.bang@samsung.com</owner>
<summary>
The time taken between dispatching an CanMakePaymentEvent to a Service
@@ -130162,7 +135996,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.Database.OpenResult"
- enum="ServiceWorkerDatabaseStatus" expires_after="2020-06-30">
+ enum="ServiceWorkerDatabaseStatus" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
<owner>nhiroki@chromium.org</owner>
<summary>
Records result of opening a database for ServiceWorkerDatabase.
@@ -130331,7 +136167,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.FetchEvent.HasResponse.Time" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>falken@chromium.org</owner>
<summary>
The time taken between dispatching a FetchEvent to a Service Worker and
@@ -130341,7 +136177,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.FetchEvent.MainResource.Status"
- enum="ServiceWorkerStatusCode" expires_after="2020-02-16">
+ enum="ServiceWorkerStatusCode" expires_after="2020-04-19">
<owner>falken@chromium.org</owner>
<summary>
The result of dispatching a fetch event to a Service Worker for a main
@@ -130350,7 +136186,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.FetchEvent.Subresource.Status"
- enum="ServiceWorkerStatusCode" expires_after="2020-02-16">
+ enum="ServiceWorkerStatusCode" expires_after="2020-04-19">
<owner>falken@chromium.org</owner>
<summary>
The result of dispatching a fetch event to a Service Worker for a
@@ -130541,7 +136377,7 @@ should be kept until we remove incident reporting. -->
<histogram
name="ServiceWorker.LoadTiming.MainFrame.MainResource.ForwardServiceWorkerToWorkerReady"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2018-11 in favor of
ServiceWorker.LoadTiming.MainFrame.MainResource.ForwardServiceWorkerToWorkerReady2.
@@ -130692,7 +136528,7 @@ should be kept until we remove incident reporting. -->
<histogram
name="ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2018-12 in favor of
ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted2.
@@ -130944,7 +136780,8 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="ServiceWorker.NavPreload.ConcurrentTime" units="ms">
+<histogram name="ServiceWorker.NavPreload.ConcurrentTime" units="ms"
+ expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -130966,7 +136803,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.NavPreload.FinishedFirst"
- enum="BooleanNavPreloadFinishedFirst">
+ enum="BooleanNavPreloadFinishedFirst" expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -130983,7 +136820,8 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="ServiceWorker.NavPreload.ResponseTime" units="ms">
+<histogram name="ServiceWorker.NavPreload.ResponseTime" units="ms"
+ expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -131001,7 +136839,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.NavPreload.WorkerPreparationType"
- enum="ServiceWorkerPreparationType">
+ enum="ServiceWorkerPreparationType" expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -131029,7 +136867,11 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="ServiceWorker.NavPreload.WorkerWaitTime" units="ms">
+<histogram name="ServiceWorker.NavPreload.WorkerWaitTime" units="ms"
+ expires_after="M80">
+ <obsolete>
+ No longer recorded since NetS13nSW shipped on Dec 2018.
+ </obsolete>
<owner>falken@chromium.org</owner>
<summary>
This is recorded in the case where the navigation preload response arrived
@@ -131475,7 +137317,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.StartWorker.Status"
- enum="ServiceWorkerStatusCode" expires_after="2020-02-16">
+ enum="ServiceWorkerStatusCode" expires_after="2020-04-19">
<owner>falken@chromium.org</owner>
<summary>
The result of trying to start a Service Worker that is already installed.
@@ -131495,7 +137337,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.StartWorker.Time" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>falken@chromium.org</owner>
<summary>
The time taken to start a Service Worker that is already installed, from
@@ -131671,7 +137513,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.URLRequestJob.MainResource.Result"
- enum="ServiceWorkerURLRequestJobResult">
+ enum="ServiceWorkerURLRequestJobResult" expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -131696,7 +137538,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorker.URLRequestJob.Subresource.Result"
- enum="ServiceWorkerURLRequestJobResult">
+ enum="ServiceWorkerURLRequestJobResult" expires_after="M80">
<obsolete>
No longer recorded since NetS13nSW shipped on Dec 2018.
</obsolete>
@@ -131807,8 +137649,21 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram
+ name="ServiceWorkerCache.DidGenerateCacheableMetadataMessageInCacheStorage.OriginAllowed"
+ enum="Boolean" expires_after="M85">
+ <owner>wanderview@chromium.org</owner>
+ <owner>chrome-owp-storage@google.com</owner>
+ <summary>
+ Whether the origin provided in the
+ DidGenerateCacheableMetadataInCacheStorage message is allowed for the given
+ renderer process. This message is sent when the renderer has generated code
+ cache for a script and wants to store it in cache_storage.
+ </summary>
+</histogram>
+
<histogram name="ServiceWorkerCache.DiskCacheCreateEntryResult"
- enum="NetErrorCodes" expires_after="2019-12-31">
+ enum="NetErrorCodes" expires_after="2020-04-19">
<owner>wanderview@chromium.org</owner>
<owner>chrome-owp-storage@google.com</owner>
<summary>
@@ -131827,7 +137682,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="ServiceWorkerCache.IndexSizeDifference" units="bytes"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>cmumford@chromium.org</owner>
<summary>
The absolute difference between the ServiceWorker Cache size saved to the
@@ -132046,7 +137901,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Session.OpenedTabCounts" units="operations"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>rohitrao@chromium.org</owner>
<summary>
The number of times the user changed the active tab (this can happen when
@@ -132220,7 +138075,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Session.TotalDuration.WithAccount" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>feuunk@chromium.org</owner>
<summary>
The total session duration (see Session.TotalDuration) that was spent with
@@ -132249,7 +138104,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Session.TotalDuration.WithoutAccount" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>feuunk@chromium.org</owner>
<summary>
The total session duration (see Session.TotalDuration) that was spent
@@ -132396,7 +138251,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SessionRestore.ForegroundTabFirstLoaded" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>chrisha@chromium.org</owner>
<owner>georgesak@chromium.org</owner>
<summary>
@@ -132662,7 +138517,8 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="SessionRestore.RestoreSubframeFramePathLength" units="bytes">
+<histogram name="SessionRestore.RestoreSubframeFramePathLength" units="bytes"
+ expires_after="M80">
<obsolete>
Removed in July 2019 / M77, since new approach landed in r493153 (M62).
</obsolete>
@@ -132744,7 +138600,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SessionRestore.TabCount" units="tabs"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>chrisha@chromium.org</owner>
<summary>
The number of tabs involved in a single session restore event.
@@ -132753,7 +138609,7 @@ should be kept until we remove incident reporting. -->
<histogram name="SessionRestore.TabLoadTimeout" enum="BooleanTimedOut"
expires_after="M77">
- <owner>zhenw@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The boolean indicates whether the tab load was initiated because a previous
tab load completed (including the tab was closed) or whether the tab load
@@ -132887,7 +138743,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SessionStorageDatabase.Open" enum="SessionStorageDatabaseOpen"
- expires_after="M87">
+ expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
<owner>mek@chromium.org</owner>
<owner>dmurph@chromium.org</owner>
<summary>
@@ -133089,7 +138947,7 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Settings.LoadCompletedTime" units="ms">
+<histogram name="Settings.LoadCompletedTime" units="ms" expires_after="M80">
<obsolete>
Deprecated 07/2019. Non MD version of Settings has been deprecated.
</obsolete>
@@ -133110,7 +138968,7 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Settings.LoadDocumentTime" units="ms">
+<histogram name="Settings.LoadDocumentTime" units="ms" expires_after="M80">
<obsolete>
Deprecated 07/2019. Non MD version of Settings has been deprecated.
</obsolete>
@@ -133185,7 +139043,8 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Settings.RegisterProfilePrefsTime" units="ms">
+<histogram name="Settings.RegisterProfilePrefsTime" units="ms"
+ expires_after="M80">
<obsolete>
Removed 07/2019.
</obsolete>
@@ -133363,7 +139222,8 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Settings.StartupPageLoadURLs" units="units">
+<histogram name="Settings.StartupPageLoadURLs" units="units"
+ expires_after="M80">
<obsolete>
Not needed. Removed August 2019.
</obsolete>
@@ -133600,6 +139460,16 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="SettingsPage.SettingsPageInteractions"
+ enum="SettingsPageInteractions" expires_after="M83">
+ <owner>harrisonsean@chromium.org</owner>
+ <owner>msramek@chromium.org</owner>
+ <summary>
+ Which settings a user interacted with. Recorded every time a user interacts
+ with a setting.
+ </summary>
+</histogram>
+
<histogram name="SettingsResetBubble.NumNoThanksPerReset" units="units">
<owner>mad@chromium.org</owner>
<summary>
@@ -133757,6 +139627,16 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Setup.Install.CumulativeDiskUsage" units="MB"
+ expires_after="M82">
+ <owner>etiennep@chromium.org</owner>
+ <owner>grt@chromium.org</owner>
+ <summary>
+ The cumulative disk usage in MB during install or uninstall attempt,
+ recorded right after the install/uninstall attempt on windows only.
+ </summary>
+</histogram>
+
<histogram name="Setup.Install.DeleteAppHost" enum="BooleanDeletedOrNot">
<owner>grt@chromium.org</owner>
<summary>
@@ -133902,7 +139782,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Setup.Install.RemoveProfileStatistics"
- enum="BooleanDeletedOrNot" expires_after="M79">
+ enum="BooleanDeletedOrNot" expires_after="M87">
<owner>waffles@chromium.org</owner>
<summary>
Hit following a successful install or update when the legacy profile count
@@ -134103,7 +139983,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.ClickToCallAppsToShow" units="apps"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134116,6 +139996,8 @@ should be kept until we remove incident reporting. -->
<histogram name="Sharing.ClickToCallContextMenuPhoneNumberParsingDelay"
units="microseconds" expires_after="M81">
+<!-- Name completed by histogram_suffixes name="PhoneNumberRegexVariant" -->
+
<owner>himanshujaju@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<owner>peter@chromium.org</owner>
@@ -134126,7 +140008,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.ClickToCallDevicesToShow" units="devices"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134160,7 +140042,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.ClickToCallDialogShown" enum="SharingDialogType"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -134179,7 +140061,7 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Sharing.ClickToCallPhoneCall" units="ms" expires_after="M80">
+<histogram name="Sharing.ClickToCallPhoneCall" units="ms" expires_after="M82">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -134189,8 +140071,60 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Sharing.ClickToCallPhoneNumberDigits" units="digits"
+ expires_after="M83">
+<!-- Name completed by histogram_suffixes name="SharingClickToCallEntryPoint"
+ and name="SharingClickToCallSendToDevice" -->
+
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The number of digits in a phone number. Logged when right clicking on a
+ selected phone number or tel link, showing the Click to Call dialog and when
+ selecting a device. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.ClickToCallPhoneNumberLength" units="characters"
+ expires_after="M83">
+<!-- Name completed by histogram_suffixes name="SharingClickToCallEntryPoint"
+ and name="SharingClickToCallSendToDevice" -->
+
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The number of characters in a phone number including digits and non-digits.
+ Logged when right clicking on a selected phone number or tel link, showing
+ the Click to Call dialog and when selecting a device. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.ClickToCallPhoneNumberPrecompileTime" units="ms"
+ expires_after="M84">
+ <owner>knollr@chromium.org</owner>
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <summary>
+ Duration of the phone number regex precompilation task. This is recorded
+ once after startup. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.ClickToCallPhoneNumberRegexVariantResult"
+ enum="PhoneNumberRegexVariantResult" expires_after="M83">
+<!-- Name completed by histogram_suffixes name="PhoneNumberRegexVariant"
+ and name="SharingClickToCallSendToDevice" -->
+
+ <owner>knollr@chromium.org</owner>
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <summary>
+ The result of comparing a phone number regex variant against the simple
+ version. Logged after right clicking on a selection and when selecting a
+ device from the context menu. Desktop only.
+ </summary>
+</histogram>
+
<histogram name="Sharing.ClickToCallReceiveDeviceState"
- enum="ClickToCallDeviceState" expires_after="M80">
+ enum="ClickToCallDeviceState" expires_after="M82">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>knollr@chromium.org</owner>
<summary>
@@ -134201,7 +140135,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.ClickToCallSelectedAppIndex" units="index"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134213,7 +140147,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.ClickToCallSelectedDeviceIndex" units="index"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134224,8 +140158,21 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Sharing.DeviceLastUpdatedAge" units="hours"
+ expires_after="M84">
+<!-- Name completed by histogram_suffixes name="SharingMessage" -->
+
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The number of hours since the target device timestamp was last updated.
+ Logged when a message is sent to the device. Not logged for sending ack
+ messages. All platforms.
+ </summary>
+</histogram>
+
<histogram name="Sharing.DeviceRegistrationResult"
- enum="SharingDeviceRegistrationResult" expires_after="2020-02-02">
+ enum="SharingDeviceRegistrationResult" expires_after="M84">
<owner>alexchau@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -134235,7 +140182,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.DeviceUnregistrationResult"
- enum="SharingDeviceRegistrationResult" expires_after="2020-02-02">
+ enum="SharingDeviceRegistrationResult" expires_after="M84">
<owner>alexchau@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -134244,7 +140191,19 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Sharing.MessageAckTime" units="ms" expires_after="2020-02-02">
+<histogram name="Sharing.MajorVersionComparison"
+ enum="SharingMajorVersionComparison" expires_after="M84">
+<!-- Name completed by histogram_suffixes name="SharingMessage" -->
+
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The comparison of the major version of Chrome on this (the sender) device
+ and the receiver device. Logged when a message is sent. All platforms.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.MessageAckTime" units="ms" expires_after="M84">
<!-- Name completed by histogram_suffixes name="SharingMessage" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134256,7 +140215,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.MessageReceivedType" enum="SharingMessageType"
- expires_after="2020-02-02">
+ expires_after="M84">
<!-- Name completed by histogram_suffixes name="SharingMessage" -->
<owner>mvanouwerkerk@chromium.org</owner>
@@ -134268,9 +140227,83 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
+<histogram name="Sharing.RemoteCopyDecodeImageTime" units="ms"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>The time to decode an image for Remote Copy. Desktop only.</summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyHandleMessageResult"
+ enum="SharingRemoteCopyHandleMessageResult" expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The result of handling a Remote Copy message. Logged once per message, when
+ the handler for the Remote Copy FCM message is finished handling it. Desktop
+ only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyLoadImageStatusCode"
+ enum="CombinedHttpResponseAndNetErrorCode" expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ Result code from loading an image for Remote Copy. Logs net::Error if it's
+ not net::OK. Logs net::OK if response header is not present. Otherwise, logs
+ HTTP status code. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyLoadImageTime" units="ms"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>The time to load an image for Remote Copy. Desktop only.</summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyReceivedImageSizeAfterDecode" units="bytes"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The size of the image loaded from the image URL specified in a Remote Copy
+ message received from FCM, after decoding. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyReceivedImageSizeBeforeDecode" units="bytes"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The size of the image loaded from the image URL specified in a Remote Copy
+ message received from FCM, before decoding. Desktop only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyReceivedTextSize" units="bytes"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>
+ The size of the text in a Remote Copy message received from FCM. Desktop
+ only.
+ </summary>
+</histogram>
+
+<histogram name="Sharing.RemoteCopyResizeImageTime" units="ms"
+ expires_after="M84">
+ <owner>mvanouwerkerk@chromium.org</owner>
+ <owner>knollr@chromium.org</owner>
+ <summary>The time to resize an image for Remote Copy. Desktop only.</summary>
+</histogram>
+
<histogram name="Sharing.SendAckMessageResult" enum="SharingSendMessageResult"
- expires_after="M80">
-<!-- Name completed by histogram_suffixes name="SharingMessage" -->
+ expires_after="M84">
+<!-- Name completed by histogram_suffixes name="SharingDeviceType" and
+ name="SharingMessage" -->
<owner>alexchau@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -134294,8 +140327,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.SendMessageResult" enum="SharingSendMessageResult"
- expires_after="M80">
-<!-- Name completed by histogram_suffixes name="SharingMessage" -->
+ expires_after="M84">
+<!-- Name completed by histogram_suffixes name="SharingDeviceType" and
+ name="SharingMessage" -->
<owner>alexchau@chromium.org</owner>
<owner>knollr@chromium.org</owner>
@@ -134322,7 +140356,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.SharedClipboardDevicesToShow" units="devices"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>yasmo@chromium.org</owner>
<summary>
@@ -134335,7 +140369,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.SharedClipboardDialogShown" enum="SharingDialogType"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>yasmo@chromium.org</owner>
<summary>
@@ -134344,7 +140378,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.SharedClipboardSelectedDeviceIndex" units="index"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>yasmo@chromium.org</owner>
<summary>
@@ -134355,7 +140389,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.SharedClipboardSelectedTextSize" units="characters"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>mvanouwerkerk@chromium.org</owner>
<owner>yasmo@chromium.org</owner>
<summary>
@@ -134365,7 +140399,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Sharing.VapidKeyCreationResult"
- enum="SharingVapidKeyCreationResult" expires_after="2020-02-02">
+ enum="SharingVapidKeyCreationResult" expires_after="M84">
<owner>alexchau@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
@@ -134466,7 +140500,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Shutdown.ShutdownType" enum="ShutdownType"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hashimoto@chromium.org</owner>
<summary>The type of the last shutdown.</summary>
</histogram>
@@ -134592,7 +140626,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="SignedExchange.Prefetch.LoadResult2"
- enum="SignedExchangeLoadResult" expires_after="2020-02-16">
+ enum="SignedExchangeLoadResult" expires_after="2020-04-19">
<owner>kinuko@chromium.org</owner>
<owner>kouhei@chromium.org</owner>
<summary>
@@ -134753,7 +140787,10 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.AccountTracker.CountOfLoadedAccounts" units="Accounts"
- expires_after="M80">
+ expires_after="never">
+<!-- expires-never: used to monitor how many accounts are loaded from profile
+prefs when the profile is loaded. -->
+
<owner>msarda@chromium.org</owner>
<owner>sdefresne@chromium.org</owner>
<summary>
@@ -134785,7 +140822,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.AccountTracker.GaiaIdMigrationState"
- enum="OAuth2LoginAccountRevokedMigrationState" expires_after="M80">
+ enum="OAuth2LoginAccountRevokedMigrationState" expires_after="M84">
<owner>msarda@chromium.org</owner>
<owner>sdefresne@chromium.org</owner>
<summary>
@@ -134802,7 +140839,7 @@ should be kept until we remove incident reporting. -->
</summary>
</histogram>
-<histogram name="Signin.AddAccount" enum="BooleanSuccess">
+<histogram name="Signin.AddAccount" enum="BooleanSuccess" expires_after="M80">
<obsolete>
Deprecated 2019-07 as it was never used by the sign-in team.
</obsolete>
@@ -134907,7 +140944,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.ChromePrimaryAccountStateOnWebSignout"
- enum="ChromePrimaryAccountStateInGaiaCookies">
+ enum="ChromePrimaryAccountStateInGaiaCookies" expires_after="M80">
<obsolete>
Deprecated 2019-09. No longer useful after Dice is launched.
</obsolete>
@@ -134929,7 +140966,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.CookieJar.SignedInCount" units="accounts"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>skym@chromium.org</owner>
<summary>The number of signed in accounts in the cookie jar.</summary>
</histogram>
@@ -134965,7 +141002,10 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram base="true" name="Signin.DiceMigrationNotReady.Reason"
- enum="AccountReconcilorInconsistencyReason" expires_after="2020-01-12">
+ enum="AccountReconcilorInconsistencyReason" expires_after="2020-04-19">
+ <obsolete>
+ Deprecated M80. Dice migration is complete.
+ </obsolete>
<owner>msalama@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -134975,7 +141015,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.DiceMigrationStatus" enum="SigninDiceMigrationStatus"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>droger@chromium.org</owner>
<summary>
The Dice migration status, recorded at startup for each profile.
@@ -135048,7 +141088,9 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.GaiaCookieManager.Logout"
- enum="SigninGaiaCookieManagerLogout" expires_after="2019-11-01">
+ enum="SigninGaiaCookieManagerLogout" expires_after="never">
+<!-- expires-never: monitors logout requests to http://accounts.google.com/Logout endpoint -->
+
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135066,7 +141108,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.GetAccessTokenFinished" enum="GoogleServiceAuthError"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135077,7 +141119,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.GetAccessTokenRetry" enum="GoogleServiceAuthError"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135115,7 +141157,7 @@ should be kept until we remove incident reporting. -->
</histogram>
<histogram name="Signin.ListAccountsFailure" enum="GoogleServiceAuthError"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -135140,7 +141182,7 @@ the browser and content area. -->
</histogram>
<histogram name="Signin.LoadedIdentities.Count" units="identities"
- expires_after="2019-11-01">
+ expires_after="2020-11-01">
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135152,7 +141194,7 @@ the browser and content area. -->
</histogram>
<histogram name="Signin.LoadedIdentities.Duration" units="ms"
- expires_after="2019-11-01">
+ expires_after="2020-11-01">
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135164,7 +141206,7 @@ the browser and content area. -->
</histogram>
<histogram name="Signin.LoadedIdentities.DurationPerIdentity" units="ms"
- expires_after="2019-11-01">
+ expires_after="2020-11-01">
<owner>jlebel@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135189,7 +141231,7 @@ the browser and content area. -->
</histogram>
<histogram name="Signin.Multilogin.NumberOfAccounts" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>Number of accounts in tokens sent to Gaia Multilogin.</summary>
@@ -135221,8 +141263,18 @@ the browser and content area. -->
</summary>
</histogram>
+<histogram name="Signin.OAuth2MintToken.ApiCallResult"
+ enum="OAuth2MintTokenApiCallResult" expires_after="2020-05-02">
+ <owner>alexilin@chromium.org</owner>
+ <owner>droger@chromium.org</owner>
+ <summary>
+ Result of the OAuth2MintToken API call. Recorded after the response is
+ processed. Desktop only.
+ </summary>
+</histogram>
+
<histogram name="Signin.OAuth2TokenGetFailure" enum="GoogleServiceAuthError"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -135243,7 +141295,7 @@ tokens and is needed for as long as Chrome is fetching access tokens. -->
</histogram>
<histogram name="Signin.OAuthMultiloginResponseStatus"
- enum="OAuthMultiloginResponseStatus" expires_after="2020-02-16">
+ enum="OAuthMultiloginResponseStatus" expires_after="2020-04-19">
<owner>droger@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>Response status received from gaia Multilogin.</summary>
@@ -135477,7 +141529,10 @@ accounts .-->
</histogram>
<histogram name="Signin.SetCookieSuccess" enum="BooleanSuccess"
- expires_after="2019-11-01">
+ expires_after="never">
+<!-- expires-never: For monitoring setting cookies in the cookie jar after an
+OAuth Multilogin call. -->
+
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>
@@ -135513,13 +141568,13 @@ accounts .-->
</histogram>
<histogram name="Signin.SigninCompletedAccessPoint" enum="SigninAccessPoint"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>gogerald@chromium.org</owner>
<summary>Logs the original access point of each completed sign in.</summary>
</histogram>
<histogram name="Signin.SigninReason" enum="SigninReason"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>gogerald@chromium.org</owner>
<summary>Logs the reason of each completed sign in.</summary>
</histogram>
@@ -135539,7 +141594,7 @@ accounts .-->
</histogram>
<histogram name="Signin.SigninStartedAccessPoint" enum="SigninAccessPoint"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>gogerald@chromium.org</owner>
<summary>
Logs the original access point that displayed the signin or reauth Gaia
@@ -135557,14 +141612,14 @@ accounts .-->
</histogram>
<histogram name="Signin.SignoutProfile" enum="SigninSignoutProfile"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>msarda@chromium.org</owner>
<owner>droger@chromium.org</owner>
<summary>Track how a profile gets signed out.</summary>
</histogram>
<histogram name="Signin.SSOAuth.GetIdentities.ErrorCode"
- enum="SigninSSOAuthGetIdentitiesErrorCode" expires_after="2020-02-16">
+ enum="SigninSSOAuthGetIdentitiesErrorCode" expires_after="2020-04-19">
<owner>jlebel@chromium.org</owner>
<owner>chrome-signin-team@google.com</owner>
<summary>
@@ -135629,7 +141684,10 @@ accounts .-->
</histogram>
<histogram name="Signin.TokenServiceDiceCompatible" enum="Boolean"
- expires_after="2020-02-01">
+ expires_after="M80">
+ <obsolete>
+ Deprecated M80. Obsolete after Dice migration completed.
+ </obsolete>
<owner>msalama@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<summary>
@@ -135639,7 +141697,8 @@ accounts .-->
</summary>
</histogram>
-<histogram name="Signin.TokenStateTransition" enum="SigninTokenStateTransition">
+<histogram name="Signin.TokenStateTransition" enum="SigninTokenStateTransition"
+ expires_after="M80">
<obsolete>
Deprecated 2019-09. Obsolete after Dice is launched.
</obsolete>
@@ -136062,7 +142121,8 @@ Chrome adds accounts to the Gaia cookies. -->
</summary>
</histogram>
-<histogram name="SimpleCache.FileDescriptorLimitHard" units="file descriptors">
+<histogram name="SimpleCache.FileDescriptorLimitHard" units="file descriptors"
+ expires_after="M80">
<obsolete>
Removed 2019-07-03
</obsolete>
@@ -136074,7 +142134,8 @@ Chrome adds accounts to the Gaia cookies. -->
</summary>
</histogram>
-<histogram name="SimpleCache.FileDescriptorLimitSoft" units="file descriptors">
+<histogram name="SimpleCache.FileDescriptorLimitSoft" units="file descriptors"
+ expires_after="M80">
<obsolete>
Removed 2019-07-03. Consider Memory.Browser.OpenFDsSoftLimit for similar
information.
@@ -136099,7 +142160,8 @@ Chrome adds accounts to the Gaia cookies. -->
</summary>
</histogram>
-<histogram base="true" name="SimpleCache.GlobalOpenEntryCount" units="units">
+<histogram base="true" name="SimpleCache.GlobalOpenEntryCount" units="units"
+ expires_after="M80">
<obsolete>
Removed 2019-07-03.
</obsolete>
@@ -136846,7 +142908,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.EngagementScore" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
@@ -136901,7 +142963,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.EngagementScoreBucket" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<summary>
The percentage of sites on a user's profile that have engagement scores that
@@ -136911,7 +142973,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.EngagementType"
- enum="SiteEngagementServiceEngagementType" expires_after="2020-02-16">
+ enum="SiteEngagementServiceEngagementType" expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
@@ -136932,7 +142994,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.MedianEngagement" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
@@ -136943,7 +143005,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.OriginsEngaged" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
@@ -137012,7 +143074,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteEngagementService.TotalEngagement" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>calamity@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
@@ -137048,7 +143110,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolatedCodeCache.WASM.Behaviour"
- enum="SiteIsolatedCodeCacheWASMBehaviour" expires_after="2020-02-16">
+ enum="SiteIsolatedCodeCacheWASMBehaviour" expires_after="2020-04-19">
<owner>bbudge@chromium.org</owner>
<summary>
The behaviour of site isolated web assembly code cache recorded for each
@@ -137057,7 +143119,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="SiteIsolation.AllResponses" units="units">
+<histogram name="SiteIsolation.AllResponses" units="units" expires_after="M80">
<obsolete>
Removed in March 2018; in M67+, browser-process CORB policy is enabled.
</obsolete>
@@ -137070,7 +143132,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.BrowsingInstanceCount" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>creis@chromium.org</owner>
<summary>
The count of all current BrowsingInstances. Recorded once per UMA ping.
@@ -137078,7 +143140,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="SiteIsolation.CORBProtection.CacheHeuristic"
- enum="CrossOriginProtectionDecision" expires_after="M79">
+ enum="CrossOriginProtectionDecision" expires_after="M83">
<owner>krstnmnlsn@chromium.org</owner>
<owner>creis@chromium.org</owner>
<summary>
@@ -137091,7 +143153,7 @@ should be kept until we use this API. -->
<histogram base="true"
name="SiteIsolation.CORBProtection.CacheHeuristic.ProtectedMimeType"
- enum="BooleanSupported" expires_after="M79">
+ enum="BooleanSupported" expires_after="M83">
<!-- suffixed with Block*WithRangeSupport -->
<owner>krstnmnlsn@chromium.org</owner>
@@ -137105,7 +143167,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="SiteIsolation.CORBProtection.CORSHeuristic"
- enum="CrossOriginProtectionDecision" expires_after="M79">
+ enum="CrossOriginProtectionDecision" expires_after="M83">
<owner>krstnmnlsn@chromium.org</owner>
<owner>creis@chromium.org</owner>
<summary>
@@ -137118,7 +143180,7 @@ should be kept until we use this API. -->
<histogram base="true"
name="SiteIsolation.CORBProtection.CORSHeuristic.ProtectedMimeType"
- enum="BooleanSupported" expires_after="M79">
+ enum="BooleanSupported" expires_after="M83">
<!-- suffixed with Block*WithRangeSupport -->
<owner>krstnmnlsn@chromium.org</owner>
@@ -137133,7 +143195,7 @@ should be kept until we use this API. -->
<histogram base="true"
name="SiteIsolation.CORBProtection.ProtectedMimeType.BlockedWithoutSniffing.HasNoSniff"
- enum="BooleanHasNoSniff" expires_after="M79">
+ enum="BooleanHasNoSniff" expires_after="M83">
<owner>krstnmnlsn@chromium.org</owner>
<owner>creis@chromium.org</owner>
<summary>
@@ -137146,7 +143208,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.CORBProtection.SensitiveResource"
- enum="BooleanSensitive" expires_after="M79">
+ enum="BooleanSensitive" expires_after="M83">
<owner>krstnmnlsn@chromium.org</owner>
<owner>creis@chromium.org</owner>
<summary>
@@ -137156,7 +143218,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.CORBProtection.SensitiveWithRangeSupport"
- enum="BooleanSupported" expires_after="M79">
+ enum="BooleanSupported" expires_after="M83">
<owner>krstnmnlsn@chromium.org</owner>
<owner>creis@chromium.org</owner>
<summary>
@@ -137167,7 +143229,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.CurrentRendererProcessCount" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>creis@chromium.org</owner>
<summary>
The count of all renderer processes, including WebUI and extensions.
@@ -137462,7 +143524,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.OutOfProcessIframes" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>nasko@chromium.org</owner>
<summary>
The count of all out-of-process iframes. Recorded once per UMA ping.
@@ -137484,7 +143546,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.ProxyCount" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>creis@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
<owner>site-isolation-dev@chromium.org</owner>
@@ -137494,7 +143556,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.ProxyCountPerBrowsingInstance" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>creis@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
<owner>site-isolation-dev@chromium.org</owner>
@@ -137528,7 +143590,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SiteIsolation.SiteInstancesPerBrowsingInstance" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>nasko@chromium.org</owner>
<summary>
The count of SiteInstances in a single BrowsingInstance. Recorded each UMA
@@ -138084,7 +144146,7 @@ should be kept until we use this API. -->
<histogram
name="SiteIsolation.XSD.Plain.NoSniffBlocked.NonRenderableStatusCode"
- units="units">
+ units="units" expires_after="M80">
<obsolete>
Removed in March 2018; in M67+, browser-process CORB policy is enabled.
</obsolete>
@@ -138368,7 +144430,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthMethodChoice.SignIn"
- enum="SmartLockAuthMethodChoice" expires_after="2020-02-16">
+ enum="SmartLockAuthMethodChoice" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<summary>Records the user's sign in method choice.</summary>
</histogram>
@@ -138384,7 +144446,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthMethodChoice.Unlock"
- enum="SmartLockAuthMethodChoice" expires_after="2020-02-16">
+ enum="SmartLockAuthMethodChoice" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<summary>Records the user's unlock method choice.</summary>
</histogram>
@@ -138400,7 +144462,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthResult.SignIn" enum="BooleanSuccess"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<summary>
@@ -138410,7 +144472,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthResult.SignIn.Failure"
- enum="SmartLockAuthResultFailureReason" expires_after="2020-02-16">
+ enum="SmartLockAuthResultFailureReason" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<owner>hsuregan@chromium.org</owner>
<summary>
@@ -138429,7 +144491,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthResult.Unlock" enum="BooleanSuccess"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<summary>
Count of successful and failed attempts to unlock the Chromebook, after the
@@ -138438,7 +144500,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.AuthResult.Unlock.Failure"
- enum="SmartLockAuthResultFailureReason" expires_after="2020-02-16">
+ enum="SmartLockAuthResultFailureReason" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<summary>
Shows why an unlock attempt failed during the authentication phase. Breaks
@@ -138457,7 +144519,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.EnabledDevicesCount" units="devices"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>jhawkins@chromium.org</owner>
<summary>
A count of the number of SmartLock devices which the user has enabled to
@@ -138467,7 +144529,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.EnabledState" enum="SmartLockEnabledState"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>jhawkins@chromium.org</owner>
<summary>
The state of the SmartLock feature for the current user, set at login. The
@@ -138541,7 +144603,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SmartLock.MultiDeviceFeatureState"
- enum="MultiDevice_FeatureState" expires_after="2020-02-16">
+ enum="MultiDevice_FeatureState" expires_after="2020-04-19">
<owner>hansberry@chromium.org</owner>
<summary>
Indicates the feature state of the SmartLock feature. This metric is emitted
@@ -138773,7 +144835,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SoftwareReporter.Cleaner.RebootPromptShown"
- enum="SoftwareReporterRebootPromptType">
+ enum="SoftwareReporterRebootPromptType" expires_after="M80">
<obsolete>
Deprecated on 2019-05-29.
</obsolete>
@@ -139459,7 +145521,7 @@ should be kept until we use this API. -->
<summary>Error from sqlite3_backup_step() in sql::Recovery.</summary>
</histogram>
-<histogram name="Sqlite.SizeKB" units="Kb">
+<histogram name="Sqlite.SizeKB" units="Kb" expires_after="M80">
<obsolete>
Removed in M75.
</obsolete>
@@ -139564,7 +145626,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SSL.CertificateErrorHelpCenterVisited"
- enum="SSLErrorLearnMoreNavigationResult" expires_after="2020-02-16">
+ enum="SSLErrorLearnMoreNavigationResult" expires_after="2020-04-19">
<owner>carlosil@chromium.org</owner>
<summary>
When the &quot;Learn more&quot; link on an SSL interstitial is clicked, this
@@ -139676,6 +145738,20 @@ should be kept until we use this API. -->
<summary>Tracks when mixed content is displayed or run.</summary>
</histogram>
+<histogram name="SSL.NonWebbyMixedContentLoaded" enum="Boolean"
+ expires_after="2020-12-01">
+ <owner>carlosil@chromium.org</owner>
+ <owner>estark@chromium.org</owner>
+ <summary>
+ Tracks when mixed content is loaded from a &quot;non-webby&quot; URL, e.g.
+ an external protocol. The security of such URLs is unknown, but they are
+ exempt from mixed content UI treatment because they don't usually return
+ data to the browser. This histogram tracks how often such content is loaded
+ so that we can decide whether to block such resources unless an enterprise
+ policy is enabled.
+ </summary>
+</histogram>
+
<histogram name="SSORecallPromo.AccountsAvailable" units="units"
expires_after="2020-11-30">
<owner>msarda@chromium.org</owner>
@@ -139760,7 +145836,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Android.ProcessedCrashCounts"
- enum="AndroidProcessedCrashCounts" expires_after="2020-03-22">
+ enum="AndroidProcessedCrashCounts" expires_after="2020-05-24">
<owner>boliu@chromium.org</owner>
<summary>
Individual enum counts specific conditions of child process terminations.
@@ -139817,7 +145893,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Android.RendererCrash" enum="Boolean"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>wnwen@chromium.org</owner>
<summary>
Counts renderer crashes including OOMs. Android only. Mirrors old stability
@@ -139827,7 +145903,7 @@ should be kept until we use this API. -->
<histogram name="Stability.Android.StrongBindingOomRemainingBindingState"
enum="Android.ChildProcessBindingStateCombination"
- expires_after="2020-02-16">
+ expires_after="2020-05-24">
<owner>boliu@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -139839,7 +145915,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Android.StrongBindingOomRemainingStrongBindingCount"
- units="units" expires_after="2020-02-16">
+ units="units" expires_after="2020-04-26">
<owner>boliu@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
@@ -139862,7 +145938,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.BadMessageTerminated.Content"
- enum="BadMessageReasonContent" expires_after="2020-03-22">
+ enum="BadMessageReasonContent" expires_after="2020-05-24">
<owner>jam@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
@@ -139923,7 +145999,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.ChildFrameCrash.ShownAfterCrashingReason"
- enum="ShownAfterCrashingReason" expires_after="2020-03-22">
+ enum="ShownAfterCrashingReason" expires_after="2020-05-24">
<owner>alexmos@chromium.org</owner>
<owner>boliu@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
@@ -139956,7 +146032,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.ChildFrameCrash.Visibility" enum="CrashVisibility"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>boliu@chromium.org</owner>
<owner>lfg@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
@@ -139976,7 +146052,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.CrashedProcessAge.Renderer" units="ms"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>lukasza@chromium.org</owner>
<summary>
The age of a crashed extension process. Not logged on iOS. Logged together
@@ -139992,6 +146068,16 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Stability.Experimental.Counts" enum="StabilityEventType"
+ expires_after="M82">
+ <owner>rkaplow@chromium.org</owner>
+ <owner>chrome-metrics-team@google.com</owner>
+ <summary>
+ Collects various counters related to stability. The majority of them are
+ crash types.
+ </summary>
+</histogram>
+
<histogram name="Stability.Internals.DataDiscardCount" units="counts"
expires_after="M77">
<owner>siggi@chromium.org</owner>
@@ -140013,7 +146099,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.Internals.SystemCrashCount" units="crashes"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>siggi@chromium.org</owner>
<summary>
Number of times a browser crash was detected, where the browser was last
@@ -140139,7 +146225,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Stability.RendererUnresponsiveBeforeTermination"
- enum="BooleanUnresponsive" expires_after="2020-02-23">
+ enum="BooleanUnresponsive" expires_after="2020-04-26">
<owner>dtapuska@chromium.org</owner>
<summary>
If the renderer is considered unresponsive from the browser's perspective
@@ -140404,7 +146490,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.AfterStartupTaskCount" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>michaeln@chromium.org</owner>
<summary>
The number of after-startup tasks that were queued prior to startup
@@ -140413,7 +146499,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.AfterStartupTaskDelayedUntilTime" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>michaeln@chromium.org</owner>
<summary>
Time from the process creation until deferred after-startup tasks began
@@ -140422,7 +146508,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Startup.Android.Cold.TimeToFirstContentfulPaint"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>pasko@chromium.org</owner>
<owner>alexilin@chromium.org</owner>
<summary>
@@ -140435,7 +146521,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Startup.Android.Cold.TimeToFirstNavigationCommit"
- units="ms" expires_after="2020-03-22">
+ units="ms" expires_after="2020-05-24">
<owner>pasko@chromium.org</owner>
<owner>alexilin@chromium.org</owner>
<summary>
@@ -140492,7 +146578,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.Android.StartupTabPreloader.TabLoaded" units="Boolean"
- expires_after="2020-01-31">
+ expires_after="2020-04-26">
<owner>alexclarke@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<summary>
@@ -140504,7 +146590,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.Android.StartupTabPreloader.TabTaken" units="Boolean"
- expires_after="2020-01-31">
+ expires_after="2020-04-26">
<owner>alexclarke@chromium.org</owner>
<owner>skyostil@chromium.org</owner>
<summary>
@@ -140516,6 +146602,57 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Startup.Android.ThumbnailFetchedForGTSFirstMeaningfulPaint"
+ units="thumbnails" expires_after="2020-06-03">
+ <owner>yusufo@chromium.org</owner>
+ <owner>yfriedman@chromium.org</owner>
+ <summary>
+ Android: The number of thumbnails fetched for the first meaningful paint of
+ the Grid Tab Switcher. First meaningful paint is defined as having all the
+ thumbnails shown. This is recorded at most once per activity lifecycle. This
+ is gated by feature &quot;TabSwitcherOnReturn&quot;.
+ </summary>
+</histogram>
+
+<histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint" units="ms"
+ expires_after="2020-06-03">
+ <owner>yusufo@chromium.org</owner>
+ <owner>yfriedman@chromium.org</owner>
+ <summary>
+ Android: The elapsed time from the activity creation point to the first
+ meaningful paint of the Grid Tab Switcher. First meaningful paint is defined
+ as having all the thumbnails shown. This is recorded at most once per
+ activity lifecycle. This is gated by feature
+ &quot;TabSwitcherOnReturn&quot;.
+ </summary>
+</histogram>
+
+<histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Cold" units="ms"
+ expires_after="2020-06-03">
+ <owner>yusufo@chromium.org</owner>
+ <owner>yfriedman@chromium.org</owner>
+ <summary>
+ Android: The elapsed time from the activity creation point to the first
+ meaningful paint of the Grid Tab Switcher. First meaningful paint is defined
+ as having all the thumbnails shown. This is recorded at most once per
+ activity lifecycle. This is gated by feature
+ &quot;TabSwitcherOnReturn&quot;. It's only recorded on cold startup.
+ </summary>
+</histogram>
+
+<histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Warm" units="ms"
+ expires_after="2020-06-03">
+ <owner>yusufo@chromium.org</owner>
+ <owner>yfriedman@chromium.org</owner>
+ <summary>
+ Android: The elapsed time from the activity creation point to the first
+ meaningful paint of the Grid Tab Switcher. First meaningful paint is defined
+ as having all the thumbnails shown. This is recorded at most once per
+ activity lifecycle. This is gated by feature
+ &quot;TabSwitcherOnReturn&quot;. It's only recorded on warm startup.
+ </summary>
+</histogram>
+
<histogram name="Startup.AppListFirstPaintColdStart" units="ms"
expires_after="2018-03-20">
<obsolete>
@@ -140552,7 +146689,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BringToForegroundReason"
- enum="BooleanBringToForegroundReason" expires_after="2020-02-16">
+ enum="BooleanBringToForegroundReason" expires_after="2020-04-26">
<owner>peter@chromium.org</owner>
<summary>
Records the cause, each time Chrome is brought to the foreground. Currently
@@ -140714,7 +146851,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserMessageLoopStartTimeFromMainEntry.FirstRun2"
- units="ms" expires_after="2020-02-23">
+ units="ms" expires_after="never">
+<!-- expires-never: only metric to ensure that first run doesn't regress -->
+
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
@@ -140763,7 +146902,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserWindow.FirstPaint" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>mblsha@yandex-team.ru</owner>
<summary>
Time from browser startup to the time the first Browser window has finished
@@ -140772,7 +146911,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.BrowserWindow.FirstPaint.CompositingEnded" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>mblsha@yandex-team.ru</owner>
<summary>
Time from browser startup to the time the GPU has finished compositing after
@@ -140815,7 +146954,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.ColdStartWithExternalURLTime" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>jif@chromium.org</owner>
<summary>
The duration of all initializations in a cold start triggered by an external
@@ -140843,7 +146982,7 @@ should be kept until we use this API. -->
<histogram
name="Startup.Experimental.FirstWebContents.MainFrameLoad.ManyBuckets"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M-41.
</obsolete>
@@ -140858,7 +146997,7 @@ should be kept until we use this API. -->
<histogram
name="Startup.Experimental.FirstWebContents.MainFrameLoad.StandardBuckets"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Moved to Startup.FirstWebContents.MainFrameLoad in M-41.
</obsolete>
@@ -140872,7 +147011,7 @@ should be kept until we use this API. -->
<histogram
name="Startup.Experimental.FirstWebContents.NonEmptyPaint.ManyBuckets"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed in M-41.
</obsolete>
@@ -140887,7 +147026,7 @@ should be kept until we use this API. -->
<histogram
name="Startup.Experimental.FirstWebContents.NonEmptyPaint.StandardBuckets"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Moved to Startup.FirstWebContents.NonEmptyPaint in M-41.
</obsolete>
@@ -140968,6 +147107,10 @@ should be kept until we use this API. -->
<histogram name="Startup.FirstWebContents.MainFrameLoad2" units="ms"
expires_after="M77">
+ <obsolete>
+ Deprecated with M77. Startup.FirstWebContents.NonEmptyPaint2 is a better
+ indicator of startup time as perceived by users.
+ </obsolete>
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
@@ -140979,7 +147122,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.FirstWebContents.MainNavigationFinished" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>gab@chromium.org</owner>
<summary>
[Desktop] Measure the elapsed time from process launch to the moment when
@@ -141161,7 +147304,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.LoadTime.ExeMainToDllMain2" units="units"
- expires_after="2020-02-23">
+ expires_after="never">
+<!-- expires-never: used to diagnose regressions to Startup.FirstWebContents.NonEmptyPaint2 -->
+
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
@@ -141208,7 +147353,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.LoadTime.ProcessCreateToExeMain2" units="units"
- expires_after="M77">
+ expires_after="never">
+<!-- expires-never: used to diagnose regressions to Startup.FirstWebContents.NonEmptyPaint2 -->
+
<owner>fdoray@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
@@ -141577,7 +147724,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.WebFooterExperiment.DidFirstVisuallyNonEmptyPaint"
- units="ms" expires_after="M80">
+ units="ms" expires_after="M84">
<owner>pbos@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
@@ -141586,7 +147733,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Startup.WebFooterExperiment.WebFooterCreation" units="ms"
- expires_after="M80">
+ expires_after="M84">
<owner>pbos@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
@@ -142089,7 +148236,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.InvalidationTime" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in StyleEngine::InvalidateStyle. Only samples from high
@@ -142113,7 +148260,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.RebuildLayoutTreeTime" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in RebuildLayoutTree called from Document::UpdateStyle.
@@ -142121,7 +148268,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Style.RecalcTime" units="microseconds"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>futhark@chromium.org</owner>
<summary>
Microseconds spent in RecalcStyle called from Document::UpdateStyle.
@@ -142194,7 +148341,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="SubresourceFilter.AdDelay.Delay" units="ms">
+<histogram name="SubresourceFilter.AdDelay.Delay" units="ms"
+ expires_after="M80">
<obsolete>
Removed April 2019
</obsolete>
@@ -142453,7 +148601,7 @@ should be kept until we use this API. -->
<histogram
name="SubresourceFilter.DocumentLoad.SubresourceEvaluation.TotalCPUDuration"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Deprecated in July 2019.
</obsolete>
@@ -142556,6 +148704,18 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram
+ name="SubresourceFilter.MainFrameLoad.RulesetIsAvailableAnyActivationLevel"
+ enum="BooleanAvailable" expires_after="2020-11-11">
+ <owner>alexmt@chromium.org</owner>
+ <owner>jkarlin@chromium.org</owner>
+ <summary>
+ Whenever a document load is committed in the main frame, records whether the
+ filtering rules are available. This is independent of whether or not
+ subresource filtering should be activated.
+ </summary>
+</histogram>
+
<histogram name="SubresourceFilter.PageLoad.Activation.CPUDuration"
units="microseconds" expires_after="2018-08-30">
<owner>csharrison@chromium.org</owner>
@@ -142572,7 +148732,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.Activation.RedirectPosition"
- enum="SafeBrowsingActivationPosition">
+ enum="SafeBrowsingActivationPosition" expires_after="M80">
<obsolete>
Deprecated in favor of
SubresourceFilter.PageLoad.Activation.RedirectPosition2
@@ -142613,8 +148773,9 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.ActivationDecision"
- enum="SubresourceFilterActivationDecision" expires_after="M80">
+ enum="SubresourceFilterActivationDecision" expires_after="M90">
<owner>csharrison@chromium.org</owner>
+ <owner>jkarlin@chromium.org</owner>
<summary>
Records the policy decision to activate subresource filtering for a page
load. 'Activated' indicates that subresource filtering was activated. All
@@ -142623,7 +148784,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.ActivationList"
- enum="ActivationList" expires_after="2020-02-23">
+ enum="ActivationList" expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
The ActivationList or NONE that the main frame navigation matched with.
@@ -142632,7 +148793,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="SubresourceFilter.PageLoad.ActivationState"
- enum="SubresourceFilterActivationState" expires_after="2020-02-16">
+ enum="SubresourceFilterActivationState" expires_after="2020-05-24">
<owner>csharrison@chromium.org</owner>
<summary>
Whenever a document load is committed in a main frame, records whether
@@ -142773,7 +148934,7 @@ should be kept until we use this API. -->
<histogram
name="SubresourceFilter.PageLoad.SafeBrowsingDelay.NoRedirectSpeculation"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated in May 2018 (M69). We have enough data to show that the redirect
speculations we do are necessary, especially for Android.
@@ -142870,7 +149031,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="SubresourceFilter.SafeBrowsing.CheckTime" units="ms">
+<histogram name="SubresourceFilter.SafeBrowsing.CheckTime" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated in May 2019 in favor of the TotalCheckTime variant.
</obsolete>
@@ -142997,7 +149159,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Suggestions.FetchResponseCode" enum="HttpResponseCode"
- expires_after="2020-02-16">
+ expires_after="2020-05-31">
<owner>mathp@chromium.org</owner>
<summary>
The counts of HTTP response codes encountered by SuggestionsService when
@@ -143152,6 +149314,9 @@ should be kept until we use this API. -->
<histogram base="true" name="Sync.AssociationTime" units="ms"
expires_after="2019-10-01">
+ <obsolete>
+ Deprecated in M80.
+ </obsolete>
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>Time taken during association of this data type.</summary>
@@ -143205,7 +149370,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.AttemptNigoriMigration" enum="SyncNigoriMigrationResult"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>zea@chromium.org</owner>
<summary>
Enumeration of results from attempting to migrate Sync's nigori node and its
@@ -143443,13 +149608,29 @@ should be kept until we use this API. -->
<histogram name="Sync.BookmarkGUIDSource" enum="BookmarkGUIDSource"
expires_after="M85">
+ <obsolete>
+ Deprecated as of 12/2019. Replaced by Sync.BookmarkGUIDSource2 which fixes a
+ bug affecting bucket 2 (field left empty) which counted permanent nodes.
+ </obsolete>
<owner>psivieroleitao@google.com</owner>
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
+ Records the source of GUIDs for remote bookmark updates, recorded when
+ processing a remote bookmark update.
+ </summary>
+</histogram>
+
+<histogram name="Sync.BookmarkGUIDSource2" enum="BookmarkGUIDSource"
+ expires_after="M86">
+ <owner>mastiz@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
Records whether a GUID was found within BookmarkSpecifics, if an
originator_client_item_id of valid GUID format was used to replace it, or if
- the field was left empty. Recorded when processing a remote bookmark update.
+ the field was left empty. Recorded when processing a remote bookmark update,
+ except for permanent nodes, which are created server-side and don't have an
+ originator client item ID.
</summary>
</histogram>
@@ -143573,7 +149754,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ConfigureDataTypeManagerOption"
- enum="SyncFeatureOrTransport" expires_after="2020-02-23">
+ enum="SyncFeatureOrTransport" expires_after="2020-04-26">
<owner>treib@chromium.org</owner>
<summary>
Whether the full Sync feature or only the Sync transport layer is being
@@ -143585,7 +149766,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ConfigureDataTypes" enum="SyncModelTypes"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>zea@chromium.org</owner>
<summary>
Breakdown of sync data types being configured at first time signin, restart,
@@ -143606,6 +149787,9 @@ should be kept until we use this API. -->
<histogram base="true" name="Sync.ConfigureFailure" enum="SyncConfigureResult"
expires_after="2020-04-01">
+ <obsolete>
+ Deprecated in M80.
+ </obsolete>
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -143822,7 +150006,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.Crypto.NigoriKeyDerivationDuration"
- units="ms" expires_after="2020-02-01">
+ units="ms" expires_after="2020-05-10">
<owner>vitaliii@chromium.org</owner>
<owner>treib@chromium.org</owner>
<summary>
@@ -143841,7 +150025,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.CryptographerReady" enum="SyncCryptographerReadyState"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>zea@chromium.org</owner>
<summary>
Breakdown of sync users whose cryptographer is fully ready for encryption
@@ -143850,7 +150034,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.CustomEncryption" enum="SyncCustomEncryptionEvent"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>zea@chromium.org</owner>
<summary>
Histogram that keeps track of how users encrypt their sync data. All users
@@ -143925,7 +150109,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.DataTypeRunFailures2" enum="SyncModelTypes"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -143951,7 +150135,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.DataTypeStartFailures2" enum="SyncModelTypes"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -143964,6 +150148,18 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Sync.DeleteRoamingUserDataDirectory"
+ enum="RoamingUserDataDirectoryDeletionResult" expires_after="2020-08-04">
+ <owner>grt@chromium.org</owner>
+ <owner>pastarmovj@chromium.org</owner>
+ <summary>
+ Reports the result of an attempt to delete a Windows user's roaming User
+ Data directory. This directory was erroneously created for signed-in users
+ who were not using the local sync server. See https://crbug.com/980487 for
+ details.
+ </summary>
+</histogram>
+
<histogram name="Sync.DeviceCount" units="units" expires_after="2019-02-08">
<obsolete>
Deprecated in M74.
@@ -143976,7 +150172,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.DeviceCount2" units="units" expires_after="2020-02-16">
+<histogram name="Sync.DeviceCount2" units="units" expires_after="2020-04-19">
<owner>mastiz@chromium.org</owner>
<owner>jkrcal@chromium.org</owner>
<summary>
@@ -144559,8 +150755,29 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Sync.HasAccessTokenWhenNigoriOnlyConfigurationFailed"
+ enum="Boolean" expires_after="M81">
+ <owner>mmoskvitin@google.com</owner>
+ <owner>mastiz@chromium.org</owner>
+ <summary>
+ Recorded when Nigori-only configuration failed. Indicates whether there was
+ a valid access token when failure happened.
+ </summary>
+</histogram>
+
+<histogram
+ name="Sync.HasAccessTokenWhenNigoriOnlyConfigurationFailedWith5SecBackoff"
+ enum="Boolean" expires_after="M81">
+ <owner>mmoskvitin@google.com</owner>
+ <owner>mastiz@chromium.org</owner>
+ <summary>
+ Recorded when Nigori-only configuration failed with 5 seconds backoff.
+ Indicates whether there was a valid access token when failure happened.
+ </summary>
+</histogram>
+
<histogram name="Sync.InitialState" enum="SyncInitialState"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -144625,7 +150842,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.Local.Enabled" enum="BooleanEnabled"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>pastarmovj@chromium.org</owner>
<summary>
Tracks the number of times the local sync backend was enabled by the user.
@@ -144736,7 +150953,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.MissingBookmarkPermanentNodes"
- enum="SyncMissingBookmarkPermanentNodes" expires_after="M80">
+ enum="SyncMissingBookmarkPermanentNodes" expires_after="2020-05-10">
<owner>mamir@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -144817,7 +151034,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeCount4" units="entries"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<owner>jkrcal@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -144860,7 +151077,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="Sync.ModelTypeEntityChange3"
- enum="SyncEntityChange" expires_after="2020-04-01">
+ enum="SyncEntityChange" expires_after="2020-05-31">
<owner>jkrcal@chromium.org</owner>
<summary>
Recorded once for every sync entity change (whenever it is commited to the
@@ -144920,6 +151137,16 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Sync.NigoriConfigurationWithInvalidatedCredentials"
+ enum="Boolean" expires_after="M82">
+ <owner>mmoskvitin@google.com</owner>
+ <owner>mastiz@chromium.org</owner>
+ <summary>
+ Recorded when Nigori-only configuration pending while user credentials were
+ invalidated.
+ </summary>
+</histogram>
+
<histogram name="Sync.NigoriMigrationAttemptedBeforeNotMigrated" enum="Boolean"
expires_after="2020-02-01">
<owner>mmoskvitin@google.com</owner>
@@ -144942,7 +151169,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.NigoriMigrationState" enum="SyncNigoriMigrationState"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>zea@chromium.org</owner>
<summary>Breakdown of sync's nigori node keystore migration state.</summary>
</histogram>
@@ -144959,6 +151186,9 @@ should be kept until we use this API. -->
<histogram base="true" name="Sync.NonGroupedInvalidation" enum="SyncModelTypes"
expires_after="M75">
+ <obsolete>
+ Was used during the launch to compare new and old implemetations.
+ </obsolete>
<owner>melandory@chromium.org</owner>
<summary>
The number of invalidations received per sync data type for cases when only
@@ -144970,6 +151200,9 @@ should be kept until we use this API. -->
<histogram base="true" name="Sync.NonGroupedInvalidationKnownVersion"
enum="SyncModelTypes" expires_after="M75">
+ <obsolete>
+ Was used during the launch to compare new and old implementations.
+ </obsolete>
<owner>melandory@chromium.org</owner>
<summary>
The sync datatype of the recieved invalidation. Recorded only for the
@@ -144979,13 +151212,17 @@ should be kept until we use this API. -->
<histogram name="Sync.NonRedundantInvalidationPerModelType"
enum="SyncModelTypes" expires_after="M77">
+ <obsolete>
+ Was used during the launch for the new implementation.
+ </obsolete>
<owner>melandory@chromium.org</owner>
<summary>
The sync datatype of the recieved invalidation with fresh version.
</summary>
</histogram>
-<histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed" units="ms">
+<histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated as of 05/2019 because it recorded freshness only up to 1hr and
most samples were thus out of bounds. Replaced by
@@ -145004,7 +151241,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.NonReflectionUpdateFreshnessPossiblySkewed2" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>mastiz@chromium.org</owner>
<owner>melandory@chromium.org</owner>
<summary>
@@ -145211,6 +151448,15 @@ should be kept until we use this API. -->
<summary>The active sync passphrase type at sync startup.</summary>
</histogram>
+<histogram name="Sync.PassphraseType2" enum="SyncPassphraseType2"
+ expires_after="never">
+<!-- expires-never: important for UMA filtering. -->
+
+ <owner>mmoskvitin@google.com</owner>
+ <owner>mastiz@chromium.org</owner>
+ <summary>Sync passphrase type collected at each metrics upload.</summary>
+</histogram>
+
<histogram name="Sync.PasswordAssociationTime" units="ms"
expires_after="2016-06-20">
<obsolete>
@@ -145256,6 +151502,57 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Sync.PeakAnalysis.StopAfterAccountStateChanged" units="hits"
+ expires_after="M82">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Number of times the Sync engine got stopped because of an account state
+ change, e.g. the user signed out of the web. This should only affect the
+ sync-transport layer, as the sync feature would go into sync-paused state.
+ (credentials change). The histogram is emitted by minute of the emit-time to
+ aid with identifying the source of regular traffic spikes. Recorded before
+ the sync engine gets stopped.
+ </summary>
+</histogram>
+
+<histogram name="Sync.PeakAnalysis.StopAfterCredentialsChanged" units="hits"
+ expires_after="M82">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Number of times the Sync engine got stopped because of changed credentials.
+ Today this should not happen (but we have plans to use this path for
+ sync-paused state). The histogram is emitted by minute of the emit-time to
+ aid with identifying the source of regular traffic spikes. Recorded before
+ the sync engine gets stopped.
+ </summary>
+</histogram>
+
+<histogram name="Sync.PeakAnalysis.StopOnSyncManagedPrefChange" units="hits"
+ expires_after="M82">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Number of times the Sync engine got stopped because of a change in the
+ managed-sync pref (enterprise configuration). The histogram is emitted by
+ minute of the emit-time to aid with identifying the source of regular
+ traffic spikes. Recorded before the sync engine gets stopped.
+ </summary>
+</histogram>
+
+<histogram name="Sync.PeakAnalysis.StopOnSyncPermanentlyDisabled" units="hits"
+ expires_after="M82">
+ <owner>tschumann@chromium.org</owner>
+ <owner>treib@chromium.org</owner>
+ <summary>
+ Number of times the Sync engine got stopped because of an enterprise policy
+ or the user not being signed in. The histogram is emitted by minute of the
+ emit-time to aid with identifying the source of regular traffic spikes.
+ Recorded before the sync engine gets stopped.
+ </summary>
+</histogram>
+
<histogram name="Sync.PersistedModelTypeIdMismatch" enum="SyncModelTypes"
expires_after="M90">
<owner>mastiz@chromium.org</owner>
@@ -145268,7 +151565,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessage"
- enum="SyncClientToServerMessageContents" expires_after="2020-03-22">
+ enum="SyncClientToServerMessageContents" expires_after="2020-05-24">
<owner>mastiz@chromium.org</owner>
<summary>
Number of network requests issued by sync to the sync server, grouped by
@@ -145277,7 +151574,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessageError" enum="SyncErrorType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mastiz@chromium.org</owner>
<summary>
A sync error code received from the sync server as a result of a
@@ -145287,7 +151584,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.PostedClientToServerMessageLatency" units="ms"
- expires_after="2020-02-02">
+ expires_after="2020-05-03">
<owner>mastiz@chromium.org</owner>
<summary>
Time taken for a client-initiated request to be sent over the network and
@@ -145376,7 +151673,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Sync.Preferences.SyncingUnknownPrefs" units="prefs">
+<histogram name="Sync.Preferences.SyncingUnknownPrefs" units="prefs"
+ expires_after="M80">
<obsolete>
Deprecated in M79 because support for lazy pref registration was removed.
</obsolete>
@@ -145506,7 +151804,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ResolveConflict" enum="SyncConflictResolutions"
- expires_after="M80">
+ expires_after="M82">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -145516,7 +151814,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.ResolveSimpleConflict"
- enum="SyncSimpleConflictResolutions" expires_after="2020-03-08">
+ enum="SyncSimpleConflictResolutions" expires_after="2020-05-10">
<owner>zea@chromium.org</owner>
<summary>Enumeration of types of simple conflict resolutions.</summary>
</histogram>
@@ -145812,7 +152110,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.StopSource" enum="SyncStopSource"
- expires_after="2020-01-26">
+ expires_after="2020-04-26">
<owner>treib@chromium.org</owner>
<owner>mastiz@chromium.org</owner>
<summary>
@@ -145919,7 +152217,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Sync.SyncEverything2" enum="Boolean"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>treib@chromium.org</owner>
<summary>
Boolean histogram for whether the &quot;Sync Everything&quot; option was
@@ -146621,6 +152919,60 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Tab.Preview.CaptureType" enum="TabPreviewCaptureType"
+ expires_after="2020-09-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">
+ <owner>dfried@chromium.org</owner>
+ <owner>collinbaker@chromium.org</owner>
+ <summary>
+ When generating a preview for a background tab, this measures the time
+ between requesting a video capture and receiving the first usable frame.
+ </summary>
+</histogram>
+
+<histogram name="Tab.Preview.TimeToNotifyObserversAfterCaptureReceived"
+ units="microseconds" expires_after="2020-09-15">
+ <owner>dfried@chromium.org</owner>
+ <owner>collinbaker@chromium.org</owner>
+ <summary>
+ When generating a preview, a tab's contents are captured as an uncompressed
+ image, compressed in the background, then sent to subscribers on the main
+ thread. This roughly measures the time between the capture completing and
+ the compressed image being available on the main thread.
+
+ This histogram only records metrics on machines with high-resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="Tab.Preview.TimeToStoreAfterFrameReceived"
+ units="microseconds" expires_after="2020-09-15">
+ <owner>dfried@chromium.org</owner>
+ <owner>collinbaker@chromium.org</owner>
+ <summary>
+ When generating a preview for a background tab, this measures the time
+ between receiving a frame and storing it as the current thumbnail.
+
+ This histogram only records metrics on machines with high-resolution clocks.
+ </summary>
+</histogram>
+
+<histogram name="Tab.Preview.TimeToStoreAfterTabSwitch" units="ms"
+ expires_after="2020-09-15">
+ <owner>dfried@chromium.org</owner>
+ <owner>collinbaker@chromium.org</owner>
+ <summary>
+ On tab switch, the visible content area is captured and stored as a
+ thumbnail. This measures the time between requesting the capture and storing
+ it as the current thumbnail.
+ </summary>
+</histogram>
+
<histogram name="Tab.PullDownGesture" enum="PullDownGestureAction"
expires_after="2020-01-15">
<owner>gambard@chromium.org</owner>
@@ -147062,7 +153414,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection"
- units="units" expires_after="2020-01-01">
+ units="units" expires_after="2020-02-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -147072,7 +153424,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabHoverCards.TimeSinceLastVisible" units="ms"
- expires_after="2020-01-01">
+ expires_after="2020-02-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -147086,7 +153438,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.AppDrag.EndWindowState"
- enum="AppWindowDragEndWindowState" expires_after="2019-12-20">
+ enum="AppWindowDragEndWindowState" expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147096,7 +153448,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.AppWindowDrag.CountOfPerUserSession" units="times"
- expires_after="2019-12-20">
+ expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147107,7 +153459,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.AppWindowDrag.InSplitView.CountOfPerUserSession"
- units="times" expires_after="2019-12-20">
+ units="times" expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147128,7 +153480,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.TabDrag.CountOfPerUserSession" units="times"
- expires_after="2019-12-20">
+ expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147139,7 +153491,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.TabDrag.DragType" enum="TabDragType"
- expires_after="2019-12-20">
+ expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147149,7 +153501,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.TabDrag.InSplitView.CountOfPerUserSession"
- units="times" expires_after="2019-12-20">
+ units="times" expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147160,7 +153512,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.WindowDrag.DragEndEventType"
- enum="WindowDragEndEventType" expires_after="2019-12-20">
+ enum="WindowDragEndEventType" expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147170,7 +153522,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tablet.WindowDrag.OpenedWindowsNumber" units="numbers"
- expires_after="2019-12-20">
+ expires_after="2020-12-20">
<owner>minch@chromium.org</owner>
<owner>omrilio@chromium.org</owner>
<summary>
@@ -147182,8 +153534,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDuration"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The expected queueing duration of tasks in a foreground tab during a
background tab opening session (the duration of time from when the browser
@@ -147198,8 +153549,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.BackgroundTabOpening.SwitchToTab"
- enum="TabLoadingState">
- <owner>zhenw@chromium.org</owner>
+ enum="TabLoadingState" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The loading state of a tab at the time the user switches to it during a
background tab opening session (the duration of time from when the browser
@@ -147213,8 +153564,9 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="TabManager.BackgroundTabOpening.TabCount" units="tabs">
- <owner>zhenw@chromium.org</owner>
+<histogram name="TabManager.BackgroundTabOpening.TabCount" units="tabs"
+ expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The max number of background tabs pending or loading when opening background
tabs. This is recorded at the end of the background tab opening session (the
@@ -147226,8 +153578,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadAutoStartedCount"
- units="tabs">
- <owner>zhenw@chromium.org</owner>
+ units="tabs" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of background tabs whose loading was triggered by TabManager
automatically when opening background tabs. This is recorded at the end of
@@ -147239,8 +153591,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadTimeout"
- enum="BooleanTimedOut">
- <owner>zhenw@chromium.org</owner>
+ enum="BooleanTimedOut" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
Whether the tab load is timed out during background tab opening session (the
duration of time from when the browser starts to open background tabs until
@@ -147251,8 +153603,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadUserInitiatedCount"
- units="tabs">
- <owner>zhenw@chromium.org</owner>
+ units="tabs" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of background tabs whose loading was triggered by user action
when opening background tabs. For example, when the user selects a
@@ -147265,8 +153617,9 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="TabManager.BackgroundTabOpening.TabPausedCount" units="tabs">
- <owner>zhenw@chromium.org</owner>
+<histogram name="TabManager.BackgroundTabOpening.TabPausedCount" units="tabs"
+ expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The max number of background tabs paused to load due to memory pressure when
opening background tabs. This is recorded at the end of the background tab
@@ -147445,8 +153798,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.BackgroundTabOpening.CompressedPagesPerSecond"
units="pages/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of pages compressed per second when opening background tabs. This
is recorded at the end of the background tab opening session as an average
@@ -147463,8 +153815,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.BackgroundTabOpening.DecompressedPagesPerSecond"
units="pages/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of pages decompressed per second when opening background tabs.
This is recorded at the end of the background tab opening session as an
@@ -147480,8 +153831,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.Experimental.BackgroundTabOpening.SwapInPerSecond"
units="swaps/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of swap-ins per second when opening background tabs. This is
recorded at the end of the background tab opening session as an average over
@@ -147496,8 +153846,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.Experimental.BackgroundTabOpening.SwapOutPerSecond"
units="swaps/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of swap-outs per second when opening background tabs. This is
recorded at the end of the background tab opening session as an average over
@@ -147512,7 +153861,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Deprecated 08/2017, and replaced by
TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime.UntilTabIsLoaded.
@@ -147537,8 +153886,8 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadTime.UntilTabIsLoaded"
- units="ms">
- <owner>zhenw@chromium.org</owner>
+ units="ms" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
The tab load time of a tab that is switched to during a background tab
opening session (the duration of time from when the browser starts to open
@@ -147559,8 +153908,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.CompressedPagesPerSecond"
units="pages/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of pages compressed per second during session restore. Recorded
at the end of session restore as an average over the entire period, defined
@@ -147578,8 +153926,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.DecompressedPagesPerSecond"
units="pages/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of pages decompressed per second during session restore. Recorded
at the end of session restore as an average over the entire period, defined
@@ -147597,8 +153944,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstContentfulPaint"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
Elapsed time between the start of the loading and the first contentful paint
of foreground tabs when the browser loads tabs in session restore.
@@ -147608,8 +153954,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstMeaningfulPaint"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
Elapsed time between the start of the loading and the first meaningful paint
of foreground tabs when the browser loads tabs in session restore.
@@ -147619,8 +153964,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.ForegroundTab.FirstPaint"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
Elapsed time between the start of the loading and the first paint of
foreground tabs when the browser loads tabs in session restore.
@@ -147629,8 +153973,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.Experimental.SessionRestore.SwapInPerSecond"
units="swaps/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of swap-ins per second during session restore. Recorded at the
end of session restore as an average over the entire period, defined as the
@@ -147646,8 +153989,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.Experimental.SessionRestore.SwapOutPerSecond"
units="swaps/s" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The number of swap-outs per second during session restore. Recorded at the
end of session restore as an average over the entire period, defined as the
@@ -147667,8 +154009,7 @@ should be kept until we use this API. -->
Deprecated 08/2017, and replaced by
TabManager.Experimental.SessionRestore.TabSwitchLoadTime.UntilTabIsLoaded.
</obsolete>
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The tab load time of a tab that is switched to during a session restore. Tab
load time is defined as the time between when the user switches to a
@@ -147690,8 +154031,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.Experimental.SessionRestore.TabSwitchLoadTime.UntilTabIsLoaded"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The tab load time of a tab that is switched to during a session restore. Tab
load time is defined as the time between when the user switches to a
@@ -147774,8 +154114,8 @@ should be kept until we use this API. -->
</histogram>
<histogram name="TabManager.SessionOverlap.BackgroundTabOpening"
- units="BooleanOverlap">
- <owner>zhenw@chromium.org</owner>
+ units="BooleanOverlap" expires_after="M79">
+ <owner>chrisha@chromium.org</owner>
<summary>
Whether background tab opening session is overlapped with other types of
session, e.g., session restore. Background tab opening session is the
@@ -147788,7 +154128,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.SessionOverlap.SessionRestore"
units="BooleanOverlap" expires_after="M77">
- <owner>zhenw@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
Whether session restore is overlapped with other types of session, e.g.,
background tab opening. Session restore is the duration from the time when
@@ -147836,8 +154176,7 @@ should be kept until we use this API. -->
<histogram
name="TabManager.SessionRestore.ForegroundTab.ExpectedTaskQueueingDuration"
units="ms" expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The expected queueing duration of tasks in a foreground tab during session
restore. This metric reflects the responsiveness of a tab. A lower value
@@ -147884,8 +154223,7 @@ should be kept until we use this API. -->
<histogram name="TabManager.SessionRestore.SwitchToTab" enum="TabLoadingState"
expires_after="M79">
- <owner>shaseley@chromium.org</owner>
- <owner>panicker@chromium.org</owner>
+ <owner>chrisha@chromium.org</owner>
<summary>
The loading state of a tab at the time the user switched to it during a
session restore. The metric is only recorded when a tab is switched to from
@@ -148036,7 +154374,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Tabs.Discard.MemAllocatedMB" units="MB">
+<histogram name="Tabs.Discard.MemAllocatedMB" units="MB" expires_after="M80">
<obsolete>
Deprecated 05/2019
</obsolete>
@@ -148062,7 +154400,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Tabs.Discard.MemAvailableMB" units="MB">
+<histogram name="Tabs.Discard.MemAvailableMB" units="MB" expires_after="M80">
<obsolete>
Deprecated 05/2019
</obsolete>
@@ -148127,7 +154465,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.FineTiming.TimeBetweenTabClosedAndNextTabCreated"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019-07.
</obsolete>
@@ -148139,7 +154477,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.FineTiming.TimeBetweenTabCreatedAndNextTabCreated"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019-07.
</obsolete>
@@ -148151,7 +154489,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.FineTiming.TimeBetweenTabCreatedAndSameTabClosed"
- units="ms">
+ units="ms" expires_after="M80">
<obsolete>
Removed 2019-07.
</obsolete>
@@ -148431,7 +154769,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.ScrubbedInInterval.KeyPress" units="tabs"
- expires_after="2019-12-01">
+ expires_after="2020-02-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -148443,7 +154781,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tabs.ScrubbedInInterval.MousePress" units="tabs"
- expires_after="2019-12-01">
+ expires_after="2020-02-01">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
@@ -148593,6 +154931,22 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="Tabs.Suggestions.Close.NumSuggestionsChanged" units="count"
+ expires_after="2020-11-01">
+ <owner>yusufo@chromium.org</owner>
+ <owner>davidjm@chromium.org</owner>
+ <summary>
+ The user is presented with recommendations on which Tabs they could close.
+ 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).
+ </summary>
+</histogram>
+
<histogram name="Tabs.SwitchFromCloseLatency" units="ms">
<owner>dtrainor@chromium.org</owner>
<summary>
@@ -148837,7 +155191,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Tabs.TimeSinceLastInteraction" units="ms">
+<histogram name="Tabs.TimeSinceLastInteraction" units="ms" expires_after="M80">
<obsolete>
Removed 2019-07.
</obsolete>
@@ -148929,7 +155283,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="TabsApi.RequestedWindowState" enum="RequestedWindowState">
+<histogram name="TabsApi.RequestedWindowState" enum="RequestedWindowState"
+ expires_after="M80">
<obsolete>
Removed 2019-06.
</obsolete>
@@ -149014,7 +155369,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="TaskScheduler.DetachDuration" units="ms">
+<histogram base="true" name="TaskScheduler.DetachDuration" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149030,7 +155386,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="TaskScheduler.HeartbeatLatencyMicroseconds"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149052,7 +155408,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="TaskScheduler.NumActiveWorkers" units="workers">
+<histogram base="true" name="TaskScheduler.NumActiveWorkers" units="workers"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149082,7 +155439,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="TaskScheduler.NumTasksBeforeDetach" units="tasks">
+<histogram base="true" name="TaskScheduler.NumTasksBeforeDetach" units="tasks"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149095,7 +155453,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="TaskScheduler.NumTasksBetweenWaits" units="tasks">
+<histogram base="true" name="TaskScheduler.NumTasksBetweenWaits" units="tasks"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149124,7 +155483,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="TaskScheduler.NumWorkers" units="workers">
+<histogram base="true" name="TaskScheduler.NumWorkers" units="workers"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149178,7 +155538,7 @@ should be kept until we use this API. -->
</histogram>
<histogram base="true" name="TaskScheduler.TaskLatencyMicroseconds"
- units="microseconds">
+ units="microseconds" expires_after="M80">
<obsolete>
Deprecated 4/2019. Prefix renamed to ThreadPool.
</obsolete>
@@ -149692,7 +156052,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram base="true" name="ThreadPool.NumTasksBetweenWaits" units="tasks">
+<histogram base="true" name="ThreadPool.NumTasksBetweenWaits" units="tasks"
+ expires_after="M80">
<obsolete>
Deprecated 8/2019. Not used in active investigations.
</obsolete>
@@ -149843,10 +156204,11 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="TileManager.TilesGPUMemoryUsage" units="KB">
+<histogram name="TileManager.TilesGPUMemoryUsage" units="KB"
+ expires_after="M80">
<obsolete>
- Replaced by TileManager.TilesGPUMemoryUsage2 which records on all devices
- instead of just devices with less than 512MB of memory.
+ Replaced by Compositing.Renderer.GPUMemoryForTilingsInKb which is an
+ existing metric tracking the same value.
</obsolete>
<owner>xidachen@chromium.org</owner>
<owner>ericrk@chromium.org</owner>
@@ -149859,6 +156221,10 @@ should be kept until we use this API. -->
<histogram name="TileManager.TilesGPUMemoryUsage2" units="KB"
expires_after="never">
+ <obsolete>
+ Replaced by Compositing.Renderer.GPUMemoryForTilingsInKb which is an
+ existing metric tracking the same value.
+ </obsolete>
<owner>pdr@chromium.org</owner>
<owner>ericrk@chromium.org</owner>
<summary>
@@ -149962,7 +156328,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Toolbar.ActionsModel.ToolbarActionsVisible" units="units">
+<histogram name="Toolbar.ActionsModel.ToolbarActionsVisible" units="units"
+ expires_after="M80">
<obsolete>
Obsolete. See ExtensionToolbarModel.BrowserActionsVisible instead. Stopped
recording 2019-07.
@@ -149979,7 +156346,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="Toolbar.AppMenuTimeToAction" units="ms">
+<histogram name="Toolbar.AppMenuTimeToAction" units="ms" expires_after="M80">
<obsolete>
Stopped recording 2019-07.
</obsolete>
@@ -150286,7 +156653,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.NetworkConnectionTypeWhenStarted"
- enum="NetworkConnectionType" expires_after="2020-02-16">
+ enum="NetworkConnectionType" expires_after="2020-04-26">
<owner>ssid@chromium.org</owner>
<summary>
Connection type of the network used to determine the trace buffer size, when
@@ -150295,7 +156662,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.NetworkConnectionTypeWhenUploaded"
- enum="NetworkConnectionType" expires_after="2020-02-16">
+ enum="NetworkConnectionType" expires_after="2020-04-26">
<owner>ssid@chromium.org</owner>
<summary>
Connection type of the network used to determine the trace upload limit,
@@ -150304,7 +156671,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Tracing.Background.ScenarioState"
- enum="BackgroundTracingState" expires_after="2020-03-29">
+ enum="BackgroundTracingState" expires_after="2020-05-31">
<owner>oysteine@chromium.org</owner>
<summary>
Records state of the Background Tracing system, from when scenarios are
@@ -150406,7 +156773,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.AlwaysTranslateLang" units="units"
- expires_after="2020-02-23">
+ expires_after="2020-05-31">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the always translate option was selected in the
@@ -150415,7 +156782,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.BubbleUiEvent" enum="TranslateBubbleUiEvent"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>groby@google.com</owner>
<summary>Tracks UI events related to the translate bubble.</summary>
</histogram>
@@ -150450,7 +156817,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CLD3.LanguageDetected" enum="CLD3LanguageCode"
- expires_after="2020-03-01">
+ expires_after="2020-05-17">
<owner>frechette@chromium.org</owner>
<owner>chrome-language@google.com</owner>
<summary>
@@ -150471,7 +156838,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CompactInfobar.Event" enum="TranslateCompactUIEvent"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>anthonyvd@chromium.org</owner>
<summary>Various user actions performed in the translate infobar.</summary>
</histogram>
@@ -150494,7 +156861,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.CompactInfobar.Language.NeverTranslate"
- enum="CLD3LanguageCode" expires_after="2020-03-29">
+ enum="CLD3LanguageCode" expires_after="2020-05-31">
<owner>anthonyvd@chromium.org</owner>
<summary>
Records the hashcode of the source language when never translate this
@@ -150549,7 +156916,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslate" units="units"
- expires_after="2020-01-26">
+ expires_after="2020-05-31">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the &quot;Nope&quot; (don't translate) or the infobar's
@@ -150558,7 +156925,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslateCloseInfobar" units="units"
- expires_after="2020-02-16">
+ expires_after="2020-05-17">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the translate infobar was closed by clicking the X
@@ -150567,7 +156934,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.DeclineTranslateDismissUI" units="units"
- expires_after="2020-02-23">
+ expires_after="2020-05-17">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the translate UI was closed without translating in the
@@ -150610,7 +156977,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ForceTriggerBackoffStateReached" enum="Boolean"
- expires_after="2020-03-01">
+ expires_after="2020-05-31">
<owner>anthonyvd@chromium.org</owner>
<owner>yyushkina@chromium.org</owner>
<summary>
@@ -150689,7 +157056,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.LanguageSettingsIsShown" enum="BooleanShown"
- expires_after="2020-02-16">
+ expires_after="2020-05-31">
<owner>frechette@chromium.org</owner>
<owner>chrome-language@google.com</owner>
<summary>
@@ -150729,7 +157096,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.MobileMenuTranslate.Shown" enum="Boolean"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>yyushkina@google.com</owner>
<owner>frechette@chromium.org</owner>
<summary>
@@ -150748,7 +157115,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.ModifyTargetLang" units="units"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the target language in the translate infobar has been
@@ -150757,7 +157124,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.NeverTranslateLang" units="units"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the never translate option was selected in the translate
@@ -150879,7 +157246,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.RevertTranslation" units="units"
- expires_after="2020-02-23">
+ expires_after="2020-05-17">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the show original button was clicked in the translate
@@ -150943,7 +157310,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.SourceLanguage" enum="CLD3LanguageCode"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>yyushkina@google.com</owner>
<summary>
The number of requests sent to the Translate server, grouped by source
@@ -150952,7 +157319,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.TargetLanguage" enum="CLD3LanguageCode"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>yyushkina@google.com</owner>
<summary>
The number of requests sent to the Translate server, grouped by target
@@ -150982,7 +157349,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.Translate" enum="BooleanTranslate"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>kenjibaheux@google.com</owner>
<summary>
The number of times the translate button was clicked in the translate
@@ -151014,7 +157381,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="Translate.UserActionDuration" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-24">
<owner>kenjibaheux@google.com</owner>
<summary>
The time from a page content language being determined to user requesting
@@ -151173,7 +157540,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UI.DeviceScale" units="%" expires_after="2020-03-08">
+<histogram name="UI.DeviceScale" units="%" expires_after="2020-05-10">
<owner>bsep@chromium.org</owner>
<summary>
The device scales available on the system at startup. A system may report
@@ -151215,6 +157582,32 @@ should be kept until we use this API. -->
</summary>
</histogram>
+<histogram name="UKM.ConsentObserver.AllowedForAllProfiles" enum="Boolean"
+ expires_after="2020-07-01">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>ukm-team@google.com</owner>
+ <summary>
+ Logged in UpdateUkmAllowedForAllProfiles from the UkmConsentStateObserver
+ which is called when UkmConsentStateObserver starts observing a new profile
+ and every time a URL-keyed anonymized data collection state changes or a
+ sync service state changes. This records whether UKM is allowed for all
+ profiles.
+ </summary>
+</histogram>
+
+<histogram name="UKM.ConsentObserver.Purge" enum="Boolean"
+ expires_after="2020-07-01">
+ <owner>bcwhite@chromium.org</owner>
+ <owner>rkaplow@chromium.org</owner>
+ <owner>ukm-team@google.com</owner>
+ <summary>
+ Logged in the UpdateProfileState call from the UkmConsentStateObserver. This
+ records if the UKM allowed change will trigger a purge of the local UKM
+ data.
+ </summary>
+</histogram>
+
<histogram name="UKM.Entries.Dropped" enum="UkmDataDroppedReason"
expires_after="2020-07-01">
<owner>rkaplow@chromium.org</owner>
@@ -151394,25 +157787,30 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UKM.SyncDisable.Info" enum="UkmSyncDisableInfo"
- expires_after="2020-07-01">
+ expires_after="2020-05-10">
+ <obsolete>
+ Deprecated 11/2018 for UKM.ConsentObserver.AllowedForAllProfiles.
+ </obsolete>
<owner>bcwhite@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
- Information about the determination by the SyncDisableObserver on why it
- enabled or disabled UKM based on Sync status. This is recorded every time a
- change is detected in Sync (which may be several just at startup).
+ Information about the determination by the UkmConsentStateObserver on why it
+ enabled or disabled UKM.
</summary>
</histogram>
-<histogram name="UKM.SyncDisable.Purge" enum="Boolean"
- expires_after="2020-07-01">
+<histogram name="UKM.SyncDisable.Purge" enum="Boolean" expires_after="M79">
+ <obsolete>
+ Deprecated 11/2018 for UKM.ConsentObserver.Purge.
+ </obsolete>
<owner>bcwhite@chromium.org</owner>
<owner>rkaplow@chromium.org</owner>
<owner>ukm-team@google.com</owner>
<summary>
- Logged in the UpdateSyncState call from the UKM Sync observer. This records
- if the Sync change will trigger a purge of the local UKM data.
+ Logged in the UpdateSyncState call from the UkmConsentStateObserver. This
+ records if the UKM allowed change will trigger a purge of the local UKM
+ data.
</summary>
</histogram>
@@ -151489,7 +157887,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.ClientIdBackupRecoveredWithAge" units="hours"
- expires_after="2020-03-15">
+ expires_after="2020-05-17">
<owner>gab@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
@@ -151713,7 +158111,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.EnrollmentStatus" enum="EnrollmentStatus"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asvitkine@chromium.org</owner>
<owner>kaznacheev@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
@@ -151912,7 +158310,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UMA.FileMetricsProvider.InitialSnapshotTime.File" units="ms">
+<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>
@@ -151937,7 +158336,8 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UMA.FileMetricsProvider.SnapshotTime.File" units="ms">
+<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>
@@ -152071,7 +158471,7 @@ should be kept until we use this API. -->
</summary>
</histogram>
-<histogram name="UMA.LogSize.OnSuccess" units="KB" expires_after="2020-03-22">
+<histogram name="UMA.LogSize.OnSuccess" units="KB" expires_after="2020-05-24">
<owner>asvitkine@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
@@ -152176,7 +158576,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.MetricsIDsReset" enum="BooleanHit"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>jwd@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
@@ -152338,7 +158738,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.PrimaryUserType" enum="UserType"
- expires_after="2020-04-01">
+ expires_after="2020-05-31">
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
@@ -152371,6 +158771,8 @@ should be kept until we use this API. -->
<summary>
An enum representing the signin status of all opened profiles during one UMA
session.
+
+ Reported incorrect data on ChromeOS before M80.
</summary>
</histogram>
@@ -152490,7 +158892,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.TruncatedEvents.UserAction" units="events"
- expires_after="2020-04-12">
+ expires_after="2020-05-31">
<owner>rkaplow@chromium.org</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
@@ -152576,7 +158978,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UMA.UserDemographics.Status" enum="UserDemographicsStatus"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>vincb@google.com</owner>
<owner>src/base/metrics/OWNERS</owner>
<summary>
@@ -153380,7 +159782,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UpgradeDetector.DaysBeforeUpgrade" units="days"
- expires_after="M80">
+ expires_after="M87">
<owner>ksspiers@chromium.org</owner>
<owner>nrpeter@chromium.org</owner>
<summary>
@@ -153559,7 +159961,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UsageStats.Events" enum="UsageStatsEvents"
- expires_after="2020-03-19">
+ expires_after="2020-05-24">
<owner>pnoland@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
@@ -153569,7 +159971,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UserActivation.AvailabilityCheck.FrameResult"
- enum="UserActivationFrameResultEnum">
+ enum="UserActivationFrameResultEnum" expires_after="M80">
<obsolete>
This was added to assess possible impact of UserActivationV2, by comparing
pre- and post-launch stats.
@@ -153582,7 +159984,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UserActivation.Consumption.FrameResult"
- enum="UserActivationFrameResultEnum">
+ enum="UserActivationFrameResultEnum" expires_after="M80">
<obsolete>
This was added to assess possible impact of UserActivationV2, by comparing
pre- and post-launch stats.
@@ -153685,7 +160087,7 @@ should be kept until we use this API. -->
</histogram>
<histogram name="UserManager.LoginUserType" enum="UserType"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>achuith@chromium.org</owner>
<summary>
The number of users of different types that log in to the system (Chrome
@@ -153907,7 +160309,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileDeserializeMicroSeconds" units="microseconds"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>vogelheim@chromium.org</owner>
<summary>
Time spent deseriailzing code, used by V8 code caching.
@@ -153974,7 +160376,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileLazyMicroSeconds" units="microseconds"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hablich@chromium.org</owner>
<summary>
Aggregated time spent compiling functions lazily during a single script
@@ -153989,7 +160391,7 @@ regressions. -->
</histogram>
<histogram name="V8.CompileMicroSeconds" units="microseconds"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>yangguo@chromium.org</owner>
<summary>
Time spent in V8 compiler (full codegen) excluding parser.
@@ -154242,7 +160644,7 @@ regressions. -->
<summary>Time spent generating deferred code stubs.</summary>
</histogram>
-<histogram name="V8.DetachedContextAgeInGC" units="units">
+<histogram name="V8.DetachedContextAgeInGC" units="units" expires_after="M80">
<obsolete>
This histogram has been removed.
</obsolete>
@@ -154275,7 +160677,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.Execute" units="ms" expires_after="2020-03-22">
+<histogram name="V8.Execute" units="ms" expires_after="2020-05-24">
<owner>rmcilroy@chromium.org</owner>
<summary>
Time spent in JavaScript Execution, including runtime calls, callbacks, and
@@ -154301,7 +160703,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.GCBackgroundMarking" units="ms" expires_after="2020-02-16">
+<histogram name="V8.GCBackgroundMarking" units="ms" expires_after="2020-05-03">
<owner>ulan@chromium.org</owner>
<summary>
Time spent in background tasks doing marking in one GC cycle. It is recorded
@@ -154326,7 +160728,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.GCCompactor" units="ms" expires_after="2020-03-29">
+<histogram name="V8.GCCompactor" units="ms" expires_after="2020-05-31">
<owner>hpayer@chromium.org</owner>
<summary>Time spent in mark-sweep phase of GC.</summary>
</histogram>
@@ -154352,7 +160754,7 @@ regressions. -->
<summary>Time spent doing a full GC during an IdleNotification.</summary>
</histogram>
-<histogram name="V8.GCFinalizeMC" units="ms" expires_after="2020-03-29">
+<histogram name="V8.GCFinalizeMC" units="ms" expires_after="2020-05-31">
<owner>ulan@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<summary>
@@ -154436,7 +160838,7 @@ regressions. -->
</histogram>
<histogram name="V8.GCFinalizeMCForeground" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ulan@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<summary>
@@ -154523,7 +160925,7 @@ regressions. -->
</histogram>
<histogram name="V8.GCIncrementalMarkingReason" enum="GarbageCollectionReason"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ulan@chromium.org</owner>
<summary>Reason an incremental marking was started in V8.</summary>
</histogram>
@@ -154535,7 +160937,7 @@ regressions. -->
</histogram>
<histogram name="V8.GCIncrementalMarkingSum" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>ulan@chromium.org</owner>
<summary>
The total time spent in incremental marking steps in one GC cycle. It is
@@ -154561,7 +160963,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.GCMarkCompactor" units="ms" expires_after="2020-03-29">
+<histogram name="V8.GCMarkCompactor" units="ms" expires_after="2020-05-31">
<owner>mlippautz@chromium.org</owner>
<summary>
Sum of all durations of individual phases within one V8 mark-compact garbage
@@ -154570,7 +160972,7 @@ regressions. -->
</histogram>
<histogram name="V8.GCMarkCompactReason" enum="GarbageCollectionReason"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ulan@chromium.org</owner>
<summary>Reason a mark-compact garbage collection was started in V8.</summary>
</histogram>
@@ -154618,7 +161020,7 @@ regressions. -->
</histogram>
<histogram name="V8.GCScavengerForeground" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hpayer@chromium.org</owner>
<summary>
Time spent in scavenging phase of GC in a foreground isolate.
@@ -154639,13 +161041,13 @@ regressions. -->
</histogram>
<histogram name="V8.Initializer.OpenV8File.Result"
- enum="V8InitializerOpenV8FileResult" expires_after="2020-03-01">
+ enum="V8InitializerOpenV8FileResult" expires_after="2020-05-10">
<owner>oth@chromium.org</owner>
<summary>Results from opening V8 snapshot files.</summary>
</histogram>
<histogram name="V8.LiftoffBailoutReasons" enum="LiftoffBailoutReason"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -154870,7 +161272,7 @@ regressions. -->
</histogram>
<histogram name="V8.MemoryHeapSampleTotalCommitted" units="KB"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hpayer@chromium.org</owner>
<summary>
The total size of committed memory used by V8 after each GC in KB.
@@ -154878,7 +161280,7 @@ regressions. -->
</histogram>
<histogram name="V8.MemoryHeapSampleTotalUsed" units="KB"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hpayer@chromium.org</owner>
<summary>
The total size of live memory used by V8 after each GC in KB.
@@ -154951,6 +161353,15 @@ regressions. -->
<summary>Time spent preparsing source code.</summary>
</histogram>
+<histogram name="V8.RegExpBacktracks" units="backtracks"
+ expires_after="2020-04-23">
+ <owner>jgruber@chromium.org</owner>
+ <owner>mvstanton@chromium.org</owner>
+ <summary>
+ The number of backtracks performed in a single regexp execution.
+ </summary>
+</histogram>
+
<histogram name="V8.Rewriting" units="units" expires_after="2014-09-16">
<obsolete>
This histogram is no longer present in V8.
@@ -154985,9 +161396,10 @@ regressions. -->
</summary>
</histogram>
-<histogram name="V8.SharedArrayAllocationSizes" units="MB" expires_after="M80">
+<histogram name="V8.SharedArrayAllocationSizes" units="MB"
+ expires_after="2020-12-02">
<owner>gdeepti@chromium.org</owner>
- <owner>titzer@chromium.org</owner>
+ <owner>ulan@chromium.org</owner>
<summary>
Number of megabytes requested in shared array buffer allocations.
</summary>
@@ -155008,7 +161420,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeConcurrentTotalTime" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>bmeurer@chromium.org</owner>
<owner>mslekova@chromium.org</owner>
<summary>
@@ -155020,7 +161432,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeExecute" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155032,7 +161444,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeFinalize" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155044,7 +161456,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementExecute"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155057,7 +161469,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementFinalize"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155070,7 +161482,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementPrepare"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155083,7 +161495,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementTotalTime"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155096,7 +161508,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeNonConcurrentTotalTime"
- units="microseconds" expires_after="M80">
+ units="microseconds" expires_after="2020-12-31">
<owner>bmeurer@chromium.org</owner>
<owner>mslekova@chromium.org</owner>
<summary>
@@ -155108,7 +161520,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizePrepare" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155120,7 +161532,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeTotalBackground" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155132,7 +161544,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeTotalForeground" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155144,7 +161556,7 @@ regressions. -->
</histogram>
<histogram name="V8.TurboFanOptimizeTotalTime" units="microseconds"
- expires_after="M80">
+ expires_after="2020-12-31">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
@@ -155198,7 +161610,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmCompileFunctionMicroSeconds" units="microseconds"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155238,7 +161650,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmCompileModuleMicroSeconds" units="microseconds"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155255,7 +161667,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmCompileModuleStreamingMicroSeconds"
- units="microseconds" expires_after="2020-03-31">
+ units="microseconds" expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155264,7 +161676,7 @@ regressions. -->
compilation (via the 'WebAssembly.compileStreaming' API). Recorded on each
streaming WebAssembly compilation, but only if a high-resolution clock is
available. Note that compilation speed is often limited by the network
- speed, which is also reflected in thie metric.
+ speed, which is also reflected in this metric.
</summary>
</histogram>
@@ -155315,7 +161727,10 @@ regressions. -->
</histogram>
<histogram name="V8.WasmDeserializeModuleStreamingMicroSeconds"
- units="microseconds" expires_after="2020-03-31">
+ units="microseconds" expires_after="2019-10-31">
+ <obsolete>
+ Deprecated 10/2019. No longer tracked.
+ </obsolete>
<owner>bbudge@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>adamk@chromium.org</owner>
@@ -155346,6 +161761,21 @@ regressions. -->
</summary>
</histogram>
+<histogram name="V8.WasmFinishModuleStreamingMicroSeconds" units="microseconds"
+ expires_after="2020-05-31">
+ <owner>bbudge@chromium.org</owner>
+ <owner>clemensb@chromium.org</owner>
+ <owner>adamk@chromium.org</owner>
+ <summary>
+ Time to asynchronously compile or deserialize a WebAssembly module during
+ streaming compilation (via the 'WebAssembly.compileStreaming' API). Recorded
+ on each streaming WebAssembly compilation or deserialization from the cache,
+ but only if a high-resolution clock is available. Note that compilation
+ speed is often limited by the network speed, which is also reflected in this
+ metric.
+ </summary>
+</histogram>
+
<histogram name="V8.WasmFunctionSizeBytes" units="bytes"
expires_after="2020-03-31">
<owner>titzer@chromium.org</owner>
@@ -155358,7 +161788,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmFunctionsPerModule" units="functions"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155369,7 +161799,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmInstantiateModuleMicroSeconds" units="microseconds"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155404,7 +161834,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmLazyCompilationThroughput" units="KB/s"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155506,7 +161936,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmModuleNumberOfCodeGCsTriggered" units="gcs"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>titzer@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155517,7 +161947,7 @@ regressions. -->
</histogram>
<histogram name="V8.WasmModuleNumberOfCodeSpaces" units="spaces"
- expires_after="2020-03-31">
+ expires_after="2020-05-31">
<owner>mstarzinger@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
@@ -155700,7 +162130,7 @@ regressions. -->
</histogram>
<histogram name="Variations.GoogleUpdateRegistryLabelsNeedClearing"
- enum="BooleanNeedsClearing">
+ enum="BooleanNeedsClearing" expires_after="M80">
<obsolete>
No longer logged
</obsolete>
@@ -156232,7 +162662,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="Variations.StoreSeed.GzipSize" units="KiB">
+<histogram name="Variations.StoreSeed.GzipSize" units="KiB" expires_after="M80">
<obsolete>
Removed 2019/07
</obsolete>
@@ -156242,7 +162672,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="Variations.StoreSeed.GzipSize.ReductionPercent" units="%">
+<histogram name="Variations.StoreSeed.GzipSize.ReductionPercent" units="%"
+ expires_after="M80">
<obsolete>
Removed 2019/07
</obsolete>
@@ -156255,7 +162686,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="Variations.StoreSeed.HasCountry" enum="Boolean">
+<histogram name="Variations.StoreSeed.HasCountry" enum="Boolean"
+ expires_after="M80">
<obsolete>
Removed 2019/07
</obsolete>
@@ -156265,7 +162697,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="Variations.StoreSeed.Size" units="KiB">
+<histogram name="Variations.StoreSeed.Size" units="KiB" expires_after="M80">
<obsolete>
Removed 2019/07
</obsolete>
@@ -156673,7 +163105,7 @@ regressions. -->
<histogram base="true" name="VR.Component.Assets.DurationUntilReady.OnEnter"
units="ms" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Duration from entering a VR mode until the VR assets component is ready to
use.
@@ -156683,7 +163115,7 @@ regressions. -->
<histogram name="VR.Component.Assets.DurationUntilReady.OnRegisterComponent"
units="ms" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Duration from registering VR assets component until it is ready to use.
</summary>
@@ -156692,14 +163124,14 @@ regressions. -->
<histogram base="true" name="VR.Component.Assets.Status.OnEnter"
enum="VRComponentStatus" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>Status of the VR assets component when entering a VR mode.</summary>
</histogram>
<histogram name="VR.Component.Assets.VersionAndStatus.OnLoad"
enum="VRAssetsLoadStatus" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The component version and status of loading the VR assets. The value is
encoded as (XXX)(YYY)(SSS) where XXX is the major component version, YYY the
@@ -156711,7 +163143,7 @@ regressions. -->
<histogram name="VR.Component.Assets.VersionAndStatus.OnUpdate"
enum="VRAssetsComponentUpdateStatus" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The version and update status of the VR assets component. The value is
encoded as (XXX)(YYY)(SSS) where XXX is the major version, YYY the minor
@@ -156724,7 +163156,6 @@ regressions. -->
<histogram name="VR.EnterVrBrowserWithoutFeatureModule" enum="BooleanSuccess"
expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Recorded every time a user tries to enter the VR browser without the VR
@@ -156737,14 +163168,14 @@ regressions. -->
<histogram base="true" name="VR.NetworkConnectionType.OnEnter"
enum="NetworkConnectionType" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>Network connection type when entering a VR mode.</summary>
</histogram>
<histogram name="VR.NetworkConnectionType.OnRegisterComponent"
enum="NetworkConnectionType" expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Network connection type when registering the VR component(s).
</summary>
@@ -156805,9 +163236,9 @@ regressions. -->
<histogram name="VRDisplayPresentResult" enum="VRPresentationResult"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The result of calls to VRDisplay::requestPresent(). Reported twice per
requestPresent() call, once to record the call, and once to record the
@@ -156826,15 +163257,15 @@ regressions. -->
<histogram name="VRRuntimeVersion" units="normalized version"
expires_after="2020-07-01">
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>The version of the runtime being used for VR.</summary>
</histogram>
<histogram name="VRSessionNavigationCount" units="units"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Count of navigations while in a VR session. Logged when a new disjoint
session has begun, or when the session has ended in a non-continuable way.
@@ -156842,9 +163273,9 @@ regressions. -->
</histogram>
<histogram name="VRSessionTime" units="ms" expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The duration of the VR session. Logged when a new disjoint session has
begun, or when the session has ended in a non-continuable way.
@@ -156864,9 +163295,9 @@ regressions. -->
</histogram>
<histogram name="VRSessionVideoCount" units="units" expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Number of videos watched in a VR session. Logged when a new disjoint session
has begun, or when the session has ended in a non-continuable way.
@@ -156874,9 +163305,9 @@ regressions. -->
</histogram>
<histogram name="VRSessionVideoTime" units="ms" expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The duration of a single session spent watching video in VR. Logged when a
new disjoint session has begun, or when the session has ended in a
@@ -156885,9 +163316,9 @@ regressions. -->
</histogram>
<histogram name="VRViewerType" enum="VRViewerType" expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>The type of headset being used for VR.</summary>
</histogram>
@@ -157070,7 +163501,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebApk.Install.AvailableSpace.Fail" units="MB">
+<histogram name="WebApk.Install.AvailableSpace.Fail" units="MB"
+ expires_after="M82">
<owner>hanxi@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -157116,7 +163548,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebApk.Install.AvailableSpaceAfterFreeUpCache.Fail" units="MB">
+<histogram name="WebApk.Install.AvailableSpaceAfterFreeUpCache.Fail" units="MB"
+ expires_after="M82">
<owner>hanxi@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -157130,7 +163563,7 @@ regressions. -->
<histogram
name="WebApk.Install.AvailableSpaceAfterFreeUpUnimportantStorage.Fail"
- units="MB">
+ units="MB" expires_after="M80">
<obsolete>
Deprecated in Chrome M69.
</obsolete>
@@ -157146,7 +163579,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebApk.Install.ChromeCacheSize.Fail" units="MB">
+<histogram name="WebApk.Install.ChromeCacheSize.Fail" units="MB"
+ expires_after="M82">
<owner>hanxi@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -157240,7 +163674,7 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.InstallDuration" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>hanxi@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -157252,7 +163686,7 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.InstallEvent" enum="WebApkInstallEvent"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hanxi@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -157281,7 +163715,7 @@ regressions. -->
</histogram>
<histogram name="WebApk.Install.RequestTokenDuration" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-24">
<owner>hanxi@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -157443,7 +163877,7 @@ regressions. -->
</histogram>
<histogram name="WebApk.Session.TotalDuration2" units="ms"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hanxi@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -157468,7 +163902,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebApk.ShellApkVersion2" units="units"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hanxi@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
@@ -157478,6 +163912,22 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebApk.Startup.Cold.NewStyle.ShellLaunchToSplashscreenVisible"
+ units="ms" expires_after="2020-06-01">
+ <owner>pkotwicz@chromium.org</owner>
+ <owner>yfriedman@chromium.org</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.
+ The WebAPK shell displays the splash screen for new-style WebAPKs.
+
+ This is recorded iff: - This is a cold startup of Chrome. - Chrome has not
+ been sent to the background since launch. - There was no recents entry for
+ Chrome (Android replays intents if a recents entry exists), which otherwise
+ adds noise/long-tail to this histogram.
+ </summary>
+</histogram>
+
<histogram name="WebApk.Startup.Cold.ShellLaunchToSplashscreenHidden"
units="ms" expires_after="2020-02-16">
<owner>mheikal@chromium.org</owner>
@@ -157511,7 +163961,7 @@ regressions. -->
</histogram>
<histogram base="true" name="WebApk.Uninstall" enum="BooleanHit"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>pkotwicz@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>Records that a WebAPK was uninstalled.</summary>
@@ -157653,6 +164103,10 @@ regressions. -->
<histogram name="Webapp.Install.DisplayMode" enum="WebAppDisplayMode"
expires_after="M87">
+ <obsolete>
+ Deprecated 2019-11 and replaced by Webapp.Install.DisplayMode2, which
+ correctly records manifest display modes on desktop.
+ </obsolete>
<owner>peter@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
@@ -157661,6 +164115,18 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Webapp.Install.DisplayMode2" enum="WebAppDisplayMode"
+ expires_after="2020-11-25">
+ <owner>ericwilligers@chromium.org</owner>
+ <owner>peter@chromium.org</owner>
+ <owner>yfriedman@chromium.org</owner>
+ <summary>
+ Records the display mode (as defined in the Web App Manifest spec) at the
+ install time of a WebApp. Fixes a bug in the data collection for desktop web
+ apps.
+ </summary>
+</histogram>
+
<histogram name="Webapp.Install.InstallBounce" enum="WebappInstallSource"
expires_after="2021-01-01">
<owner>dominickn@chromium.org</owner>
@@ -157709,7 +164175,7 @@ regressions. -->
</histogram>
<histogram name="Webapp.InstallabilityCheckStatus.MenuItemAddToHomescreen"
- enum="InstallabilityCheckStatus">
+ enum="InstallabilityCheckStatus" expires_after="M80">
<obsolete>
Expired in M77.
</obsolete>
@@ -157722,7 +164188,7 @@ regressions. -->
</histogram>
<histogram name="Webapp.InstallabilityCheckStatus.MenuOpen"
- enum="InstallabilityCheckStatus">
+ enum="InstallabilityCheckStatus" expires_after="M80">
<obsolete>
Expired in M77.
</obsolete>
@@ -157733,6 +164199,16 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Webapp.InstallDuration.System" units="seconds"
+ expires_after="2020-06-30">
+ <owner>calamity@chromium.org</owner>
+ <owner>ortuno@chromium.org</owner>
+ <summary>
+ Records the number of seconds taken to install system web apps, from when we
+ dispatch a call to install them, until we get all the installation results.
+ </summary>
+</histogram>
+
<histogram name="Webapp.InstallResult" enum="WebAppInstallResultCode"
expires_after="2020-06-30">
<!-- Name completed by histogram_suffixes name="WebAppType" -->
@@ -157742,6 +164218,34 @@ regressions. -->
<summary>Records the result code of Web App installs.</summary>
</histogram>
+<histogram base="true"
+ name="Webapp.InstallResultExtensionDisabledReason.System.Profiles"
+ enum="ExtensionDisableReason" expires_after="2020-06-30">
+<!-- Name completed by histogram_suffixes name="WebAppSystemProfileCategory" -->
+
+ <owner>calamity@chromium.org</owner>
+ <owner>ortuno@chromium.org</owner>
+ <summary>
+ Records why System Web App .crx extension is disabled during System Web App
+ installs. Certain properties of the profile might cause Extensions to be
+ disabled as soon as they are installed. For example, kiosk profile might set
+ policies to disable all Extensions, including System Web Apps which are
+ considered Extensions.
+ </summary>
+</histogram>
+
+<histogram base="true"
+ name="Webapp.InstallResultExtensionError.System.Profiles"
+ enum="ExtensionInstallationCrxInstallError" expires_after="2020-06-30">
+<!-- Name completed by histogram_suffixes name="WebAppSystemProfileCategory" -->
+
+ <owner>calamity@chromium.org</owner>
+ <owner>ortuno@chromium.org</owner>
+ <summary>
+ Records .crx extension error code when System Web App install fails.
+ </summary>
+</histogram>
+
<histogram name="Webapp.NavigationStatus" enum="BooleanSuccess"
expires_after="M81">
<owner>peter@chromium.org</owner>
@@ -157818,8 +164322,28 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Webapp.SyncInitiatedFallbackInstallResult"
+ enum="WebAppInstallResultCode" expires_after="2022-01-01">
+ <owner>alancutter@chromium.org</owner>
+ <owner>loyso@chromium.org</owner>
+ <summary>
+ Records installation result code for sync initiated fallback installs in the
+ new USS-based web applications system.
+ </summary>
+</histogram>
+
+<histogram name="Webapp.SyncInitiatedUninstallResult" enum="BooleanSuccess"
+ expires_after="2022-01-01">
+ <owner>alancutter@chromium.org</owner>
+ <owner>loyso@chromium.org</owner>
+ <summary>
+ Records uninstallation result for sync initiated uninstalls in the new
+ USS-based web applications system.
+ </summary>
+</histogram>
+
<histogram name="Webapp.UninstallDialogAction"
- enum="WebappUninstallDialogAction" expires_after="2019-12-30">
+ enum="WebappUninstallDialogAction" expires_after="2020-12-30">
<owner>benwells@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<owner>loyso@chromium.org</owner>
@@ -157912,7 +164436,7 @@ regressions. -->
</histogram>
<histogram name="WebAudio.AudioContext.HardwareSampleRate" units="Hz"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
@@ -157967,7 +164491,7 @@ regressions. -->
</histogram>
<histogram name="WebAudio.AudioDestination.HardwareBufferSize" units="units"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>rtoy@chromium.org</owner>
<owner>hongchan@chromium.org</owner>
<summary>
@@ -158213,7 +164737,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.AttestationPromptResult"
- enum="WebAuthenticationAttestationPromptResult" expires_after="2020-03-08">
+ enum="WebAuthenticationAttestationPromptResult" expires_after="2020-05-10">
<owner>agl@chromium.org</owner>
<summary>
Tracks events related to prompting users for permission to pass WebAuthn
@@ -158236,7 +164760,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.CredentialRequestAllowCredentialsCount"
- units="credentials" expires_after="2020-03-08">
+ units="credentials" expires_after="2020-05-10">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -158247,7 +164771,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.GetAssertionRequestTransport"
- enum="WebAuthenticationFidoTransport" expires_after="2020-03-01">
+ enum="WebAuthenticationFidoTransport" expires_after="2020-05-03">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -158258,7 +164782,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.GetAssertionResponseTransport"
- enum="WebAuthenticationFidoTransport" expires_after="2020-03-08">
+ enum="WebAuthenticationFidoTransport" expires_after="2020-05-10">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -158268,7 +164792,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.MakeCredentialExcludeCredentialsCount"
- units="credentials" expires_after="2020-03-08">
+ units="credentials" expires_after="2020-05-10">
<owner>kenrb@chromium.org</owner>
<summary>
When a relying party is attempting to register a credential for a new user
@@ -158278,7 +164802,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.MakeCredentialRequestTransport"
- enum="WebAuthenticationFidoTransport" expires_after="2020-03-08">
+ enum="WebAuthenticationFidoTransport" expires_after="2020-05-10">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -158289,7 +164813,7 @@ regressions. -->
</histogram>
<histogram name="WebAuthentication.MakeCredentialResponseTransport"
- enum="WebAuthenticationFidoTransport" expires_after="2020-03-01">
+ enum="WebAuthenticationFidoTransport" expires_after="2020-05-03">
<owner>kenrb@chromium.org</owner>
<owner>kpaulhamus@chromium.org</owner>
<summary>
@@ -158300,7 +164824,7 @@ regressions. -->
<histogram name="WebAuthentication.RelyingPartySecurityCheckFailure"
enum="WebAuthenticationRelyingPartySecurityCheckFailure"
- expires_after="2019-12-31">
+ expires_after="2020-12-31">
<owner>kenrb@chromium.org</owner>
<summary>
Records failures associated with verifying the relying party origin when
@@ -158313,7 +164837,7 @@ regressions. -->
<histogram name="WebAuthentication.U2FAttestationPromptResult"
enum="WebAuthenticationU2FAttestationPromptResult"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>agl@chromium.org</owner>
<summary>
Tracks events related to prompting users for permission to pass U2F
@@ -158384,7 +164908,7 @@ regressions. -->
<histogram
name="WebController.StartProvisionalNavigationExitedWithEmptyNavigationManager"
- enum="BooleanHit">
+ enum="BooleanHit" expires_after="M80">
<obsolete>
Deprecated 2017-02. This metric disproved the assumption mentioned in the
summary and it is no longer needed.
@@ -158613,8 +165137,11 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.BackingStore.OpenStatus"
- enum="IDBLevelDBBackingStoreOpenResult" expires_after="2020-04-05">
- <owner>dgrogan@chromium.org</owner>
+ enum="IDBLevelDBBackingStoreOpenResult" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>
Count of the different success and failure modes when opening an IndexedDB
backing store - clean open, successful open with recovery, failed recovery,
@@ -158623,8 +165150,11 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.BackingStore.OpenStatus.Docs"
- enum="IDBLevelDBBackingStoreOpenResult" expires_after="M77">
- <owner>dgrogan@chromium.org</owner>
+ enum="IDBLevelDBBackingStoreOpenResult" expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>
Count of the different success and failure modes when opening an IndexedDB
backing store - clean open, successful open with recovery, failed recovery,
@@ -158659,7 +165189,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.Context.ForceCloseReason"
- enum="IDBContextForcedCloseReason" expires_after="2020-02-16">
+ enum="IDBContextForcedCloseReason" expires_after="2020-04-19">
<owner>cmumford@chromium.org</owner>
<summary>The reason that a forced-close of a backing store occurred.</summary>
</histogram>
@@ -158751,7 +165281,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDB.OpenTime" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>cmumford@chromium.org</owner>
<summary>
The time that it takes to open IndexedDB's LevelDB backing store.
@@ -158796,7 +165326,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.BFE"
- enum="PlatformFileError" expires_after="2020-02-16">
+ enum="PlatformFileError" expires_after="2020-04-19">
<owner>cmumford@chromium.org</owner>
<summary>
Errors (base::File::Error) encountered by a single LevelDBEnv method when
@@ -158805,7 +165335,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDBOpenErrors.Corruption"
- enum="LevelDBCorruptionTypes" expires_after="2020-02-23">
+ enum="LevelDBCorruptionTypes" expires_after="2020-05-03">
<owner>dgrogan@chromium.org</owner>
<summary>
Types of corruption that LevelDB encounters when opening a database.
@@ -158853,7 +165383,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDBReadErrors.BFE"
- enum="PlatformFileError">
+ enum="PlatformFileError" expires_after="2020-05-17">
<owner>cmumford@chromium.org</owner>
<summary>
Errors (base::File::Error) encountered by a single LevelDBEnv method when
@@ -158911,7 +165441,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.LevelDBWriteErrors.BFE"
- enum="PlatformFileError" expires_after="2020-02-23">
+ enum="PlatformFileError" expires_after="2020-05-03">
<owner>cmumford@chromium.org</owner>
<summary>
Errors (base::File::Error) encountered by a single LevelDBEnv method when
@@ -159068,7 +165598,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.PutBlobsCount" units="blobs"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>dmurph@chromium.org</owner>
<summary>
The number of blobs being saved in an IndexedDB object store 'put'
@@ -159077,7 +165607,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.PutBlobsTotalSize" units="KB"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>dmurph@chromium.org</owner>
<summary>
The total size of the blobs being saved in an IndexedDB object store 'put'
@@ -159087,7 +165617,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.PutKeySize" units="KB"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>dmurph@chromium.org</owner>
<summary>
The size of the IndexedDB key used in an IndexedDB object store 'put'
@@ -159183,7 +165713,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs" enum="Boolean"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dmurph@chromium.org</owner>
<summary>
Records if a v2 schema has blob keys in the database, which means the
@@ -159198,7 +165728,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs.Docs" enum="Boolean"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dmurph@chromium.org</owner>
<summary>
Records if a v2 schema has blob keys in the database, which means the
@@ -159213,7 +165743,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.SchemaVersion" units="version"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>dmurph@chromium.org</owner>
<summary>
Records the schema version of the IndexedDB database read from disk.
@@ -159227,7 +165757,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.SchemaVersion.Docs" units="version"
- expires_after="2020-02-23">
+ expires_after="2020-05-03">
<owner>dmurph@chromium.org</owner>
<summary>
Records the schema version of the IndexedDB database read from disk.
@@ -159464,7 +165994,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.IndexedDB.TransactionAbortReason" enum="IDBException"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>dmurph@chromium.org</owner>
<summary>
Recorded on the browser side (back end) when an IndexedDB transaction is
@@ -159830,7 +166360,7 @@ regressions. -->
</histogram>
<histogram name="WebCore.WebSocket.SendType" enum="WebSocketSendType"
- expires_after="2020-02-23">
+ expires_after="2020-05-17">
<owner>yhirano@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
@@ -160030,7 +166560,7 @@ regressions. -->
</histogram>
<histogram name="WebFont.HadBlankText" enum="BooleanHadBlankText"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>kenjibaheux@chromium.org</owner>
<owner>ksakamoto@chromium.org</owner>
<summary>
@@ -160330,7 +166860,7 @@ regressions. -->
</histogram>
<histogram name="WebP.DecodedImageFormat" enum="WebpDecodedFormat"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>droger@chromium.org</owner>
<summary>
Histogram for the format of decoded WebP images on iOS, as Chrome re-encodes
@@ -160338,7 +166868,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.AecDelayBasedQuality" enum="DelayBasedEchoQuality">
+<histogram name="WebRTC.AecDelayBasedQuality" enum="DelayBasedEchoQuality"
+ expires_after="M80">
<obsolete>
Deprecated 5/2019 in issue bugs.webrtc.org/10563 due to the reporting
component (AEC2) being deprecated.
@@ -160402,7 +166933,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Audio.AecDelayAdjustmentMsAgnosticValue" units="ms">
+<histogram name="WebRTC.Audio.AecDelayAdjustmentMsAgnosticValue" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019 in issue bugs.webrtc.org/10563 due to the reporting
component (AEC2) being deprecated.
@@ -160417,7 +166949,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Audio.AecDelayAdjustmentMsSystemValue" units="ms">
+<histogram name="WebRTC.Audio.AecDelayAdjustmentMsSystemValue" units="ms"
+ expires_after="M80">
<obsolete>
Deprecated 4/2019 in issue bugs.webrtc.org/10563 due to the reporting
component (AEC2) being deprecated.
@@ -160431,7 +166964,11 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Audio.AecSystemDelayJump" units="ms">
+<histogram name="WebRTC.Audio.AecSystemDelayJump" units="ms"
+ expires_after="2019-11-30">
+ <obsolete>
+ Deprecated 11/2019 due to old AEC system (AEC2) being removed.
+ </obsolete>
<owner>hlundin@chromium.org</owner>
<summary>
The AEC in WebRTC keeps a buffer to mimic the audio buffers in the lower
@@ -160556,7 +167093,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureInputLevelAverageRms"
- units="dBFS (negated)" expires_after="2020-03-29">
+ units="dBFS (negated)" expires_after="2020-05-31">
<owner>hlundin@chromium.org</owner>
<summary>
This histogram reports the average RMS of the signal coming in to WebRTC's
@@ -160568,7 +167105,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureInputLevelPeakRms"
- units="dBFS (negated)" expires_after="2020-03-29">
+ units="dBFS (negated)" expires_after="2020-05-31">
<owner>hlundin@chromium.org</owner>
<summary>
This histogram reports the peak RMS of the signal coming in to WebRTC's
@@ -160580,7 +167117,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ApmCaptureOutputLevelAverageRms"
- units="dBFS (negated)" expires_after="2020-03-29">
+ units="dBFS (negated)" expires_after="2020-05-31">
<owner>peah@chromium.org</owner>
<summary>
This histogram reports the average RMS of the signal in the output of
@@ -160603,6 +167140,19 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebRTC.Audio.AudioInterruptionMs" units="ms"
+ expires_after="2020-05-01">
+ <owner>hlundin@chromium.org</owner>
+ <owner>ivoc@chromium.org</owner>
+ <summary>
+ Measures the duration of each audio interruption event. An audio
+ interruption is defined as a loss concealment (a.k.a. expand) event that
+ lasts more than 150 milliseconds. The metric registers each of these events.
+ This gives an indication of the length and prevalence of severe network
+ events, which are likely to be detrimental to the audio quality.
+ </summary>
+</histogram>
+
<histogram name="WebRTC.Audio.AudioMixer.FixedDigitalGainCurveRegion.Identity"
units="seconds" expires_after="2019-09-01">
<owner>aleloi@chromium.org</owner>
@@ -160682,7 +167232,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.AverageExcessBufferDelayMs" units="ms"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the average waiting time in the buffer for each packet. The waiting
@@ -160694,7 +167244,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.DelayedPacketOutageEventMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the duration of each packet loss concealment (a.k.a. expand) event
@@ -160706,7 +167256,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.DelayedPacketOutageEventsPerMinute"
- units="events/minute" expires_after="2020-02-16">
+ units="events/minute" expires_after="2020-04-19">
<owner>hlundin@chromium.org</owner>
<summary>
Counts the number of delayed packet outage events per minute. The range is
@@ -160774,7 +167324,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.EchoCanceller.DelayChanges"
- enum="WebRTCEventFrequency" expires_after="2020-03-29">
+ enum="WebRTCEventFrequency" expires_after="2020-05-31">
<owner>peah@chromium.org</owner>
<summary>
This histogram logs the frequency of echo path delay changes that are
@@ -160785,7 +167335,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.EchoCanceller.EchoPathDelay" units="Blocks"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>peah@chromium.org</owner>
<summary>
This histogram logs the estimated echo path delay in 64 sample blocks as
@@ -160943,7 +167493,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.EchoCanceller.RenderOverruns"
- enum="WebRTCEventFrequency" expires_after="2020-03-29">
+ enum="WebRTCEventFrequency" expires_after="2020-05-31">
<owner>peah@chromium.org</owner>
<summary>
This histogram logs the frequency of overruns in the render buffer of the
@@ -161002,7 +167552,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ExpandRatePercent" units="%"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>hlundin@chromium.org</owner>
<summary>
Measures the expand rate for an incoming WebRTC audio stream. The expand
@@ -161014,7 +167564,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.JitterBufferFullPerMinute" units="events/minute"
- expires_after="M78">
+ expires_after="2020-04-19">
<owner>minyue@chromium.org</owner>
<summary>
Frequency that audio packets hits the capacity of WebRTC jitter buffer. A
@@ -161024,7 +167574,11 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Audio.NumOfAecSystemDelayJumps" units="jumps">
+<histogram name="WebRTC.Audio.NumOfAecSystemDelayJumps" units="jumps"
+ expires_after="2019-11-30">
+ <obsolete>
+ Deprecated 11/2019 due to old AEC system (AEC2) being removed.
+ </obsolete>
<owner>hlundin@chromium.org</owner>
<summary>
Number of triggered WebRTC.Audio.AecSystemDelayJump during a call. This is
@@ -161036,7 +167590,10 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.NumOfPlatformReportedStreamDelayJumps"
- units="jumps">
+ units="jumps" expires_after="2019-11-30">
+ <obsolete>
+ Deprecated 11/2019 due to old AEC system (AEC2) being removed.
+ </obsolete>
<owner>hlundin@chromium.org</owner>
<summary>
Number of triggered WebRTC.Audio.PlatformReportedStreamDelayJump during a
@@ -161048,7 +167605,11 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Audio.PlatformReportedStreamDelayJump" units="ms">
+<histogram name="WebRTC.Audio.PlatformReportedStreamDelayJump" units="ms"
+ expires_after="2019-11-30">
+ <obsolete>
+ Deprecated 11/2019 due to old AEC system (AEC2) being removed.
+ </obsolete>
<owner>hlundin@chromium.org</owner>
<summary>
The difference in stream delay reported to WebRTC by Chrome. Since we detect
@@ -161072,7 +167633,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ReceiverDeviceDelayMs" units="ms"
- expires_after="2020-02-02">
+ expires_after="2020-04-19">
<owner>hlundin@chromium.org</owner>
<summary>
The sound card's buffering delay for the receiving side. Sampled once every
@@ -161090,7 +167651,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.ResidualEchoDetector.EchoLikelihood" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>hlundin@chromium.org</owner>
<owner>ivoc@chromium.org</owner>
<summary>
@@ -161115,7 +167676,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Audio.TargetBitrateInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>hlundin@chromium.org</owner>
<summary>
The target bitrate in kbps that the audio codec should try to produce on
@@ -161244,20 +167805,20 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.InitialBandwidthEstimate" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<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-03-29">
+ expires_after="2020-05-31">
<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-03-29">
+<histogram name="WebRTC.BWE.InitialRtt" units="ms" expires_after="2020-05-31">
<owner>holmer@chromium.org</owner>
<summary>
The round-trip time as measured 2 seconds into a WebRTC call.
@@ -161265,7 +167826,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.InitialVsConvergedDiff" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
The difference between the bandwidth estimate at 2 seconds and 20 seconds
@@ -161361,7 +167922,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.RampUpTimeTo2000kbpsInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
The time it takes the estimated bandwidth to reach 2000 kbps from the first
@@ -161370,7 +167931,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.BWE.RampUpTimeTo500kbpsInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
The time it takes the estimated bandwidth to reach 500 kbps from the first
@@ -161389,7 +167950,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.AudioBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
Average audio bitrate received during a call, counted from first packet
@@ -161409,7 +167970,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.EstimatedSendBitrateInKbps" units="kbps"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>holmer@chromium.org</owner>
<summary>
Average estimated send bitrate during a call, counted from first packet sent
@@ -161427,7 +167988,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.PacerBitrateInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
Average pacer bitrate during a call, counted from first packet sent until
@@ -161437,7 +167998,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.RtcpBitrateReceivedInBps" units="bits/s"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>holmer@chromium.org</owner>
<summary>
Average RTCP bitrate received during a call, counted from first packet
@@ -161447,7 +168008,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.TimeReceivingAudioRtpPacketsInSeconds" units="s"
- expires_after="2020-02-16">
+ expires_after="2020-04-26">
<owner>saza@chromium.org</owner>
<summary>
The amount of time between the arrival of the first and last audio RTP
@@ -161459,7 +168020,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Call.TimeReceivingVideoRtpPacketsInSeconds" units="s"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>saza@chromium.org</owner>
<summary>
The amount of time between the arrival of the first and last video RTP
@@ -161496,7 +168057,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.DataChannelCounters" enum="DataChannelCounters"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>perkj@chromium.org</owner>
<summary>
Counters on creation, opening, and a few main attributes of data channels.
@@ -161656,7 +168217,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.ConnectionState"
- enum="IceConnectionStates" expires_after="2020-02-16">
+ enum="IceConnectionStates" expires_after="2020-04-19">
<owner>qingsi@google.com</owner>
<owner>jeroendb@google.com</owner>
<summary>
@@ -161791,7 +168352,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.SdpComplexUsage.CreateAnswer"
- enum="PeerConnectionSdpUsageCategory" expires_after="2020-02-16">
+ enum="PeerConnectionSdpUsageCategory" expires_after="2020-04-19">
<owner>hbos@chromium.org</owner>
<summary>
The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
@@ -161802,7 +168363,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.SdpComplexUsage.CreateOffer"
- enum="PeerConnectionSdpUsageCategory" expires_after="2020-02-23">
+ enum="PeerConnectionSdpUsageCategory" expires_after="2020-04-26">
<owner>hbos@chromium.org</owner>
<summary>
The SDP usage category (&quot;safe&quot;, &quot;unsafe&quot; or
@@ -161875,7 +168436,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.SdpSemanticNegotiated"
- enum="PeerConnectionSdpSemanticNegotiated" expires_after="2020-03-01">
+ enum="PeerConnectionSdpSemanticNegotiated" expires_after="2020-05-03">
<owner>hta@chromium.org</owner>
<summary>
What SDP semantic (Unified Plan or Plan B) was detected when completing
@@ -161887,7 +168448,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.SdpSemanticRequested"
- enum="PeerConnectionSdpSemanticRequested" expires_after="2020-02-16">
+ enum="PeerConnectionSdpSemanticRequested" expires_after="2020-04-19">
<owner>hta@chromium.org</owner>
<summary>
What SDP semantic (Unified Plan, Plan B or &quot;use default&quot;) has been
@@ -161911,7 +168472,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.Simulcast.ApplyLocalDescription"
- enum="SimulcastApiVersion" expires_after="2020-02-16">
+ enum="SimulcastApiVersion" expires_after="2020-04-19">
<owner>amithi@chromium.org</owner>
<summary>
Was simulcast applied to the local description and with which API surface.
@@ -161987,7 +168548,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.TimeToConnect" units="ms"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>qingsi@google.com</owner>
<owner>jeroendb@google.com</owner>
<summary>Time to setup a peer to peer call with PeerConnection.</summary>
@@ -162004,7 +168565,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.PeerConnection.UsagePattern"
- enum="WebRtcPeerConnectionUsagePattern" expires_after="2020-03-22">
+ enum="WebRtcPeerConnectionUsagePattern" expires_after="2020-05-24">
<owner>hta@chromium.org</owner>
<summary>
Capsule history of a WebRTC PeerConnection, encoded as a sequence of bits
@@ -162024,7 +168585,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.ReceivedVideoTrackDuration" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>perkj@chromium.org</owner>
<summary>
Durations of video tracks received over a PeerConnection. The stopwatch
@@ -162034,7 +168595,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.ReliableDataChannelMessageSize" units="bytes"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>perkj@chromium.org</owner>
<summary>
Sizes of messages sent over reliable data channels. The size of an
@@ -162049,7 +168610,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.SentAudioTrackDuration" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>perkj@chromium.org</owner>
<summary>
Durations of audio tracks sent over a PeerConnection. The stopwatch starts
@@ -162059,7 +168620,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.SentVideoTrackDuration" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>perkj@chromium.org</owner>
<summary>
Durations of video tracks sent over a PeerConnection. The stopwatch starts
@@ -162138,7 +168699,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.UnreliableDataChannelMessageSize" units="bytes"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>perkj@chromium.org</owner>
<summary>
Sizes of messages sent over unreliable data channels. The size of an
@@ -162209,7 +168770,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.Video.BadCall.Any" units="%" expires_after="2020-03-29">
+<histogram name="WebRTC.Video.BadCall.Any" units="%" expires_after="2020-05-31">
<owner>sprang@chromium.org</owner>
<summary>
Fraction of time the call was classified as bad because of any reason.
@@ -162217,7 +168778,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BadCall.FrameRate" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sprang@chromium.org</owner>
<summary>
Fraction of time the call was classified as bad because of low framerate.
@@ -162225,7 +168786,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BadCall.FrameRateVariance" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>sprang@chromium.org</owner>
<summary>
Fraction of time the call was classified as bad because of high framerate
@@ -162241,7 +168802,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BandwidthLimitedResolutionInPercent" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent frames that are limited in resolution due to bandwidth
@@ -162250,7 +168811,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BandwidthLimitedResolutionsDisabled"
- units="disabled resolutions" expires_after="2020-03-29">
+ units="disabled resolutions" expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
For frames that are limited in resolution due to bandwidth, the average
@@ -162260,7 +168821,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received bits per second for a received video stream. Recorded
@@ -162270,7 +168831,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.BitrateSentInKbps" units="kbps"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent bits per second for a sent video stream. Recorded when a
@@ -162289,7 +168850,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.CpuLimitedResolutionInPercent" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of frames that are limited in resolution due to CPU for a sent
@@ -162335,8 +168896,29 @@ regressions. -->
</summary>
</histogram>
+<histogram base="true" name="WebRTC.Video.DecodeTimePerFrameInMs" units="ms"
+ expires_after="2020-10-23">
+ <owner>kron@chromium.org</owner>
+ <summary>
+ The decode time per frame for a received video stream. Continously updated
+ after each frame has been decoded.
+ </summary>
+</histogram>
+
+<histogram_suffixes name="CodecInfo" separator=".">
+ <suffix name="H264.4k.Hw"/>
+ <suffix name="H264.4k.Sw"/>
+ <suffix name="H264.Hd.Hw"/>
+ <suffix name="H264.Hd.Sw"/>
+ <suffix name="Vp9.4k.Hw"/>
+ <suffix name="Vp9.4k.Sw"/>
+ <suffix name="Vp9.Hd.Hw"/>
+ <suffix name="Vp9.Hd.Sw"/>
+ <affected-histogram name="WebRTC.Video.DecodeTimePerFrameInMs"/>
+</histogram_suffixes>
+
<histogram name="WebRTC.Video.DelayedFramesToRenderer" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of delayed frames to renderer for a received video stream.
@@ -162345,7 +168927,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DelayedFramesToRenderer_AvgDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay of delayed frames to renderer for a received video stream.
@@ -162362,7 +168944,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DroppedFrames.Capturer" units="frames"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by a capturer for a sent video stream.
@@ -162371,7 +168953,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DroppedFrames.Encoder" units="frames"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by an encoder's internal rate limiter for a
@@ -162398,7 +168980,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.DroppedFrames.Receiver" units="frames"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by a WebRTC on the receive side because they
@@ -162443,7 +169025,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.EndToEndDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average end-to-end delay per frame for a received video stream. Recorded
@@ -162452,7 +169034,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.EndToEndDelayMaxInMs" units="ms"
- expires_after="2020-02-23">
+ expires_after="2020-04-26">
<owner>ilnik@chromium.org</owner>
<summary>
The maximum end-to-end delay per frame for a received video stream. Recorded
@@ -162461,7 +169043,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.FecBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received FEC bits per second for a received video stream.
@@ -162471,7 +169053,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.FecBitrateSentInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent FEC bits per second for a sent video stream. Recorded
@@ -162481,7 +169063,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.FirPacketsReceivedPerMinute"
- units="packets/minute" expires_after="2020-02-16">
+ units="packets/minute" expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received RTCP FIR packets per minute for a sent video stream.
@@ -162491,7 +169073,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.FirPacketsSentPerMinute" units="packets/minute"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent RTCP FIR packets per minute for a received video stream.
@@ -162501,7 +169083,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.H264DecoderImpl.Event"
- enum="WebRtcH264DecoderImplEvent" expires_after="2020-02-16">
+ enum="WebRtcH264DecoderImplEvent" expires_after="2020-04-19">
<owner>hbos@chromium.org</owner>
<summary>
The number of |H264DecoderImpl| events, such as an initialization or
@@ -162514,7 +169096,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.H264EncoderImpl.Event"
- enum="WebRtcH264EncoderImplEvent" expires_after="2020-02-16">
+ enum="WebRtcH264EncoderImplEvent" expires_after="2020-04-19">
<owner>hbos@chromium.org</owner>
<summary>
The number of |H264EncoderImpl| events, such as an initialization or
@@ -162537,7 +169119,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InputHeightInPixels" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average input height per frame (for incoming frames to video engine) for
@@ -162546,7 +169128,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InputWidthInPixels" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average input width per frame (for incoming frames to video engine) for
@@ -162555,7 +169137,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InterframeDelay95PercentileInMs" units="ms"
- expires_after="2020-03-08">
+ expires_after="2020-05-10">
<owner>ilnik@chromium.org</owner>
<summary>
The 95th percentile of interframe delay for a received video stream.
@@ -162564,7 +169146,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InterframeDelayInMs" units="ms"
- expires_after="M81">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average interframe delay for a received video stream. Recorded when a
@@ -162573,7 +169155,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.InterframeDelayMaxInMs" units="ms"
- expires_after="M81">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The maximum interframe delay for a received video stream. Recorded when a
@@ -162582,7 +169164,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.JitterBufferDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Average jitter buffer delay for a received video stream. Recorded when a
@@ -162591,7 +169173,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.KeyFramesReceivedInPermille" units="permille"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Permille of frames that are key frames for a received video stream. Recorded
@@ -162600,7 +169182,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.KeyFramesSentInPermille" units="permille"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Permille of frames that are key frames for a sent video stream. Recorded
@@ -162626,7 +169208,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.MediaBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received media payload bits per second for a received video
@@ -162645,7 +169227,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NackPacketsReceivedPerMinute"
- units="packets/minute" expires_after="2020-02-16">
+ units="packets/minute" expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received RTCP NACK packets per minute for a sent video stream.
@@ -162655,7 +169237,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NackPacketsSentPerMinute" units="packets/minute"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent RTCP NACK packets per minute for a received video stream.
@@ -162665,7 +169247,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NumberFreezesPerMinute" units="freezes/minute"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ssilkin@chromium.org</owner>
<summary>
The number of video freezes per minute for a received video stream. Recorded
@@ -162674,7 +169256,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.NumberOfPauseEvents" units="pause events"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
The number of times a video stream has been paused/resumed during a call.
@@ -162701,7 +169283,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PaddingBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received padding bits per second for a received video stream.
@@ -162711,7 +169293,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PaddingBitrateSentInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent padding bits per second for a sent video stream. Recorded
@@ -162721,7 +169303,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PausedTimeInPercent" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of time that the video has been paused for a sent video stream.
@@ -162730,7 +169312,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PliPacketsReceivedPerMinute"
- units="packets/minute" expires_after="2020-02-16">
+ units="packets/minute" expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received RTCP PLI packets per minute for a sent video stream.
@@ -162740,7 +169322,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.PliPacketsSentPerMinute" units="packets/minute"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent RTCP PLI packets per minute for a received video stream.
@@ -162750,7 +169332,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.QualityLimitedResolutionDownscales"
- units="downscales" expires_after="2020-02-16">
+ units="downscales" expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
For frames that are downscaled in resolution due to quality, the average
@@ -162760,7 +169342,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.QualityLimitedResolutionInPercent" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent frames that are downscaled in resolution due to quality
@@ -162769,7 +169351,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedFecPacketsInPercent" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of received FEC packets for a received video stream. Recorded
@@ -162778,7 +169360,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedHeightInPixels" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average received height per frame for a received video stream. Recorded
@@ -162787,7 +169369,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedPacketsLostInPercent" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of received packets lost for a received video stream. Recorded
@@ -162796,7 +169378,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceivedWidthInPixels" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average received width per frame for a received video stream. Recorded
@@ -162805,7 +169387,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.ReceiveStreamLifetimeInSeconds" units="seconds"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The lifetime of a video receive stream. Recorded when a VideoReceiveStream
@@ -162814,7 +169396,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RecoveredMediaPacketsInPercentOfFec" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of recovered media packets from FEC packets for a received video
@@ -162823,7 +169405,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RenderFramesPerSecond" units="fps"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent frames to the renderer per second for a received video
@@ -162833,7 +169415,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RenderSqrtPixelsPerSecond" units="pps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of pixels (sqrt(width*height)) of sent frames to the renderer per
@@ -162843,7 +169425,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RetransmittedBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of retransmitted bits per second for a received video stream.
@@ -162853,7 +169435,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RetransmittedBitrateSentInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of retransmitted bits per second for a sent video stream.
@@ -162863,7 +169445,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RtpToNtpFreqOffsetInKhz" units="kHz"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The absolute value of the difference between the estimated frequency during
@@ -162875,7 +169457,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RtxBitrateReceivedInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of received bits over RTX per second for a received video stream.
@@ -162885,7 +169467,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.RtxBitrateSentInKbps" units="kbps"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The number of sent bits over RTX per second for a sent video stream.
@@ -162895,7 +169477,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.BandwidthLimitedResolutionInPercent"
- units="%" expires_after="M80">
+ units="%" expires_after="2020-05-10">
<owner>sprang@chromium.org</owner>
<summary>
Percentage of sent frames that are limited in resolution due to bandwidth
@@ -162924,7 +169506,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.Decoded.Vp8.Qp" units="qp value"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average QP (quantizer value) per frame for a received VP8 screenshare
@@ -162933,7 +169515,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Capturer"
- units="frames" expires_after="M80">
+ units="frames" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by a capturer for a sent screenshare stream.
@@ -162942,7 +169524,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Encoder" units="frames"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by an encoder's internal rate limiter for a
@@ -162960,7 +169542,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.DroppedFrames.Ratelimiter"
- units="frames" expires_after="M80">
+ units="frames" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Total number of frames dropped by a WebRTC rate limiter (in MediaOpt) for a
@@ -162978,7 +169560,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.EndToEndDelayInMs" units="ms"
- expires_after="M81">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average end-to-end delay per frame for a received screenshare stream.
@@ -162987,7 +169569,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.EndToEndDelayMaxInMs" units="ms"
- expires_after="M81">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The maximum end-to-end delay per frame for a received screenshare stream.
@@ -163064,7 +169646,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelay95PercentileInMs"
- units="ms" expires_after="M81">
+ units="ms" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The 95th percentile of interframe delay for a received screenshare stream.
@@ -163073,7 +169655,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelayInMs" units="ms"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average interframe delay for a received screenshare stream. Recorded
@@ -163082,7 +169664,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.InterframeDelayMaxInMs" units="ms"
- expires_after="M81">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The maximum interframe delay for a received screenshare stream. Recorded
@@ -163091,7 +169673,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.KeyFramesReceivedInPermille"
- units="permille" expires_after="M80">
+ units="permille" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Permille of frames that are key frames for a received screenshare stream.
@@ -163125,7 +169707,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MeanFreezeDurationMs" units="ms"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average duration of a freeze in screenshare playback. Recorded then a
@@ -163134,7 +169716,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MeanTimeBetweenFreezesMs" units="ms"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average duration of a smooth video playback for screenshare stream.
@@ -163143,7 +169725,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.MediaBitrateReceivedInKbps"
- units="kbps" expires_after="M80">
+ units="kbps" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The number of received media payload bits per second for a received
@@ -163174,7 +169756,7 @@ regressions. -->
<histogram
name="WebRTC.Video.Screenshare.NumberResolutionDownswitchesPerMinute"
- units="switches/minute" expires_after="M81">
+ units="switches/minute" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average number of resolution down-switches per minute for a receive
@@ -163223,7 +169805,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceivedHeightInPixels"
- units="pixels" expires_after="M80">
+ units="pixels" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average received height per frame for a received screenshare stream.
@@ -163241,7 +169823,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.ReceivedWidthInPixels" units="pixels"
- expires_after="M80">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
The average received width per frame for a received screenshare stream.
@@ -163269,7 +169851,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.RtxBitrateSentInKbps" units="kbps"
- expires_after="M80">
+ expires_after="M83">
<owner>sprang@chromium.org</owner>
<summary>
The number of sent bits over RTX per second for a sent screenshare stream.
@@ -163332,7 +169914,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.SentToInputFpsRatioPercent" units="%"
- expires_after="M82">
+ expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Ratio between Screenshare.SentFramesPerSecond and
@@ -163352,7 +169934,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.Screenshare.TimeInBlockyVideoPercentage"
- units="%" expires_after="M80">
+ units="%" expires_after="M83">
<owner>ilnik@chromium.org</owner>
<summary>
Percentage of time the received screenshare stream playbacks low quality
@@ -163378,7 +169960,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average send delay of sent packets for a sent video stream. Recorded
@@ -163388,7 +169970,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendSideDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay (of average delays) of sent packets for a sent video
@@ -163400,7 +169982,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendSideDelayMaxInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average delay (of max delays) of sent packets for a sent video stream.
@@ -163412,7 +169994,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SendStreamLifetimeInSeconds" units="seconds"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The lifetime of a video send stream. Recorded when a VideoSendStream
@@ -163431,7 +170013,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentHeightInPixels" units="pixels"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
The average sent height per frame for a sent video stream. Recorded when a
@@ -163440,7 +170022,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentPacketsLostInPercent" units="%"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of sent packets lost for a sent video stream. Recorded when a
@@ -163449,7 +170031,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.SentToInputFpsRatioPercent" units="%"
- expires_after="M80">
+ expires_after="2020-05-10">
<owner>ilnik@chromium.org</owner>
<summary>
Ratio between SentFramesPerSecond and InputFramesPerSecond in percents.
@@ -163468,7 +170050,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.TargetDelayInMs" units="ms"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Average target delay (jitter delay + decode time + render delay) for a
@@ -163477,7 +170059,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.TimeInBlockyVideoPercentage" units="%"
- expires_after="M80">
+ expires_after="2020-05-10">
<owner>ilnik@chromium.org</owner>
<summary>
Percentage of time the receive video stream playbacks low quality blocky
@@ -163494,7 +170076,7 @@ regressions. -->
</histogram>
<histogram name="WebRTC.Video.UniqueNackRequestsReceivedInPercent" units="%"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>asapersson@chromium.org</owner>
<summary>
Percentage of unique RTCP NACK requests that are received in response to a
@@ -163520,8 +170102,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.webkitApiCount" enum="WebRTCAPIName"
- expires_after="M81">
+<histogram name="WebRTC.webkitApiCount" enum="RTCAPIName" expires_after="M81">
<owner>guidou@chromium.org</owner>
<owner>hbos@chromium.org</owner>
<owner>mcasas@chromium.org</owner>
@@ -163529,7 +170110,7 @@ regressions. -->
<summary>Counts number of calls to WebRTC APIs from JavaScript.</summary>
</histogram>
-<histogram name="WebRTC.webkitApiCountPerSession" enum="WebRTCAPIName"
+<histogram name="WebRTC.webkitApiCountPerSession" enum="RTCAPIName"
expires_after="M81">
<owner>perkj@chromium.org</owner>
<summary>
@@ -163539,7 +170120,7 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WebRTC.webkitApiCountUniqueByOrigin" enum="WebRTCAPIName"
+<histogram name="WebRTC.webkitApiCountUniqueByOrigin" enum="RTCAPIName"
expires_after="2014-03-28">
<obsolete>
Deprecated as of r253828 (27 Feb 2014).
@@ -163569,7 +170150,7 @@ regressions. -->
</histogram>
<histogram name="WebRtcEventLogging.NetError" units="units"
- expires_after="2020-03-01">
+ expires_after="2020-05-17">
<owner>eladalon@chromium.org</owner>
<owner>saeedj@google.com</owner>
<owner>manj@google.com</owner>
@@ -163593,8 +170174,9 @@ regressions. -->
</histogram>
<histogram base="true" name="WebRtcTextLogging"
- enum="WebRtcLoggingWebAppIdHash" expires_after="2020-01-01">
- <owner>grunell@chromium.org</owner>
+ enum="WebRtcLoggingWebAppIdHash" expires_after="2020-07-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
Counts the number of WebRTC text log events per web application. Suffixed by
event.
@@ -163602,8 +170184,9 @@ regressions. -->
</histogram>
<histogram name="WebRtcTextLogging.UploadFailureNetErrorCode"
- enum="NetErrorCodes" expires_after="2020-01-01">
- <owner>grunell@chromium.org</owner>
+ enum="NetErrorCodes" expires_after="2020-07-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
Network error codes for WebRTC text log upload failures. Recorded when an
upload attempt fails.
@@ -163611,8 +170194,9 @@ regressions. -->
</histogram>
<histogram name="WebRtcTextLogging.UploadFailureReason"
- enum="WebRtcLoggingUploadFailureReason" expires_after="2020-01-01">
- <owner>grunell@chromium.org</owner>
+ enum="WebRtcLoggingUploadFailureReason" expires_after="2020-07-01">
+ <owner>armax@chromium.org</owner>
+ <owner>guidou@chromium.org</owner>
<summary>
Counts upload failures for WebRTC text log. Error codes for network errors
are logged in WebRtcTextLogging.UploadFailureNetErrorCode. Recorded when an
@@ -163621,7 +170205,7 @@ regressions. -->
</histogram>
<histogram name="WebShare.ApiCount" enum="WebShareMethod"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>mgiuca@chromium.org</owner>
<summary>
Counts the number of calls to navigator.share. Includes both successful and
@@ -163831,8 +170415,12 @@ regressions. -->
<summary>The time required to successfully open a Web SQL database.</summary>
</histogram>
-<histogram name="websql.OpenDatabase" enum="BooleanSecure" expires_after="M81">
- <owner>michaeln@chromium.org</owner>
+<histogram name="websql.OpenDatabase" enum="BooleanSecure"
+ expires_after="never">
+<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->
+
+ <owner>dmurph@chromium.org</owner>
+ <owner>pwnall@chromium.org</owner>
<summary>
Counts the number of WebSQL databases opened for secure vs insecure origins.
</summary>
@@ -163906,7 +170494,7 @@ regressions. -->
</histogram>
<histogram name="WebUI.Settings.PathVisited" enum="WebUISettingsPathHashes"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>dschuyler@chromium.org</owner>
<owner>tbuckley@chromium.org</owner>
<owner>bettes@chromium.org</owner>
@@ -163916,8 +170504,70 @@ regressions. -->
</summary>
</histogram>
+<histogram name="WebUITabStrip.CloseAction" enum="WebUITabStripCloseActions"
+ expires_after="2020-09-15">
+ <owner>collinbaker@chromium.org</owner>
+ <owner>dfried@chromium.org</owner>
+ <summary>
+ The WebUI tab strip is a more touch-friendly tab strip used in place of
+ Chrome's native tab strip in some cases. It can be opened and closed. This
+ records how a user closed it.
+ </summary>
+</histogram>
+
+<histogram name="WebUITabStrip.OpenAction" enum="WebUITabStripOpenActions"
+ expires_after="2020-09-15">
+ <owner>collinbaker@chromium.org</owner>
+ <owner>dfried@chromium.org</owner>
+ <summary>
+ The WebUI tab strip is a more touch-friendly tab strip used in place of
+ Chrome's native tab strip in some cases. It can be opened and closed. This
+ records how a user opened it.
+ </summary>
+</histogram>
+
+<histogram name="WebUITabStrip.OpenDuration" units="ms"
+ expires_after="2020-09-15">
+ <owner>collinbaker@chromium.org</owner>
+ <owner>dfried@chromium.org</owner>
+ <summary>
+ The WebUI tab strip is a more touch-friendly tab strip used in place of
+ Chrome's native tab strip in some cases. It can be opened and closed. This
+ records how long it was open when closing.
+ </summary>
+</histogram>
+
+<histogram name="WebUITabStrip.TabActivation" units="ms" expires_after="M84">
+ <owner>robliao@chromium.org</owner>
+ <owner>johntlee@chromium.org</owner>
+ <summary>
+ WebUI Tabstrip: Time from activating a tab from WebUI to receiving an
+ activation notification in WebUI.
+ </summary>
+</histogram>
+
+<histogram name="WebUITabStrip.TabCreation" units="ms" expires_after="M84">
+ <owner>robliao@chromium.org</owner>
+ <owner>johntlee@chromium.org</owner>
+ <summary>
+ WebUI Tabstrip: Time needed to create all of the tab elements at launch.
+ </summary>
+</histogram>
+
+<histogram name="WebUITabStrip.TabDataReceived" units="ms" expires_after="M84">
+ <owner>robliao@chromium.org</owner>
+ <owner>johntlee@chromium.org</owner>
+ <summary>
+ WebUI Tabstrip: Time from requesting the tab data to receiving the data.
+ </summary>
+</histogram>
+
<histogram name="WebURLLoader.SyncResourceRequestDuration" units="ms"
expires_after="M75">
+ <obsolete>
+ Removed 2019-12 after expiration, while adding the similar
+ XHR.Sync.BlockingTime.MainThread and XHR.Sync.BlockingTime.WorkerThread.
+ </obsolete>
<owner>qinmin@chromium.org</owner>
<owner>cduvall@chromium.org</owner>
<summary>
@@ -163927,7 +170577,7 @@ regressions. -->
</histogram>
<histogram name="WebUsb.ChooserClosed" enum="WebUsbChooserClosed"
- expires_after="2020-02-16">
+ expires_after="2020-04-19">
<owner>reillyg@chromium.org</owner>
<owner>juncai@chromium.org</owner>
<summary>
@@ -163944,7 +170594,7 @@ regressions. -->
</histogram>
<histogram name="WebUsb.NotificationClosed" enum="WebUsbNotificationClosed"
- expires_after="2020-03-01">
+ expires_after="2020-05-03">
<owner>reillyg@chromium.org</owner>
<owner>juncai@chromium.org</owner>
<summary>
@@ -164101,7 +170751,7 @@ regressions. -->
</histogram>
<histogram name="WindowOcclusionChanged" enum="WindowOcclusionState"
- expires_after="2019-12-02">
+ expires_after="2020-04-01">
<owner>davidbienvenu@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
@@ -164109,8 +170759,18 @@ regressions. -->
</summary>
</histogram>
+<histogram name="Windows.ApplockerRunning" enum="Boolean" expires_after="M83">
+ <owner>forshaw@chromium.org</owner>
+ <owner>wfh@chromium.org</owner>
+ <summary>
+ Records if the APPID driver is running which indicates Applocker is enabled
+ and running. This does not guarantee that Applocker is configured to enforce
+ any rules. Reported once per browser session, on startup.
+ </summary>
+</histogram>
+
<histogram name="Windows.ComputeNativeWindowOcclusionTime" units="microseconds"
- expires_after="M81">
+ expires_after="M83">
<owner>fdoray@chromium.org</owner>
<summary>
The amount of CPU time a call to ComputeNativeWindowOcclusionStatus() takes.
@@ -164305,6 +170965,16 @@ regressions. -->
<summary>Count of browser launches from a Windows tablet pc.</summary>
</histogram>
+<histogram name="Windows.UCRTVersion" enum="WindowsVersion"
+ expires_after="2020-04-30">
+ <owner>brucedawson@chromium.org</owner>
+ <owner>jmadill@chromium.org</owner>
+ <summary>
+ The ucrtbase.dll version, converted to a base::win::Version enum. This is
+ queried shortly after startup.
+ </summary>
+</histogram>
+
<histogram name="Windows.Win32kRendererLockdown" enum="BooleanEnabled"
expires_after="2016-10-11">
<obsolete>
@@ -164691,7 +171361,8 @@ regressions. -->
</summary>
</histogram>
-<histogram name="WorkerScheduler.WorkerThreadLoad" units="%">
+<histogram name="WorkerScheduler.WorkerThreadLoad" units="%"
+ expires_after="M80">
<obsolete>
Removed July 2019.
</obsolete>
@@ -164721,7 +171392,7 @@ regressions. -->
<summary>Records the exit code of WorkerThread.</summary>
</histogram>
-<histogram name="WorkerThread.Runtime" units="ms">
+<histogram name="WorkerThread.Runtime" units="ms" expires_after="M80">
<obsolete>
Removed July 2019.
</obsolete>
@@ -164742,7 +171413,7 @@ regressions. -->
</histogram>
<histogram name="WrenchMenu.MenuAction" enum="WrenchMenuAction"
- expires_after="2020-03-29">
+ expires_after="2020-05-31">
<owner>ainslie@chromium.org</owner>
<owner>edwardjung@chromium.org</owner>
<summary>Number of times that each menu item is clicked.</summary>
@@ -164802,6 +171473,22 @@ regressions. -->
</summary>
</histogram>
+<histogram name="XHR.Sync.BlockingTime.MainThread" units="ms"
+ expires_after="2021-01-01">
+ <owner>foolip@chromium.org</owner>
+ <summary>
+ Records the time spent in sync XHR requests on the main thread.
+ </summary>
+</histogram>
+
+<histogram name="XHR.Sync.BlockingTime.WorkerThread" units="ms"
+ expires_after="2021-01-01">
+ <owner>foolip@chromium.org</owner>
+ <summary>
+ Records the time spent in sync XHR requests in a worker thread.
+ </summary>
+</histogram>
+
<histogram name="XHR.Sync.PageDismissal" enum="XHRPageDismissalState"
expires_after="M81">
<owner>panicker@chromium.org</owner>
@@ -164812,7 +171499,7 @@ regressions. -->
</histogram>
<histogram name="XHR.Sync.PageDismissal_forbidden" enum="XHRPageDismissalState"
- expires_after="2020-03-22">
+ expires_after="2020-05-24">
<owner>kdillon@chromium.org</owner>
<owner>panicker@chromium.org</owner>
<summary>
@@ -164823,18 +171510,18 @@ regressions. -->
<histogram name="XR.RuntimeAvailable" enum="XRRuntimeAvailable"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Indicates which VR APIs are installed. Recorded shortly after startup.
</summary>
</histogram>
<histogram name="XR.RuntimeUsed" enum="XRDeviceId" expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Indicates which XR runtime was used for a session. Recorded when the session
was successfully created.
@@ -164843,9 +171530,9 @@ regressions. -->
<histogram name="XR.VRSession.StartAction" enum="VRSessionStartAction"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The action that triggered the transition into Chrome in VR, either from 2D
or another VR app.
@@ -164853,8 +171540,9 @@ regressions. -->
</histogram>
<histogram name="XR.WebXR.ConsentFlow" enum="XRSessionRequestDialogAction"
- expires_after="M80">
- <owner>sumankancherla@chromium.org</owner>
+ expires_after="2020-07-01">
+ <owner>alcooper@chromium.org</owner>
+ <owner>mlamouri@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Records the actions of a user consent dialog which is displayed on
@@ -164863,8 +171551,9 @@ regressions. -->
</histogram>
<histogram name="XR.WebXR.ConsentFlowDuration.ConsentFlowAborted" units="ms"
- expires_after="M80">
- <owner>sumankancherla@chromium.org</owner>
+ expires_after="2020-07-01">
+ <owner>alcooper@chromium.org</owner>
+ <owner>mlamouri@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Time the user takes to abort the consent flow by clicking on the
@@ -164873,8 +171562,9 @@ regressions. -->
</histogram>
<histogram name="XR.WebXR.ConsentFlowDuration.ConsentGranted" units="ms"
- expires_after="M80">
- <owner>sumankancherla@chromium.org</owner>
+ expires_after="2020-07-01">
+ <owner>alcooper@chromium.org</owner>
+ <owner>mlamouri@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Time the user takes to click on the allow-and-enter-VR button on a session
@@ -164883,8 +171573,9 @@ regressions. -->
</histogram>
<histogram name="XR.WebXR.ConsentFlowDuration.ConsentNotGranted" units="ms"
- expires_after="M80">
- <owner>sumankancherla@chromium.org</owner>
+ expires_after="2020-07-01">
+ <owner>alcooper@chromium.org</owner>
+ <owner>mlamouri@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Time the user takes to click on dont-allow button on a session request
@@ -164894,9 +171585,9 @@ regressions. -->
<histogram name="XR.WebXR.PresentationSession" enum="VRPresentationStartAction"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
The action that triggered VR presentation, which is the display of web
content on a VR device.
@@ -164905,9 +171596,9 @@ regressions. -->
<histogram name="XR.WebXR.ReferenceSpace.Requested" enum="XRReferenceSpaceType"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Records which reference space was requested when a site calls
XRSession.requestReferenceSpace().
@@ -164916,9 +171607,9 @@ regressions. -->
<histogram name="XR.WebXR.ReferenceSpace.Succeeded" enum="XRReferenceSpaceType"
expires_after="2020-07-01">
- <owner>billorr@chromium.org</owner>
+ <owner>alcooper@chromium.org</owner>
<owner>cassew@chromium.org</owner>
- <owner>samdrazin@chromium.org</owner>
+ <owner>xr-dev@chromium.org</owner>
<summary>
Records which reference spaces are successfully created when the promise
returned by XRSession.requestReferenceSpace() is resolved.
@@ -165028,6 +171719,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="AccountReconcilorExecution" separator=".">
+ <obsolete>
+ Deprecated M80. Only affects one histogram, which is deprecated.
+ </obsolete>
<owner>msalama@chromium.org</owner>
<owner>msarda@chromium.org</owner>
<suffix name="FirstExecution" label="The first Reconcilor execution"/>
@@ -165245,6 +171939,9 @@ regressions. -->
</histogram_suffixes>
<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."/>
<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
@@ -165585,8 +172282,10 @@ regressions. -->
<histogram_suffixes name="AndroidFeatureModuleName" separator=".">
<suffix name="ar" label="Augmented Reality Module"/>
<suffix name="autofill_assistant" label="Assistant-in-Chrome Module"/>
+ <suffix name="chime" label="Chime Notification Module"/>
<suffix name="dev_ui" label="Developer UI Module"/>
<suffix name="extra_icu" label="Extra ICU Module"/>
+ <suffix name="image_editor" label="Image Editor Module"/>
<suffix name="tab_ui" label="Tab Management Module"/>
<suffix name="test_dummy" label="Test Dummy Module"/>
<suffix name="vr" label="Virtual Reality Module"/>
@@ -165729,6 +172428,9 @@ regressions. -->
label="Enter kFullscreenSearch state in tablet"/>
<suffix name="EnterOverview" label="Enter overview mode in tablet"/>
<suffix name="ExitOverview" label="Exit overview mode in tablet"/>
+ <suffix name="FadeInOverview" label="Fade in overview from home in tablet"/>
+ <suffix name="FadeOutOverview"
+ label="Fade out of overview to home in tablet"/>
<suffix name="HideLauncherForWindow"
label="Active a window to hide the app list"/>
<suffix name="PressAppListButtonShow"
@@ -165800,10 +172502,47 @@ regressions. -->
<affected-histogram name="Arc.Provisioning.TimeDelta.Failure"/>
<affected-histogram name="Arc.Provisioning.TimeDelta.Success"/>
<affected-histogram name="Arc.Reauthorization.Result"/>
+ <affected-histogram name="Arc.Session.MojoDisconnection"/>
+ <affected-histogram name="Arc.Session.StopReason"/>
<affected-histogram name="Arc.StateByUserType"/>
+ <affected-histogram name="Arc.UiAvailable.AlreadyProvisioned.TimeDelta"/>
+ <affected-histogram name="Arc.UiAvailable.InSessionProvisioning.TimeDelta"/>
+ <affected-histogram name="Arc.UiAvailable.OobeProvisioning.TimeDelta"/>
<affected-histogram name="ArcAuth.MainAccountResolutionStatus"/>
</histogram_suffixes>
+<histogram_suffixes name="AssistantProactiveSuggestionsShowAttemptByCategory"
+ separator="." ordering="prefix">
+ <suffix name="AbortedByDuplicateSuppression"
+ label="The attempt was aborted due to duplicate suppression."/>
+ <suffix name="Success"
+ label="The attempt was successful in being presented to the user."/>
+ <affected-histogram
+ name="Assistant.ProactiveSuggestions.FirstShowAttempt.ByCategory"/>
+ <affected-histogram
+ name="Assistant.ProactiveSuggestions.ReshowAttempt.ByCategory"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="AssistantProactiveSuggestionsShowResultByCategory"
+ separator="." ordering="prefix">
+ <suffix name="Click"
+ label="The presentation resulted in a click by the user."/>
+ <suffix name="CloseByContextChange"
+ label="The presentation resulted in being closed due to a change in
+ context."/>
+ <suffix name="CloseByTimeout"
+ label="The presentation resulted in being closed due to timeout."/>
+ <suffix name="CloseByUser"
+ label="The presentation resulted in being closed by the user."/>
+ <suffix name="Teleport"
+ label="The presentation resulted in teleportation directly to a single
+ result."/>
+ <affected-histogram
+ name="Assistant.ProactiveSuggestions.FirstShowResult.ByCategory"/>
+ <affected-histogram
+ name="Assistant.ProactiveSuggestions.ReshowResult.ByCategory"/>
+</histogram_suffixes>
+
<histogram_suffixes name="AsyncDNSPref" separator="_">
<suffix name="Disabled" label=""/>
<suffix name="Enabled" label=""/>
@@ -166187,7 +172926,9 @@ regressions. -->
<suffix name="SignedOut" label="Signed out"/>
<suffix name="SyncPaused" label="Sync paused"/>
<suffix name="Unknown" label="Unknown"/>
+ <affected-histogram name="Autofill.Address.IsEnabled.PageLoad"/>
<affected-histogram name="Autofill.CardUploadEnabled"/>
+ <affected-histogram name="Autofill.CreditCard.IsEnabled.PageLoad"/>
<affected-histogram
name="Autofill.FormEvents.Address.WithBothServerAndLocalData"/>
<affected-histogram name="Autofill.FormEvents.Address.WithNoData"/>
@@ -166255,8 +172996,8 @@ regressions. -->
<affected-histogram name="Availability.Prober.NetError"/>
<affected-histogram name="Availability.Prober.NumAttemptsBeforeSuccess"/>
<affected-histogram name="Availability.Prober.ResponseCode"/>
- <affected-histogram name="Availability.Prober.TimeUntilFailure"/>
- <affected-histogram name="Availability.Prober.TimeUntilSuccess"/>
+ <affected-histogram name="Availability.Prober.TimeUntilFailure2"/>
+ <affected-histogram name="Availability.Prober.TimeUntilSuccess2"/>
</histogram_suffixes>
<histogram_suffixes name="BackgroundDownload" separator=".">
@@ -166559,6 +173300,58 @@ regressions. -->
<affected-histogram name="Blink.MainFrame.UpdateLayersRatio"/>
</histogram_suffixes>
+<histogram_suffixes name="BlinkUpdateTimeAggregatedSuffixes" separator=".">
+ <suffix name="AggregatedPreFCP"
+ 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.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
+ <affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
+ <affected-histogram name="Blink.IntersectionObservation.UpdateTime"/>
+ <affected-histogram name="Blink.Layout.UpdateTime"/>
+ <affected-histogram name="Blink.Paint.UpdateTime"/>
+ <affected-histogram name="Blink.PrePaint.UpdateTime"/>
+ <affected-histogram name="Blink.ProxyCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ScrollingCoordinator.UpdateTime"/>
+ <affected-histogram name="Blink.Style.UpdateTime"/>
+ <affected-histogram name="Blink.StyleAndLayout.UpdateTime"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" separator=".">
+ <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.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
+ <affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
+ <affected-histogram name="Blink.IntersectionObservation.UpdateTime"/>
+ <affected-histogram name="Blink.Layout.UpdateTime"/>
+ <affected-histogram name="Blink.Paint.UpdateTime"/>
+ <affected-histogram name="Blink.PrePaint.UpdateTime"/>
+ <affected-histogram name="Blink.ProxyCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ScrollingCoordinator.UpdateTime"/>
+ <affected-histogram name="Blink.Style.UpdateTime"/>
+ <affected-histogram name="Blink.StyleAndLayout.UpdateTime"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" separator=".">
+ <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.CompositingCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ForcedStyleAndLayout.UpdateTime"/>
+ <affected-histogram name="Blink.HandleInputEvents.UpdateTime"/>
+ <affected-histogram name="Blink.IntersectionObservation.UpdateTime"/>
+ <affected-histogram name="Blink.Layout.UpdateTime"/>
+ <affected-histogram name="Blink.Paint.UpdateTime"/>
+ <affected-histogram name="Blink.PrePaint.UpdateTime"/>
+ <affected-histogram name="Blink.ProxyCommit.UpdateTime"/>
+ <affected-histogram name="Blink.ScrollingCoordinator.UpdateTime"/>
+ <affected-histogram name="Blink.Style.UpdateTime"/>
+ <affected-histogram name="Blink.StyleAndLayout.UpdateTime"/>
+</histogram_suffixes>
+
<histogram_suffixes name="BlinkVisibleLoadTimeSuffixes" separator=".">
<suffix name="2G" label="2G effective connection type"/>
<suffix name="3G" label="3G effective connection type"/>
@@ -166622,6 +173415,17 @@ regressions. -->
name="Memory.BackgroundTask.OfflinePrefetch.Browser.SharedMemoryFootprint"/>
</histogram_suffixes>
+<histogram_suffixes name="CacheDeletedEntries" separator="_">
+ <suffix name="11" label="Out of the experiment"/>
+ <suffix name="12" label="Control"/>
+ <suffix name="13" label="Extended deleted list (2x)"/>
+ <affected-histogram name="DiskCache.0.DeletedRatio"/>
+ <affected-histogram name="DiskCache.0.HitRatio"/>
+ <affected-histogram name="DiskCache.0.ResurrectRatio"/>
+ <affected-histogram name="DiskCache.2.HitRatio"/>
+ <affected-histogram name="DiskCache.3.HitRatio"/>
+</histogram_suffixes>
+
<histogram_suffixes name="CachedImageFetcherClients" separator=".">
<obsolete>
Renamed to ImageFetcherClients on 04/2019.
@@ -167203,13 +174007,42 @@ regressions. -->
<suffix name="SendBeginMainFrameToCommit"
label="The time from when the BeginMainFrame is sent to the beginning
of the commit."/>
+ <suffix name="SendBeginMainFrameToCommit.Animate"
+ label="The time portion of SendBeginMainFrameToCommit spent on
+ animations."/>
+ <suffix name="SendBeginMainFrameToCommit.Composite"
+ label="The time portion of SendBeginMainFrameToCommit spent on
+ compositing."/>
+ <suffix name="SendBeginMainFrameToCommit.CompositeCommit"
+ label="The time portion of SendBeginMainFrameToCommit spent on
+ composite commit."/>
+ <suffix name="SendBeginMainFrameToCommit.HandleInputEvents"
+ label="The time portion of SendBeginMainFrameToCommit spent on handling
+ imput events."/>
+ <suffix name="SendBeginMainFrameToCommit.LayoutUpdate"
+ label="The time portion of SendBeginMainFrameToCommit spent on layout
+ update."/>
+ <suffix name="SendBeginMainFrameToCommit.Paint"
+ label="The time portion of SendBeginMainFrameToCommit spent on paint."/>
+ <suffix name="SendBeginMainFrameToCommit.Prepaint"
+ label="The time portion of SendBeginMainFrameToCommit spent on
+ prepaint."/>
+ <suffix name="SendBeginMainFrameToCommit.ScrollingCoordinator"
+ label="The time portion of SendBeginMainFrameToCommit spent on
+ scrolling coordinator."/>
+ <suffix name="SendBeginMainFrameToCommit.StyleUpdate"
+ label="The time portion of SendBeginMainFrameToCommit spent on style
+ update."/>
+ <suffix name="SendBeginMainFrameToCommit.UpdateLayers"
+ label="The time portion of SendBeginMainFrameToCommit spent on updating
+ layers."/>
<suffix name="SubmitCompositorFrameToPresentationCompositorFrame"
label="The time from when the a compositor frame is submitted to the
display compositor to when it is presented."/>
<suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw"
- label="The time from when the a compositor frame is received to when it
- is started to draw."/>
+ label="The time from when a compositor frame is received to when it
+ starts to draw."/>
<suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapEnd"
label="The time from when the a compositor frame is started to draw to
@@ -167220,13 +174053,14 @@ regressions. -->
it is received."/>
<suffix
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame"
- label="The time from when the a compositor frame when it ends swap to
- when it is presented."/>
+ label="The time from when the a compositor frame ends swap to when it
+ is presented."/>
<suffix name="TotalLatency"
label="The total time starting from BeginImplFrame to when
- SubmitCompositorFrame is done with updates from the MainThread
- (i.e. the time it takes for BeginImplFrame, BeginMainFrame,
- Commit, Activate, and SubmitCompositorFrame)."/>
+ CompositorFramePresentation is done with updates from the
+ MainThread (i.e. the time it takes for BeginImplFrame,
+ BeginMainFrame, Commit, Activate, SubmitCompositorFrame and
+ PresentCompositorFrame)."/>
<suffix name="Unknown" label="The unknown stage"/>
<affected-histogram name="CompositorLatency"/>
<affected-histogram name="CompositorLatency.CompositorAnimation"/>
@@ -167522,6 +174356,13 @@ regressions. -->
name="Scheduling.Renderer.InvalidationToReadyToActivateDuration2"/>
</histogram_suffixes>
+<histogram_suffixes name="CompromisedCredentialsAction" separator=".">
+ <suffix name="Add" label="Saved password is added tp the database"/>
+ <suffix name="Remove" label="Saved password is removed from the database"/>
+ <suffix name="Update" label="Saved password is updated in the database"/>
+ <affected-histogram name="PasswordManager.CompromisedCredentials"/>
+</histogram_suffixes>
+
<histogram_suffixes name="ConnCountImpact" separator="_">
<suffix name="conn_count_4" label="with 4 persistent connections per host"/>
<suffix name="conn_count_5" label="with 5 persistent connections per host"/>
@@ -167844,6 +174685,10 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="CookieConnectionType" separator="">
+ <obsolete>
+ Deprecated 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"/>
@@ -167851,6 +174696,10 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="CookieSiteAffinity" separator="">
+ <obsolete>
+ Deprecated 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"/>
@@ -167870,6 +174719,20 @@ regressions. -->
name="SiteIsolation.CORBProtection.CORSHeuristic.ProtectedMimeType"/>
</histogram_suffixes>
+<histogram_suffixes name="Cras.ClientType" separator=".">
+ <suffix name="ARC" label="A client created by ARC++."/>
+ <suffix name="Chrome" label="A client created by Chrome."/>
+ <suffix name="CrOSVM" label="A client created by ChromeOS VM."/>
+ <suffix name="InvalidType" label="Invalid client."/>
+ <suffix name="Legacy" label="A client using an old CRAS lib."/>
+ <suffix name="PCM" label="A client created by PCM."/>
+ <suffix name="ServerStream" label="A client created by CRAS server."/>
+ <suffix name="Test" label="A client created by cras_test_client."/>
+ <suffix name="Unknown" label="Unknown client."/>
+ <affected-histogram name="Cras.InputStreamRuntime"/>
+ <affected-histogram name="Cras.OutputStreamRuntime"/>
+</histogram_suffixes>
+
<histogram_suffixes name="Cras.TimePeriod" separator=".">
<suffix name="LongPeriod" label="Runtime is longer than 60 minutes"/>
<suffix name="MediumPeriod" label="Runtime is between 10 and 60 minutes"/>
@@ -168694,6 +175557,7 @@ regressions. -->
<suffix base="true" name="WebP"
label="This metric is for only WebP image types."/>
<affected-histogram name="Renderer4.ImageDecodeTaskDurationUs"/>
+ <affected-histogram name="Renderer4.ImageUploadTaskDurationUs"/>
</histogram_suffixes>
<histogram_suffixes name="DefaultAppLaunchSource" separator=".">
@@ -169061,6 +175925,89 @@ regressions. -->
<affected-histogram name="Discarding.ReloadsPer10Minutes"/>
</histogram_suffixes>
+<histogram_suffixes name="DiskCacheExperiment1" separator="_">
+ <suffix name="1" label="Experiment group 1 (70% clients)"/>
+ <suffix name="2" label="Experiment group 2 (10% clients)"/>
+ <suffix name="3" label="Experiment group 3 (10% clients)"/>
+ <suffix name="4" label="Experiment group 4 (10% clients)"/>
+ <affected-histogram name="DiskCache.0.Entries"/>
+ <affected-histogram name="DiskCache.0.MaxSize"/>
+ <affected-histogram name="DiskCache.0.Size"/>
+ <affected-histogram name="DiskCache.0.TrimAge"/>
+ <affected-histogram name="DiskCache.2.Entries"/>
+ <affected-histogram name="DiskCache.2.MaxSize"/>
+ <affected-histogram name="DiskCache.2.Size"/>
+ <affected-histogram name="DiskCache.2.TrimAge"/>
+ <affected-histogram name="DiskCache.3.Entries"/>
+ <affected-histogram name="DiskCache.3.MaxSize"/>
+ <affected-histogram name="DiskCache.3.Size"/>
+ <affected-histogram name="DiskCache.3.TrimAge"/>
+ <affected-histogram name="DiskCache.Entries"/>
+ <affected-histogram name="DiskCache.MaxSize"/>
+ <affected-histogram name="DiskCache.Size"/>
+ <affected-histogram name="DiskCache.TrimAge"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="DiskCacheExperiment2" separator="_">
+ <suffix name="5" label="Experiment group 5"/>
+ <suffix name="6" label="Experiment group 6"/>
+ <suffix name="7" label="Experiment group 7"/>
+ <suffix name="8" label="Experiment group 8"/>
+ <suffix name="9" label="Experiment group 9"/>
+ <suffix name="10" label="Experiment group 10"/>
+ <affected-histogram name="DiskCache.0.EntrySize"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="DiskCacheExperiment3" separator="_">
+ <suffix name="8" label="Experiment group 8"/>
+ <affected-histogram name="DiskCache.0.FirstHighUseRatio"/>
+ <affected-histogram name="DiskCache.0.FirstLowUseRatio"/>
+ <affected-histogram name="DiskCache.0.FirstNoUseRatio"/>
+ <affected-histogram name="DiskCache.0.FirstResurrectRatio"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="DiskCacheExperiment4" separator="_">
+ <suffix name="7" label="Experiment group 7"/>
+ <suffix name="8" label="Experiment group 8"/>
+ <affected-histogram name="DiskCache.0.DeletedAge"/>
+ <affected-histogram name="DiskCache.0.DeletedRatio"/>
+ <affected-histogram name="DiskCache.0.HighUseAge"/>
+ <affected-histogram name="DiskCache.0.HighUseRatio"/>
+ <affected-histogram name="DiskCache.0.LowUseAge"/>
+ <affected-histogram name="DiskCache.0.LowUseRatio"/>
+ <affected-histogram name="DiskCache.0.NoUseAge"/>
+ <affected-histogram name="DiskCache.0.NoUseRatio"/>
+ <affected-histogram name="DiskCache.0.ResurrectRatio"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="DiskCacheExperiment5" separator="_">
+ <suffix name="1" label="Experiment group 1"/>
+ <suffix name="2" label="Experiment group 2"/>
+ <suffix name="3" label="Experiment group 3"/>
+ <suffix name="4" label="Experiment group 4"/>
+ <suffix name="5" label="Experiment group 5"/>
+ <suffix name="6" label="Experiment group 6"/>
+ <suffix name="7" label="Experiment group 7"/>
+ <suffix name="8" label="Experiment group 8"/>
+ <suffix name="9" label="Experiment group 9"/>
+ <suffix name="10" label="Experiment group 10"/>
+ <affected-histogram name="DiskCache.0.HitRatio"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="DiskCacheExperiment5" separator="_">
+ <suffix name="1" label="Experiment group 1"/>
+ <suffix name="2" label="Experiment group 2"/>
+ <suffix name="3" label="Experiment group 3"/>
+ <suffix name="4" label="Experiment group 4"/>
+ <affected-histogram name="DiskCache.0.LargeEntriesRatio"/>
+ <affected-histogram name="DiskCache.2.HitRatio"/>
+ <affected-histogram name="DiskCache.2.LargeEntriesRatio"/>
+ <affected-histogram name="DiskCache.3.HitRatio"/>
+ <affected-histogram name="DiskCache.3.LargeEntriesRatio"/>
+ <affected-histogram name="DiskCache.HitRatio"/>
+ <affected-histogram name="DiskCache.LargeEntriesRatio"/>
+</histogram_suffixes>
+
<histogram_suffixes name="DiskUsagePerUserCount" separator=".">
<suffix name="1User" label="Only 1 user exists on device."/>
<suffix name="2Users" label="2 users exist on device."/>
@@ -169550,8 +176497,21 @@ regressions. -->
<histogram_suffixes name="EnterOrExitOverview" separator=".">
<suffix name="EnterOverview" label="Triggered by entering overview"/>
<suffix name="ExitOverview" label="Triggered by exiting overview"/>
- <affected-histogram name="Apps.StateTransition.AnimationSmoothness"/>
- <affected-histogram name="KioskNextHome.StateTransition.AnimationSmoothness"/>
+ <suffix name="FadeInOverview"
+ label="Triggered by entering overview by fading in from home"/>
+ <suffix name="FadeOutOverview"
+ label="Triggered by exiting overview by fading into home"/>
+ <affected-histogram name="Apps.StateTransition.AnimationSmoothness">
+ <obsolete>
+ Removed in 2019-11. Equivalent values are tracked by
+ Apps.HomeLauncherTransition.AnimationSmoothness.* histograms.
+ </obsolete>
+ </affected-histogram>
+ <affected-histogram name="KioskNextHome.StateTransition.AnimationSmoothness">
+ <obsolete>
+ Removed on 2019-07.
+ </obsolete>
+ </affected-histogram>
</histogram_suffixes>
<histogram_suffixes name="Enterprise.ResourceCacheTiming" separator=".">
@@ -170145,6 +177105,13 @@ regressions. -->
<affected-histogram name="Tabs.FrozenTabPercentage"/>
</histogram_suffixes>
+<histogram_suffixes name="GaiaAccountType" separator=".">
+ <suffix name="SignedInNonSync"
+ label="A primary account does not exist for the profile"/>
+ <suffix name="Sync" label="A primary account exists for the profile"/>
+ <affected-histogram name="PasswordManager.SavedGaiaPasswordHashCount"/>
+</histogram_suffixes>
+
<histogram_suffixes name="GaiaListAccountsRetry" separator="_">
<obsolete>
Deprecated 2019-09.
@@ -170319,6 +177286,16 @@ regressions. -->
name="GPU.DirectComposition.SwapChainCreationResult3.SoftwareProtected"/>
</histogram_suffixes>
+<histogram_suffixes name="GPU.WatchdogStage" separator=".">
+ <suffix name="Foregrounded" label="Foregrounded"/>
+ <suffix name="Init" label="Init"/>
+ <suffix name="Normal" label="Normal"/>
+ <suffix name="PowerResume" label="PowerResume"/>
+ <affected-histogram name="GPU.WatchdogThread.ExtraThreadTime"/>
+ <affected-histogram name="GPU.WatchdogThread.Timeout"/>
+ <affected-histogram name="GPU.WatchdogThread.WaitTime"/>
+</histogram_suffixes>
+
<histogram_suffixes name="GPUBlacklistPerFeature" separator=".">
<owner>vmiura@chromium.org</owner>
<suffix name="Accelerated2dCanvas" label="Accelerated2dCanvas"/>
@@ -170359,6 +177336,19 @@ regressions. -->
<affected-histogram name="GridTabSwitcher.MaxFrameInterval"/>
</histogram_suffixes>
+<histogram_suffixes name="GTSCardCount" separator=".">
+ <suffix name="0thumbnails" label="0 thumbnails"/>
+ <suffix name="1~2thumbnails" label="1 ~ 2 thumbnails"/>
+ <suffix name="3~5thumbnails" label="3 ~ 5 thumbnails"/>
+ <suffix name="6~10thumbnails" label="6 ~ 10 thumbnails"/>
+ <suffix name="11~20thumbnails" label="11 ~ 20 thumbnails"/>
+ <suffix name="20+thumbnails" label="20+ thumbnails"/>
+ <affected-histogram
+ name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Cold"/>
+ <affected-histogram
+ name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Warm"/>
+</histogram_suffixes>
+
<histogram_suffixes name="GwpAsanBackingAllocator" separator=".">
<suffix name="Malloc" label="From malloc"/>
<suffix name="PartitionAlloc" label="From PartitionAlloc"/>
@@ -170577,6 +177567,25 @@ regressions. -->
<affected-histogram name="Histogram.InconsistentSnapshotBrowser"/>
</histogram_suffixes>
+<histogram_suffixes name="HomeLauncherVisibility" separator=".">
+ <suffix name="LauncherHidden"
+ label="Home Launcher was hidden during this animation."/>
+ <suffix name="LauncherVisible"
+ label="Home Launcher was visible during this animation."/>
+ <affected-histogram name="Apps.ScrollableShelf.AnimationSmoothness"/>
+ <affected-histogram name="Apps.ScrollableShelf.Drag.PresentationTime"/>
+ <affected-histogram
+ name="Apps.ScrollableShelf.Drag.PresentationTime.MaxLatency"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="HotseatTransitionType" separator=".">
+ <suffix name="TransitionFromShownHotseat"
+ label="Transition from the shown hotseat"/>
+ <suffix name="TransitionToShownHotseat"
+ label="Transition to the shown hotseat"/>
+ <affected-histogram name="Ash.HotseatTransition.AnimationSmoothness"/>
+</histogram_suffixes>
+
<histogram_suffixes name="HstsState" separator=".">
<suffix name="HSTSNotEnabled" label="The HSTS is not enabled."/>
<suffix name="WithHSTSEnabled" label="The HSTS is enabled."/>
@@ -170670,6 +177679,15 @@ regressions. -->
<affected-histogram name="PLT.BeginToFinish_NormalLoad"/>
</histogram_suffixes>
+<histogram_suffixes name="IgnoredWriteResultOperation" separator=".">
+ <suffix name="AddInstanceIDData" label="When calling AddInstanceIDData()."/>
+ <suffix name="RemoveInstanceIDData"
+ label="When calling RemoveInstanceIDData()."/>
+ <suffix name="SetLastTokenFetchTime"
+ label="When calling SetLastTokenFetchTime()."/>
+ <affected-histogram name="GCM.IgnoredWriteResult"/>
+</histogram_suffixes>
+
<histogram_suffixes name="ImageAnnotationServiceAnnotationType" separator="."
ordering="prefix">
<suffix name="DescCaption"
@@ -170724,6 +177742,7 @@ regressions. -->
<affected-histogram name="ImageFetcher.ImageLoadFromNativeTimeJava"/>
<affected-histogram name="ImageFetcher.ImageLoadFromNetworkAfterCacheHit"/>
<affected-histogram name="ImageFetcher.ImageLoadFromNetworkTime"/>
+ <affected-histogram name="ImageFetcher.RequestStatusCode"/>
</histogram_suffixes>
<histogram_suffixes name="IMEAutoCorrect" separator=".">
@@ -170975,8 +177994,14 @@ regressions. -->
<suffix name="IPH_Bookmark" label="In product help bookmark."/>
<suffix name="IPH_BottomToolbarTip" label="In product help bottom toolbar."/>
<suffix name="IPH_ChromeDuet"
- label="In product help notifying users that their buttons have moved to
+ label="In product help notifying users that search accelerator is at
+ the bottom of the screen."/>
+ <suffix name="IPH_ChromeDuetHomeButton"
+ label="In product help notifying users that home button has moved to
the bottom of the screen."/>
+ <suffix name="IPH_ChromeDuetTabSwitcherButton"
+ label="In product help notifying users that tab switcher button has
+ moved to the bottom of the screen."/>
<suffix name="IPH_ChromeHomeExpand"
label="In product help for Chrome Home shown on cold start."/>
<suffix name="IPH_ChromeHomeMenuHeader"
@@ -171051,6 +178076,7 @@ regressions. -->
This feature was deprecated in M79
</obsolete>
</suffix>
+ <suffix name="IPH_IdentityDisc" label="In product help for Identity Disc"/>
<suffix name="IPH_IncognitoWindow" label="In product help incognito window."/>
<suffix name="IPH_KeyboardAccessoryAddressFilling"
label="In-product help for address autofill suggestions."/>
@@ -171086,6 +178112,8 @@ regressions. -->
thumbnails."/>
<suffix name="IPH_TranslateMenuButton"
label="In product help translate menu button."/>
+ <suffix name="IPH_WebUITabStrip"
+ label="In product help for opening the WebUI tab strip."/>
<affected-histogram name="InProductHelp.NotifyEventReadyState"/>
<affected-histogram name="InProductHelp.ShouldTriggerHelpUI"/>
</histogram_suffixes>
@@ -171108,6 +178136,13 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="JankyIntervalsPerThirtySeconds" separator=".">
+ <obsolete>
+ This metric is now only recorded after the main message loop starts and no
+ longer distinguishes the first 30 seconds as &quot;startup&quot;.
+ Startup.BrowserMessageLoopStartTime can be used for the startup phase
+ (before the loop is running) and Startup.FirstWebContents.NonEmptyPaint2 can
+ be used for the user-visible startup performance.
+ </obsolete>
<suffix name="NonStartup"
label="Does not include jank in the first 30 seconds [startup]."/>
<suffix name="Startup"
@@ -171479,7 +178514,13 @@ regressions. -->
name="PageLoad.Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"/>
<affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay"/>
<affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay2"/>
- <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3"/>
+ <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay3">
+ <obsolete>
+ Deprecated 12/2019. Recording suffixed version of
+ PageLoad.InteractiveTiming.FirstInputDelay4 instead.
+ </obsolete>
+ </affected-histogram>
+ <affected-histogram name="PageLoad.InteractiveTiming.FirstInputDelay4"/>
<affected-histogram
name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
</histogram_suffixes>
@@ -171793,6 +178834,9 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="MediaBytesReceivedTypes" separator=".">
+ <obsolete>
+ Deprecated 10/2019 in issue 1000058; no longer needed.
+ </obsolete>
<suffix name="EME"
label="Bytes appended to EME SourceBuffers. Can include either SRC or
MSE bytes, but is predominantly MSE."/>
@@ -172140,6 +179184,21 @@ regressions. -->
<affected-histogram name="Memory.OpenFDsSoftLimit"/>
</histogram_suffixes>
+<histogram_suffixes
+ name="MemoryRendererHighestPrivateMemoryFootprintAfterFirstNavigationStart"
+ separator=".">
+ <suffix name="0to2min" label=""/>
+ <suffix name="2to4min" label=""/>
+ <suffix name="4to8min" label=""/>
+ <suffix name="8to16min" label=""/>
+ <affected-histogram
+ name="Memory.Experimental.Renderer.HighestPrivateMemoryFootprint"/>
+ <affected-histogram
+ name="Memory.Experimental.Renderer.PeakResidentSet.AtHighestPrivateMemoryFootprint"/>
+ <affected-histogram
+ name="Memory.Experimental.Renderer.WebpageCount.AtHighestPrivateMemoryFootprint"/>
+</histogram_suffixes>
+
<histogram_suffixes name="MemoryStateTransition" separator=".">
<suffix name="NormalToSuspended" label=""/>
<suffix name="NormalToThrottled" label=""/>
@@ -172168,6 +179227,10 @@ regressions. -->
<suffix name="DownloadInsecure" label=""/>
<suffix name="DownloadSecure" label=""/>
<affected-histogram
+ name="Download.InsecureBlocking.Extensions.InitiatorInferredInsecure"/>
+ <affected-histogram
+ name="Download.InsecureBlocking.Extensions.InitiatorInferredSecure"/>
+ <affected-histogram
name="Download.InsecureBlocking.Extensions.InitiatorInsecure"/>
<affected-histogram
name="Download.InsecureBlocking.Extensions.InitiatorSecure"/>
@@ -172176,6 +179239,8 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="MixedContentDownloadInitiatorSecurity" separator=".">
+ <suffix base="true" name="InitiatorInferredInsecure" label=""/>
+ <suffix base="true" name="InitiatorInferredSecure" label=""/>
<suffix base="true" name="InitiatorInsecure" label=""/>
<suffix base="true" name="InitiatorSecure" label=""/>
<suffix base="true" name="InitiatorUnknown" label=""/>
@@ -172211,6 +179276,36 @@ regressions. -->
<affected-histogram name="Mobile.DefaultBrowser.BrowserCount"/>
</histogram_suffixes>
+<histogram name="Mobile.Legacy.Translate.Unused.Duration" units="secs"
+ expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records the time an unused legacy infobar persists on screen. This is logged
+ when the infobar is closed.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Legacy.Translate.Toggle.Delay" units="secs"
+ expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records the time between tapping the target and source language in a legacy
+ infobar. If only one of either is tapped, nothing is logged.
+ </summary>
+</histogram>
+
+<histogram name="Mobile.Translate.Unused.Count" units="units"
+ expires_after="2020-04-01">
+ <owner>sczs@chromium.org</owner>
+ <owner>thegreenfrog@chromium.org</owner>
+ <summary>
+ Records a histogram for an infobar (both legacy and Messages) that the user
+ did not interact with throughout its lifetime.
+ </summary>
+</histogram>
+
<histogram_suffixes name="Mobile.Messages.Confirm.Type" separator=".">
<suffix name="ConfirmInfobarTypeBlockPopups"
label="Recorded for Block Popups Confirm Messages."/>
@@ -172235,6 +179330,7 @@ regressions. -->
<suffix name="InfobarTypePasswordUpdate"
label="Recorded for Update Password Messages."/>
<suffix name="InfobarTypeSaveCard" label="Recorded for Save Card Messages."/>
+ <suffix name="InfobarTypeTranslate" label="Recorded for Translate Messages."/>
<affected-histogram name="Mobile.Messages.Badge.Tapped"/>
<affected-histogram name="Mobile.Messages.Banner.Dismiss"/>
<affected-histogram name="Mobile.Messages.Banner.Event"/>
@@ -172411,6 +179507,13 @@ regressions. -->
<affected-histogram name="NavigationPredictor.ActionTaken"/>
</histogram_suffixes>
+<histogram_suffixes name="NavigationPredictor.Origin" separator=".">
+ <suffix name="CrossOrigin" label="Links to a different origin"/>
+ <suffix name="SameOrigin" label="Links to the same origin."/>
+ <affected-histogram name="NavigationPredictor.CountOfURLsAboveThreshold"/>
+ <affected-histogram name="NavigationPredictor.CountOfURLsInPredictedSet"/>
+</histogram_suffixes>
+
<histogram_suffixes name="NavigationPreloadEnabled" separator="_">
<suffix name="NavigationPreloadEnabled" label="Navigation preload occurred."/>
<affected-histogram
@@ -174775,6 +181878,8 @@ regressions. -->
<histogram_suffixes name="OptimizationGuide.OptimizationTargets" separator=".">
<suffix name="PainfulPageLoad" label="Painful page load"/>
+ <affected-histogram
+ name="OptimizationGuide.PredictionModelEvaluationLatency"/>
<affected-histogram name="OptimizationGuide.TargetDecision"/>
</histogram_suffixes>
@@ -174913,6 +182018,8 @@ regressions. -->
<affected-histogram name="PageLoad.PaintTiming.NavigationToFirstPaint"/>
<affected-histogram name="PageLoad.PaintTiming.NavigationToFirstTextPaint"/>
<affected-histogram
+ name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint"/>
+ <affected-histogram
name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"/>
<affected-histogram name="PageLoad.ParseTiming.NavigationToParseStart"/>
<affected-histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad"/>
@@ -176076,9 +183183,11 @@ regressions. -->
<histogram_suffixes name="PasswordProtectionTrigger" separator=".">
<suffix name="AnyPasswordEntry"
label="Password protection triggered by entering a password that
- matches either/both the sync password or a saved password This
- is a superset (and should be equal to or larger than)
- SyncPasswordEntry and ProtectedPasswordEntry"/>
+ matches either/both the sync password, signed-in non-syncing
+ password, or a saved password. This is a superset of (and should
+ be equal to or larger than) SyncPasswordEntry and
+ ProtectedPasswordEntry/SavedPasswordEntry and
+ NonSyncPasswordEntry"/>
<suffix name="GmailNonSyncPasswordEntry"
label="Password protection triggered by entering a non-syncing gaia
password that is associated with a Gmail account. This is a
@@ -176105,18 +183214,14 @@ regressions. -->
enterprise password reuse detection is only triggered if
configured appropriate enterprise policy."/>
<suffix name="NonSyncPasswordEntry"
- label="Password protection triggered by entering a saved password that
- does NOT match the sync password."/>
+ label="Password protection triggered by entering an unconsented primary
+ account password."/>
<suffix name="PasswordFieldOnFocus"
label="Password protection triggered by password field on focus event."/>
<suffix name="ProtectedPasswordEntry"
label="Password protection triggered by entering a saved password that
- does NOT match the sync password. This is deprecated starting
- M78.">
- <obsolete>
- Replaced by NonSyncPasswordEntry in M78.
- </obsolete>
- </suffix>
+ does NOT match a password that is currently signed-in. This is
+ the same as SavedPaswordEntry."/>
<suffix name="SavedPasswordEntry"
label="Password protection triggered by entering a password saved in
the password manager where the account is not signed-in to
@@ -176133,6 +183238,14 @@ regressions. -->
Replaced by ProtectedPasswordEntry in M62.
</obsolete>
</suffix>
+ <suffix name="UnknownNonPrimaryPasswordEntry"
+ label="Password protection triggered by entering a password that does
+ not match a primary account password but no current signed-in
+ account is found."/>
+ <suffix name="UnknownPrimaryPasswordEntry"
+ label="Password protection triggered by entering a password that
+ matches a primary account password but no current signed-in
+ account is found."/>
<affected-histogram name="PasswordProtection.ChromeSettingsAction"/>
<affected-histogram name="PasswordProtection.InterstitialAction"/>
<affected-histogram name="PasswordProtection.ModalWarningDialogAction"/>
@@ -176291,6 +183404,20 @@ regressions. -->
<affected-histogram name="PerformanceMonitor.PackageExitIdleWakeups"/>
</histogram_suffixes>
+<histogram_suffixes name="PermissionPromptDisposition" separator=".">
+ <suffix name="AnchoredBubble"
+ label="A bubble under the site settings padlock"/>
+ <suffix name="LocationBarRightAnimatedIcon"
+ label="An animated indicator on the right-hand side of the location bar"/>
+ <suffix name="LocationBarRightStaticIcon"
+ label="A static indicator on the right-hand side of the location bar"/>
+ <suffix name="MiniInfobar"
+ label="An initially-collapsed infobar at the bottom of the page"/>
+ <suffix name="ModalDialog" label="A modal dialog"/>
+ <suffix name="NotApplicable" label="No permission prompt"/>
+ <affected-histogram name="Permissions.Action.WithDisposition"/>
+</histogram_suffixes>
+
<histogram_suffixes name="PermissionRequestGesture" separator=".">
<suffix name="Gesture" label="With user gesture"/>
<suffix name="NoGesture" label="Without user gesture"/>
@@ -176306,6 +183433,7 @@ regressions. -->
<suffix name="Geolocation" label="Geolocation permission"/>
<suffix name="MidiSysEx" label="Midi SysEx permission"/>
<suffix name="MultipleDownload" label="Multiple downloads permission"/>
+ <suffix name="Nfc" label="NFC permission"/>
<suffix name="Notifications" label="Notification permission"/>
<suffix name="ProtectedMedia" label="Protected media permission"/>
<suffix name="PushMessaging" label="Push messaging permission"/>
@@ -176415,6 +183543,14 @@ regressions. -->
<affected-histogram name="UMA.PersistentAllocator.UsedPct"/>
</histogram_suffixes>
+<histogram_suffixes name="PhoneNumberRegexVariant" separator=".">
+ <suffix name="LowConfidenceModified" label="Low confidence modified"/>
+ <suffix name="Simple" label="Simple regex"/>
+ <affected-histogram
+ name="Sharing.ClickToCallContextMenuPhoneNumberParsingDelay"/>
+ <affected-histogram name="Sharing.ClickToCallPhoneNumberRegexVariantResult"/>
+</histogram_suffixes>
+
<histogram_suffixes name="PhysicalWebDebugActions" separator=".">
<suffix name="ChromeStart" label="when Chrome first starts up"/>
<suffix name="LaunchFromDiagnostics"
@@ -176880,7 +184016,9 @@ regressions. -->
<suffix name="GpuMemory" label="Only counting memory allocated for the GPU."/>
<suffix name="JavaHeap"
label="Only counting memory used by Java heap in Android."/>
- <suffix name="Malloc" label="Constrained to malloc allocator."/>
+ <suffix name="Malloc"
+ label="Constrained to malloc allocator. Not accurate on Windows
+ (http://crbug.com/780735#c9, http://crbug.com/665516)."/>
<suffix name="Malloc.AllocatedObjects"
label="Only counting objects allocated using the malloc allocator. The
measurement is only accurate on Linux and MacOS."/>
@@ -176949,6 +184087,16 @@ regressions. -->
cache."/>
<suffix name="OmniboxSuggestions"
label="Only counting memory used by Omnibox suggestions provider."/>
+ <suffix name="ServiceDiscardableManager"
+ label="Only counting memory used by the gpu discardable cache."/>
+ <suffix name="ServiceDiscardableManager.AvgImageSize"
+ label="Only counting the average image size of entries in the gpu
+ discardable cache"/>
+ <suffix name="ServiceTransferCache"
+ label="Only counting memory used by images in the gpu transfer cache."/>
+ <suffix name="ServiceTransferCache.AvgImageSize"
+ label="Only counting the average size of image entries in the gpu
+ transfer cache"/>
<suffix name="SiteStorage.IndexDB"
label="Only counting memory used by IndexedDB API."/>
<suffix name="SiteStorage.LocalStorage"
@@ -177248,11 +184396,30 @@ regressions. -->
<affected-histogram name="Renderer4.Renderer.PartialRasterPercentageSaved"/>
</histogram_suffixes>
+<histogram_suffixes name="RasterTaskSchedulingDelayNoAtRasterDecodesType"
+ separator=".">
+ <suffix name="All"
+ label="This metric applies to all raster work that doesn't depend on
+ at-raster image decodes."/>
+ <suffix name="TilesWithJpegHwDecodeCandidates"
+ label="This metric applies only to raster work that depends on JPEGs
+ that are candidates for hardware decode acceleration (and that
+ doesn't depend on at-raster image decodes)."/>
+ <suffix name="TilesWithWebPHwDecodeCandidates"
+ label="This metric applies only to raster work that depends on WebPs
+ that are candidates for hardware decode acceleration (and that
+ doesn't depend on at-raster image decodes)."/>
+ <affected-histogram
+ name="Renderer4.Browser.RasterTaskSchedulingDelayNoAtRasterDecodes"/>
+ <affected-histogram
+ name="Renderer4.Renderer.RasterTaskSchedulingDelayNoAtRasterDecodes"/>
+</histogram_suffixes>
+
<histogram_suffixes name="RasterTaskSchedulingDelayType" separator=".">
+ <obsolete>
+ Replaced by RasterTaskSchedulingDelayNoAtRasterDecodesType.
+ </obsolete>
<suffix name="All" label="This metric applies to all raster work."/>
-<!-- TODO(crbug.com/995155): Add type to measure only work that depends on
- hardware decoded images -->
-
<affected-histogram name="Renderer4.Browser.RasterTaskSchedulingDelay"/>
<affected-histogram name="Renderer4.Renderer.RasterTaskSchedulingDelay"/>
</histogram_suffixes>
@@ -177327,6 +184494,15 @@ regressions. -->
<affected-histogram name="SafeBrowsing.ReferrerURLChainSize"/>
</histogram_suffixes>
+<histogram_suffixes name="ReferrerPolicySameOrigin" separator=".">
+ <suffix name="CrossOrigin" label="Cross-origin requests."/>
+ <suffix name="SameOrigin"
+ label="Same-origin requests (relative to the initiator, if present, and
+ otherwise the initial referrer URL)."/>
+ <affected-histogram name="Net.URLRequest.ReferrerHasInformativePath"/>
+ <affected-histogram name="Net.URLRequest.ReferrerPolicyForRequest"/>
+</histogram_suffixes>
+
<histogram_suffixes name="RelaunchNotificationStyle" separator=".">
<suffix name="Recommended" label="The relaunch recommended bubble."/>
<suffix name="Required" label="The relaunch required dialog."/>
@@ -177616,6 +184792,10 @@ regressions. -->
<suffix name="frame_throttleable_tq" label="Frame throttleable task queue"/>
<suffix name="frame_unpausable_tq" label="Frame unpausable task queue"/>
<affected-histogram
+ name="RendererScheduler.TimeRunningOtherAgentsWhileTaskReady.Hidden"/>
+ <affected-histogram
+ name="RendererScheduler.TimeRunningOtherAgentsWhileTaskReady.Visible"/>
+ <affected-histogram
name="RendererScheduler.TimeRunningOtherFramesWhileTaskReady.Hidden"/>
<affected-histogram
name="RendererScheduler.TimeRunningOtherFramesWhileTaskReady.Visible"/>
@@ -177627,6 +184807,8 @@ regressions. -->
<suffix name="Visible"
label="The frame is visible when the task starts running."/>
<affected-histogram
+ name="RendererScheduler.TimeRunningOtherAgentsWhileTaskReady"/>
+ <affected-histogram
name="RendererScheduler.TimeRunningOtherFramesWhileTaskReady"/>
</histogram_suffixes>
@@ -178368,6 +185550,12 @@ regressions. -->
<affected-histogram name="WebRTC.Video.Screenshare.Layer1"/>
</histogram_suffixes>
+<histogram_suffixes name="ScrollSourceDevice" separator=".">
+ <suffix name="Touch" label="Touch"/>
+ <suffix name="Wheel" label="Wheel"/>
+ <affected-histogram name="Renderer4.ScrollingThread"/>
+</histogram_suffixes>
+
<histogram_suffixes name="ScrollUpdateHandledThread" separator="_">
<suffix name="Impl" label="ScrollUpdate handled on impl thread"/>
<suffix name="Main" label="ScrollUpdate handled on main thread"/>
@@ -179237,6 +186425,33 @@ regressions. -->
<affected-histogram name="Setup.Install.Win32ApiError"/>
</histogram_suffixes>
+<histogram_suffixes name="SharingClickToCallEntryPoint" separator=".">
+ <suffix name="LeftClickLink" label="Left click on a tel link"/>
+ <suffix name="RightClickLink" label="Right click on a tel link"/>
+ <suffix name="RightClickSelection" label="Right click on a selection"/>
+ <affected-histogram name="Sharing.ClickToCallPhoneNumberDigits"/>
+ <affected-histogram name="Sharing.ClickToCallPhoneNumberLength"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="SharingClickToCallSendToDevice" separator=".">
+ <suffix name="Sending" label="Sending to a device"/>
+ <suffix name="Showing" label="Showing to the user"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberDigits.LeftClickLink"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberDigits.RightClickLink"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberDigits.RightClickSelection"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberLength.LeftClickLink"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberLength.RightClickLink"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberLength.RightClickSelection"/>
+ <affected-histogram
+ name="Sharing.ClickToCallPhoneNumberRegexVariantResult.LowConfidenceModified"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SharingClickToCallUi" separator=".">
<suffix name="ContextMenu" label="Context menu"/>
<suffix name="Dialog" label="Dialog"/>
@@ -179246,16 +186461,48 @@ regressions. -->
<affected-histogram name="Sharing.ClickToCallSelectedDeviceIndex"/>
</histogram_suffixes>
+<histogram_suffixes name="SharingDevicePlatform" separator=".">
+ <suffix name="Android" label="Android OS"/>
+ <suffix name="ChromeOS" label="Chrome OS"/>
+ <suffix name="iOS" label="iOS"/>
+ <suffix name="Linux" label="Linux OS"/>
+ <suffix name="Mac" label="Mac OS"/>
+ <suffix name="Unknown" label="Device type unknown"/>
+ <suffix name="Windows" label="Windows OS"/>
+ <affected-histogram name="Sharing.SendAckMessageResult"/>
+ <affected-histogram name="Sharing.SendMessageResult"/>
+</histogram_suffixes>
+
<histogram_suffixes name="SharingMessage" separator=".">
<suffix name="ACK_MESSAGE" label="Ack Message"/>
<suffix name="CLICK_TO_CALL_MESSAGE" label="Click To Call Message"/>
+ <suffix name="ICE_CANDIDATE_MESSAGE" label="Ice Candidate Message"/>
<suffix name="PING_MESSAGE" label="Ping Message"/>
+ <suffix name="REMOTE_COPY_MESSAGE" label="Remote Copy Message"/>
<suffix name="SHARED_CLIPBOARD_MESSAGE" label="Shared Clipboard Message"/>
+ <suffix name="SIGNALLING_MESSAGE" label="Signalling Message"/>
+ <suffix name="SMS_FETCH_REQUEST" label="SMS Fetch Request"/>
<suffix name="UNKNOWN_MESSAGE" label="Unknown Message"/>
+ <affected-histogram name="Sharing.DeviceLastUpdatedAge"/>
+ <affected-histogram name="Sharing.MajorVersionComparison"/>
<affected-histogram name="Sharing.MessageAckTime"/>
<affected-histogram name="Sharing.MessageReceivedType"/>
<affected-histogram name="Sharing.SendAckMessageResult"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.Android"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.ChromeOS"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.iOS"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.Linux"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.Mac"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.Unknown"/>
+ <affected-histogram name="Sharing.SendAckMessageResult.Windows"/>
<affected-histogram name="Sharing.SendMessageResult"/>
+ <affected-histogram name="Sharing.SendMessageResult.Android"/>
+ <affected-histogram name="Sharing.SendMessageResult.ChromeOS"/>
+ <affected-histogram name="Sharing.SendMessageResult.iOS"/>
+ <affected-histogram name="Sharing.SendMessageResult.Linux"/>
+ <affected-histogram name="Sharing.SendMessageResult.Mac"/>
+ <affected-histogram name="Sharing.SendMessageResult.Unknown"/>
+ <affected-histogram name="Sharing.SendMessageResult.Windows"/>
</histogram_suffixes>
<histogram_suffixes name="ShillCumulativeTimeOnline" separator=".">
@@ -179669,6 +186916,12 @@ regressions. -->
</histogram_suffixes>
<histogram_suffixes name="StartupProfilingAbandonState" separator="_">
+ <obsolete>
+ Deprecated 10/2019. Since Startup.FirstWebContents.MainFrameLoad2 is no
+ longer tracked, the non-suffixed reason is always for
+ Startup.FirstWebContents.NonEmptyPaint2 and the suffix does not provide
+ additional information.
+ </obsolete>
<suffix name="NoLoad" label="Abandoned before first main frame load."/>
<suffix name="NoPaint" label="Abandoned before first paint."/>
<affected-histogram name="Startup.FirstWebContents.FinishReason"/>
@@ -179960,7 +187213,11 @@ regressions. -->
</obsolete>
</suffix>
<suffix name="MANAGED_USER_WHITELIST" label="MANAGED_USER_WHITELIST"/>
- <suffix name="MOUNTAIN_SHARE" label="MOUNTAIN_SHARE"/>
+ <suffix name="MOUNTAIN_SHARE" label="MOUNTAIN_SHARE">
+ <obsolete>
+ Removed 11/2019.
+ </obsolete>
+ </suffix>
<suffix name="NIGORI" label="NIGORI"/>
<suffix name="OS_PREFERENCE" label="OS_PREFERENCE"/>
<suffix name="OS_PRIORITY_PREFERENCE" label="OS_PRIORITY_PREFERENCE"/>
@@ -179991,7 +187248,11 @@ regressions. -->
<suffix name="WALLET_METADATA" label="WALLET_METADATA"/>
<suffix name="WEB_APP" label="WEB_APP"/>
<suffix name="WIFI_CONFIGURATION" label="WIFI_CONFIGURATION"/>
- <suffix name="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL"/>
+ <suffix name="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL">
+ <obsolete>
+ This never got launched and is removed.
+ </obsolete>
+ </suffix>
<affected-histogram name="FCMInvalidations.SubscriptionResponseCodeForTopic"/>
<affected-histogram name="Sync.CommitLatency"/>
<affected-histogram name="Sync.DuplicateClientTagHashInApplyPendingUpdates"/>
@@ -180111,7 +187372,11 @@ regressions. -->
<suffix name="UserConsents" label="User consents"/>
<suffix name="UserEvents" label="User events"/>
<suffix name="WifiConfigurations" label="Wifi configurations"/>
- <suffix name="WifiCredentials" label="Wifi credentials"/>
+ <suffix name="WifiCredentials" label="Wifi credentials">
+ <obsolete>
+ This never got launched and is removed.
+ </obsolete>
+ </suffix>
<affected-histogram name="Sync.AssociationTime"/>
<affected-histogram name="Sync.ConfigureFailure"/>
</histogram_suffixes>
@@ -180250,6 +187515,10 @@ regressions. -->
name="Apps.PaginationTransition.DragScroll.PresentationTime"/>
<affected-histogram
name="Apps.PaginationTransition.DragScroll.PresentationTime.MaxLatency"/>
+ <affected-histogram name="Apps.ScrollableShelf.AnimationSmoothness"/>
+ <affected-histogram name="Apps.ScrollableShelf.Drag.PresentationTime"/>
+ <affected-histogram
+ name="Apps.ScrollableShelf.Drag.PresentationTime.MaxLatency"/>
<affected-histogram name="Apps.StateTransition.AnimationSmoothness"/>
<affected-histogram name="Apps.StateTransition.Drag.PresentationTime"/>
<affected-histogram
@@ -180279,7 +187548,11 @@ regressions. -->
<histogram_suffixes name="TabOffsetOfSwitchComponentList" separator=".">
<suffix name="GridTabSwitcher" label="Tab switcher in grid layout"/>
<suffix name="TabGridSheet"
- label="The bottom sheet that show a list of Tabs in a grid"/>
+ label="The bottom sheet that show a list of Tabs in a grid">
+ <obsolete>
+ Unused as of 11/2019, sheet UI is no longer used.
+ </obsolete>
+ </suffix>
<suffix name="TabStrip" label="The TabStrip componets"/>
<affected-histogram name="Tabs.TabOffsetOfSwitch"/>
</histogram_suffixes>
@@ -180724,6 +187997,15 @@ regressions. -->
<affected-histogram name="Event.TimestampHasValidTimebase"/>
</histogram_suffixes>
+<histogram_suffixes name="TopControlsState" separator=".">
+ <suffix name="NoTopControlsMoved" label="Top controls did not change."/>
+ <suffix name="TopControlsMoved" label="Top controls changed."/>
+ <affected-histogram
+ name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin4"/>
+ <affected-histogram
+ name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin4"/>
+</histogram_suffixes>
+
<histogram_suffixes name="TotalTimeToHttpsGoogle" separator=".">
<suffix name="NotQuic" label="">
<obsolete>
@@ -181047,10 +188329,40 @@ regressions. -->
<affected-histogram name="WebApp.Engagement"/>
</histogram_suffixes>
+<histogram_suffixes name="WebAppSystemAppNameForLogging" separator=".">
+ <suffix name="BrowserSettings" label="Browser Settings"/>
+ <suffix name="Camera" label="Camera"/>
+ <suffix name="Discover" label="Discovery"/>
+ <suffix name="Help" label="Help"/>
+ <suffix name="Media" label="Media"/>
+ <suffix name="OSSettings" label="OS Settings"/>
+ <suffix name="Terminal" label="Terminal"/>
+ <affected-histogram name="Webapp.InstallResult.System.Apps"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="WebAppSystemHistogramGroup" separator=".">
+ <suffix base="true" name="Apps" label="Per-Application"/>
+ <suffix base="true" name="Profiles" label="Per-Profile"/>
+ <affected-histogram name="Webapp.InstallResult.System"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="WebAppSystemProfileCategory" separator=".">
+ <suffix base="true" name="Ephemeral" label="Guest or incognito"/>
+ <suffix base="true" name="Kiosk" label="Kioso app"/>
+ <suffix base="true" name="Other" label="Other"/>
+ <suffix base="true" name="Primary" label="Regular user"/>
+ <suffix base="true" name="SigninOrLockScreen" label="Sign in or lockscreen"/>
+ <affected-histogram name="Webapp.InstallResult.System.Profiles"/>
+ <affected-histogram
+ name="Webapp.InstallResultExtensionDisabledReason.System.Profiles"/>
+ <affected-histogram
+ name="Webapp.InstallResultExtensionError.System.Profiles"/>
+</histogram_suffixes>
+
<histogram_suffixes name="WebappType" separator=".">
<suffix name="Default" label="Default-installed app"/>
<suffix name="Policy" label="Policy-installed app"/>
- <suffix name="System" label="System-installed app"/>
+ <suffix base="true" name="System" label="System-installed app"/>
<affected-histogram name="Webapp.InstallResult"/>
</histogram_suffixes>
@@ -181237,6 +188549,14 @@ regressions. -->
<affected-histogram name="NewTabPage.DefaultPageType"/>
</histogram_suffixes>
+<histogram_suffixes name="WebUITabStripTabCount" separator=".">
+ <suffix name="01_05" label="1 to 5 tabs"/>
+ <suffix name="06_20" label="6 to 20 tabs"/>
+ <suffix name="21_" label="21 or more tabs"/>
+ <affected-histogram name="WebUITabStrip.TabCreation"/>
+ <affected-histogram name="WebUITabStrip.TabDataReceived"/>
+</histogram_suffixes>
+
<histogram_suffixes name="WeekdayNames" separator="_">
<suffix name="Friday" label=""/>
<suffix name="Monday" label=""/>
diff --git a/chromium/tools/metrics/histograms/merge_xml.py b/chromium/tools/metrics/histograms/merge_xml.py
index 2f25dabf77f..71fc1327469 100755
--- a/chromium/tools/metrics/histograms/merge_xml.py
+++ b/chromium/tools/metrics/histograms/merge_xml.py
@@ -6,9 +6,11 @@
"""A script to merge multiple source xml files into a single histograms.xml."""
import argparse
-import expand_owners
import xml.dom.minidom
+import expand_owners
+import extract_histograms
+
def GetElementsByTagName(trees, tag):
"""Gets all elements with the specified tag from a set of DOM trees.
@@ -19,7 +21,8 @@ def GetElementsByTagName(trees, tag):
Returns:
A list of DOM nodes with the specified tag.
"""
- return [e for t in trees for e in t.getElementsByTagName(tag)]
+ iterator = extract_histograms.IterElementsWithTag
+ return list(e for t in trees for e in iterator(t, tag, 2))
def MakeNodeWithChildren(doc, tag, children):
diff --git a/chromium/tools/metrics/rappor/rappor.xml b/chromium/tools/metrics/rappor/rappor.xml
index 83371aed453..9e71686a6cd 100644
--- a/chromium/tools/metrics/rappor/rappor.xml
+++ b/chromium/tools/metrics/rappor/rappor.xml
@@ -101,408 +101,6 @@ components/rappor/rappor_parameters.h.
<!-- Rappor metric definitions -->
<rappor-metrics>
-<rappor-metric name="Android.ExternalNavigationNotChosen"
- type="UMA_RAPPOR_TYPE">
- <owner>mariakhomenko@chromium.org</owner>
- <summary>
- The package name of an application that was given as an alternative choice
- to handling a URL in Chrome, but wasn't chosen.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Android.PageLoadDueToExternalApp" type="UMA_RAPPOR_TYPE">
- <owner>mariakhomenko@chromium.org</owner>
- <summary>
- The package name of an application that sent an intent to Chrome. The name
- is taken from EXTRA_APPLICATION_ID passed to Chrome in the intent by the
- application.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.NativeApp.Dismissed" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a native app banner, which was explicitly
- dismissed by the user.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.NativeApp.Installed" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a native app banner, which resulted in
- the user installing the promoted application.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.NativeApp.Shown" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a native app banner.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.WebApp.Dismissed" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a web app banner, which was explicitly
- dismissed by the user.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.WebApp.Installed" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a web app banner, which resulted in the
- user installing the promoted application.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="AppBanner.WebApp.Shown" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a web app banner.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Bluetooth.APIUsage.Origin" type="ETLD_PLUS_ONE">
- <owner>jyasskin@chromium.org</owner>
- <owner>ortuno@chromium.org</owner>
- <owner>scheib@chromium.org</owner>
- <summary>
- The eTLD+1 of the URL of frames using the Web Bluetooth API.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Cast.Sender.MediaFrameUrl" type="ETLD_PLUS_ONE">
- <owner>avayvod@chromium.org</owner>
- <owner>aberent@chromium.org</owner>
- <summary>
- The domain and registry of the frame URL that the user is trying to cast the
- media from. Recorded every time the user casts the media.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.MixedScript.DisplayedShield"
- type="ETLD_PLUS_ONE">
- <owner>estark@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that displayed a mixed script shield. Note: this does
- *not* include pages with mixed scripts where the user has already clicked
- through the shield.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.MixedScript.RanMixedScript"
- type="ETLD_PLUS_ONE">
- <owner>estark@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that when mixed script actually ran.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.MixedScript.UserClickedAllow"
- type="ETLD_PLUS_ONE">
- <owner>estark@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL where the user clicked &quot;Load unsafe scripts&quot;
- on a mixed content shield. (This results in a page refresh. Mixed scripts
- may not actually run until the users triggers them again after the refresh.)
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_AudioCapture.Denied.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_AudioCapture.Denied.Url2 as of M52. The
- domain for which a AudioCapture permission prompt was Denied.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_AudioCapture.Dismissed.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_AudioCapture.Dismissed.Url2 as of M52. The
- domain for which an AudioCapture permission prompt was Dismissed.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_AudioCapture.Granted.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_AudioCapture.Granted.Url2 as of M52. The
- domain for which an AudioCapture permission prompt was accepted.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_AudioCapture.Ignored.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_AudioCapture.Ignored.Url2 as of M52. The
- domain for which an AudioCapture permission prompt was Ignored.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_AudioCapture.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_AudioCapture.Revoked.Url2 as of M52. The
- domain for which an AudioCapture permission was revoked. Note: This metric
- is recorded for more revocation actions as of 2016-04-01 (M51).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Camera.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>jialiul@chromium.org</owner>
- <summary>
- **DEPRECATED. Renamed to
- ContentSettings.PermissionActions_VideoCapture.Revoked.Url on 2016-01-07.**
- The domain for which a camera permission was revoked.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Geolocation.Denied.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Geolocation.Denied.Url2 as of M52. The
- domain for which a Geolocation permission prompt was Denied.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Geolocation.Dismissed.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Geolocation.Dismissed.Url2 as of M52. The
- domain for which a Geolocation permission prompt was Dismissed.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Geolocation.Granted.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Geolocation.Granted.Url2 as of M52. The
- domain for which a Geolocation permission prompt was accepted.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Geolocation.Ignored.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Geolocation.Ignored.Url2 as of M52. The
- domain for which a Geolocation permission prompt was Ignored.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Geolocation.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>jialiul@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Geolocation.Revoked.Url2 as of M52. The
- domain for which a Geolocation permission was revoked. Note: This metric is
- recorded for more revocation actions as of 2016-04-01 (M51).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_Mic.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>jialiul@chromium.org</owner>
- <summary>
- **DEPRECATED. Renamed to
- ContentSettings.PermissionActions_AudioCapture.Revoked.Url on 2016-01-07.**
- The domain for which a microphone permission was revoked.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Notifications.Denied.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Notifications.Denied.Url2 as of M52. The
- domain for which a Notification permission prompt was Denied.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Notifications.Dismissed.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Notifications.Dismissed.Url2 as of M52.
- The domain for which a Notification permission prompt was Dismissed.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Notifications.Granted.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Notifications.Granted.Url2 as of M52. The
- domain for which a Notification permission prompt was accepted.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Notifications.Ignored.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Notifications.Ignored.Url2 as of M52. The
- domain for which a Notification permission prompt was Ignored.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_Notifications.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>jialiul@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_Notifications.Revoked.Url2 as of M52. The
- domain for which a Notification permission was revoked. Note: This metric is
- recorded for more revocation actions as of 2016-04-01 (M51).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionActions_VideoCapture.Denied.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_VideoCapture.Denied.Url2 as of M52. The
- domain for which a VideoCapture permission prompt was Denied.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_VideoCapture.Dismissed.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_VideoCapture.Dismissed.Url2 as of M52. The
- domain for which a VideoCapture permission prompt was Dismissed.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_VideoCapture.Granted.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_VideoCapture.Granted.Url2 as of M52. The
- domain for which a VideoCapture permission prompt was accepted.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_VideoCapture.Ignored.Url"
- type="ETLD_PLUS_ONE">
- <owner>kcarattini@chromium.org</owner>
- <owner>miguelg@chromium.org</owner>
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_VideoCapture.Ignored.Url2 as of M52. The
- domain for which a VideoCapture permission prompt was Ignored.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="ContentSettings.PermissionActions_VideoCapture.Revoked.Url"
- type="ETLD_PLUS_ONE">
- <owner>tsergeant@chromium.org</owner>
- <summary>
- **DEPRECATED. Replaced by
- ContentSettings.PermissionActions_VideoCapture.Revoked.Url2 as of M52. The
- domain for which an VideoCapture permission was revoked. Note: This metric
- is recorded for more revocation actions as of 2016-04-01 (M51).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionRequested.Geolocation.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED: replaced by
- ContentSettings.PermissionRequested.Geolocation.Url2 as of M52. The domain
- that issues a Geolocation permission prompt.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionRequested.Midi.Url"
- type="ETLD_PLUS_ONE">
- <owner>toyoshim@chromium.org</owner>
- <summary>
- **DEPRECATED: replaced by ContentSettings.PermissionRequested.Midi.Url2 as
- of M53. The domain that requests using MIDI devices.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.PermissionRequested.Notifications.Url"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- **DEPRECATED: replaced by
- ContentSettings.PermissionRequested.Notifications.Url2 as of M52. The domain
- that issues a Notification permission prompt.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ContentSettings.Plugins.AddedAllowException"
- type="ETLD_PLUS_ONE">
- <owner>tommycli@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that the user added to the ALLOW site exceptions for the
- Plugins Content Setting.
- </summary>
-</rappor-metric>
-
<rappor-metric name="CustomTabs.ServiceClient.PackageName"
type="UMA_RAPPOR_TYPE">
<owner>yusufo@chromium.org</owner>
@@ -521,13 +119,6 @@ components/rappor/rappor_parameters.h.
</summary>
</rappor-metric>
-<rappor-metric name="DeviceSensors.DeviceMotion" type="ETLD_PLUS_ONE">
- <owner>timvolodine@chromium.org</owner>
- <summary>
- The domain and registry of the URL that is using Device Motion API.
- </summary>
-</rappor-metric>
-
<rappor-metric name="DeviceSensors.DeviceMotionCrossOrigin"
type="ETLD_PLUS_ONE">
<owner>timvolodine@chromium.org</owner>
@@ -537,13 +128,6 @@ components/rappor/rappor_parameters.h.
</summary>
</rappor-metric>
-<rappor-metric name="DeviceSensors.DeviceOrientation" type="ETLD_PLUS_ONE">
- <owner>timvolodine@chromium.org</owner>
- <summary>
- The domain and registry of the URL that is using Device Orientation API.
- </summary>
-</rappor-metric>
-
<rappor-metric name="DeviceSensors.DeviceOrientationCrossOrigin"
type="ETLD_PLUS_ONE">
<owner>timvolodine@chromium.org</owner>
@@ -553,430 +137,6 @@ components/rappor/rappor_parameters.h.
</summary>
</rappor-metric>
-<rappor-metric name="DomDistiller.OpenPanel" type="UMA_RAPPOR_TYPE">
- <owner>wychen@chromium.org</owner>
- <summary>
- The eTLD+1 of the frame URL where Reader Mode panel is opened by the user.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="DomDistiller.PromptPanel" type="UMA_RAPPOR_TYPE">
- <owner>wychen@chromium.org</owner>
- <summary>
- The eTLD+1 of the frame URL where Reader Mode is prompted.
- </summary>
-</rappor-metric>
-
-<rappor-metric
- name="Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2"
- type="UMA_RAPPOR_TYPE">
- <owner>nzolghadr@chromium.org</owner>
- <owner>tdresser@chromium.org</owner>
- <summary>
- The eTLD+1 of the website visited, along with the time between initial
- creation of a touch event and the start of the frame swap on the GPU service
- caused by the generated ScrollUpdate gesture event if that ScrollUpdate is
- the first such event in a given scroll gesture event sequence. If no swap
- was induced by the event, no recording is made.
- </summary>
- <string-field name="Domain">
- <summary>
- The domain+registry of the URL.
- </summary>
- </string-field>
- <uint64-field name="Latency">
- <summary>
- Latency in microseconds representing first
- Touch.TimeToScrollUpdateSwapBegin.
- </summary>
- </uint64-field>
-</rappor-metric>
-
-<rappor-metric
- name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2"
- type="UMA_RAPPOR_TYPE">
- <owner>nzolghadr@chromium.org</owner>
- <owner>tdresser@chromium.org</owner>
- <summary>
- The eTLD+1 of the website visited, along with the time between initial
- creation of a wheel event and the start of the frame swap on the GPU service
- caused by the generated ScrollUpdate gesture event if that ScrollUpdate is
- the first such event in a given scroll gesture event sequence. If no swap
- was induced by the event, no recording is made.
- </summary>
- <string-field name="Domain">
- <summary>
- The domain+registry of the URL.
- </summary>
- </string-field>
- <uint64-field name="Latency">
- <summary>
- Latency in microseconds representing first
- Wheel.TimeToScrollUpdateSwapBegin.
- </summary>
- </uint64-field>
-</rappor-metric>
-
-<rappor-metric
- name="Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2"
- type="UMA_RAPPOR_TYPE">
- <owner>nzolghadr@chromium.org</owner>
- <owner>tdresser@chromium.org</owner>
- <summary>
- The eTLD+1 of the website visited, along with the time between the initial
- creation of a touch event and the start of the frame swap on the GPU service
- caused by the generated ScrollUpdate gesture event. If no swap was induced
- by the event, no recording is made. The first GSU of every scrolling
- sequence is excluded from this metric.
- </summary>
- <string-field name="Domain">
- <summary>
- The domain+registry of the URL.
- </summary>
- </string-field>
- <uint64-field name="Latency">
- <summary>
- Latency in microseconds representing Touch.TimeToScrollUpdateSwapBegin.
- </summary>
- </uint64-field>
-</rappor-metric>
-
-<rappor-metric
- name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2"
- type="UMA_RAPPOR_TYPE">
- <owner>nzolghadr@chromium.org</owner>
- <owner>tdresser@chromium.org</owner>
- <summary>
- The eTLD+1 of the website visited, along with the time between the initial
- creation of a wheel event and the start of the frame swap on the GPU service
- caused by the generated ScrollUpdate gesture event. If no swap was induced
- by the event, no recording is made. The first GSU of every scrolling
- sequence is excluded from this metric.
- </summary>
- <string-field name="Domain">
- <summary>
- The domain+registry of the URL.
- </summary>
- </string-field>
- <uint64-field name="Latency">
- <summary>
- Latency in microseconds representing Wheel.TimeToScrollUpdateSwapBegin2.
- </summary>
- </uint64-field>
-</rappor-metric>
-
-<rappor-metric name="Extensions.AffectedByIsolateExtensions"
- type="UMA_RAPPOR_TYPE">
- <owner>nick@chromium.org</owner>
- <summary>
- The ID of an extension which will trigger out-of-process iframes under
- --isolate-extensions. This metric is logged even if --isolate-extensions is
- disabled. Includes framing in both directions: non-extension documents that
- contain chrome-extension:// iframes, or vice versa. Hosted apps are not
- considered extensions for the purposes of this metric.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Extensions.PossibleAdInjection2" type="ETLD_PLUS_ONE">
- <owner>rdevlin.cronin@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that might be doing ad injection.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreen.Shortcut" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Android Home screen into a
- tab. This explicitly does not count relaunches via the Android Recents menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreen.Standalone" type="ETLD_PLUS_ONE">
- <owner>dfalcantara@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Android Home screen into a
- WebappActivity. This explicitly does not count relaunches via the Android
- Recents menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreenSource.AddToHomeScreen"
- type="ETLD_PLUS_ONE">
- <owner>dominickn@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Android Home screen via an
- intent added from an add to homescreen menu item. This explicitly does not
- count relaunches via the Android Recents menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreenSource.AppBanner" type="ETLD_PLUS_ONE">
- <owner>dominickn@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Android Home screen via an
- intent added from an app banner. This explicitly does not count relaunches
- via the Android Recents menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreenSource.BookmarkNavigatorWidget"
- type="ETLD_PLUS_ONE">
- <owner>aurimas@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Chrome's bookmark navigator
- widget. This explicitly does not count relaunches via the Android Recents
- menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreenSource.BookmarkShortcutWidget"
- type="ETLD_PLUS_ONE">
- <owner>aurimas@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Chrome's bookmark shortcut
- widget. This explicitly does not count relaunches via the Android Recents
- menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Launch.HomeScreenSource.Unknown" type="ETLD_PLUS_ONE">
- <owner>dominickn@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was launched from the Android Home screen via an
- intent added from an unknown source. This explicitly does not count
- relaunches via the Android Recents menu.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Controls.Cast" type="ETLD_PLUS_ONE">
- <owner>beccahughes@chromium.org</owner>
- <owner>media-team@chromium.org</owner>
- <summary>
- The URL of the page when the user casts media using the normal button.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Controls.CastOverlay" type="ETLD_PLUS_ONE">
- <owner>beccahughes@chromium.org</owner>
- <owner>media-team@chromium.org</owner>
- <summary>
- The URL of the page when the user casts media using the overlay button.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.GpuVideoDecoderInitFailure"
- type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player but
- seeing a failure when trying to initialize the GpuVideoDecoder.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.HLS" type="ETLD_PLUS_ONE">
- <owner>watk@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player to play
- a HLS stream.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MS" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- MediaStream.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.Insecure" type="ETLD_PLUS_ONE">
- <owner>wolenetz@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE) from an insecure origin.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.KeyframeTimeGreaterThanDependant"
- type="ETLD_PLUS_ONE">
- <owner>wolenetz@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE) and supplies media containing a track
- resulting in a sequence emitted from the coded frame processing algorithm
- where a nonkeyframe's presentation timestamp precedes the presentation
- timestamp of the keyframe needed to decode it. This is reported up to once
- per track, so multiple reports may come from a single playback. See
- https://crbug.com/739931 for more context on why such sequences may be
- problematic.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.MuxedSequenceModeSourceBuffer"
- type="ETLD_PLUS_ONE">
- <owner>wolenetz@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE) and appends a media segment to a multitrack
- SourceBuffer that is using 'sequence' AppendMode. This usage frequently
- results in surprising and undesirable results, usually due to automatic
- timestampOffset updates based on one track after a discontinuity are applied
- to all tracks. This is reported up to once per SourceBuffer, so multiple
- reports may come from a single playback. See https://crbug.com/737757 for
- more context.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.PipelineError" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE) and ends up with an error.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.Secure" type="ETLD_PLUS_ONE">
- <owner>wolenetz@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- Media Source Extensions (MSE) from a potentially trustworthy origin.
- </summary>
-</rappor-metric>
-
-<!--
-We record all codecs (see list in GetCodecName() in video_codecs.cc). But for
-now we are only interested in H264, VP8 and VP9.
--->
-
-<rappor-metric name="Media.OriginUrl.MSE.VideoCodec.h264" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- MSE with H264 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.VideoCodec.vp8" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- MSE with VP8 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.MSE.VideoCodec.vp9" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- MSE with VP9 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.SRC" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- SRC.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.SRC.PipelineError" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- SRC and ends up with an error.
- </summary>
-</rappor-metric>
-
-<!--
-We record all codecs (see list in GetCodecName() in video_codecs.cc). But for
-now we are only interested in H264, VP8 and VP9.
--->
-
-<rappor-metric name="Media.OriginUrl.SRC.VideoCodec.h264" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- SRC with H264 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.SRC.VideoCodec.vp8" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- SRC with VP8 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.OriginUrl.SRC.VideoCodec.vp9" type="ETLD_PLUS_ONE">
- <owner>xhwang@chromium.org</owner>
- <summary>
- The domain and registry of the URL that loads an HTML5 media player using
- SRC with VP9 video codec.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Session.APIUsage.Origin" type="ETLD_PLUS_ONE">
- <owner>avayvod@chromium.org</owner>
- <owner>mlamouri@chromium.org</owner>
- <owner>zqzhang@chromium.org</owner>
- <summary>
- The eTLD+1 of the URL of frames using the Media Session API.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Video.Autoplay.Muted.Attribute.Frame"
- type="ETLD_PLUS_ONE">
- <owner>avayvod@chromium.org</owner>
- <owner>mlamouri@chromium.org</owner>
- <owner>zqzhang@chromium.org</owner>
- <summary>
- The eTLD+1 of the frame URL that has an autoplay muted video by attribute.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Video.Autoplay.Muted.DualSource.Frame"
- type="ETLD_PLUS_ONE">
- <owner>avayvod@chromium.org</owner>
- <owner>mlamouri@chromium.org</owner>
- <owner>zqzhang@chromium.org</owner>
- <summary>
- The eTLD+1 of the frame URL that has an autoplay muted video by both
- attribute and play() method.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.Video.Autoplay.Muted.PlayMethod.Frame"
- type="ETLD_PLUS_ONE">
- <owner>avayvod@chromium.org</owner>
- <owner>mlamouri@chromium.org</owner>
- <owner>zqzhang@chromium.org</owner>
- <summary>
- The eTLD+1 of the frame URL that has an autoplay muted video by play()
- method.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Media.VideoPersistence.TopFrame" type="ETLD_PLUS_ONE">
- <owner>mlamouri@chromium.org</owner>
- <owner>peconn@chromium.org</owner>
- <owner>zqzhang@chromium.org</owner>
- <summary>
- The eTLD+1 of the top frame of the tab when a video persistence session is
- initialized.
- </summary>
-</rappor-metric>
-
<rappor-metric name="NTP.ExplicitUserAction.PageNavigation.NTPTileClick"
type="UMA_RAPPOR_TYPE">
<owner>knn@chromium.org</owner>
@@ -996,72 +156,9 @@ now we are only interested in H264, VP8 and VP9.
</summary>
</rappor-metric>
-<rappor-metric name="NTP.SuggestionsImpressions.IconsColor"
- type="UMA_RAPPOR_TYPE">
- <owner>mastiz@chromium.org</owner>
- <summary>
- The eTLD+1 of a most visited tile displayed in the NTP, for cases where the
- fallback color was used (as opposed to having an icon, or simply being
- gray).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="NTP.SuggestionsImpressions.IconsGray"
- type="UMA_RAPPOR_TYPE">
- <owner>mastiz@chromium.org</owner>
- <summary>
- The eTLD+1 of a most visited tile displayed in the NTP, for cases where the
- gray fallback icon was used (as opposed to having an icon, or a fallback
- color).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="NTP.SuggestionsImpressions.IconsReal"
- type="UMA_RAPPOR_TYPE">
- <owner>mastiz@chromium.org</owner>
- <summary>
- The eTLD+1 of a most visited tile displayed in the NTP, for cases where the
- real icon was used (as opposed to having a fallback color or simply being
- gray).
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Plugins.FlashOriginUrl" type="ETLD_PLUS_ONE">
- <owner>wfh@chromium.org</owner>
- <summary>
- The domain and registry of the top level URL of a page which attempts to
- launch a Flash NPAPI or PPAPI plugin, if the client has Flash installed and
- enabled. Recorded when the plugin frame appears for each Flash object found
- on the page, even if the plugin is click-to-play.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Plugins.FlashUrl" type="ETLD_PLUS_ONE">
- <owner>wfh@chromium.org</owner>
- <summary>
- The domain and registry of the URL from where Flash SWF or SPL content is
- being loaded from, while attempting to launch a Flash (NPAPI or PPAPI)
- plugin that is installed and enabled. Recorded when the plugin frame appears
- for each Flash object found in the page, even if the plugin is
- click-to-play.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Plugins.SilverlightOriginUrl" type="ETLD_PLUS_ONE">
- <owner>wfh@chromium.org</owner>
- <summary>
- Deprecated with NPAPI removal. The domain and registry of the top level URL
- of a page which attempts to launch a Silverlight NPAPI plugin, if the client
- has Silverlight installed and enabled. Recorded when the plugin frame
- appears for each Silverlight object found on the page, even if the plugin is
- click-to-play.
- </summary>
-</rappor-metric>
-
<rappor-metric name="PowerfulFeatureUse.ETLDPlus1.GetUserMedia.Insecure"
type="ETLD_PLUS_ONE">
<owner>guidou@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
<owner>hta@chromium.org</owner>
<summary>
The ETLD+1 of the URL that uses the getUserMedia API from an insecure
@@ -1072,7 +169,6 @@ now we are only interested in H264, VP8 and VP9.
<rappor-metric name="PowerfulFeatureUse.ETLDPlus1.GetUserMedia.Secure"
type="ETLD_PLUS_ONE">
<owner>guidou@chromium.org</owner>
- <owner>grunell@chromium.org</owner>
<owner>hta@chromium.org</owner>
<summary>
The ETLD+1 of the URL that uses the getUserMedia API from a secure origin.
@@ -1098,23 +194,6 @@ now we are only interested in H264, VP8 and VP9.
</summary>
</rappor-metric>
-<rappor-metric name="PowerfulFeatureUse.Host.DeviceMotion.Insecure"
- type="ETLD_PLUS_ONE">
- <owner>jww@chromium.org</owner>
- <summary>
- The host of the URL that uses the device motion API from an insecure origin.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="PowerfulFeatureUse.Host.DeviceOrientation.Insecure"
- type="ETLD_PLUS_ONE">
- <owner>jww@chromium.org</owner>
- <summary>
- The host of the URL that uses the device orientation API from an insecure
- origin.
- </summary>
-</rappor-metric>
-
<rappor-metric name="PowerfulFeatureUse.Host.Fullscreen.Insecure"
type="ETLD_PLUS_ONE">
<owner>jww@chromium.org</owner>
@@ -1131,43 +210,6 @@ now we are only interested in H264, VP8 and VP9.
</summary>
</rappor-metric>
-<rappor-metric name="PowerfulFeatureUse.Host.GetUserMedia.Insecure"
- type="ETLD_PLUS_ONE">
- <owner>jww@chromium.org</owner>
- <summary>
- **DEPRECATED. No longer reporting as of M53. Replaced by
- PowerfulFeatureUse.ETLDPlus1.GetUserMedia.Insecure The host of the URL that
- uses the getUserMedia API from an insecure origin.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="PowerfulFeatureUse.Host.GetUserMedia.Secure"
- type="ETLD_PLUS_ONE">
- <owner>jww@chromium.org</owner>
- <summary>
- **DEPRECATED. No longer reporting as of M53. Replaced by
- PowerfulFeatureUse.ETLDPlus1.GetUserMedia.Secure. The host of the URL that
- uses the getUserMedia API from a secure origin.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="PushMessaging.GenericNotificationShown.Origin"
- type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- Number of times the generic (forced) notification was shown per origin. This
- happens if the site uses the push api but does not generate a notification
- of their own.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="PushMessaging.MessageReceived.Origin" type="ETLD_PLUS_ONE">
- <owner>miguelg@chromium.org</owner>
- <summary>
- Push Messages received per Origin.
- </summary>
-</rappor-metric>
-
<rappor-metric name="RTCPeerConnection.Audio" type="ETLD_PLUS_ONE">
<owner>guidou@chromium.org</owner>
<owner>hta@chromium.org</owner>
@@ -1277,114 +319,6 @@ now we are only interested in H264, VP8 and VP9.
</flags-field>
</rappor-metric>
-<rappor-metric name="Search.DefaultSearchProvider" type="ETLD_PLUS_ONE">
- <owner>holte@chromium.org</owner>
- <summary>
- The domain and registry of the URL for the default search engine. Recorded
- when a profile is opened or after a profile reset.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="ServiceWorker.ControlledPageUrl" type="ETLD_PLUS_ONE">
- <owner>horo@chromium.org</owner>
- <summary>
- The domain and registry of the URL of the page which is controlled by a
- ServiceWorker. Recorded when the page is loaded.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Settings.FirstStartupPage" type="ETLD_PLUS_ONE">
- <owner>holte@chromium.org</owner>
- <summary>
- The domain and registry of the URL of the first page opened on startup.
- Recorded when a profile is loaded if preferences specify a fixed set of URLs
- to open on startup.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Settings.HomePage2" type="ETLD_PLUS_ONE">
- <owner>holte@chromium.org</owner>
- <summary>
- The eTLD+1 of the prefs::kHomePage setting. Recorded when a profile is
- loaded if the URL is valid and prefs::kHomePageIsNewTabPage is false.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Settings.NewTabPage" type="ETLD_PLUS_ONE">
- <owner>holte@chromium.org</owner>
- <summary>
- The domain and registry of the URL chrome://newtab is rewritten to. Recorded
- when a profile is loaded, if the URL is valid.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="Startup.BrowserLaunchURL" type="UMA_RAPPOR_TYPE">
- <owner>rkaplow@chromium.org</owner>
- <summary>
- The eTLD+1 of a URL that was passed in from the command line when Chrome is
- invoked. Note that this handles the case of a URL passed to Chrome starting
- up, or when a running Chrome is given the message to open a new URL.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.FullScreenMode" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of the URL for pages that enter a fullscreen experience while in
- VR.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.Video.Browser" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of URL that played video while in the VR browser
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.Video.Fullscreen" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of the URL that played video while in a fullscreen experience in
- VR.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.Video.WebVR" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of the URL that played video while in WebVR.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.WebVR.GetDisplays" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of the URL that called WebVR APIs to obtain the list of VRDisplays.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="VR.WebVR.PresentSuccess" type="ETLD_PLUS_ONE">
- <owner>billorr@chromium.org</owner>
- <summary>
- The host of the URL that succeeded in presenting WebVR content.
- </summary>
-</rappor-metric>
-
-<rappor-metric name="WebComponents.EventPath" type="ETLD_PLUS_ONE">
- <owner>kojii@chromium.org</owner>
- <summary>
- The host of a URL that used Event::Path().
- </summary>
-</rappor-metric>
-
-<rappor-metric name="WebComponents.EventPath.Extensions" type="ETLD_PLUS_ONE">
- <owner>kojii@chromium.org</owner>
- <summary>
- The name of an extension that used Event::Path().
- </summary>
-</rappor-metric>
-
</rappor-metrics>
</rappor-configuration>
diff --git a/chromium/tools/metrics/structured/OWNERS b/chromium/tools/metrics/structured/OWNERS
new file mode 100644
index 00000000000..a5a1018a222
--- /dev/null
+++ b/chromium/tools/metrics/structured/OWNERS
@@ -0,0 +1 @@
+tby@chromium.org
diff --git a/chromium/tools/metrics/structured/structured.xml b/chromium/tools/metrics/structured/structured.xml
new file mode 100644
index 00000000000..2e0407a6e07
--- /dev/null
+++ b/chromium/tools/metrics/structured/structured.xml
@@ -0,0 +1,26 @@
+<structured-metrics-configuration>
+<!-- Structured metrics is under development and isn't available for use yet. -->
+
+<event name="TestEvent">
+ <owner>tby@chromium.org</owner>
+ <summary>
+ Event for unit testing, do not use.
+ </summary>
+ <metric name="ValueOne" kind="hashed">
+ <summary>
+ A per-user keyed hashed value.
+ </summary>
+ </metric>
+ <metric name="ValueTwo" kind="hashed">
+ <summary>
+ A per-user keyed hashed value.
+ </summary>
+ </metric>
+ <metric name="ValueThree" kind="unhashed">
+ <summary>
+ An unhashed value, recorded as-is.
+ </summary>
+ </metric>
+</event>
+
+</structured-metrics-configuration>
diff --git a/chromium/tools/metrics/ukm/ukm.xml b/chromium/tools/metrics/ukm/ukm.xml
index ea26b87cb56..ea53999f319 100644
--- a/chromium/tools/metrics/ukm/ukm.xml
+++ b/chromium/tools/metrics/ukm/ukm.xml
@@ -233,20 +233,20 @@ be describing additional metrics about the same event.
</summary>
<metric name="AdBytes">
<summary>
- Amount of bytes used to load ad resource on the page. Includes resources
- that did not finish, and top-level ads.
+ Amount of network bytes used to load ad resource on the page. Includes
+ resources that did not finish, and top-level ads. Measured in kilobytes.
</summary>
</metric>
<metric name="AdBytesPerSecond">
<summary>
- Amount of bytes used to load ad resources on the page, per second the page
- was alive after commit.
+ Amount of network bytes used to load ad resources on the page, per second
+ the page was alive after commit. Measured in kilobytes per second.
</summary>
</metric>
<metric name="AdBytesPerSecondAfterInteractive">
<summary>
- Amount of bytes used to load ad resources on the page per second after the
- page was interactive.
+ Amount of network bytes used to load ad resources on the page per second
+ after the page was interactive. Measured in kilobytes.
</summary>
</metric>
<metric name="AdCpuTime">
@@ -257,20 +257,28 @@ be describing additional metrics about the same event.
</metric>
<metric name="AdJavascriptBytes">
<summary>
- Amount of bytes used to load ad resources with a supported javascript mime
- type on the page.
+ Amount of network bytes used to load ad resources with a supported
+ javascript mime type on the page. Measured in kilobytes.
</summary>
</metric>
<metric name="AdVideoBytes">
<summary>
- Amount of bytes used to load ad resources with a video mime type on the
- page.
+ Amount of network bytes used to load ad resources with a video mime type
+ on the page. Measured in kilobytes.
+ </summary>
+ </metric>
+ <metric name="MainframeAdBytes">
+ <summary>
+ Amount of network bytes used to load ad resources in the main frame.
+ Includes resources that did not finish but does not include resources in
+ subframes. Measured in bytes. This is rounded to the nearest exponential
+ bucket (with a bucket ratio of 1.3).
</summary>
</metric>
<metric name="TotalBytes">
<summary>
- Amount of bytes used to load resources on the page. Includes resources
- that did not finish.
+ Amount of network bytes used to load resources on the page. Includes
+ resources that did not finish. Measured in kilobytes.
</summary>
</metric>
</event>
@@ -1579,8 +1587,110 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="Blink.PageLoad">
+ <owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
+ <summary>
+ The aggregated time spent in each metric's component from creation of the
+ local frame view to the First Contentful Paint signal. The event is reported
+ once per page load when First Contentful Paint is signaled.
+ </summary>
+ <metric name="Animate">
+ <summary>
+ The time spent in main frame animation, between navigation and First
+ Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="Compositing">
+ <summary>
+ The time spent in main thread compositing, 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="ForcedStyleAndLayout">
+ <summary>
+ The time spent in forced style recalc and layouts, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="HandleInputEvents">
+ <summary>
+ The time spent in processing rAF-aligned input for the main frame, between
+ navigation and First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="IntersectionObservation">
+ <summary>
+ The time spent computing intersection observer state, between navigation
+ and First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="Layout">
+ <summary>
+ The time spent in layout document lifecycle work, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="MainFrame">
+ <summary>
+ The time spent in ProxyMain::BeginMainFrame, between navigation and First
+ Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="Paint">
+ <summary>
+ The time spent in paint document lifecycle work, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="PrePaint">
+ <summary>
+ The time spent in pre-paint document lifecycle work, between navigation
+ and First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="ProxyCommit">
+ <summary>
+ The time spent committing main thread to impl layer tree information,
+ between navigation and First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="ScrollingCoordinator">
+ <summary>
+ The time spent in ScrollingCoordinator, between navigation and First
+ Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="Style">
+ <summary>
+ The time spent in style document lifecycle work, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+ <metric name="StyleAndLayout">
+ <summary>
+ The time spent in layout and style document lifecycle work, between
+ navigation and First Contentful Paint, in microseconds. Will be obsolete
+ in M-82.
+ </summary>
+ </metric>
+ <metric name="UpdateLayers">
+ <summary>
+ The time spent in for LayerTreeHost::UpdateLayers, between navigation and
+ First Contentful Paint, in microseconds.
+ </summary>
+ </metric>
+</event>
+
<event name="Blink.UpdateTime">
<owner>schenney@chromium.org</owner>
+ <owner>paint-dev@chromium.org</owner>
<summary>
Metrics that measure various update times in Blink. This includes paint,
compositing, and layout update times. The metrics are recorded at first
@@ -2043,6 +2153,12 @@ be describing additional metrics about the same event.
results, in microseconds.
</summary>
</metric>
+ <metric name="MainFrameIsBeforeFCP" enum="Boolean">
+ <summary>
+ True if the lifecycle update in this event occurred before FCP (First
+ Contentful Paint) was registered.
+ </summary>
+ </metric>
<metric name="Paint">
<summary>
The time taken to paint for the main frame in microseconds during the
@@ -2922,6 +3038,73 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="DetachedWindows.Experimental">
+ <owner>bartekn@chromium.org</owner>
+ <summary>
+ Metrics related to detached windows.
+ </summary>
+ <metric name="NavigationSourceId">
+ <summary>
+ Contains the UKM source id of the navigation as an integer.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing">
+ <summary>
+ The number of function calls in a window detached by closing/removal.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by closing/removal, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by closing/removal, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByNavigation">
+ <summary>
+ The number of function calls in a window detached by navigating away.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByNavigation_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by navigating away, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByNavigation_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by navigating away, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByOtherReason">
+ <summary>
+ The number of function calls in a window detached by another reason.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByOtherReason_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by another reason, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByOtherReason_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by another reason, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
+</event>
+
<event name="Document.OutliveTimeAfterShutdown">
<owner>hajimehoshi@chromium.org</owner>
<owner>keishi@chromium.org</owner>
@@ -3260,6 +3443,187 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="FontMatchAttempts">
+ <owner>caraitto@chromium.org</owner>
+ <owner>pauljensen@chromium.org</owner>
+ <owner>privacy-sandbox-dev@chromium.org</owner>
+ <summary>
+ Records font family match attempts, broken down by system fonts and web
+ fonts. Multiple match attempts using the same font family name are
+ de-duplicated. Matching of @font-face src:local fonts isn't currently
+ supported.
+ </summary>
+ <metric name="LoadContext" enum="FontLoadContext">
+ <summary>
+ If the font family name was matched in the top-level frame or a sub-frame.
+ </summary>
+ </metric>
+ <metric name="SystemFontFamilyFailures">
+ <summary>
+ The count of system font family match attempts that failed.
+ </summary>
+ </metric>
+ <metric name="SystemFontFamilySuccesses">
+ <summary>
+ The count of system font family match attempts that succeeded.
+ </summary>
+ </metric>
+ <metric name="WebFontFamilyFailures">
+ <summary>
+ The count of web font family match attempts that failed.
+ </summary>
+ </metric>
+ <metric name="WebFontFamilySuccesses">
+ <summary>
+ The count of web font family match attempts that succeeded.
+ </summary>
+ </metric>
+</event>
+
+<event name="Graphics.Smoothness.Throughput">
+ <owner>animations-dev@chromium.org</owner>
+ <owner>sadrul@chromium.org</owner>
+ <summary>
+ Tracks the throughput of a particular sequence of frames such as during
+ scroll or animation. Throughput is measured by tracking the number of frames
+ the sequence was expected to produce, and the number of frames that were
+ actually displayed on screen. Throughput is the ratio of actual to expected,
+ converted to a percentage.
+ </summary>
+ <metric name="CompositorThread.CompositorAnimation">
+ <summary>
+ The throughput of the compositor thread during a compositor animation.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.MainThreadAnimation">
+ <summary>
+ The throughput of the compositor thread during a main thread animation.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.PinchZoom">
+ <summary>
+ The throughput of the compositor thread during pinch-zoom interactions.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.RAF">
+ <summary>
+ The throughput of the compositor thread during rAF callback driven
+ animation.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.TouchScroll">
+ <summary>
+ The throughput of the compositor thread during touchscroll driven
+ interactions.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.Universal">
+ <summary>
+ The throughput of the compositor thread for all frame production.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.Video">
+ <summary>
+ The throughput of the compositor thread during video play.
+ </summary>
+ </metric>
+ <metric name="CompositorThread.WheelScroll">
+ <summary>
+ The throughput of the compositor thread during mousewheel scroll driven
+ interactions.
+ </summary>
+ </metric>
+ <metric name="MainThread.CompositorAnimation">
+ <summary>
+ The throughput of the main thread during a compositor animation.
+ </summary>
+ </metric>
+ <metric name="MainThread.MainThreadAnimation">
+ <summary>
+ The throughput of the main thread during a main thread animation.
+ </summary>
+ </metric>
+ <metric name="MainThread.PinchZoom">
+ <summary>
+ The throughput of the main thread during pinch-zoom interactions.
+ </summary>
+ </metric>
+ <metric name="MainThread.RAF">
+ <summary>
+ The throughput of the main thread during rAF callback driven animation.
+ </summary>
+ </metric>
+ <metric name="MainThread.TouchScroll">
+ <summary>
+ The throughput of the main thread during touchscroll driven interactions.
+ </summary>
+ </metric>
+ <metric name="MainThread.Universal">
+ <summary>
+ The throughput of the main thread for all frame production.
+ </summary>
+ </metric>
+ <metric name="MainThread.Video">
+ <summary>
+ The throughput of the main thread during video play.
+ </summary>
+ </metric>
+ <metric name="MainThread.WheelScroll">
+ <summary>
+ The throughput of the main thread during mousewheel scroll driven
+ interactions.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.CompositorAnimation">
+ <summary>
+ The worse throughput of the main and the compositor thread during a
+ compositor animation.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.MainThreadAnimation">
+ <summary>
+ The worse throughput of the main and the compositor thread during a main
+ thread animation.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.PinchZoom">
+ <summary>
+ The worse throughput of the main and the compositor thread during
+ pinch-zoom interactions.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.RAF">
+ <summary>
+ The worse throughput of the main and the compositor thread during rAF
+ callback driven animation.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.TouchScroll">
+ <summary>
+ The worse throughput of the main and the compositor thread during
+ touchscroll driven interactions.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.Universal">
+ <summary>
+ The worse throughput of the main and the compositor thread for all frame
+ production.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.Video">
+ <summary>
+ The worse throughput of the main and the compositor thread during video
+ play.
+ </summary>
+ </metric>
+ <metric name="SlowerThread.WheelScroll">
+ <summary>
+ The worse throughput of the main and the compositor thread during
+ mousewheel scroll driven interactions.
+ </summary>
+ </metric>
+</event>
+
<event name="HistoryManipulationIntervention">
<owner>shivanisha@chromium.org</owner>
<summary>
@@ -3688,7 +4052,7 @@ be describing additional metrics about the same event.
</summary>
<metric name="AudioCodec">
<summary>
- media::AudioCodec enum value. Can be kUnknownAudioCodec even with HasAudio
+ media::AudioCodec enum value. Can be kUnknownAudioCodec even when HasAudio
is true because we don't always know the codec.
</summary>
</metric>
@@ -3712,6 +4076,18 @@ be describing additional metrics about the same event.
activation on the page or without a user initiated same-domain navigation.
</summary>
</metric>
+ <metric name="CompletedRebuffersCount">
+ <summary>
+ Integer count of the number of times a previous rebuffer succeeded and
+ playback continued.
+ </summary>
+ </metric>
+ <metric name="CompletedRebuffersDuration">
+ <summary>
+ Sum in milliseconds of all completed rebuffering events. Only reported if
+ a rebuffering completion occurred.
+ </summary>
+ </metric>
<metric name="Duration">
<summary>
Duration in milliseconds, rounded to the most significant digit, of the
@@ -3783,10 +4159,16 @@ be describing additional metrics about the same event.
</metric>
<metric name="VideoCodec">
<summary>
- media::VideoCodec enum value. Can be kUnknownVideoCodec even with HasVideo
+ media::VideoCodec enum value. Can be kUnknownVideoCodec even when HasVideo
is true because we don't always know the codec.
</summary>
</metric>
+ <metric name="VideoCodecProfile">
+ <summary>
+ media::VideoCodecProfile enum value. Can be VIDEO_CODEC_PROFILE_UNKNOWN
+ even when HasVideo is true because we don't always know the codec profile.
+ </summary>
+ </metric>
<metric name="VideoDecoderName">
<summary>
Enumeration of video decoder names, zero if none or unknown (Cast, HLS,
@@ -3799,6 +4181,17 @@ be describing additional metrics about the same event.
if the video track is unencrypted.
</summary>
</metric>
+ <metric name="VideoFramesDecoded">
+ <summary>
+ Integer count of the video frames decoded in this record.
+ </summary>
+ </metric>
+ <metric name="VideoFramesDropped">
+ <summary>
+ Integer count of the video frames dropped in this record. Should not
+ exceed VideoFramesDecoded.
+ </summary>
+ </metric>
<metric name="VideoNaturalHeight">
<summary>
Integer value indicating the natural height of the playback.
@@ -3910,16 +4303,25 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Engagement.IsHigh.Changed">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
Whether the IsHigh bit changed during the current session.
</summary>
</metric>
<metric name="Engagement.IsHigh.Changes">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
Counts of IsHigh changing (from 0 to 1 or 1 to 0).
</summary>
</metric>
<metric name="Engagement.IsPreloaded">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
Whether the origin was preloaded (from the chrome://component) as a high
engagement origin.
@@ -3934,12 +4336,18 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Playbacks.AudioContextTotal">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The total number of significant media playbacks on this origin that came
from WebAudio / AudioContext.
</summary>
</metric>
<metric name="Playbacks.Delta">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The number of significant media playbacks on this origin during this
session (a visit to an origin on the same tab). A playback is determined
@@ -3948,12 +4356,18 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Playbacks.MediaElementTotal">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The total number of significant media playbacks on this origin that came
from media elements.
</summary>
</metric>
<metric name="Playbacks.SecondsSinceLast">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The number of seconds between significant media playback on the last visit
and significant media playback on the current visit. If there was no
@@ -3972,6 +4386,9 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Player.Audible.Total">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The delta from above but instead of a single visit, the total of all
deltas for all visits on this origin.
@@ -3985,6 +4402,9 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="Player.Significant.Total">
+ <obsolete>
+ Deprecated 8/19 as part of https://crbug.com/998685
+ </obsolete>
<summary>
The delta from above but instead of a single visit, the total of all
deltas for all visits on this origin.
@@ -4156,7 +4576,7 @@ be describing additional metrics about the same event.
<metric name="Video.CodecProfile">
<summary>
media::VideoCodecProfile enum value. Can be VIDEO_CODEC_PROFILE_UNKNOWN if
- we don't know the audio codec.
+ we don't know the video codec.
</summary>
</metric>
<metric name="Video.EME.KeySystem">
@@ -4349,6 +4769,27 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="MediaRouter.TabMirroringStarted">
+ <owner>takumif@chromium.org</owner>
+ <owner>openscreen-eng@google.com</owner>
+ <summary>
+ Recorded whenever user starts a tab mirroring session via Media Router.
+ </summary>
+ <metric name="AudioState" enum="WebContentsAudioState">
+ <summary>
+ The audio playback state of the WebContents at the start of the tab
+ mirroring session.
+ </summary>
+ <aggregation>
+ <history>
+ <statistics>
+ <enumeration/>
+ </statistics>
+ </history>
+ </aggregation>
+ </metric>
+</event>
+
<event name="Memory.Experimental">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
@@ -4448,6 +4889,61 @@ be describing additional metrics about the same event.
The number of ad subframes that the associated renderer owns.
</summary>
</metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing">
+ <summary>
+ The number of function calls in a window detached by closing/removal.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by closing/removal, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByClosing_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by closing/removal, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByNavigation">
+ <summary>
+ The number of function calls in a window detached by navigating away.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByNavigation_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by navigating away, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByNavigation_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by navigating away, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
+ <metric name="NumberOfCallsInDetachedWindowByOtherReason">
+ <summary>
+ The number of function calls in a window detached by another reason.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByOtherReason_After10sSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by another reason, that
+ happened at least 10 seconds after detaching.
+ </summary>
+ </metric>
+ <metric
+ name="NumberOfCallsInDetachedWindowByOtherReason_After1minSinceDetaching">
+ <summary>
+ The number of function calls in a window detached by another reason, that
+ happened at least 1 minute after detaching.
+ </summary>
+ </metric>
<metric name="NumberOfDetachedScriptStates">
<summary>
The number of detached ScriptState that the associated renderer owns.
@@ -4934,6 +5430,45 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="MobileMenu.DirectShare">
+ <owner>sayman@chromium.org</owner>
+ <summary>
+ User pressed 'Share' in the app menu. The intent most recently used to share
+ was invoked directly. See also MobileMenu.Share.
+ </summary>
+ <metric name="HasOccurred" enum="Boolean">
+ <summary>
+ A boolean signaling that the event has occurred; only records true values.
+ </summary>
+ </metric>
+</event>
+
+<event name="MobileMenu.FindInPage">
+ <owner>frechette@chromium.org</owner>
+ <summary>
+ User pressed 'Find in page' in the app menu.
+ </summary>
+ <metric name="HasOccurred" enum="Boolean">
+ <summary>
+ A boolean signaling that the event has occurred (typically only records
+ true values).
+ </summary>
+ </metric>
+</event>
+
+<event name="MobileMenu.Share">
+ <owner>sayman@chromium.org</owner>
+ <summary>
+ User pressed 'Share' in the app menu. A picker was shown. See also
+ MobileMenu.DirectShare.
+ </summary>
+ <metric name="HasOccurred" enum="Boolean">
+ <summary>
+ A boolean signaling that the event has occurred; only records true values.
+ </summary>
+ </metric>
+</event>
+
<event name="NavigationPredictorAnchorElementMetrics">
<owner>ryansturm@chromium.org</owner>
<summary>
@@ -5249,6 +5784,28 @@ be describing additional metrics about the same event.
applied on the page load.
</summary>
</metric>
+ <metric name="NavigationHostCovered"
+ enum="OptimizationGuideNavigationHostCoveredStatus">
+ <summary>
+ An enum value representing whether Chrome had a hint cached for the
+ navigation or had attempted to fetch a hint from the remote Optimization
+ Guide Service in the last 7 days. The enum is defined in
+ |optimization_guide::NavigationHostCoveredStatus|.
+ </summary>
+ </metric>
+ <metric name="PainfulPageLoadModelPredictionScore">
+ <summary>
+ The score output after evaluating the painful page load model. If
+ populated, this is 100x the fractional value output by the model
+ evaluation. This will be a value between 0 and 100.
+ </summary>
+ </metric>
+ <metric name="PainfulPageLoadModelVersion">
+ <summary>
+ The server-generated version of the painful page load model that was
+ evaluated for the page load.
+ </summary>
+ </metric>
</event>
<event name="PageDomainInfo">
@@ -5284,6 +5841,21 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="PageInfoBubble">
+ <owner>chlily@chromium.org</owner>
+ <summary>
+ Recorded when an action on the Page Info Bubble (aka Origin Info Bubble or
+ WebsiteSettings Bubble) is taken. May be recorded multiple times for a
+ single page visit.
+ </summary>
+ <metric name="ActionTaken" enum="WebsiteSettingsAction">
+ <summary>
+ Records an enum value representing which action on the Page Info Bubble
+ was taken.
+ </summary>
+ </metric>
+</event>
+
<event name="PageLoad" singular="True">
<owner>bmcquade@chromium.org</owner>
<summary>
@@ -5487,6 +6059,10 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay3">
+ <obsolete>
+ Removed in July 2019 in favor of InteractiveTiming.FirstInputDelay4 which
+ includes events which were previously filtered.
+ </obsolete>
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
@@ -5508,9 +6084,6 @@ be describing additional metrics about the same event.
and the start of event processing on the main thread for the first
meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed
explanation. In ms.
-
- This metric MAY replace InteractiveTiming.FirstInputDelay3 if the
- SkipTouchEventFilter experiment is successful.
</summary>
<aggregation>
<history>
@@ -5556,6 +6129,10 @@ be describing additional metrics about the same event.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp3">
+ <obsolete>
+ Removed in July 2019 in favor of InteractiveTiming.FirstInputTimestamp4
+ which includes events which were previously filtered.
+ </obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
@@ -5567,9 +6144,6 @@ be describing additional metrics about the same event.
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
-
- This metric MAY replace InteractiveTiming.FirstInputTimestamp3 if the
- SkipTouchEventFilter experiment is successful.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputDelay">
@@ -6570,6 +7144,12 @@ be describing additional metrics about the same event.
capped at 10 ignores.
</summary>
</metric>
+ <metric name="PromptDisposition">
+ <summary>
+ An enum of type PermissionPromptDisposition. The UI used to display a
+ permission prompt, if any.
+ </summary>
+ </metric>
<metric name="Source">
<summary>
An enum of type PermissionSourceUI. The UI surface for this action.
@@ -6618,6 +7198,46 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="PrefetchProxy" singular="True">
+ <owner>robertogden@chromium.org</owner>
+ <owner>ryansturm@chromium.org</owner>
+ <owner>tbansal@chromium.org</owner>
+ <summary>
+ Metrics related to the privacy-preserving prefetch proxy. Recorded only for
+ Lite mode (AKA Data Saver) users.
+ </summary>
+ <metric name="count_css_js_loaded_cache_before_fcp">
+ <summary>
+ The number of CSS or JS files that were loaded from the cache before first
+ contentful paint, with a maximum of 10. Always set when this event is
+ recorded.
+ </summary>
+ </metric>
+ <metric name="count_css_js_loaded_network_before_fcp">
+ <summary>
+ The number of CSS or JS files that were loaded from the network before
+ FCP, with a maximum of 10. Always set when this event is recorded.
+ </summary>
+ </metric>
+ <metric name="days_since_last_visit_to_origin">
+ <summary>
+ The number of days since the user has last visited any page on this
+ origin, either during a redirect or a committed page. Records -1 if the
+ origin has never been visited before. Metrics for origins that have been
+ visited before are capped at 180 then exponentially bucketed into 10
+ buckets with values (1,2,3,5,9,15,25,42,70,119). Only set when a query
+ result was received from the history service before event recording.
+ </summary>
+ </metric>
+ <metric name="mainpage_request_had_cookies" enum="Boolean">
+ <summary>
+ A boolean indicating if any mainpage request in the redirect chain or
+ committed request had cookies set on it. Only set when a query result was
+ received from the cookie manager before event recording.
+ </summary>
+ </metric>
+</event>
+
<event name="Previews" singular="True">
<owner>ryansturm@chromium.org</owner>
<summary>
@@ -6977,7 +7597,7 @@ be describing additional metrics about the same event.
</metric>
<metric name="ThreadType">
<summary>
- blink::WebThreadType for the thread the current task was executed on.
+ blink::ThreadType for the thread the current task was executed on.
</summary>
</metric>
<metric name="UseCase">
@@ -7110,7 +7730,7 @@ be describing additional metrics about the same event.
</metric>
<metric name="IsSwitchAccessEnabled">
<summary>
- Boolean value to represent whether switch access is currently enabled.
+ Boolean value to represent whether Switch Access is currently enabled.
</summary>
</metric>
<metric name="IsVideoPlaying">
@@ -7191,6 +7811,47 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="Security.SafetyTip">
+ <owner>jdeblasio@chromium.org</owner>
+ <owner>enamelites@google.com</owner>
+ <owner>beggs@google.com</owner>
+ <summary>
+ Collected when any safety tip heuristic triggers, regardless of whether the
+ Safety Tip UI is shown.
+ </summary>
+ <metric name="SafetyTipInteraction" enum="SafetyTipInteraction">
+ <summary>
+ How the user interacted with the UI, if applicable.
+ </summary>
+ </metric>
+ <metric name="SafetyTipStatus" enum="SafetyTipStatus">
+ <summary>
+ The final reported Safety Tip status.
+ </summary>
+ </metric>
+ <metric name="TriggeredKeywordsHeuristics" enum="Boolean">
+ <summary>
+ Whether the sensitive keywords heuristic triggered.
+ </summary>
+ </metric>
+ <metric name="TriggeredLookalikeHeuristics" enum="Boolean">
+ <summary>
+ Whether the lookalike keywords heuristic triggered.
+ </summary>
+ </metric>
+ <metric name="TriggeredServerSideBlocklist" enum="Boolean">
+ <summary>
+ Whether the server-side blocklist heuristic triggered.
+ </summary>
+ </metric>
+ <metric name="UserPreviouslyIgnored" enum="Boolean">
+ <summary>
+ Whether the user had already ignored a safety tip warning for this page in
+ the past, meaning no tip was shown.
+ </summary>
+ </metric>
+</event>
+
<event name="Security.SiteEngagement">
<owner>cthomp@chromium.org</owner>
<owner>enamelites@google.com</owner>
@@ -7843,6 +8504,12 @@ be describing additional metrics about the same event.
currently contains text form entry.
</summary>
</metric>
+ <metric name="FailureLiveStateHasNotificationsPermission" enum="Boolean">
+ <summary>
+ Boolean indicating that the intervention was disallowed because the tab
+ has the permission to use notifications.
+ </summary>
+ </metric>
<metric name="FailureLiveStateIsPDF" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
@@ -8274,6 +8941,19 @@ be describing additional metrics about the same event.
</metric>
</event>
+<event name="TouchToFill.Shown">
+ <owner>jdoerrie@chromium.org</owner>
+ <owner>fhorschig@chromium.org</owner>
+ <summary>
+ Recorded when the Touch To Fill sheet is shown to the user.
+ </summary>
+ <metric name="UserAction" enum="TouchToFill.UserAction">
+ <summary>
+ The action a user took when interacting with the Touch To Fill sheet.
+ </summary>
+ </metric>
+</event>
+
<event name="Translate">
<owner>hamelphi@chromium.org</owner>
<summary>
@@ -8296,6 +8976,12 @@ be describing additional metrics about the same event.
<summary>
Collected when a page is opened in a Trusted Web Activity.
</summary>
+ <metric name="HasOccurred" enum="Boolean">
+ <summary>
+ A boolean signaling that the event has occurred (typically only records
+ true values).
+ </summary>
+ </metric>
</event>
<event name="UserActivity">
@@ -9121,6 +9807,7 @@ be describing additional metrics about the same event.
<owner>billorr@chromium.org</owner>
<owner>bialpio@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
+ <owner>cassew@google.com</owner>
<summary>
When session ends, records data for a WebXR / WebVR session.
</summary>
@@ -9140,6 +9827,61 @@ be describing additional metrics about the same event.
</history>
</aggregation>
</metric>
+ <metric name="FeatureRequest.BoundedFloor" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'bounded-floor' feature request.
+ </summary>
+ </metric>
+ <metric name="FeatureRequest.Local" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'local' feature request.
+ </summary>
+ </metric>
+ <metric name="FeatureRequest.LocalFloor" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'local-floor' feature request.
+ </summary>
+ </metric>
+ <metric name="FeatureRequest.Unbounded" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'unbounded' feature request.
+ </summary>
+ </metric>
+ <metric name="FeatureRequest.Viewer" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'viewer' feature request.
+ </summary>
+ </metric>
+ <metric name="FeatureUse.BoundedFloor" enum="Boolean">
+ <summary>
+ Whether the 'bounded-floor' feature was used during this session,
+ regardless of whether it was used successfully.
+ </summary>
+ </metric>
+ <metric name="FeatureUse.Local" enum="Boolean">
+ <summary>
+ Whether the 'local' feature was used during this session, regardless of
+ whether it was used successfully.
+ </summary>
+ </metric>
+ <metric name="FeatureUse.LocalFloor" enum="Boolean">
+ <summary>
+ Whether the 'local-floor' feature was used during this session, regardless
+ of whether it was used successfully.
+ </summary>
+ </metric>
+ <metric name="FeatureUse.Unbounded" enum="Boolean">
+ <summary>
+ Whether the 'unbounded' feature was used during this session, regardless
+ of whether it was used successfully.
+ </summary>
+ </metric>
+ <metric name="FeatureUse.Viewer" enum="Boolean">
+ <summary>
+ Whether the 'viewer' feature was used during this session, regardless of
+ whether it was used successfully.
+ </summary>
+ </metric>
<metric name="IsLegacyWebVR" enum="Boolean">
<summary>
Boolean value indicating whether a session was created using the legacy
@@ -9171,9 +9913,35 @@ be describing additional metrics about the same event.
<event name="XR.WebXR.SessionRequest">
<owner>xr-dev@chromium.org</owner>
+ <owner>cassew@google.com</owner>
<summary>
Recorded when promise returned by `requestSession` gets resolved / rejected.
</summary>
+ <metric name="Feature.BoundedFloor" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'bounded-floor' feature request.
+ </summary>
+ </metric>
+ <metric name="Feature.Local" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'local' feature request.
+ </summary>
+ </metric>
+ <metric name="Feature.LocalFloor" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'local-floor' feature request.
+ </summary>
+ </metric>
+ <metric name="Feature.Unbounded" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'unbounded' feature request.
+ </summary>
+ </metric>
+ <metric name="Feature.Viewer" enum="XRFeatureRequestStatus">
+ <summary>
+ State of the 'viewer' feature request.
+ </summary>
+ </metric>
<metric name="Mode" enum="XRSessionModeRequest">
<summary>
An enum value that indicates that the `requestSession` API was called to
diff --git a/chromium/tools/perf/BUILD.gn b/chromium/tools/perf/BUILD.gn
index eea77d119c2..9c65c4a001e 100644
--- a/chromium/tools/perf/BUILD.gn
+++ b/chromium/tools/perf/BUILD.gn
@@ -40,14 +40,25 @@ group("perf") {
"//components/subresource_filter/tools:index_ruleset",
]
}
+
+ # TODO(crbug.com/1028612): Remove this if when trace processor can be built
+ # on Android.
+ if (!is_android) {
+ data_deps +=
+ [ "//third_party/perfetto/src/trace_processor:trace_processor_shell" ]
+ }
}
if (is_android) {
- import("//build/config/android/rules.gni")
-
- wrapper_script("run_benchmark_wrapper") {
- target = "run_benchmark"
- flag_name = "--chromium-output-directory"
+ import("//build/util/generate_wrapper.gni")
+
+ generate_wrapper("run_benchmark_wrapper") {
+ executable = "run_benchmark"
+ wrapper_script = "$root_build_dir/bin/run_benchmark"
+ executable_args = [
+ "--chromium-output-directory",
+ "@WrappedPath(.)",
+ ]
}
}
diff --git a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
index bb36f7002c2..dafac1e51e8 100644
--- a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
+++ b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
@@ -23,6 +23,7 @@ group("telemetry_chrome_test") {
data_deps += [
"//android_webview/test:webview_instrumentation_apk",
"//chrome/android:chrome_public_apk",
+ ":telemetry_weblayer_apks",
]
if (enable_chrome_android_internal) {
@@ -71,6 +72,22 @@ group("telemetry_chrome_test") {
}
}
+group("telemetry_weblayer_apks") {
+ testonly = true
+
+ data_deps = []
+ if (is_android) {
+ data_deps += [
+ # TODO(crbug.com/1022823): Remove the following two deps once our tooling
+ # is configured to use weblayer_shell_system_webview_apk.
+ "//weblayer/shell/android:weblayer_support_apk",
+ "//weblayer/shell/android:weblayer_shell_apk",
+
+ "//weblayer/shell/android:weblayer_shell_system_webview_apk",
+ ]
+ }
+}
+
group("telemetry_chrome_test_without_chrome") {
testonly = true
diff --git a/chromium/tools/polymer/generate_gn.py b/chromium/tools/polymer/generate_gn.py
index 5e8db46ae9b..96413fab995 100755
--- a/chromium/tools/polymer/generate_gn.py
+++ b/chromium/tools/polymer/generate_gn.py
@@ -12,9 +12,6 @@ import sys
_COMPILE_JS = '//third_party/closure_compiler/compile_js.gni'
_POLYMERS = ['polymer.html', 'polymer-mini.html', 'polymer-micro.html']
-_WEB_ANIMATIONS_BASE = 'web-animations.html'
-_WEB_ANIMATIONS_EXTERNS = \
- '//third_party/closure_compiler/externs/web_animations.js'
_COMPILED_RESOURCES_TEMPLATE = '''
# Copyright %d The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -61,11 +58,6 @@ def main(created_by, html_files):
if import_base in _POLYMERS:
continue
- if import_base == _WEB_ANIMATIONS_BASE:
- externs += '\n externs_list = [ "%s" ]' % \
- _WEB_ANIMATIONS_EXTERNS
- continue
-
# Only exclude these after appending web animations externs.
if not _has_extracted_js(path.join(html_dir, html_import)):
continue
diff --git a/chromium/tools/polymer/generate_gn_v3.py b/chromium/tools/polymer/generate_gn_v3.py
index 9afde34aaba..74546b37c1a 100755
--- a/chromium/tools/polymer/generate_gn_v3.py
+++ b/chromium/tools/polymer/generate_gn_v3.py
@@ -11,9 +11,6 @@ import os.path as path
import sys
_COMPILE_JS = '//third_party/closure_compiler/compile_js.gni'
-_WEB_ANIMATIONS_BASE = 'web-animations.html'
-_WEB_ANIMATIONS_EXTERNS = \
- '//third_party/closure_compiler/externs/web_animations.js'
_COMPILED_RESOURCES_TEMPLATE = '''
# Copyright %d The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -55,10 +52,6 @@ def main(created_by, input_files):
for i in sorted(imports):
import_dir, import_base = path.split(i.encode('ascii'))
- if import_base == _WEB_ANIMATIONS_BASE:
- externs += '\n externs_list = [ "%s" ]' % _WEB_ANIMATIONS_EXTERNS
- continue
-
# Redirect dependencies to minified Polymer to the non-minified version.
if import_base == 'polymer_bundled.min.js':
import_base = 'polymer_bundled.js'
diff --git a/chromium/tools/polymer/polymer.py b/chromium/tools/polymer/polymer.py
index ff544c1897c..797b69942f3 100644
--- a/chromium/tools/polymer/polymer.py
+++ b/chromium/tools/polymer/polymer.py
@@ -50,6 +50,7 @@
# encountering any dependency to that file.
import argparse
+import io
import os
import re
import sys
@@ -165,7 +166,7 @@ class Dependency:
def _extract_dependencies(html_file):
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
lines = f.readlines()
deps = []
for line in lines:
@@ -182,20 +183,26 @@ def _generate_js_imports(html_file):
def _extract_dom_module_id(html_file):
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
contents = f.read()
match = re.search(r'\s*<dom-module id="(.*)"', contents)
assert match
return match.group(1)
+def _add_template_markers(html_template):
+ return '<!--_html_template_start_-->%s<!--_html_template_end_-->' % \
+ html_template;
+
+
def _extract_template(html_file, html_type):
if html_type == 'v3-ready':
- with open(html_file, 'r') as f:
- return f.read()
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
+ template = f.read()
+ return _add_template_markers('\n' + template)
if html_type == 'dom-module':
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
lines = f.readlines()
start_line = -1
end_line = -1
@@ -211,10 +218,10 @@ def _extract_template(html_file, html_type):
assert re.match(r'\s*</template>', lines[i - 2])
assert re.match(r'\s*<script ', lines[i - 1])
end_line = i - 3;
- return '\n' + ''.join(lines[start_line:end_line + 1])
+ return _add_template_markers('\n' + ''.join(lines[start_line:end_line + 1]))
if html_type == 'style-module':
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
lines = f.readlines()
start_line = -1
end_line = -1
@@ -234,7 +241,7 @@ def _extract_template(html_file, html_type):
if html_type == 'iron-iconset':
templates = []
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
lines = f.readlines()
start_line = -1
end_line = -1
@@ -255,7 +262,7 @@ def _extract_template(html_file, html_type):
assert html_type == 'custom-style'
- with open(html_file, 'r') as f:
+ with io.open(html_file, encoding='utf-8', mode='r') as f:
lines = f.readlines()
start_line = -1
end_line = -1
@@ -284,7 +291,7 @@ def _process_v3_ready(js_file, html_file):
# Extract HTML template and place in JS file.
html_template = _extract_template(html_file, 'v3-ready')
- with open(js_file) as f:
+ with io.open(js_file, encoding='utf-8') as f:
lines = f.readlines()
HTML_TEMPLATE_REGEX = '{__html_template__}'
@@ -312,7 +319,7 @@ def _process_dom_module(js_file, html_file):
# Replace export annotations with 'export'.
EXPORT_LINE_REGEX = '/* #export */'
- with open(js_file) as f:
+ with io.open(js_file, encoding='utf-8') as f:
lines = f.readlines()
imports_added = False
@@ -387,12 +394,13 @@ def _process_style_module(js_file, html_file):
# example cr_icons_css.html.
js_template = \
"""%(js_imports)s
-const styleElement = document.createElement('dom-module');
-styleElement.setAttribute('assetpath', 'chrome://resources/');
-styleElement.innerHTML = `%(html_template)s`;
-styleElement.register('%(style_id)s');""" % {
- 'js_imports': '\n'.join(js_imports),
+const template = document.createElement('template');
+template.innerHTML = `
+<dom-module id="%(style_id)s" assetpath="chrome://resources/">%(html_template)s</dom-module>
+`;
+document.body.appendChild(template.content.cloneNode(true));""" % {
'html_template': html_template,
+ 'js_imports': '\n'.join(js_imports),
'style_id': style_id,
}
@@ -479,8 +487,12 @@ def main(argv):
result = _process_v3_ready(js_file, html_file)
# Reconstruct file.
- with open(os.path.join(out_folder, result[1]), 'w') as f:
+ # Specify the newline character so that the exact same file is generated
+ # across platforms.
+ with io.open(os.path.join(out_folder, result[1]), mode='w', encoding='utf-8', newline='\n') as f:
for l in result[0]:
+ if (type(l) != unicode):
+ l = unicode(l, encoding='utf-8')
f.write(l)
return
diff --git a/chromium/tools/polymer/polymer_test.py b/chromium/tools/polymer/polymer_test.py
index 587491ce79d..6501a81e288 100755
--- a/chromium/tools/polymer/polymer_test.py
+++ b/chromium/tools/polymer/polymer_test.py
@@ -23,7 +23,7 @@ class PolymerModulizerTest(unittest.TestCase):
def _read_out_file(self, file_name):
assert self._out_folder
- return open(os.path.join(self._out_folder, file_name), 'r').read()
+ return open(os.path.join(self._out_folder, file_name), 'rb').read()
def _run_test(self, html_type, html_file, js_file,
js_out_file, js_file_expected):
@@ -44,7 +44,7 @@ class PolymerModulizerTest(unittest.TestCase):
actual_js = self._read_out_file(js_out_file)
expected_js = open(os.path.join(
- _HERE_DIR, 'tests', js_file_expected), 'r').read()
+ _HERE_DIR, 'tests', js_file_expected), 'rb').read()
self.assertEquals(expected_js, actual_js)
# Test case where HTML is extracted from a Polymer2 <dom-module>.
diff --git a/chromium/tools/resources/svgo.py b/chromium/tools/resources/svgo.py
index 174b21c18e1..0c02ef2c1f3 100755
--- a/chromium/tools/resources/svgo.py
+++ b/chromium/tools/resources/svgo.py
@@ -19,7 +19,11 @@ def Run(os_path=None, args=None):
finally:
sys.path = old_sys_path
- return node.RunNode([node_modules.PathToSvgo()] + args)
+ # Removing viewBox is not always safe, since it assumes that width/height are
+ # not overriden in all usages of an SVG file. Feel free to remove viewBox
+ # manually from a certain SVG if you have audited all its usages.
+ default_args = ['--disable=removeViewBox'];
+ return node.RunNode([node_modules.PathToSvgo()] + default_args + args)
if __name__ == '__main__':
diff --git a/chromium/tools/resources/svgo_presubmit.py b/chromium/tools/resources/svgo_presubmit.py
index a32dfb33d46..4789106153d 100644
--- a/chromium/tools/resources/svgo_presubmit.py
+++ b/chromium/tools/resources/svgo_presubmit.py
@@ -3,8 +3,15 @@
# found in the LICENSE file.
+# Ignore the following files from SVG optimization checks.
+BLOCKLIST = [
+ # Ignore since it holds documentation comments.
+ "components/dom_distiller/core/images/dom_distiller_material_spinner.svg",
+]
+
def CheckOptimized(input_api, output_api):
- file_filter = lambda f: f.LocalPath().endswith('.svg')
+ file_filter = lambda f: f.LocalPath().endswith('.svg') and \
+ f.LocalPath() not in BLOCKLIST
svgs = input_api.AffectedFiles(file_filter=file_filter, include_deletes=False)
if not svgs:
diff --git a/chromium/tools/resources/svgo_presubmit_test.py b/chromium/tools/resources/svgo_presubmit_test.py
index cb7427b0ecc..6484e438d05 100755
--- a/chromium/tools/resources/svgo_presubmit_test.py
+++ b/chromium/tools/resources/svgo_presubmit_test.py
@@ -16,7 +16,7 @@ sys.path.append(os.path.join(_HERE_PATH, '..', '..'))
from PRESUBMIT_test_mocks import MockInputApi, MockOutputApi, MockFile
_OPTIMIZED_SVG = '''
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#757575"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#757575"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
'''.strip()
_UNOPTIMIZED_SVG = '''
diff --git a/chromium/tools/roll_webgl_conformance.py b/chromium/tools/roll_webgl_conformance.py
index 5be24f94ace..87d977dd6dc 100755
--- a/chromium/tools/roll_webgl_conformance.py
+++ b/chromium/tools/roll_webgl_conformance.py
@@ -52,11 +52,6 @@ SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
sys.path.insert(0, os.path.join(SRC_DIR, 'build'))
import find_depot_tools
find_depot_tools.add_depot_tools_to_path()
-import roll_dep_svn
-from third_party import upload
-
-# Avoid depot_tools/third_party/upload.py print verbose messages.
-upload.verbosity = 0 # Errors only.
CHROMIUM_GIT_URL = 'https://chromium.googlesource.com/chromium/src.git'
CL_ISSUE_RE = re.compile('^Issue number: ([0-9]+) \((.*)\)$')
@@ -322,14 +317,10 @@ class AutoRoller(object):
def _UpdateDep(self, deps_filename, dep_relative_to_src, commit_info):
dep_name = _PosixPath(os.path.join('src', dep_relative_to_src))
-
- # roll_dep_svn.py relies on cwd being the Chromium checkout, so let's
- # temporarily change the working directory and then change back.
- cwd = os.getcwd()
- os.chdir(os.path.dirname(deps_filename))
- roll_dep_svn.update_deps(deps_filename, dep_relative_to_src, dep_name,
- commit_info.git_commit, '')
- os.chdir(cwd)
+ dep_revision = '%s@%s' % (dep_name, commit_info.git_commit)
+ self._RunCommand(
+ ['gclient', 'setdep', '-r', dep_revision],
+ working_dir=os.path.dirname(deps_filename))
def _UpdateWebGLRevTextFile(self, txt_filename, commit_info):
# Rolling the WebGL conformance tests must cause at least all of
diff --git a/chromium/tools/run-swarmed.py b/chromium/tools/run-swarmed.py
index 0c87ff63f26..b321e6baf3b 100755
--- a/chromium/tools/run-swarmed.py
+++ b/chromium/tools/run-swarmed.py
@@ -134,7 +134,7 @@ def main():
help='Number of copies to spawn.')
parser.add_argument('--device-os', default='M',
help='Run tests on the given version of Android.')
- parser.add_argument('--pool', default='Chrome',
+ parser.add_argument('--pool', default='chromium.tests',
help='Use the given swarming pool.')
parser.add_argument('--results', '-r', default='results',
help='Directory in which to store results.')
diff --git a/chromium/tools/traffic_annotation/auditor/BUILD.gn b/chromium/tools/traffic_annotation/auditor/BUILD.gn
index a2c8ebfa81d..bee4e1a8164 100644
--- a/chromium/tools/traffic_annotation/auditor/BUILD.gn
+++ b/chromium/tools/traffic_annotation/auditor/BUILD.gn
@@ -70,7 +70,8 @@ source_set("auditor_sources") {
":traffic_annotation",
"//base",
"//net/traffic_annotation",
- "//third_party/libxml",
+ "//third_party/libxml:xml_reader", # Safe, consumes Chromium-produced file.
+ "//third_party/libxml:xml_writer",
"//third_party/protobuf:protobuf_full",
"//third_party/re2",
]
diff --git a/chromium/tools/traffic_annotation/auditor/DEPS b/chromium/tools/traffic_annotation/auditor/DEPS
index 2e35345cf47..461bca1f892 100644
--- a/chromium/tools/traffic_annotation/auditor/DEPS
+++ b/chromium/tools/traffic_annotation/auditor/DEPS
@@ -1,6 +1,6 @@
include_rules = [
"+components/policy/proto",
- "+third_party/libxml",
+ "+third_party/libxml/chromium",
"+third_party/protobuf/src/google",
"+third_party/re2",
]
diff --git a/chromium/tools/traffic_annotation/auditor/safe_list.txt b/chromium/tools/traffic_annotation/auditor/safe_list.txt
index 7367dd5378d..a3f53f80d4e 100644
--- a/chromium/tools/traffic_annotation/auditor/safe_list.txt
+++ b/chromium/tools/traffic_annotation/auditor/safe_list.txt
@@ -1,6 +1,7 @@
# This is a comma separated file, specifying the safe list for network traffic
# annotation auditor. Please refer to README.md for more details.
-all,tools/*,*test*,*fuzzer*,*mock*,*fake*
+# Please remove content_browser_client_impl.cc after annotation is updated.
+all,tools/*,*test*,*fuzzer*,*mock*,*fake*,weblayer/*
missing,remoting/host/token_validator_factory_impl.cc
missing,components/cronet/cronet_url_request.cc
missing,net/tools/quic/quic_http_proxy_backend_stream.cc
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 a07a7ea5af9..add0cf96afa 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_auditor_unittest.cc
@@ -50,8 +50,6 @@ const base::FilePath kClangToolPath =
const std::set<int> kDummyDeprecatedIDs = {100, 101, 102};
} // namespace
-using namespace testing;
-
class TrafficAnnotationAuditorTest : public ::testing::Test {
public:
void SetUp() override {
diff --git a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
index d7f40968b69..db8c6035ab8 100644
--- a/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
+++ b/chromium/tools/traffic_annotation/auditor/traffic_annotation_exporter.cc
@@ -12,7 +12,8 @@
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
#include "build/build_config.h"
-#include "third_party/libxml/chromium/libxml_utils.h"
+#include "third_party/libxml/chromium/xml_reader.h"
+#include "third_party/libxml/chromium/xml_writer.h"
#include "third_party/protobuf/src/google/protobuf/text_format.h"
#include "tools/traffic_annotation/auditor/traffic_annotation_auditor.h"
diff --git a/chromium/tools/traffic_annotation/scripts/traffic_annotation_auditor_tests.py b/chromium/tools/traffic_annotation/scripts/traffic_annotation_auditor_tests.py
index 95c9bc0250e..14c2ed99e2a 100755
--- a/chromium/tools/traffic_annotation/scripts/traffic_annotation_auditor_tests.py
+++ b/chromium/tools/traffic_annotation/scripts/traffic_annotation_auditor_tests.py
@@ -54,30 +54,23 @@ class TrafficAnnotationTestsChecker():
"""
configs = [
- [ # Similar to trybot.
+ # Similar to trybot.
+ [
"--test-only",
"--error-resilient",
"--extractor-backend=python_script",
],
- [ # Failing on any runtime error.
+ # Failing on any runtime error.
+ [
"--test-only",
"--extractor-backend=python_script",
],
- [ # No heuristic filtering.
+ # No heuristic filtering.
+ [
"--test-only",
"--no-filtering",
"--extractor-backend=python_script",
],
-
- [ # Clang tool backend.
- "--test-only",
- "--extractor-backend=clang_tool",
- ],
- [ # Clang tool backend, no heuristic filtering.
- "--test-only",
- "--no-filtering",
- "--extractor-backend=clang_tool",
- ],
]
self.last_result = None
diff --git a/chromium/tools/traffic_annotation/summary/OWNERS b/chromium/tools/traffic_annotation/summary/OWNERS
index cea39bef584..8b48363f900 100644
--- a/chromium/tools/traffic_annotation/summary/OWNERS
+++ b/chromium/tools/traffic_annotation/summary/OWNERS
@@ -1,5 +1,2 @@
-dullweber@chromium.org
-mkwst@chromium.org
-msramek@chromium.org
-nicolaso@chromium.org
-rhalavati@chromium.org
+set noparent
+file://tools/traffic_annotation/summary/TRAFFIC_ANNOTATION_OWNERS
diff --git a/chromium/tools/traffic_annotation/summary/TRAFFIC_ANNOTATION_OWNERS b/chromium/tools/traffic_annotation/summary/TRAFFIC_ANNOTATION_OWNERS
new file mode 100644
index 00000000000..cea39bef584
--- /dev/null
+++ b/chromium/tools/traffic_annotation/summary/TRAFFIC_ANNOTATION_OWNERS
@@ -0,0 +1,5 @@
+dullweber@chromium.org
+mkwst@chromium.org
+msramek@chromium.org
+nicolaso@chromium.org
+rhalavati@chromium.org
diff --git a/chromium/tools/traffic_annotation/summary/annotations.xml b/chromium/tools/traffic_annotation/summary/annotations.xml
index 60c9d92c787..fa03e8cfc3d 100644
--- a/chromium/tools/traffic_annotation/summary/annotations.xml
+++ b/chromium/tools/traffic_annotation/summary/annotations.xml
@@ -30,7 +30,6 @@ Refer to README.md for content description and update process.
<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="bundled_exchanges_start_url_loader" hash_code="105810794" type="0" content_hash_code="20630448" os_list="linux,windows" file_path="content/browser/web_package/bundled_exchanges_handle.cc"/>
<item id="captive_portal_service" hash_code="88754904" type="0" content_hash_code="70737580" os_list="linux,windows" file_path="chrome/browser/captive_portal/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=""/>
@@ -38,7 +37,8 @@ Refer to README.md for content description and update process.
<item id="cast_socket" hash_code="115192205" type="0" content_hash_code="42881651" os_list="linux,windows" file_path="components/cast_channel/cast_socket.cc"/>
<item id="cast_udp_socket" hash_code="22573197" type="0" content_hash_code="75328301" os_list="linux,windows" file_path="components/mirroring/service/udp_socket_client.cc"/>
<item id="cast_udp_transport" hash_code="5576536" type="0" content_hash_code="107643273" os_list="linux,windows" file_path="media/cast/net/udp_transport_impl.cc"/>
- <item id="certificate_verifier" hash_code="113553577" type="0" content_hash_code="62346354" os_list="linux,windows" file_path="net/cert_net/cert_net_fetcher_impl.cc"/>
+ <item id="certificate_verifier_url_loader" hash_code="80134684" type="0" content_hash_code="92630208" os_list="linux,windows" file_path="services/network/public/cpp/cert_verifier/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_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_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="50235856" os_list="windows" file_path="chrome/chrome_cleaner/logging/cleaner_logging_service.cc"/>
@@ -114,6 +114,7 @@ Refer to README.md for content description and update process.
<item id="gaia_auth_multilogin" hash_code="31445884" type="0" content_hash_code="77730858" os_list="linux,windows" file_path="google_apis/gaia/gaia_auth_fetcher.cc"/>
<item id="gaia_auth_revoke_token" hash_code="133982351" type="0" content_hash_code="96665330" os_list="linux,windows" file_path="google_apis/gaia/gaia_auth_fetcher.cc"/>
<item id="gaia_cookie_manager_external_cc_result" hash_code="4300475" type="0" content_hash_code="31188375" os_list="linux,windows" file_path="components/signin/internal/identity_manager/gaia_cookie_manager_service.cc"/>
+ <item id="gaia_create_reauth_proof_token_for_parent" hash_code="67750043" type="0" content_hash_code="103500636" os_list="linux,windows" file_path="google_apis/gaia/gaia_auth_fetcher.cc"/>
<item id="gaia_oauth_client_get_token_info" hash_code="32585152" type="0" content_hash_code="128143346" os_list="linux,windows" file_path="google_apis/gaia/gaia_oauth_client.cc"/>
<item id="gaia_oauth_client_get_tokens" hash_code="5637379" type="0" content_hash_code="12099176" os_list="linux,windows" file_path="google_apis/gaia/gaia_oauth_client.cc"/>
<item id="gaia_oauth_client_get_user_info" hash_code="83476155" type="0" content_hash_code="35159007" os_list="linux,windows" file_path="google_apis/gaia/gaia_oauth_client.cc"/>
@@ -138,7 +139,7 @@ Refer to README.md for content description and update process.
<item id="icon_catcher_get_large_icon" hash_code="44494884" type="0" content_hash_code="98262037" os_list="linux,windows" file_path="components/ntp_tiles/icon_cacher_impl.cc"/>
<item id="image_annotation" hash_code="107881858" type="0" content_hash_code="96203979" 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="34678180" os_list="linux,windows" file_path="components/feed/core/feed_networking_host.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="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" content_hash_code="78425687" os_list="linux,windows" file_path="components/invalidation/impl/gcm_network_channel.cc"/>
<item id="kids_chrome_management_client_classify_url" hash_code="109987793" type="0" deprecated="2019-07-30" content_hash_code="112740597" file_path=""/>
@@ -147,7 +148,7 @@ Refer to README.md for content description and update process.
<item id="logo_service" hash_code="35473769" type="0" content_hash_code="20271299" os_list="linux,windows" file_path="components/search_provider_logos/logo_service_impl.cc"/>
<item id="logo_tracker" hash_code="36859107" type="0" deprecated="2018-12-07" content_hash_code="67588075" file_path=""/>
<item id="lookup_single_password_leak" hash_code="16927377" type="0" content_hash_code="12158296" os_list="linux,windows" file_path="components/password_manager/core/browser/leak_detection/leak_detection_request.cc"/>
- <item id="metrics_report_ukm" hash_code="727478" type="0" content_hash_code="102972932" os_list="linux,windows" file_path="components/metrics/net/net_metrics_log_uploader.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="missing" hash_code="77012883" type="0" reserved="1" os_list="linux,windows" file_path=""/>
@@ -178,7 +179,8 @@ Refer to README.md for content description and update process.
<item id="omnibox_suggest_deletion" hash_code="84212388" type="0" content_hash_code="24981550" os_list="linux,windows" file_path="components/omnibox/browser/base_search_provider.cc"/>
<item id="omnibox_zerosuggest" hash_code="7687691" type="0" content_hash_code="119419625" os_list="linux,windows" file_path="components/omnibox/browser/remote_suggestions_service.cc"/>
<item id="one_google_bar_service" hash_code="78917933" type="0" content_hash_code="46527252" os_list="linux,windows" file_path="chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc"/>
- <item id="open_screen_message" hash_code="95250780" type="0" deprecated="2019-09-05" content_hash_code="39027953" file_path=""/>
+ <item id="open_screen_message" hash_code="95250780" type="0" content_hash_code="39027953" os_list="linux" file_path="chrome/browser/media/router/providers/openscreen/platform/chrome_udp_socket.cc"/>
+ <item id="open_screen_tls_message" hash_code="61695471" type="0" content_hash_code="28355565" os_list="linux" file_path="chrome/browser/media/router/providers/openscreen/platform/chrome_tls_connection_factory.cc"/>
<item id="open_search" hash_code="107267424" type="0" content_hash_code="83025542" os_list="linux,windows" file_path="components/search_engines/template_url_fetcher.cc"/>
<item id="optimization_guide_model" hash_code="106373593" type="0" content_hash_code="32403047" os_list="linux,windows" file_path="chrome/browser/optimization_guide/prediction/prediction_model_fetcher.cc"/>
<item id="origin_policy_loader" hash_code="6483617" type="0" content_hash_code="20680909" os_list="linux,windows" file_path="services/network/origin_policy/origin_policy_fetcher.cc"/>
@@ -222,6 +224,7 @@ Refer to README.md for content description and update process.
<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="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="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"/>
@@ -230,7 +233,7 @@ Refer to README.md for content description and update process.
<item id="resource_prefetch" hash_code="110815970" type="0" deprecated="2018-02-28" content_hash_code="39251261" file_path=""/>
<item id="rlz_ping" hash_code="99279418" type="0" content_hash_code="102108802" os_list="windows" file_path="rlz/lib/financial_ping.cc"/>
<item id="safe_browsing_backup_request" hash_code="106980485" type="0" deprecated="2018-08-14" content_hash_code="101760679" file_path=""/>
- <item id="safe_browsing_binary_upload" hash_code="71663319" type="0" content_hash_code="105913171" os_list="linux,windows" file_path="chrome/browser/safe_browsing/download_protection/binary_upload_service.cc"/>
+ <item id="safe_browsing_binary_upload" hash_code="71663319" type="0" content_hash_code="105913171" os_list="linux,windows" file_path="chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.cc"/>
<item id="safe_browsing_cache_collector" hash_code="115907811" type="0" content_hash_code="36392362" os_list="linux,windows" file_path="components/safe_browsing/browser/threat_details_cache.cc"/>
<item id="safe_browsing_certificate_error_reporting" hash_code="66590631" type="0" content_hash_code="50197576" os_list="linux,windows" file_path="chrome/browser/ssl/certificate_error_reporter.cc"/>
<item id="safe_browsing_chunk_backup_request" hash_code="79957943" type="0" deprecated="2018-08-14" content_hash_code="133850277" file_path=""/>
@@ -241,7 +244,7 @@ Refer to README.md for content description and update process.
<item id="safe_browsing_get_full_hash" hash_code="68745894" type="0" deprecated="2018-08-14" content_hash_code="21739198" file_path=""/>
<item id="safe_browsing_incident" hash_code="124950347" type="0" content_hash_code="58481082" os_list="linux,windows" file_path="chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc"/>
<item id="safe_browsing_module_loader" hash_code="6019475" type="0" content_hash_code="49511650" os_list="linux,windows" file_path="chrome/browser/safe_browsing/client_side_model_loader.cc"/>
- <item id="safe_browsing_realtime_url_lookup" hash_code="119324658" type="0" content_hash_code="23793759" os_list="linux,windows" file_path="components/safe_browsing/realtime/url_lookup_service.cc"/>
+ <item id="safe_browsing_realtime_url_lookup" hash_code="119324658" type="0" content_hash_code="17024823" os_list="linux,windows" file_path="components/safe_browsing/realtime/url_lookup_service.cc"/>
<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/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/db/v4_update_protocol_manager.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"/>
@@ -271,7 +274,6 @@ Refer to README.md for content description and update process.
<item id="supervised_users_blacklist" hash_code="78544924" type="0" deprecated="2019-07-30" content_hash_code="10924669" file_path=""/>
<item id="sync_attachment_downloader" hash_code="26372521" type="0" deprecated="2018-02-08" content_hash_code="70097603" file_path=""/>
<item id="sync_attachment_uploader" hash_code="132657055" type="0" deprecated="2018-02-08" content_hash_code="25152853" file_path=""/>
- <item id="sync_clipboard_service" hash_code="109391496" type="0" content_hash_code="91758204" os_list="linux,windows" file_path="chrome/browser/sync/sync_clipboard_service.cc"/>
<item id="sync_file_system" hash_code="102819690" type="0" content_hash_code="52153962" os_list="linux,windows" file_path="chrome/browser/sync_file_system/drive_backend/sync_engine.cc"/>
<item id="sync_http_bridge" hash_code="57144960" type="0" content_hash_code="32868346" os_list="linux,windows" file_path="components/sync/engine/net/http_bridge.cc"/>
<item id="sync_stop_reporter" hash_code="5021348" type="0" content_hash_code="56902850" os_list="linux,windows" file_path="components/sync/driver/sync_stopped_reporter.cc"/>
@@ -288,6 +290,7 @@ Refer to README.md for content description and update process.
<item id="url_prevision_fetcher" hash_code="118389509" type="0" content_hash_code="66145513" os_list="linux,windows" file_path="content/browser/media/url_provision_fetcher.cc"/>
<item id="user_info_fetcher" hash_code="22265491" type="0" content_hash_code="72016232" os_list="linux,windows" file_path="components/policy/core/common/cloud/user_info_fetcher.cc"/>
<item id="viz_devtools_server" hash_code="16292315" type="0" content_hash_code="70061664" os_list="linux,windows" file_path="components/ui_devtools/devtools_server.cc"/>
+ <item id="web_bundle_start_url_loader" hash_code="95880423" type="0" content_hash_code="26756886" os_list="linux,windows" file_path="content/browser/web_package/web_bundle_handle.cc"/>
<item id="web_history_counter" hash_code="137457845" type="1" second_id="110307337" content_hash_code="49663381" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/counters/history_counter.cc"/>
<item id="web_history_delete_url" hash_code="41749213" type="1" second_id="110307337" content_hash_code="25943026" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/history/core/browser/history_service.cc"/>
<item id="web_history_expire" hash_code="60946824" type="1" second_id="110307337" content_hash_code="92626030" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/history/core/browser/browsing_history_service.cc"/>
diff --git a/chromium/tools/v8_context_snapshot/BUILD.gn b/chromium/tools/v8_context_snapshot/BUILD.gn
index 2d7b357cfc2..7cd1597a83d 100644
--- a/chromium/tools/v8_context_snapshot/BUILD.gn
+++ b/chromium/tools/v8_context_snapshot/BUILD.gn
@@ -42,9 +42,6 @@ if (use_v8_context_snapshot) {
deps = [
":v8_context_snapshot",
]
- sources = [
- "$root_out_dir/natives_blob.bin",
- ]
renaming_sources = [ "$root_out_dir/v8_context_snapshot.bin" ]
if (current_cpu == "arm" || current_cpu == "x86" ||
current_cpu == "mipsel") {
@@ -70,13 +67,24 @@ if (use_v8_context_snapshot) {
"--output_file=$output_path",
]
- outputs = [
- output_file,
- ]
-
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" ]
+ }
+
+ outputs = [
+ output_file,
+ ]
}
# This config disables a link time optimization "ICF", which may merge different
diff --git a/chromium/tools/v8_context_snapshot/DEPS b/chromium/tools/v8_context_snapshot/DEPS
index 581e823289d..79fe7d34005 100644
--- a/chromium/tools/v8_context_snapshot/DEPS
+++ b/chromium/tools/v8_context_snapshot/DEPS
@@ -4,5 +4,5 @@ include_rules = [
"+third_party/blink/public",
"+gin/v8_initializer.h",
"+mojo/core/embedder",
- "+services/service_manager/public",
+ "+mojo/public",
]
diff --git a/chromium/tools/v8_context_snapshot/v8_context_snapshot_generator.cc b/chromium/tools/v8_context_snapshot/v8_context_snapshot_generator.cc
index e6b5b7a78d5..3803ef84a3e 100644
--- a/chromium/tools/v8_context_snapshot/v8_context_snapshot_generator.cc
+++ b/chromium/tools/v8_context_snapshot/v8_context_snapshot_generator.cc
@@ -11,7 +11,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "gin/v8_initializer.h"
#include "mojo/core/embedder/embedder.h"
-#include "services/service_manager/public/cpp/binder_registry.h"
+#include "mojo/public/cpp/bindings/binder_map.h"
#include "third_party/blink/public/web/blink.h"
#include "third_party/blink/public/web/web_v8_context_snapshot.h"
#include "v8/include/v8.h"
@@ -37,7 +37,6 @@ int main(int argc, char** argv) {
base::CommandLine::Init(argc, argv);
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
gin::V8Initializer::LoadV8Snapshot();
- gin::V8Initializer::LoadV8Natives();
#endif
// Set up environment to make Blink and V8 workable.
@@ -50,8 +49,8 @@ int main(int argc, char** argv) {
// Take a snapshot.
SnapshotPlatform platform;
- service_manager::BinderRegistry empty_registry;
- blink::CreateMainThreadAndInitialize(&platform, &empty_registry);
+ mojo::BinderMap binders;
+ blink::CreateMainThreadAndInitialize(&platform, &binders);
v8::StartupData blob = blink::WebV8ContextSnapshot::TakeSnapshot();
// Save the snapshot as a file. Filename is given in a command line option.
diff --git a/chromium/tools/web_dev_style/js_checker.py b/chromium/tools/web_dev_style/js_checker.py
index ab4e00c3584..57e7497bcd7 100644
--- a/chromium/tools/web_dev_style/js_checker.py
+++ b/chromium/tools/web_dev_style/js_checker.py
@@ -68,7 +68,9 @@ class JSChecker(object):
for f in affected_js_files:
affected_js_files_paths.append(f.AbsoluteLocalPath())
- args = ["--color", "--format", format, "--ignore-pattern '!.eslintrc.js'"]
+ 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 += affected_js_files_paths
import eslint
diff --git a/chromium/tools/web_dev_style/js_checker_eslint_test.py b/chromium/tools/web_dev_style/js_checker_eslint_test.py
index 8eb4c421c96..9493c3e1961 100755
--- a/chromium/tools/web_dev_style/js_checker_eslint_test.py
+++ b/chromium/tools/web_dev_style/js_checker_eslint_test.py
@@ -44,11 +44,11 @@ class JsCheckerEsLintTest(unittest.TestCase):
self.assertEqual(line, message.get('line'))
def testGetElementByIdCheck(self):
- results_json = self._runChecks('var a = document.getElementById(\'foo\');')
+ results_json = self._runChecks("const a = document.getElementById('foo');")
self._assertError(results_json, 'no-restricted-properties', 1)
def testPrimitiveWrappersCheck(self):
- results_json = self._runChecks('var a = new Number(1);')
+ results_json = self._runChecks('const a = new Number(1);')
self._assertError(results_json, 'no-new-wrappers', 1)
diff --git a/chromium/tools/win/ShowGlobals/ShowGlobals.cc b/chromium/tools/win/ShowGlobals/ShowGlobals.cc
index 792c671ce7b..e1f10d11852 100644
--- a/chromium/tools/win/ShowGlobals/ShowGlobals.cc
+++ b/chromium/tools/win/ShowGlobals/ShowGlobals.cc
@@ -22,8 +22,10 @@
#include <dia2.h>
#include <stdio.h>
+#include <wrl/client.h>
#include <algorithm>
+#include <string>
#include <vector>
#include "base/win/atl.h"
@@ -92,7 +94,7 @@ bool DumpInterestingGlobals(IDiaSymbol* global, const wchar_t* filename) {
std::vector<SymbolData> symbols;
std::vector<RepeatData> repeats;
- CComPtr<IDiaEnumSymbols> enum_symbols;
+ Microsoft::WRL::ComPtr<IDiaEnumSymbols> enum_symbols;
HRESULT result =
global->findChildren(SymTagData, NULL, nsNone, &enum_symbols);
if (FAILED(result)) {
@@ -100,12 +102,9 @@ bool DumpInterestingGlobals(IDiaSymbol* global, const wchar_t* filename) {
return false;
}
- CComPtr<IDiaSymbol> symbol;
- // Must call symbol.Release() at end of loop to prepare for reuse of symbol
- // smart pointer, because DIA2 is not smart-pointer aware.
+ Microsoft::WRL::ComPtr<IDiaSymbol> symbol;
for (ULONG celt = 0;
- SUCCEEDED(enum_symbols->Next(1, &symbol, &celt)) && (celt == 1);
- symbol.Release()) {
+ SUCCEEDED(enum_symbols->Next(1, &symbol, &celt)) && (celt == 1);) {
DWORD location_type = 0;
// If we can't get the location type then we assume the variable is not of
// interest.
@@ -120,7 +119,7 @@ bool DumpInterestingGlobals(IDiaSymbol* global, const wchar_t* filename) {
// If we call get_length on symbol it works for functions but not for
// data. For some reason for data we have to call get_type() to get
// another IDiaSymbol object which we can query for length.
- CComPtr<IDiaSymbol> type_symbol;
+ Microsoft::WRL::ComPtr<IDiaSymbol> type_symbol;
if (FAILED(symbol->get_type(&type_symbol))) {
wprintf(L"Get_type failed.\n");
continue;
@@ -195,9 +194,9 @@ bool DumpInterestingGlobals(IDiaSymbol* global, const wchar_t* filename) {
}
bool Initialize(const wchar_t* filename,
- CComPtr<IDiaDataSource>& source,
- CComPtr<IDiaSession>& session,
- CComPtr<IDiaSymbol>& global) {
+ Microsoft::WRL::ComPtr<IDiaDataSource>& source,
+ Microsoft::WRL::ComPtr<IDiaSession>& session,
+ Microsoft::WRL::ComPtr<IDiaSymbol>& global) {
// Initialize DIA2
HRESULT hr = CoCreateInstance(__uuidof(DiaSource), NULL, CLSCTX_INPROC_SERVER,
__uuidof(IDiaDataSource), (void**)&source);
@@ -246,13 +245,13 @@ int wmain(int argc, wchar_t* argv[]) {
// Extra scope so that we can call CoUninitialize after we destroy our local
// variables.
{
- CComPtr<IDiaDataSource> source;
- CComPtr<IDiaSession> session;
- CComPtr<IDiaSymbol> global;
+ Microsoft::WRL::ComPtr<IDiaDataSource> source;
+ Microsoft::WRL::ComPtr<IDiaSession> session;
+ Microsoft::WRL::ComPtr<IDiaSymbol> global;
if (!(Initialize(filename, source, session, global)))
return -1;
- DumpInterestingGlobals(global, filename);
+ DumpInterestingGlobals(global.Get(), filename);
}
CoUninitialize();