diff --git a/components/script/dom/abstractworkerglobalscope.rs b/components/script/dom/abstractworkerglobalscope.rs index e584e41c62a..dc4bf15c89e 100644 --- a/components/script/dom/abstractworkerglobalscope.rs +++ b/components/script/dom/abstractworkerglobalscope.rs @@ -5,6 +5,7 @@ use dom::abstractworker::WorkerScriptMsg; use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::Reflectable; +use dom::bindings::trace::JSTraceable; use script_runtime::{ScriptChan, CommonScriptMsg, ScriptPort}; use std::sync::mpsc::{Receiver, Sender}; @@ -17,7 +18,7 @@ pub struct SendableWorkerScriptChan { pub worker: Trusted, } -impl ScriptChan for SendableWorkerScriptChan { +impl ScriptChan for SendableWorkerScriptChan { fn send(&self, msg: CommonScriptMsg) -> Result<(), ()> { self.sender.send((self.worker.clone(), msg)).map_err(|_| ()) } @@ -39,7 +40,7 @@ pub struct WorkerThreadWorkerChan { pub worker: Trusted, } -impl ScriptChan for WorkerThreadWorkerChan { +impl ScriptChan for WorkerThreadWorkerChan { fn send(&self, msg: CommonScriptMsg) -> Result<(), ()> { self.sender .send((self.worker.clone(), WorkerScriptMsg::Common(msg))) diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 147c1316b7a..4c1ca5cb4ea 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -75,7 +75,6 @@ use profile_traits::time::ProfilerChan as TimeProfilerChan; use script_layout_interface::OpaqueStyleAndLayoutData; use script_layout_interface::reporter::CSSErrorReporter; use script_layout_interface::rpc::LayoutRPC; -use script_runtime::ScriptChan; use script_traits::{TimerEventId, TimerSource, TouchpadPressurePhase}; use script_traits::{UntrustedNodeAddress, WindowSizeData, WindowSizeType}; use serde::{Deserialize, Serialize}; @@ -372,13 +371,6 @@ unsafe_no_jsmanaged_fields!(WebGLShaderId); unsafe_no_jsmanaged_fields!(WebGLTextureId); unsafe_no_jsmanaged_fields!(MediaList); -unsafe impl JSTraceable for Box { - #[inline] - unsafe fn trace(&self, _trc: *mut JSTracer) { - // Do nothing - } -} - unsafe impl JSTraceable for Box { #[inline] unsafe fn trace(&self, _trc: *mut JSTracer) { diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs index 154353c71e8..f65b145c4ec 100644 --- a/components/script/script_runtime.rs +++ b/components/script/script_runtime.rs @@ -10,7 +10,7 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::PromiseBinding::PromiseJobCallback; use dom::bindings::js::{Root, RootCollection, RootCollectionPtr, trace_roots}; use dom::bindings::refcounted::{LiveDOMReferences, trace_refcounted_objects}; -use dom::bindings::trace::trace_traceables; +use dom::bindings::trace::{JSTraceable, trace_traceables}; use dom::bindings::utils::DOM_CALLBACKS; use dom::globalscope::GlobalScope; use js::glue::CollectServoSizes; @@ -48,7 +48,7 @@ pub enum CommonScriptMsg { } /// A cloneable interface for communicating with an event loop. -pub trait ScriptChan { +pub trait ScriptChan: JSTraceable { /// Send a message to the associated event loop. fn send(&self, msg: CommonScriptMsg) -> Result<(), ()>; /// Clone this handle.