diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-08-31 18:31:29 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-10-08 16:12:01 +0200 |
commit | 72b1df343e49916a6047070d5c855a652fb52072 (patch) | |
tree | 805f5a6f9267ef9d82dec82c0f4de9f5725c9d89 | |
parent | 8c40ef459b8ee58f480128f9e9ed3a7b3fd6f500 (diff) | |
download | servo-72b1df343e49916a6047070d5c855a652fb52072.tar.gz servo-72b1df343e49916a6047070d5c855a652fb52072.zip |
Move unsafe_no_jsmanaged_fields to trace
-rw-r--r-- | components/script/dom/bindings/trace.rs | 9 | ||||
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 5 | ||||
-rw-r--r-- | components/script/dom/window.rs | 12 |
3 files changed, 9 insertions, 17 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index a3c4c7814ea..a625de741ab 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -48,6 +48,7 @@ use dom::bindings::str::{DOMString, USVString}; use dom::bindings::utils::WindowProxyHandler; use dom::document::PendingRestyle; use dom::htmlimageelement::SourceSet; +use dom::htmlmediaelement::MediaFrameRenderer; use encoding_rs::{Decoder, Encoding}; use euclid::{Transform2D, Transform3D, Point2D, Vector2D, Rect, TypedSize2D, TypedScale}; use euclid::Length as EuclidLength; @@ -96,6 +97,7 @@ use servo_media::audio::context::AudioContext; use servo_media::audio::graph::NodeId; use servo_media::audio::panner_node::{DistanceModel, PanningModel}; use servo_media::audio::param::ParamType; +use servo_media::player::Player; use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl}; use smallvec::SmallVec; use std::cell::{Cell, RefCell, UnsafeCell}; @@ -104,7 +106,7 @@ use std::hash::{BuildHasher, Hash}; use std::ops::{Deref, DerefMut}; use std::path::PathBuf; use std::rc::Rc; -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use std::sync::atomic::{AtomicBool, AtomicUsize}; use std::time::{SystemTime, Instant}; use style::attr::{AttrIdentifier, AttrValue, LengthOrPercentageOrAuto}; @@ -121,7 +123,7 @@ use style::stylesheets::keyframes_rule::Keyframe; use style::values::specified::Length; use time::Duration; use uuid::Uuid; -use webrender_api::{DocumentId, ImageKey}; +use webrender_api::{DocumentId, ImageKey, RenderApiSender}; use webvr_traits::WebVRGamepadHand; /// A trait to allow tracing (only) DOM objects. @@ -454,6 +456,9 @@ unsafe_no_jsmanaged_fields!(AudioBuffer); unsafe_no_jsmanaged_fields!(AudioContext<Backend>); unsafe_no_jsmanaged_fields!(NodeId); unsafe_no_jsmanaged_fields!(AnalysisEngine, DistanceModel, PanningModel, ParamType); +unsafe_no_jsmanaged_fields!(Player); +unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>); +unsafe_no_jsmanaged_fields!(RenderApiSender); unsafe impl<'a> JSTraceable for &'a str { #[inline] diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index fc946217a8e..5c623044574 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -54,10 +54,7 @@ use time::{self, Timespec, Duration}; use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, RenderApi}; use webrender_api::{RenderApiSender, Transaction}; -unsafe_no_jsmanaged_fields!(Player); -unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>); - -struct MediaFrameRenderer { +pub struct MediaFrameRenderer { api: RenderApi, current_frame: Option<(ImageKey, i32, i32)>, old_frame: Option<ImageKey>, diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index b6c7a460103..c50aae0aec7 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -132,9 +132,7 @@ use time; use timers::{IsInterval, TimerCallback}; use url::Position; use webdriver_handlers::jsval_to_webdriver; -use webrender_api::{ - DeviceIntPoint, DeviceUintSize, DocumentId, ExternalScrollId, RenderApiSender, -}; +use webrender_api::{DeviceIntPoint, DeviceUintSize, DocumentId, ExternalScrollId, RenderApiSender}; use webvr_traits::WebVRMsg; /// Current state of the window object @@ -315,14 +313,6 @@ pub struct Window { webrender_api_sender: RenderApiSender, } -// FIXME(victor): this doesn't belong here -#[allow(unsafe_code)] -unsafe impl ::dom::bindings::trace::JSTraceable for RenderApiSender { - unsafe fn trace(&self, _trc: *mut ::js::jsapi::JSTracer) { - // Do nothing - } -} - impl Window { pub fn get_exists_mut_observer(&self) -> bool { self.exists_mut_observer.get() |