aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-08-31 18:31:29 +0200
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2018-10-08 16:12:01 +0200
commit72b1df343e49916a6047070d5c855a652fb52072 (patch)
tree805f5a6f9267ef9d82dec82c0f4de9f5725c9d89
parent8c40ef459b8ee58f480128f9e9ed3a7b3fd6f500 (diff)
downloadservo-72b1df343e49916a6047070d5c855a652fb52072.tar.gz
servo-72b1df343e49916a6047070d5c855a652fb52072.zip
Move unsafe_no_jsmanaged_fields to trace
-rw-r--r--components/script/dom/bindings/trace.rs9
-rw-r--r--components/script/dom/htmlmediaelement.rs5
-rw-r--r--components/script/dom/window.rs12
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()