-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
- Loading branch information
1 parent
994b532
commit 539e448
Showing
32 changed files
with
4,262 additions
and
177 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
"tauri": patch | ||
"tauri-runtime": patch | ||
--- | ||
|
||
**Breaking change:** Removed `register_uri_scheme_protocol` from the `WebviewAttibutes` struct and renamed `register_global_uri_scheme_protocol` to `register_uri_scheme_protocol` on the `Builder` struct, which now takes a `Fn(&AppHandle, &http::Request) -> http::Response` closure. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
"tauri": minor | ||
"tauri-runtime": minor | ||
"tauri-runtime-wry": minor | ||
--- | ||
|
||
Migrate to latest custom protocol allowing `Partial content` streaming and Header parsing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -93,3 +93,4 @@ __handlers__/ | |
|
||
# benches | ||
gh-pages | ||
test_video.mp4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy | ||
// SPDX-License-Identifier: Apache-2.0 | ||
// SPDX-License-Identifier: MIT | ||
|
||
// custom wry types | ||
mod mime_type; | ||
mod request; | ||
mod response; | ||
|
||
pub use self::{ | ||
mime_type::MimeType, | ||
request::{Request, RequestParts}, | ||
response::{Builder as ResponseBuilder, Response, ResponseParts}, | ||
}; | ||
|
||
// re-expose default http types | ||
pub use http::{header, method, status, uri::InvalidUri, version, Uri}; | ||
|
||
// re-export httprange helper as it can be useful and we need it locally | ||
pub use http_range::HttpRange; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy | ||
// SPDX-License-Identifier: Apache-2.0 | ||
// SPDX-License-Identifier: MIT | ||
|
||
use std::fmt; | ||
|
||
use super::{ | ||
header::{HeaderMap, HeaderValue}, | ||
method::Method, | ||
}; | ||
|
||
/// Represents an HTTP request from the WebView. | ||
/// | ||
/// An HTTP request consists of a head and a potentially optional body. | ||
/// | ||
/// ## Platform-specific | ||
/// | ||
/// - **Linux:** Headers are not exposed. | ||
pub struct Request { | ||
pub head: RequestParts, | ||
pub body: Vec<u8>, | ||
} | ||
|
||
/// Component parts of an HTTP `Request` | ||
/// | ||
/// The HTTP request head consists of a method, uri, and a set of | ||
/// header fields. | ||
#[derive(Clone)] | ||
pub struct RequestParts { | ||
/// The request's method | ||
pub method: Method, | ||
|
||
/// The request's URI | ||
pub uri: String, | ||
|
||
/// The request's headers | ||
pub headers: HeaderMap<HeaderValue>, | ||
} | ||
|
||
impl Request { | ||
/// Creates a new blank `Request` with the body | ||
#[inline] | ||
pub fn new(body: Vec<u8>) -> Request { | ||
Request { | ||
head: RequestParts::new(), | ||
body, | ||
} | ||
} | ||
|
||
/// Returns a reference to the associated HTTP method. | ||
#[inline] | ||
pub fn method(&self) -> &Method { | ||
&self.head.method | ||
} | ||
|
||
/// Returns a reference to the associated URI. | ||
#[inline] | ||
pub fn uri(&self) -> &str { | ||
&self.head.uri | ||
} | ||
|
||
/// Returns a reference to the associated header field map. | ||
#[inline] | ||
pub fn headers(&self) -> &HeaderMap<HeaderValue> { | ||
&self.head.headers | ||
} | ||
|
||
/// Returns a reference to the associated HTTP body. | ||
#[inline] | ||
pub fn body(&self) -> &Vec<u8> { | ||
&self.body | ||
} | ||
|
||
/// Consumes the request returning the head and body RequestParts. | ||
#[inline] | ||
pub fn into_parts(self) -> (RequestParts, Vec<u8>) { | ||
(self.head, self.body) | ||
} | ||
} | ||
|
||
impl Default for Request { | ||
fn default() -> Request { | ||
Request::new(Vec::new()) | ||
} | ||
} | ||
|
||
impl fmt::Debug for Request { | ||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||
f.debug_struct("Request") | ||
.field("method", self.method()) | ||
.field("uri", &self.uri()) | ||
.field("headers", self.headers()) | ||
.field("body", self.body()) | ||
.finish() | ||
} | ||
} | ||
|
||
impl RequestParts { | ||
/// Creates a new default instance of `RequestParts` | ||
fn new() -> RequestParts { | ||
RequestParts { | ||
method: Method::default(), | ||
uri: "".into(), | ||
headers: HeaderMap::default(), | ||
} | ||
} | ||
} | ||
|
||
impl fmt::Debug for RequestParts { | ||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||
f.debug_struct("Parts") | ||
.field("method", &self.method) | ||
.field("uri", &self.uri) | ||
.field("headers", &self.headers) | ||
.finish() | ||
} | ||
} |
Oops, something went wrong.