From 2e0cb6a9be7419ec30126527168a3d019c6d5650 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Wed, 12 Jun 2024 18:11:33 +0200 Subject: [PATCH] Do not allow url ouside connect and backbutton back to loading in connect tab. --- src/slic3r/GUI/WebViewDialog.cpp | 12 +++++++++++- src/slic3r/GUI/WebViewDialog.hpp | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index ecb644708f..fafbaaa1d1 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -642,7 +642,17 @@ void ConnectWebViewPanel::on_script_message(wxWebViewEvent& evt) } void ConnectWebViewPanel::on_navigation_request(wxWebViewEvent &evt) { - //TODO Stop request out of connect + if (evt.GetURL() == m_default_url) { + m_reached_default_url = true; + return; + } + if (evt.GetURL() == (GUI::format_wxstr("file:///%1%/web/connection_failed.html", boost::filesystem::path(resources_dir()).generic_string()))) { + return; + } + if (m_reached_default_url && !evt.GetURL().StartsWith(m_default_url)) { + BOOST_LOG_TRIVIAL(info) << evt.GetURL() << " does not start with default url. Vetoing."; + evt.Veto(); + } } void ConnectWebViewPanel::logout() { diff --git a/src/slic3r/GUI/WebViewDialog.hpp b/src/slic3r/GUI/WebViewDialog.hpp index a866a15824..715c645c9e 100644 --- a/src/slic3r/GUI/WebViewDialog.hpp +++ b/src/slic3r/GUI/WebViewDialog.hpp @@ -200,6 +200,7 @@ protected: void run_script_bridge(const wxString& script) override {run_script(script); } private: void on_user_token(UserAccountSuccessEvent& e); + bool m_reached_default_url {false}; }; class PrinterWebViewPanel : public WebViewPanel