Collect InstallableManager errors instead of stopping on the first error.

This CL refactors the error handling code in InstallableManager to add a
debug mode where all errors are collected and returned to callers. When
debug mode is specified, the InstallableManager will not short-circuit
fail if it can avoid it (i.e. if the manifest exists and is non-empty).
Instead, it will attempt to run all tasks, accumulate errors, and return
a list of all errors in the InstallableData struct.

Callsites are updated to accept the new std::vector member in
InstallableData. Tests are added to check the accumulation behaviour.


Change-Id: Ic7c50313cab16c7558cba105ddbe5d5556000b92
Commit-Queue: Dominick Ng <>
Reviewed-by: Alan Cutter <>
Cr-Commit-Position: refs/heads/master@{#642942}
20 files changed