From fc87c4ce00653a004bc6197f69e1178ca2426e6b Mon Sep 17 00:00:00 2001 From: yggverse Date: Thu, 24 Jul 2025 09:37:42 +0300 Subject: [PATCH] remove extra Uri conversion --- src/app/browser/window/tab/item/client/driver/gemini.rs | 7 ++++--- src/app/browser/window/tab/item/client/driver/nex.rs | 8 +++++--- .../browser/window/tab/item/page/navigation/request.rs | 2 +- src/profile/proxy.rs | 9 +++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/app/browser/window/tab/item/client/driver/gemini.rs b/src/app/browser/window/tab/item/client/driver/gemini.rs index 6f172b0e..2e6b563b 100644 --- a/src/app/browser/window/tab/item/client/driver/gemini.rs +++ b/src/app/browser/window/tab/item/client/driver/gemini.rs @@ -152,6 +152,7 @@ fn handle( ) { const EVENT_COMPLETED: &str = "Completed"; let uri = request.uri().clone(); + let url = uri.to_string(); let server_certificate = this .page .profile @@ -161,7 +162,7 @@ fn handle( this.client .socket - .set_proxy_resolver(this.page.profile.proxy.matches(&uri).as_ref()); + .set_proxy_resolver(this.page.profile.proxy.matches(&url).as_ref()); this.client.request_async( request, @@ -172,7 +173,7 @@ fn handle( this.page .profile .identity - .get(&uri.to_string()).map(|identity|identity.to_tls_certificate().unwrap()), + .get(&url).map(|identity|identity.to_tls_certificate().unwrap()), server_certificate.map(|c|vec![c]), { let page = this.page.clone(); @@ -192,7 +193,7 @@ fn handle( use gtk::prelude::SocketConnectionExt; let mut i = page.navigation.request.info.borrow_mut(); i - .set_request(Some(uri.to_string())) + .set_request(Some(url)) .set_socket(Some(( connection.socket_connection.local_address().unwrap(), connection.socket_connection.remote_address().unwrap() diff --git a/src/app/browser/window/tab/item/client/driver/nex.rs b/src/app/browser/window/tab/item/client/driver/nex.rs index 81a41c40..b709e24f 100644 --- a/src/app/browser/window/tab/item/client/driver/nex.rs +++ b/src/app/browser/window/tab/item/client/driver/nex.rs @@ -43,7 +43,9 @@ impl Nex { .set_request(Some(uri.to_string())); } - let path = uri.path(); // copy once + // copy once + let path = uri.path(); + let url = uri.to_string(); if path.is_empty() { // auto-append trailing slash to the root locations @@ -67,7 +69,7 @@ impl Nex { } let socket = SocketClient::new(); - socket.set_proxy_resolver(self.page.profile.proxy.matches(&uri).as_ref()); + socket.set_proxy_resolver(self.page.profile.proxy.matches(&url).as_ref()); socket.set_protocol(SocketProtocol::Tcp); socket.set_timeout(30); // @TODO optional @@ -118,7 +120,7 @@ impl Nex { } }); - socket.connect_to_uri_async(&uri.to_string(), 1900, Some(&cancellable.clone()), { + socket.connect_to_uri_async(&url, 1900, Some(&cancellable.clone()), { let p = self.page.clone(); move |result| match result { Ok(c) => { diff --git a/src/app/browser/window/tab/item/page/navigation/request.rs b/src/app/browser/window/tab/item/page/navigation/request.rs index 71e221f2..0b10ade4 100644 --- a/src/app/browser/window/tab/item/page/navigation/request.rs +++ b/src/app/browser/window/tab/item/page/navigation/request.rs @@ -138,7 +138,7 @@ impl Request { // Indicate proxy connections { const C: &str = "accent"; - if uri(e).is_some_and(|u| p.proxy.matches(&u).is_some()) { + if p.proxy.matches(&e.text()).is_some() { e.set_css_classes(&[C]) } else { e.remove_css_class(C) diff --git a/src/profile/proxy.rs b/src/profile/proxy.rs index 3b7bfd4c..061fdc4f 100644 --- a/src/profile/proxy.rs +++ b/src/profile/proxy.rs @@ -4,10 +4,7 @@ mod rule; use anyhow::Result; use database::Database; -use gtk::{ - gio::{ProxyResolver, SimpleProxyResolver}, - glib::Uri, -}; +use gtk::gio::{ProxyResolver, SimpleProxyResolver}; use ignore::Ignore; use r2d2::Pool; use r2d2_sqlite::SqliteConnectionManager; @@ -59,11 +56,11 @@ impl Proxy { // Actions - pub fn matches(&self, request: &Uri) -> Option { + pub fn matches(&self, request: &str) -> Option { for rule in self.rule.borrow().iter().filter(|r| r.is_enabled) { if gtk::glib::Regex::match_simple( &rule.request, - request.to_str(), + request, gtk::glib::RegexCompileFlags::DEFAULT, gtk::glib::RegexMatchFlags::DEFAULT, ) {