Capture a report on failed browser rendez-vous.

Overview:
Browser process hangs are believed to be responsible for a large fraction of browser unclean shutdowns. This patch is to get visibility into the problem on windows using the Kasko reporter.

Note:
This functionality is hidden behind buildflags, and only triggers for users with stats collection consent on canary/unspecified channels. At this time, it is only considered for one-off releases.

Details:
- Use of the Kasko reporter is required for its ability to capture reports from other processes.
- Pulls out Kasko reporting code to kasko_utils
- Invoke Kasko on failed rendez-vous.
- Hidden behind build flags (kasko and kasko-rdv-capture).

BUG=478209

Review URL: https://codereview.chromium.org/1844023002

Cr-Original-Commit-Position: refs/heads/master@{#386983}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f071e88974318cec29c02bd5b92fe61868da8569
This commit is contained in:
manzagop 2016-04-13 07:36:00 -07:00 коммит произвёл Commit bot
Родитель 31466d3b44
Коммит 9f73de0bb6
1 изменённых файлов: 20 добавлений и 9 удалений

Просмотреть файл

@ -1065,18 +1065,23 @@
# http://crbug.com/574476
'fastbuild%': 2,
}],
# Enable crash reporting via Kasko.
# Enable hang report capture. Capture can only be enabled for 32bit
# Windows.
['OS=="win" and target_arch=="ia32" and branding=="Chrome"', {
# This needs to be enabled with kasko_hang_reports.
'kasko%': 0,
# Enable hang reports from the watcher process.
'kasko_hang_reports%': 0,
# Enable failed rendez-vous reports.
'kasko_failed_rdv_reports%': 0,
}, {
'kasko%': 0,
# Enable hang reports from the watcher process.
'kasko_hang_reports%': 0,
# Enable failed rendez-vous reports.
'kasko_failed_rdv_reports%': 0,
}],
],
# Enable hang reports in Kasko. Requires Kasko to be enabled.
'kasko_hang_reports%': 0,
# Kasko reporting is disabled by default, but may get enabled below.
'kasko%': 0,
# Setting this to '0' will cause V8's startup snapshot to be
# embedded in the binary instead of being a external files.
@ -1228,6 +1233,7 @@
'syzyasan%': '<(syzyasan)',
'kasko%': '<(kasko)',
'kasko_hang_reports%': '<(kasko_hang_reports)',
'kasko_failed_rdv_reports%': '<(kasko_failed_rdv_reports)',
'syzygy_optimize%': '<(syzygy_optimize)',
'lsan%': '<(lsan)',
'msan%': '<(msan)',
@ -2023,10 +2029,15 @@
}, {
'win_console_app%': 0,
}],
# Disable hang reporting for syzyasan builds.
['syzyasan==1', {
'kasko%': 1,
# Disable hang reports for SyzyASAN builds.
# Note: override.
'kasko_hang_reports': 0,
'kasko_failed_rdv_reports': 0,
}],
# Enable the Kasko reporter for syzyasan builds and hang reporting.
['syzyasan==1 or kasko_hang_reports==1 or kasko_failed_rdv_reports==1', {
'kasko': 1,
}],
['component=="shared_library" and "<(GENERATOR)"=="ninja"', {
# Only enabled by default for ninja because it's buggy in VS.