mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 16:45:03 +00:00
LibWebView: Define the list of built-in search engines in LibWebView
These engines and their query URLs are duplicated in several places. Before implementing search support in the AppKit chrome, let's move these engines to LibWebView.
This commit is contained in:
49
Userland/Libraries/LibWebView/SearchEngine.cpp
Normal file
49
Userland/Libraries/LibWebView/SearchEngine.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <AK/Find.h>
|
||||
#include <LibWebView/SearchEngine.h>
|
||||
|
||||
namespace WebView {
|
||||
|
||||
static constexpr auto builtin_search_engines = Array {
|
||||
SearchEngine { "Bing"sv, "https://www.bing.com/search?q={}"sv },
|
||||
SearchEngine { "Brave"sv, "https://search.brave.com/search?q={}"sv },
|
||||
SearchEngine { "DuckDuckGo"sv, "https://duckduckgo.com/?q={}"sv },
|
||||
SearchEngine { "GitHub"sv, "https://github.com/search?q={}"sv },
|
||||
SearchEngine { "Google"sv, "https://www.google.com/search?q={}"sv },
|
||||
SearchEngine { "Mojeek"sv, "https://www.mojeek.com/search?q={}"sv },
|
||||
SearchEngine { "Yahoo"sv, "https://search.yahoo.com/search?p={}"sv },
|
||||
SearchEngine { "Yandex"sv, "https://yandex.com/search/?text={}"sv },
|
||||
};
|
||||
|
||||
ReadonlySpan<SearchEngine> search_engines()
|
||||
{
|
||||
return builtin_search_engines;
|
||||
}
|
||||
|
||||
SearchEngine const& default_search_engine()
|
||||
{
|
||||
static auto default_engine = find_search_engine("Google"sv);
|
||||
VERIFY(default_engine.has_value());
|
||||
|
||||
return *default_engine;
|
||||
}
|
||||
|
||||
Optional<SearchEngine const&> find_search_engine(StringView name)
|
||||
{
|
||||
auto it = AK::find_if(builtin_search_engines.begin(), builtin_search_engines.end(),
|
||||
[&](auto const& engine) {
|
||||
return engine.name == name;
|
||||
});
|
||||
|
||||
if (it == builtin_search_engines.end())
|
||||
return {};
|
||||
|
||||
return *it;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user