From 208ce34f1ec9167240f99df08111cbae8bf42b82 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Sat, 8 Oct 2022 20:52:25 +0200 Subject: [PATCH] feat: update to wry 0.22 (#5306) --- Cargo.toml | 3 ++ core/tauri-runtime-wry/src/lib.rs | 86 +++++++++---------------------- 2 files changed, 26 insertions(+), 63 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 53de27cd0..6af640921 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,3 +29,6 @@ codegen-units = 1 lto = true incremental = false opt-level = "s" + +[patch.crates-io] +wry = { git = "http://github.com/tauri-apps/wry"} \ No newline at end of file diff --git a/core/tauri-runtime-wry/src/lib.rs b/core/tauri-runtime-wry/src/lib.rs index ad3fe967c..46dda1343 100644 --- a/core/tauri-runtime-wry/src/lib.rs +++ b/core/tauri-runtime-wry/src/lib.rs @@ -6,10 +6,7 @@ use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle, RawDisplayHandle}; use tauri_runtime::{ - http::{ - Request as HttpRequest, RequestParts as HttpRequestParts, Response as HttpResponse, - ResponseParts as HttpResponseParts, - }, + http::{header::CONTENT_TYPE, Request as HttpRequest, RequestParts, Response as HttpResponse}, menu::{AboutMetadata, CustomMenuItem, Menu, MenuEntry, MenuHash, MenuId, MenuItem, MenuUpdate}, monitor::Monitor, webview::{WebviewIpcHandler, WindowBuilder, WindowBuilderBase}, @@ -63,10 +60,7 @@ use wry::{ UserAttentionType as WryUserAttentionType, }, }, - http::{ - Request as WryHttpRequest, RequestParts as WryRequestParts, Response as WryHttpResponse, - ResponseParts as WryResponseParts, - }, + http::{Request as WryRequest, Response as WryResponse}, webview::{FileDropEvent as WryFileDropEvent, WebContext, WebView, WebViewBuilder}, }; @@ -276,70 +270,36 @@ impl fmt::Debug for Context { } } -struct HttpRequestPartsWrapper(HttpRequestParts); - -impl From for HttpRequestParts { - fn from(parts: HttpRequestPartsWrapper) -> Self { - Self { - method: parts.0.method, - uri: parts.0.uri, - headers: parts.0.headers, - } - } -} - -impl From for HttpRequestPartsWrapper { - fn from(request: HttpRequestParts) -> Self { - Self(HttpRequestParts { - method: request.method, - uri: request.uri, - headers: request.headers, - }) - } -} - -impl From for HttpRequestPartsWrapper { - fn from(request: WryRequestParts) -> Self { - Self(HttpRequestParts { - method: request.method, - uri: request.uri, - headers: request.headers, - }) - } -} - struct HttpRequestWrapper(HttpRequest); -impl From<&WryHttpRequest> for HttpRequestWrapper { - fn from(req: &WryHttpRequest) -> Self { - Self(HttpRequest::new_internal( - HttpRequestPartsWrapper::from(req.head.clone()).0, - req.body.clone(), - )) +impl From<&WryRequest>> for HttpRequestWrapper { + fn from(req: &WryRequest>) -> Self { + let parts = RequestParts { + uri: req.uri().to_string(), + method: req.method().clone(), + headers: req.headers().clone(), + }; + Self(HttpRequest::new_internal(parts, req.body().clone())) } } // response -struct HttpResponsePartsWrapper(WryResponseParts); -impl From for HttpResponsePartsWrapper { - fn from(response: HttpResponseParts) -> Self { - Self(WryResponseParts { - mimetype: response.mimetype, - status: response.status, - version: response.version, - headers: response.headers, - }) - } -} - -struct HttpResponseWrapper(WryHttpResponse); +struct HttpResponseWrapper(WryResponse>); impl From for HttpResponseWrapper { fn from(response: HttpResponse) -> Self { let (parts, body) = response.into_parts(); - Self(WryHttpResponse { - body, - head: HttpResponsePartsWrapper::from(parts).0, - }) + let mut res_builder = WryResponse::builder() + .status(parts.status) + .version(parts.version); + if let Some(mime) = parts.mimetype { + res_builder = res_builder.header(CONTENT_TYPE, mime); + } + for (name, val) in parts.headers.iter() { + res_builder = res_builder.header(name, val); + } + + let res = res_builder.body(body).unwrap(); + Self(res) } }