[omnibox][search_engines] Add destination URL for starter pack engines.

Previously, pressing enter on a starter pack suggestion would navigate
to its search_url ("chrome://bookmarks?q={searchTerms}").  This CL adds
an additional value to TemplateURLStarterPackData to specify its
destination_url (just "chrome://bookmarks").

Bug: 1287313
Change-Id: I6ec52540fcc544b15502e70a51a2d5cdb61e5f11
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3665242
Reviewed-by: Orin Jaworski <[email protected]>
Commit-Queue: Angela Yoeurng <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1009877}
diff --git a/components/search_engines/template_url_starter_pack_data.cc b/components/search_engines/template_url_starter_pack_data.cc
index d989fc8..f74af1e 100644
--- a/components/search_engines/template_url_starter_pack_data.cc
+++ b/components/search_engines/template_url_starter_pack_data.cc
@@ -4,6 +4,7 @@
 
 #include "components/search_engines/template_url_starter_pack_data.h"
 
+#include "base/strings/utf_string_conversions.h"
 #include "components/search_engines/search_engine_type.h"
 #include "components/search_engines/template_url_data.h"
 #include "components/search_engines/template_url_data_util.h"
@@ -15,21 +16,23 @@
 const int kCurrentDataVersion = 1;
 
 const StarterPackEngine bookmarks = {
-    IDS_SEARCH_ENGINES_STARTER_PACK_BOOKMARKS_NAME,
-    IDS_SEARCH_ENGINES_STARTER_PACK_BOOKMARKS_KEYWORD,
-    nullptr,
-    "chrome://bookmarks/?q={searchTerms}",
-    StarterPackID::kBookmarks,
-    SEARCH_ENGINE_STARTER_PACK_BOOKMARKS,
+    .name_message_id = IDS_SEARCH_ENGINES_STARTER_PACK_BOOKMARKS_NAME,
+    .keyword_message_id = IDS_SEARCH_ENGINES_STARTER_PACK_BOOKMARKS_KEYWORD,
+    .favicon_url = nullptr,
+    .search_url = "chrome://bookmarks/?q={searchTerms}",
+    .destination_url = "chrome://bookmarks",
+    .id = StarterPackID::kBookmarks,
+    .type = SEARCH_ENGINE_STARTER_PACK_BOOKMARKS,
 };
 
 const StarterPackEngine history = {
-    IDS_SEARCH_ENGINES_STARTER_PACK_HISTORY_NAME,
-    IDS_SEARCH_ENGINES_STARTER_PACK_HISTORY_KEYWORD,
-    nullptr,
-    "chrome://history/?q={searchTerms}",
-    StarterPackID::kHistory,
-    SEARCH_ENGINE_STARTER_PACK_HISTORY,
+    .name_message_id = IDS_SEARCH_ENGINES_STARTER_PACK_HISTORY_NAME,
+    .keyword_message_id = IDS_SEARCH_ENGINES_STARTER_PACK_HISTORY_KEYWORD,
+    .favicon_url = nullptr,
+    .search_url = "chrome://history/?q={searchTerms}",
+    .destination_url = "chrome://history",
+    .id = StarterPackID::kHistory,
+    .type = SEARCH_ENGINE_STARTER_PACK_HISTORY,
 };
 
 const StarterPackEngine* engines[] = {
@@ -50,4 +53,14 @@
   return t_urls;
 }
 
+std::u16string GetDestinationUrlForStarterPackID(int id) {
+  for (auto* engine : engines) {
+    if (engine->id == id) {
+      return base::UTF8ToUTF16(engine->destination_url);
+    }
+  }
+
+  return u"";
+}
+
 }  // namespace TemplateURLStarterPackData
diff --git a/components/search_engines/template_url_starter_pack_data.h b/components/search_engines/template_url_starter_pack_data.h
index a7d3cd2..db019de 100644
--- a/components/search_engines/template_url_starter_pack_data.h
+++ b/components/search_engines/template_url_starter_pack_data.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_STARTER_PACK_DATA_H_
 
 #include <memory>
+#include <string>
 #include <vector>
 
 #include "components/search_engines/search_engine_type.h"
@@ -32,6 +33,7 @@
   int keyword_message_id;
   const char* const favicon_url;
   const char* const search_url;
+  const char* const destination_url;
   const StarterPackID id;
   const SearchEngineType type;
 };
@@ -49,6 +51,10 @@
 // Returns a vector of all starter pack engines, in TemplateURLData format.
 std::vector<std::unique_ptr<TemplateURLData>> GetStarterPackEngines();
 
+// Returns the destination url for the starter pack engine associated with a
+// given starter pack id.
+std::u16string GetDestinationUrlForStarterPackID(int id);
+
 }  // namespace TemplateURLStarterPackData
 
 #endif  // COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_STARTER_PACK_DATA_H_