diff options
author | Vincent Ambo <mail@tazj.in> | 2021-05-11T21·58+0200 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-05-11T22·45+0000 |
commit | cb497a0ccae3f90122c6c8d6d99addded11cd501 (patch) | |
tree | e84f71eb970b5e02a908eacedc1acd713a459cce /web/atward/src/main.rs | |
parent | 99d11bef5fd32aa5dfb3b091fea3e6b15fc6ac26 (diff) |
feat(atward): Serve OpenSearch XML file to support Firefox r/2579
Firefox users can not easily add search engines to the browser unless the page serves an OpenSearch description. This CL adds said description according to the documentation: https://developer.mozilla.org/en-US/docs/Web/OpenSearch Change-Id: I358c5940304f4abd9e45dd72a64e46d3ce44b3e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3105 Tested-by: BuildkiteCI Reviewed-by: cynthia <cynthia@tvl.fyi>
Diffstat (limited to 'web/atward/src/main.rs')
-rw-r--r-- | web/atward/src/main.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/web/atward/src/main.rs b/web/atward/src/main.rs index 44ab4d29c24b..04beb02cd5d6 100644 --- a/web/atward/src/main.rs +++ b/web/atward/src/main.rs @@ -113,6 +113,13 @@ fn dispatch(handlers: &[Handler], query: &Query) -> Option<String> { None } +/// Return the opensearch.xml file which is required for adding atward +/// as a search engine in Firefox. +fn opensearch() -> Response { + Response::text(include_str!("opensearch.xml")) + .with_unique_header("Content-Type", "application/opensearchdescription+xml") +} + /// Render the atward index page which gives users some information /// about how to use the service. fn index() -> Response { @@ -133,6 +140,10 @@ fn main() { rouille::start_server(&address, move |request| { rouille::log(&request, std::io::stderr(), || { + if request.url() == "/opensearch.xml" { + return opensearch(); + } + let query = match Query::from_request(&request) { Some(q) => q, None => return index(), |