[ Merge of http://go/wvgerrit/137951 ]
ValueMetric was not checking whether certain unsigned types will
overflow when casted to protobuf's signed int64 type. This CL
adds a max value to prevent potential overflows.
The value metric has also been updated to an emum to represent its
possible three state, as opposed to using two boolean flags. For basic
value metrics, this saves about 4 bytes of space. This works out to
being ~100 bytes per crypto session, ~20 bytes per CDM session and ~20
bytes per engine metrics.
Bug: 204946540
Test: Metric unit tests
Change-Id: I688bece8f31cccaf2a25bd8f99d9b080b0efd0de