From 187c6b49008efa4069f28a6c9abd80e3a21bd1ad Mon Sep 17 00:00:00 2001 From: emily <102429049+emily-is-my-username@users.noreply.github.com> Date: Sat, 26 Mar 2022 18:13:44 +0100 Subject: [PATCH 1/3] add confirmation prompts for url schemes This commit adds a confirmation prompt before following urls with with certain schemes. Wether or not a scheme requires confirmation can be configured in the new `[url-promps]` section. --- config/config.go | 1 + config/default.go | 12 ++++++++++++ default-config.toml | 12 ++++++++++++ display/handlers.go | 9 +++++++++ 4 files changed, 34 insertions(+) diff --git a/config/config.go b/config/config.go index 9c3acb67..2332cbb7 100644 --- a/config/config.go +++ b/config/config.go @@ -257,6 +257,7 @@ func Init() error { viper.SetDefault("keybindings.shift_numbers", "") viper.SetDefault("keybindings.bind_url_handler_open", "Ctrl-U") viper.SetDefault("url-handlers.other", "default") + viper.SetDefault("url-prompts.default", false) viper.SetDefault("cache.max_size", 0) viper.SetDefault("cache.max_pages", 20) viper.SetDefault("cache.timeout", 1800) diff --git a/config/default.go b/config/default.go index ab560f47..a73593e1 100644 --- a/config/default.go +++ b/config/default.go @@ -218,6 +218,18 @@ underline = true # application on your computer for opening this kind of URI. other = 'default' +[url-prompts] +# Specify whether a confirmation prompt should be shown before following URL schemes. +# The special key 'other' matches all schemes that don't match any other key. +# +# Example: prompt on every non-gemini URL +# other = true +# gemini = false +# +# Example: only prompt on HTTP(S) +# other = false +# http = true +# https = true # [[mediatype-handlers]] section # --------------------------------- diff --git a/default-config.toml b/default-config.toml index 64a7dcea..c465dcef 100644 --- a/default-config.toml +++ b/default-config.toml @@ -215,6 +215,18 @@ underline = true # application on your computer for opening this kind of URI. other = 'default' +[url-prompts] +# Specify whether a confirmation prompt should be shown before following URL schemes. +# The special key 'other' matches all schemes that don't match any other key. +# +# Example: prompt on every non-gemini URL +# other = true +# gemini = false +# +# Example: only prompt on HTTP(S) +# other = false +# http = true +# https = true # [[mediatype-handlers]] section # --------------------------------- diff --git a/display/handlers.go b/display/handlers.go index 10fe36f2..436a7291 100644 --- a/display/handlers.go +++ b/display/handlers.go @@ -252,6 +252,15 @@ func handleURL(t *tab, u string, numRedirects int) (string, bool) { return ret("", false) } + // check if a prompt is needed to handle this url + prompt := viper.GetBool("url-prompts.default") + if viper.IsSet("url-prompts." + parsed.Scheme) { + prompt = viper.GetBool("url-prompts." + parsed.Scheme) + } + if prompt && !(YesNo("Follow URL?\n" + u)) { + return ret("", false) + } + proxy := strings.TrimSpace(viper.GetString("proxies." + parsed.Scheme)) usingProxy := false From a920336bf0141c16c29999c22c19fac423b9f89a Mon Sep 17 00:00:00 2001 From: makeworld Date: Mon, 25 Apr 2022 20:59:06 -0400 Subject: [PATCH 2/3] Use other instead of default --- display/handlers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/handlers.go b/display/handlers.go index 436a7291..3f721669 100644 --- a/display/handlers.go +++ b/display/handlers.go @@ -253,7 +253,7 @@ func handleURL(t *tab, u string, numRedirects int) (string, bool) { } // check if a prompt is needed to handle this url - prompt := viper.GetBool("url-prompts.default") + prompt := viper.GetBool("url-prompts.other") if viper.IsSet("url-prompts." + parsed.Scheme) { prompt = viper.GetBool("url-prompts." + parsed.Scheme) } From 9ba8ea21c1abca1a0bba87916440344ac32b07e9 Mon Sep 17 00:00:00 2001 From: makeworld Date: Mon, 25 Apr 2022 20:59:58 -0400 Subject: [PATCH 3/3] Use other instead of default --- config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 2332cbb7..58025859 100644 --- a/config/config.go +++ b/config/config.go @@ -257,7 +257,7 @@ func Init() error { viper.SetDefault("keybindings.shift_numbers", "") viper.SetDefault("keybindings.bind_url_handler_open", "Ctrl-U") viper.SetDefault("url-handlers.other", "default") - viper.SetDefault("url-prompts.default", false) + viper.SetDefault("url-prompts.other", false) viper.SetDefault("cache.max_size", 0) viper.SetDefault("cache.max_pages", 20) viper.SetDefault("cache.timeout", 1800)