Lina Cambridge 0c9500bf00 Bug 1552621 - Record shutdown blocker progress in the bookmarks mirror. r=markh,tcsc
This commit introduces a `mozISyncedBookmarksMirrorProgressListener`
interface for capturing telemetry and updating shutdown blocker state
after each step of the merge, instead of waiting until the end. This
also means we can also record events for interrupted and failed merges,
and pass validation data through to the Sync ping.

Shutdown hang crash reports now have a `steps` field, indicating the
sequence of completed steps and when they were recorded. If the last
step in the hang report is `fetchLocalTree`, we know the merger is
blocked on `fetchNewLocalContents`. If the last step is
`fetchNewLocalContents`, the merger is stuck at `fetchRemoteTree`,
since that's the next step after `fetchNewLocalContents`.

This commit also implements `Driver::record_telemetry_event` to
dispatch progress callback runnables to the main thread.

Differential Revision: https://phabricator.services.mozilla.com/D31950

--HG--
extra : moz-landing-system : lando
2019-06-03 23:04:37 +00:00
..