mirror of
https://github.com/servo/servo.git
synced 2025-09-30 08:39:16 +01:00
EmbedderMsg: port reply channels to GenericChannel (#39018)
This change ports all `EmbedderMsg` reply channels that don't use the `ROUTER` to GenericChannel. The remaining reply channels that use the router are blocked until #38973 is merged. This is a breaking change in the API between libservo and embedders. Future work: A lot of the reply channels in this PR look like they conceptually should be oneshot ipc channels. It might make sense to provide a `OneshotGenericChannel` abstraction that encodes this. Testing: No functional changes - covered by existing tests. None of the channels changed here uses the Router Part of #38912 --------- Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This commit is contained in:
parent
89e1357c75
commit
66d9f957e6
20 changed files with 107 additions and 95 deletions
|
@ -12,9 +12,9 @@ use std::str::FromStr;
|
|||
use std::sync::{LazyLock, Mutex};
|
||||
use std::time::Duration;
|
||||
|
||||
use base::Epoch;
|
||||
use base::cross_process_instant::CrossProcessInstant;
|
||||
use base::id::WebViewId;
|
||||
use base::{Epoch, generic_channel};
|
||||
use canvas_traits::canvas::CanvasId;
|
||||
use canvas_traits::webgl::{WebGLContextId, WebGLMsg};
|
||||
use chrono::Local;
|
||||
|
@ -32,7 +32,6 @@ use euclid::default::{Rect, Size2D};
|
|||
use fnv::FnvHashMap;
|
||||
use html5ever::{LocalName, Namespace, QualName, local_name, ns};
|
||||
use hyper_serde::Serde;
|
||||
use ipc_channel::ipc;
|
||||
use js::rust::{HandleObject, HandleValue, MutableHandleValue};
|
||||
use layout_api::{PendingRestyle, ReflowGoal, ReflowPhasesRun, RestyleReason, TrustedNodeAddress};
|
||||
use metrics::{InteractiveFlag, InteractiveWindow, ProgressiveWebMetrics};
|
||||
|
@ -1929,7 +1928,7 @@ impl Document {
|
|||
.ReturnValue()
|
||||
.is_empty();
|
||||
if default_prevented || return_value_not_empty {
|
||||
let (chan, port) = ipc::channel().expect("Failed to create IPC channel!");
|
||||
let (chan, port) = generic_channel::channel().expect("Failed to create IPC channel!");
|
||||
let msg = EmbedderMsg::AllowUnload(self.webview_id(), chan);
|
||||
self.send_to_embedder(msg);
|
||||
can_unload = port.recv().unwrap() == AllowOrDeny::Allow;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue