From faf090781db32a45fe88cc082878bcd6e646901a Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 15 Jul 2017 15:41:15 +0300 Subject: [PATCH] No confirmation for known hosts links. --- .../SourceFiles/core/click_handler_types.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/core/click_handler_types.cpp b/Telegram/SourceFiles/core/click_handler_types.cpp index 5f599644e..1219a0b07 100644 --- a/Telegram/SourceFiles/core/click_handler_types.cpp +++ b/Telegram/SourceFiles/core/click_handler_types.cpp @@ -73,6 +73,11 @@ QString tryConvertUrlToLocal(QString url) { return url; } +bool UrlRequiresConfirmation(const QUrl &url) { + using namespace qthelp; + return !regex_match(qsl("(^|\\.)(telegram\\.org|telegra\\.ph|telesco\\.pe)$"), url.host(), RegExOption::CaseInsensitive); +} + } // namespace void UrlClickHandler::doOpen(QString url) { @@ -119,11 +124,15 @@ void HiddenUrlClickHandler::doOpen(QString url) { Messenger::Instance().openLocalUrl(urlText); } else { auto parsedUrl = QUrl::fromUserInput(urlText); - auto displayUrl = parsedUrl.isValid() ? parsedUrl.toDisplayString() : urlText; - Ui::show(Box(lang(lng_open_this_link) + qsl("\n\n") + displayUrl, lang(lng_open_link), [urlText] { - Ui::hideLayer(); + if (UrlRequiresConfirmation(urlText)) { + auto displayUrl = parsedUrl.isValid() ? parsedUrl.toDisplayString() : urlText; + Ui::show(Box(lang(lng_open_this_link) + qsl("\n\n") + displayUrl, lang(lng_open_link), [urlText] { + Ui::hideLayer(); + UrlClickHandler::doOpen(urlText); + })); + } else { UrlClickHandler::doOpen(urlText); - })); + } } }