[base/task] Refactor task flow events.

This patch makes substantial changes to how task trace events are
recorded, with the overall goal of reducing overall trace size with
task flow events enabled:
- Change TRACE_EVENT to TRACE_EVENT_INSTANT for outgoing flow events
(PostTask).
- Remove "task queue name" parameter from PostTask event as it was an
unserialised string and wasn't really used.
- Merge incoming flow event (RunTask) with the top-level
(ThreadControllerImpl::RunTask / ThreadPool_RunTask).
- Merge detailed ThreadPool task trace events into ThreadPool_RunTask,
conditionally emitting typed arguments for the appropriate types (e.g.
priority / shutdown behaviour).

Effects on a typical trace size (ChromeBackForwardCacheBrowserTest.Basic).

Before:
- toplevel: 716KB.
- toplevel + toplevel.flow: 1940KB.

After:
- toplevel: 714KB.
- toplevel + toplevel.flow: 1352KB.

Traces: https://drive.google.com/drive/folders/1U2gyEYCMljdnDU1rjJIUepQR-V5WdMZw?usp=sharing

R=eseckler@chromium.org,gab@chromium.org
BUG=1043616

Change-Id: Ifb11a3537fced511b4d4f74f480871eca7f68db2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3220334
Commit-Queue: Alexander Timin <altimin@chromium.org>
Reviewed-by: Stephen Nusko <nuskos@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/main@{#935463}
NOKEYCHECK=True
GitOrigin-RevId: 9e6949e072e2385c0f90636eddabe8f90cf6cceb
1 file changed
tree: 04ef51d456f5ec92d4152b5cf190ed381cd88793
  1. trace_event_common.h