diff options
author | Delan Azabani <dazabani@igalia.com> | 2025-01-30 19:15:35 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-30 11:15:35 +0000 |
commit | 5e9de2cb61fbfd82b27343bf03439838458b9848 (patch) | |
tree | 64574624cda94237bbfc443a29b792229fde0ee2 /components/net/tests/main.rs | |
parent | 9eeb602f7afca502753bb8211ab646c952951761 (diff) | |
download | servo-5e9de2cb61fbfd82b27343bf03439838458b9848.tar.gz servo-5e9de2cb61fbfd82b27343bf03439838458b9848.zip |
Include `WebViewId` into EmbedderMsg variants where possible (#35211)
`EmbedderMsg` was previously paired with an implicit
`Option<WebViewId>`, even though almost all variants were either always
`Some` or always `None`, depending on whether there was a `WebView
involved.
This patch adds the `WebViewId` to as many `EmbedderMsg` variants as
possible, so we can call their associated `WebView` delegate methods
without needing to check and unwrap the `Option`. In many cases, this
required more changes to plumb through the `WebViewId`.
Notably, all `Request`s now explicitly need a `WebView` or not, in order
to ensure that it is passed when appropriate.
Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/net/tests/main.rs')
-rw-r--r-- | components/net/tests/main.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/components/net/tests/main.rs b/components/net/tests/main.rs index a897d5d5bfa..ef18bef2427 100644 --- a/components/net/tests/main.rs +++ b/components/net/tests/main.rs @@ -26,9 +26,9 @@ use std::net::TcpListener as StdTcpListener; use std::path::{Path, PathBuf}; use std::sync::{Arc, LazyLock, Mutex, RwLock, Weak}; -use crossbeam_channel::{unbounded, Sender}; +use crossbeam_channel::{unbounded, Receiver, Sender}; use devtools_traits::DevtoolsControlMsg; -use embedder_traits::{EmbedderProxy, EmbedderReceiver, EventLoopWaker}; +use embedder_traits::{EmbedderMsg, EmbedderProxy, EventLoopWaker}; use futures::future::ready; use http_body_util::combinators::BoxBody; use http_body_util::{BodyExt, Empty, Full}; @@ -96,7 +96,7 @@ fn create_embedder_proxy() -> EmbedderProxy { } } -fn create_embedder_proxy_and_receiver() -> (EmbedderProxy, EmbedderReceiver) { +fn create_embedder_proxy_and_receiver() -> (EmbedderProxy, Receiver<EmbedderMsg>) { let (sender, receiver) = unbounded(); let event_loop_waker = || { struct DummyEventLoopWaker {} @@ -120,19 +120,18 @@ fn create_embedder_proxy_and_receiver() -> (EmbedderProxy, EmbedderReceiver) { event_loop_waker: event_loop_waker(), }; - let embedder_receiver = EmbedderReceiver { receiver }; - (embedder_proxy, embedder_receiver) + (embedder_proxy, receiver) } fn receive_credential_prompt_msgs( - mut embedder_receiver: EmbedderReceiver, + embedder_receiver: Receiver<EmbedderMsg>, username: Option<String>, password: Option<String>, ) -> std::thread::JoinHandle<()> { std::thread::spawn(move || loop { - let (_browser_context_id, embedder_msg) = embedder_receiver.recv_embedder_msg(); + let embedder_msg = embedder_receiver.recv().unwrap(); match embedder_msg { - embedder_traits::EmbedderMsg::Prompt(prompt_definition, _prompt_origin) => { + embedder_traits::EmbedderMsg::Prompt(_, prompt_definition, _prompt_origin) => { match prompt_definition { embedder_traits::PromptDefinition::Credentials(ipc_sender) => { ipc_sender @@ -143,7 +142,7 @@ fn receive_credential_prompt_msgs( } break; }, - embedder_traits::EmbedderMsg::WebResourceRequested(_, _) => {}, + embedder_traits::EmbedderMsg::WebResourceRequested(..) => {}, _ => unreachable!(), } }) |