[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_