Fixed training data collection to support multi-output model

The current implementation of training data collection only records
the selected segment, which works when models have a single output.

For multi-output models we need to record all the outputs to determine
which labels apply and in which order.

This CL modifies TrainingDataCollector to retrieve the current result
from prefs and recording all scores into the existing UKM fields
`PredictionResult[1..10]`.

Bug: 1443061
Change-Id: Icbd33f86d072f755752effd91a411408902ff81a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4510552
Commit-Queue: Salvador Guerrero Ramos <[email protected]>
Reviewed-by: Siddhartha S <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1143594}
diff --git a/components/segmentation_platform/internal/segmentation_ukm_helper.cc b/components/segmentation_platform/internal/segmentation_ukm_helper.cc
index b731ab8..bad53f8 100644
--- a/components/segmentation_platform/internal/segmentation_ukm_helper.cc
+++ b/components/segmentation_platform/internal/segmentation_ukm_helper.cc
@@ -9,6 +9,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
 #include "base/time/clock.h"
+#include "base/time/time.h"
 #include "components/segmentation_platform/internal/constants.h"
 #include "components/segmentation_platform/internal/selection/segmentation_result_prefs.h"
 #include "components/segmentation_platform/internal/stats.h"
@@ -187,6 +188,10 @@
     std::vector<float> results(prediction_result->result().begin(),
                                prediction_result->result().end());
     AddPredictionResultToUkmModelExecution(&execution_result, results);
+    base::Time prediction_time = base::Time::FromDeltaSinceWindowsEpoch(
+        base::Microseconds(prediction_result->timestamp_us()));
+    execution_result.SetOutputDelaySec(
+        (base::Time::Now() - prediction_time).InSeconds());
   }
   if (selected_segment.has_value()) {
     execution_result.SetSelectionResult(selected_segment->segment_id);