[tracing] Change outer/inner size representation in memory dumps
The current dump model expects each dump provider to expose an
outer_size and inner_size, the former being the amount of memory
requested to the system, the latter being the actual size of allocated
objects.
This turned out to be pretty confusing, both for chrome://tracing
users and for Chrome developers that write a dump provider.
Furthermore, this doesn't play well with the upcoming memory graphs
(see crbug.com/492102) where dumps can have ownership/retention
relationships.
This CL is reworking the existing dump providers and switching them to
just one size attribute and express outer/inner (where available) via
nesting, as follows:
BEFORE:
malloc outer_size:1024 inner_size:800
AFTER:
malloc size:1024
malloc/allocated_objects size:800
Furthermore this CL performs some minor cleanup removing !nullptr
checks to createAllocatorDump() calls. Rationale: dump providers
should only return false to OnMemoryDump when the dump fails for
dumper-related reasons (e.g., the subsystem being dumped was in
a weird state and could not be traversed to generate a dump) and
should just assume that createAllocatorDump() never fails.
It is impossible to enforce that all the dump providers will do
the check and gracefully fail, so there is no point doing such
check at all in any dumper.
BUG=495002
Review URL: https://codereview.chromium.org/
1150473004
Cr-Commit-Position: refs/heads/master@{#332627}