blob: 5d051e5317551c40d6f483c66a1d177ca682111a [file] [log] [blame]
Angela Yoeurng24006262022-04-12 19:40:091// Copyright 2022 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_STARTER_PACK_DATA_H_
6#define COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_STARTER_PACK_DATA_H_
7
Stephan Hartmannaca38ff2022-04-13 20:09:498#include <memory>
Angela Yoeurng24006262022-04-12 19:40:099#include <vector>
10
Angela Yoeurng75ef8182022-04-18 23:39:2211#include "components/search_engines/search_engine_type.h"
12
Angela Yoeurng24006262022-04-12 19:40:0913struct TemplateURLData;
14
15// The Starter Pack is a set of built-in search engines that allow the user to
16// search various parts of Chrome from the Omnibox through keyword mode. Unlike
17// prepopulated engines, starter pack scopes are not "search engines" that
18// search the web. Instead, they use the built-in omnibox providers to provide
19// suggestions. This file defines those search engines and util functions.
20
21namespace TemplateURLStarterPackData {
22
23struct StarterPackEngine {
24 int name_message_id;
25 int keyword_message_id;
26 const char* const favicon_url;
27 const char* const search_url;
28 const int id;
Angela Yoeurng75ef8182022-04-18 23:39:2229 const SearchEngineType type;
Angela Yoeurng24006262022-04-12 19:40:0930};
31
32extern const int kMaxStarterPackEngineID;
33extern const int kCurrentDataVersion;
34
35// Returns the current version of the starterpack data, so callers can know when
36// they need to re-merge.
37int GetDataVersion();
38
39// Returns a vector of all starter pack engines, in TemplateURLData format.
40std::vector<std::unique_ptr<TemplateURLData>> GetStarterPackEngines();
41
42} // namespace TemplateURLStarterPackData
43
44#endif // COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_STARTER_PACK_DATA_H_