[CP M130][lensoverlay] Add logging to distinguish Lens Overlay from legacy flows

This logging is being added to verify the previous flows do not get
significant traffic and can be cleaned up. The legacy flows already use
this logging, so adding Lens Overlay to it will allow us to track all
our flows in one histogram, and clean up those with little usage.

NO_IFTTT=This is a Desktop only change. IFTTT applies to iOS.

(cherry picked from commit ce640f3a3d1cf5ed144ca368eaee5f3cf447c9f4)

Bug: 366557741, 367693895
Change-Id: Iafc3aa3fb84c0a4810a96e70ec3ce443dc0d6809
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5868471
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: Duncan Mercer <mercerd@google.com>
Cr-Original-Commit-Position: refs/heads/main@{#1356515}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5874901
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/branch-heads/6723@{#94}
Cr-Branched-From: 985f2961df230630f9cbd75bd6fe463009855a11-refs/heads/main@{#1356013}
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 348128d8..c5511b1d 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -3304,16 +3304,11 @@
       break;
 
     case IDC_CONTENT_CONTEXT_SEARCHLENSFORVIDEOFRAME:
-      RecordAmbientSearchQuery(
-          lens::AmbientSearchEntryPoint::
-              CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_GOOGLE_LENS);
-      ExecSearchForVideoFrame(event_flags);
+      ExecSearchForVideoFrame(event_flags, /*is_lens_query=*/true);
       break;
 
     case IDC_CONTENT_CONTEXT_SEARCHWEBFORVIDEOFRAME:
-      RecordAmbientSearchQuery(lens::AmbientSearchEntryPoint::
-                                   CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_WEB);
-      ExecSearchForVideoFrame(event_flags);
+      ExecSearchForVideoFrame(event_flags, /*is_lens_query=*/false);
       break;
 
     case IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE:
@@ -4386,9 +4381,6 @@
     return;
   }
 
-  lens::RecordAmbientSearchQuery(
-      lens::AmbientSearchEntryPoint::
-          CONTEXT_MENU_SEARCH_IMAGE_WITH_GOOGLE_LENS);
   bool entered_through_keyboard =
       IsLensOptionEnteredThroughKeyboard(event_flags);
   bool lens_overlay_for_image_search_enabled =
@@ -4398,6 +4390,10 @@
           ->IsEnabled() &&
       lens::features::UseLensOverlayForImageSearch();
   if (lens_overlay_for_image_search_enabled && !entered_through_keyboard) {
+    lens::RecordAmbientSearchQuery(
+        lens::AmbientSearchEntryPoint::
+            CONTEXT_MENU_SEARCH_IMAGE_WITH_LENS_OVERLAY);
+
     auto view_bounds = render_frame_host->GetView()->GetViewBounds();
     auto tab_bounds = source_web_contents_->GetViewBounds();
     float device_scale_factor =
@@ -4421,6 +4417,12 @@
     // Lens Overlay flow.
     bool force_open_in_new_tab =
         lens_overlay_for_image_search_enabled && entered_through_keyboard;
+    lens::RecordAmbientSearchQuery(
+        lens_overlay_for_image_search_enabled
+            ? lens::AmbientSearchEntryPoint::
+                  CONTEXT_MENU_SEARCH_IMAGE_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK
+            : lens::AmbientSearchEntryPoint::
+                  CONTEXT_MENU_SEARCH_IMAGE_WITH_GOOGLE_LENS);
     core_tab_helper->SearchWithLens(
         render_frame_host, params().src_url,
         is_image_translate
@@ -4473,6 +4475,9 @@
     UserEducationService::MaybeNotifyPromoFeatureUsed(
         GetBrowserContext(), lens::features::kLensOverlay);
     if (!entered_through_keyboard) {
+      lens::RecordAmbientSearchQuery(
+          lens::AmbientSearchEntryPoint::
+              CONTEXT_MENU_SEARCH_REGION_WITH_LENS_OVERLAY);
       LensOverlayController* const controller =
           LensOverlayController::GetController(embedder_web_contents_);
       CHECK(controller);
@@ -4511,7 +4516,10 @@
         std::make_unique<lens::LensRegionSearchController>();
   }
   const lens::AmbientSearchEntryPoint entry_point =
-      is_google_default_search_provider
+      lens_overlay_for_region_search_enabled
+          ? lens::AmbientSearchEntryPoint::
+                CONTEXT_MENU_SEARCH_REGION_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK
+      : is_google_default_search_provider
           ? lens::AmbientSearchEntryPoint::
                 CONTEXT_MENU_SEARCH_REGION_WITH_GOOGLE_LENS
           : lens::AmbientSearchEntryPoint::CONTEXT_MENU_SEARCH_REGION_WITH_WEB;
@@ -4592,7 +4600,8 @@
       /*enable=*/true));
 }
 
-void RenderViewContextMenu::ExecSearchForVideoFrame(int event_flags) {
+void RenderViewContextMenu::ExecSearchForVideoFrame(int event_flags,
+                                                    bool is_lens_query) {
   base::RecordAction(UserMetricsAction("MediaContextMenu_SearchForVideoFrame"));
 
   RenderFrameHost* frame_host = GetRenderFrameHost();
@@ -4605,7 +4614,8 @@
       gfx::Size(lens::kMaxPixelsForImageSearch, lens::kMaxPixelsForImageSearch),
       lens::kMaxAreaForImageSearch,
       base::BindOnce(&RenderViewContextMenu::SearchForVideoFrame,
-                     weak_pointer_factory_.GetWeakPtr(), event_flags));
+                     weak_pointer_factory_.GetWeakPtr(), event_flags,
+                     is_lens_query));
 }
 
 void RenderViewContextMenu::ExecLiveCaption() {
@@ -4764,22 +4774,25 @@
 
 void RenderViewContextMenu::SearchForVideoFrame(
     int event_flags,
+    bool is_lens_query,
     const SkBitmap& bitmap,
     const gfx::Rect& region_bounds) {
   if (bitmap.isNull()) {
     return;
   }
 
+  bool lens_overlay_for_video_search_enabled =
+      GetBrowser()
+          ->GetFeatures()
+          .lens_overlay_entry_point_controller()
+          ->IsEnabled() &&
+      lens::features::UseLensOverlayForVideoFrameSearch() && is_lens_query;
   bool entered_through_keyboard =
       IsLensOptionEnteredThroughKeyboard(event_flags);
   bool force_open_in_new_tab = false;
   // TODO(crbug/353984457): Clean this branching when the new server
   // results flow is ready.
-  if (GetBrowser()
-          ->GetFeatures()
-          .lens_overlay_entry_point_controller()
-          ->IsEnabled() &&
-      lens::features::UseLensOverlayForVideoFrameSearch()) {
+  if (lens_overlay_for_video_search_enabled) {
     if (entered_through_keyboard) {
       // Using the keyboard to invoke this entry point should use the
       // Lens region search flow through core_tab_helper (with results forced
@@ -4796,6 +4809,10 @@
       float device_scale_factor =
           render_frame_host->GetView()->GetDeviceScaleFactor();
 
+      RecordAmbientSearchQuery(
+          lens::AmbientSearchEntryPoint::
+              CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_LENS_OVERLAY);
+
       // OpenLensOverlayWithPreselectedRegion() only takes a `ChromeRenderFrame`
       // to keep it alive while the mojo calls run, which is not needed here.
       OpenLensOverlayWithPreselectedRegion(
@@ -4817,11 +4834,19 @@
   auto image =
       gfx::Image(gfx::ImageSkia::CreateFromBitmap(bitmap, /*scale=*/1));
 
-  if (search::DefaultSearchProviderIsGoogle(GetProfile())) {
+  if (is_lens_query) {
+    RecordAmbientSearchQuery(
+        lens_overlay_for_video_search_enabled
+            ? lens::AmbientSearchEntryPoint::
+                  CONTEXT_MENU_SEARCH_VIDEO_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK
+            : lens::AmbientSearchEntryPoint::
+                  CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_GOOGLE_LENS);
     core_tab_helper->SearchWithLens(
         image, lens::EntryPoint::CHROME_VIDEO_FRAME_SEARCH_CONTEXT_MENU_ITEM,
         force_open_in_new_tab);
   } else {
+    RecordAmbientSearchQuery(lens::AmbientSearchEntryPoint::
+                                 CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_WEB);
     core_tab_helper->SearchByImage(image);
   }
 }
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chrome/browser/renderer_context_menu/render_view_context_menu.h
index 6b38745..91de578 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -378,7 +378,7 @@
   void ExecControls();
   void ExecSaveVideoFrameAs();
   void ExecCopyVideoFrame();
-  void ExecSearchForVideoFrame(int event_flags);
+  void ExecSearchForVideoFrame(int event_flags, bool is_lens_query);
   void ExecLiveCaption();
   void ExecRotateCW();
   void ExecRotateCCW();
@@ -398,6 +398,7 @@
 
   void MediaPlayerAction(const blink::mojom::MediaPlayerAction& action);
   void SearchForVideoFrame(int event_flags,
+                           bool is_lens_query,
                            const SkBitmap& bitmap,
                            const gfx::Rect& region_bounds);
   void PluginActionAt(const gfx::Point& location,
diff --git a/components/lens/lens_metrics.h b/components/lens/lens_metrics.h
index 274f737..29864c9 100644
--- a/components/lens/lens_metrics.h
+++ b/components/lens/lens_metrics.h
@@ -83,7 +83,15 @@
   WHATS_NEW_PROMO = 17,
   CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_GOOGLE_LENS = 18,
   CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_WEB = 19,
-  kMaxValue = CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_WEB
+  LENS_OVERLAY_LOCATION_BAR = 20,
+  LENS_OVERLAY_OVERFLOW_MENU = 21,
+  CONTEXT_MENU_SEARCH_IMAGE_WITH_LENS_OVERLAY = 22,
+  CONTEXT_MENU_SEARCH_REGION_WITH_LENS_OVERLAY = 23,
+  CONTEXT_MENU_SEARCH_VIDEO_FRAME_WITH_LENS_OVERLAY = 24,
+  CONTEXT_MENU_SEARCH_IMAGE_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK = 25,
+  CONTEXT_MENU_SEARCH_REGION_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK = 26,
+  CONTEXT_MENU_SEARCH_VIDEO_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK = 27,
+  kMaxValue = CONTEXT_MENU_SEARCH_VIDEO_WITH_LENS_OVERLAY_ACCESSIBILITY_FALLBACK
 };
 
 // This should be kept in sync with the LensRegionSearchAspectRatio enum
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 41a11ea..4d6a9f5 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -390,6 +390,24 @@
              Frame)"/>
   <int value="20" label="Lens Overlay Location Bar (Image)"/>
   <int value="21" label="Lens Overlay Overflow Menu (Image)"/>
+  <int value="22"
+      label="Context menu item for 'Search with Google Lens' that leads to
+             Lens Overlay (Image)"/>
+  <int value="23"
+      label="Context menu item for 'Search with Google Lens' that leads to
+             Lens Overlay (Region)"/>
+  <int value="24"
+      label="Context menu item for 'Search with Google Lens' that leads to
+             Lens Overlay (Video)"/>
+  <int value="25"
+      label="Context menu item for 'Search with Google Lens', that leads to
+             Lens Overlay, entered via keyboard (Image)"/>
+  <int value="26"
+      label="Context menu item for 'Search with Google Lens' that leads to
+             Lens Overlay, entered via keyboard (Region)"/>
+  <int value="27"
+      label="Context menu item for 'Search with Google Lens' that leads to
+             Lens Overlay, entered via keyboard (Video)"/>
 </enum>
 
 <!-- LINT.ThenChange(//ios/chrome/browser/ui/lens/lens_entrypoint.h:IOSLensEntrypoint) -->