Fix crash in recording OCR language when there are no results.

When OCR returns no results, ScreenAI service tried to record the most
detected language in the non existing result and crashed.
A TODO is added to extend testing to cover this situaiton, but the test
is not added in this CL to make it easier to merge the fix in previous
branch.

AX-Relnotes: n/a
Bug: 391040508
Change-Id: I06a3ec72921b486056a4fd981ef876efbf954afb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6182128
Auto-Submit: Ramin Halavati <[email protected]>
Commit-Queue: Kyungjun Lee <[email protected]>
Reviewed-by: Kyungjun Lee <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1409132}
diff --git a/services/screen_ai/screen_ai_service_impl.cc b/services/screen_ai/screen_ai_service_impl.cc
index e00574ae..f89ce6f 100644
--- a/services/screen_ai/screen_ai_service_impl.cc
+++ b/services/screen_ai/screen_ai_service_impl.cc
@@ -354,12 +354,15 @@
     base::UmaHistogramCounts10M("Accessibility.ScreenAI.OCR.ImageSize.PDF",
                                 image.width() * image.height());
 
-    std::optional<uint64_t> most_detected_language =
-        GetMostDetectedLanguageInOcrData(*result);
-    if (most_detected_language.has_value()) {
-      base::UmaHistogramSparse(
-          "Accessibility.ScreenAI.OCR.MostDetectedLanguage.PDF",
-          most_detected_language.value());
+    // TODO(crbug.com/391040508): Add test to cover this case.
+    if (result.has_value()) {
+      std::optional<uint64_t> most_detected_language =
+          GetMostDetectedLanguageInOcrData(*result);
+      if (most_detected_language.has_value()) {
+        base::UmaHistogramSparse(
+            "Accessibility.ScreenAI.OCR.MostDetectedLanguage.PDF",
+            most_detected_language.value());
+      }
     }
   }