Skip to content

Commit 783ef0f

Browse files
authored
refactor!(core): return result in Webview/WebviewWindow::url getter (#9647)
* refactor!(core): return result in `Webview/WebviewWindow::url` getter * clippy * Apply suggestions from code review
1 parent d2fc48f commit 783ef0f

File tree

8 files changed

+45
-15
lines changed

8 files changed

+45
-15
lines changed

.changes/url-result-runtime.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"tauri-runtime": "patch"
3+
"tauri-runtime-wry": "patch"
4+
---
5+
6+
Changed `WebviewDispatch::url` getter to return a result.

.changes/url-result.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri": "patch:breaking"
3+
---
4+
5+
Changed `WebviewWindow::url` and `Webview::url` getter to return a result.

core/tauri-runtime-wry/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,7 +1190,7 @@ pub enum WebviewMessage {
11901190
SetAutoResize(bool),
11911191
SetZoom(f64),
11921192
// Getters
1193-
Url(Sender<Result<Url>>),
1193+
Url(Sender<Result<String>>),
11941194
Bounds(Sender<Result<tauri_runtime::Rect>>),
11951195
Position(Sender<Result<PhysicalPosition<i32>>>),
11961196
Size(Sender<Result<PhysicalSize<u32>>>),
@@ -1305,7 +1305,7 @@ impl<T: UserEvent> WebviewDispatch<T> for WryWebviewDispatcher<T> {
13051305

13061306
// Getters
13071307

1308-
fn url(&self) -> Result<Url> {
1308+
fn url(&self) -> Result<String> {
13091309
webview_getter!(self, WebviewMessage::Url)?
13101310
}
13111311

core/tauri-runtime/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ pub trait WebviewDispatch<T: UserEvent>: Debug + Clone + Send + Sync + Sized + '
445445
// GETTERS
446446

447447
/// Returns the webview's current URL.
448-
fn url(&self) -> Result<Url>;
448+
fn url(&self) -> Result<String>;
449449

450450
/// Returns the webview's bounds.
451451
fn bounds(&self) -> Result<Rect>;

core/tauri/src/test/mock_runtime.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -502,13 +502,8 @@ impl<T: UserEvent> WebviewDispatch<T> for MockWebviewDispatcher {
502502
Ok(())
503503
}
504504

505-
fn url(&self) -> Result<url::Url> {
506-
self
507-
.url
508-
.lock()
509-
.unwrap()
510-
.parse()
511-
.map_err(|_| Error::FailedToReceiveMessage)
505+
fn url(&self) -> Result<String> {
506+
Ok(self.url.lock().unwrap().clone())
512507
}
513508

514509
fn bounds(&self) -> Result<tauri_runtime::Rect> {

core/tauri/src/webview/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,9 +1073,12 @@ fn main() {
10731073
}
10741074

10751075
/// Returns the current url of the webview.
1076-
// TODO: in v2, change this type to Result
1077-
pub fn url(&self) -> Url {
1078-
self.webview.dispatcher.url().unwrap()
1076+
pub fn url(&self) -> crate::Result<Url> {
1077+
self
1078+
.webview
1079+
.dispatcher
1080+
.url()
1081+
.map(|url| url.parse().map_err(crate::Error::InvalidUrl))?
10791082
}
10801083

10811084
/// Navigates the webview to the defined url.

core/tauri/src/webview/webview_window.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,8 +1605,7 @@ impl<R: Runtime> WebviewWindow<R> {
16051605
}
16061606

16071607
/// Returns the current url of the webview.
1608-
// TODO: in v2, change this type to Result
1609-
pub fn url(&self) -> Url {
1608+
pub fn url(&self) -> crate::Result<Url> {
16101609
self.webview.url()
16111610
}
16121611

examples/api/src-tauri/Cargo.lock

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)