mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #5871 - nox:rootable, r=jdm
<!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5871) <!-- Reviewable:end -->
This commit is contained in:
commit
b8ae33e510
73 changed files with 173 additions and 238 deletions
|
@ -5,7 +5,7 @@
|
|||
use devtools_traits::{EvaluateJSReply, NodeInfo, Modification, TimelineMarker, TimelineMarkerType};
|
||||
use dom::bindings::conversions::FromJSValConvertible;
|
||||
use dom::bindings::conversions::StringificationBehavior;
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast};
|
||||
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
use dom::bindings::codegen::Bindings::DOMRectBinding::{DOMRectMethods};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast};
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable, Rootable};
|
||||
use dom::element::{Element, ActivationElementHelpers};
|
||||
use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable};
|
||||
use dom::eventtarget::EventTarget;
|
||||
|
|
|
@ -7,8 +7,7 @@ use dom::bindings::codegen::Bindings::AttrBinding::{self, AttrMethods};
|
|||
use dom::bindings::codegen::InheritTypes::NodeCast;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{OptionalRootable, OptionalRootedRootable};
|
||||
use dom::bindings::js::RootedReference;
|
||||
use dom::bindings::js::{OptionalRootable, Rootable, RootedReference};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
use dom::node::Node;
|
||||
|
@ -275,7 +274,7 @@ impl<'a> AttrHelpers<'a> for JSRef<'a, Attr> {
|
|||
}
|
||||
|
||||
fn owner(self) -> Option<Temporary<Element>> {
|
||||
self.owner.get().map(Temporary::new)
|
||||
self.owner.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
fn summarize(self) -> AttrInfo {
|
||||
|
|
|
@ -4733,8 +4733,8 @@ class CGBindingRoot(CGThing):
|
|||
'dom::bindings::global::GlobalRef',
|
||||
'dom::bindings::global::global_object_for_js_object',
|
||||
'dom::bindings::js::{JS, JSRef, Root, RootedReference, Temporary, Unrooted}',
|
||||
'dom::bindings::js::{OptionalRootable, OptionalRootedRootable, ResultRootable}',
|
||||
'dom::bindings::js::{OptionalRootedReference, OptionalOptionalRootedRootable}',
|
||||
'dom::bindings::js::{OptionalOptionalRootable, OptionalRootable}',
|
||||
'dom::bindings::js::{OptionalRootedReference, ResultRootable, Rootable}',
|
||||
'dom::bindings::utils::{create_dom_global, do_create_interface_objects}',
|
||||
'dom::bindings::utils::ConstantSpec',
|
||||
'dom::bindings::utils::{DOMClass}',
|
||||
|
@ -5415,7 +5415,7 @@ class GlobalGenRoots():
|
|||
descriptors = config.getDescriptors(register=True, isCallback=False)
|
||||
allprotos = [CGGeneric("#![allow(unused_imports)]\n"),
|
||||
CGGeneric("use dom::types::*;\n"),
|
||||
CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Temporary};\n"),
|
||||
CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary};\n"),
|
||||
CGGeneric("use dom::bindings::trace::JSTraceable;\n"),
|
||||
CGGeneric("use dom::bindings::utils::Reflectable;\n"),
|
||||
CGGeneric("use js::jsapi::JSTracer;\n\n"),
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
use dom::bindings::conversions::ToJSValConvertible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::Rootable;
|
||||
use dom::domexception::{DOMException, DOMErrorName};
|
||||
|
||||
use util::str::DOMString;
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
//! code that works in workers as well as window scopes.
|
||||
|
||||
use dom::bindings::conversions::native_from_reflector_jsmanaged;
|
||||
use dom::bindings::js::{JS, JSRef, Root, Unrooted};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Root, Unrooted};
|
||||
use dom::bindings::utils::{Reflectable, Reflector};
|
||||
use dom::workerglobalscope::{WorkerGlobalScope, WorkerGlobalScopeHelpers};
|
||||
use dom::window::{self, WindowHelpers};
|
||||
|
|
|
@ -31,17 +31,18 @@
|
|||
//! the self value will not be collected for the duration of the method call.
|
||||
//!
|
||||
//! Both `Temporary<T>` and `JS<T>` do not allow access to their inner value
|
||||
//! without explicitly creating a stack-based root via the `root` method. This
|
||||
//! returns a `Root<T>`, which causes the JS-owned value to be uncollectable
|
||||
//! for the duration of the `Root` object's lifetime. A `JSRef<T>` can be
|
||||
//! obtained from a `Root<T>` by calling the `r` method. These `JSRef<T>`
|
||||
//! values are not allowed to outlive their originating `Root<T>`, to ensure
|
||||
//! that all interactions with the enclosed value only occur when said value is
|
||||
//! uncollectable, and will cause static lifetime errors if misused.
|
||||
//! without explicitly creating a stack-based root via the `root` method
|
||||
//! through the `Rootable<T>` trait. This returns a `Root<T>`, which causes the
|
||||
//! JS-owned value to be uncollectable for the duration of the `Root` object's
|
||||
//! lifetime. A `JSRef<T>` can be obtained from a `Root<T>` by calling the `r`
|
||||
//! method. These `JSRef<T>` values are not allowed to outlive their
|
||||
//! originating `Root<T>`, to ensure that all interactions with the enclosed
|
||||
//! value only occur when said value is uncollectable, and will cause static
|
||||
//! lifetime errors if misused.
|
||||
//!
|
||||
//! Other miscellaneous helper traits:
|
||||
//!
|
||||
//! - `OptionalRootable` and `OptionalRootedRootable`: make rooting `Option`
|
||||
//! - `OptionalRootable` and `OptionalOptionalRootable`: make rooting `Option`
|
||||
//! values easy via a `root` method
|
||||
//! - `ResultRootable`: make rooting successful `Result` values easy
|
||||
//! - `TemporaryPushable`: allows mutating vectors of `JS<T>` with new elements
|
||||
|
@ -108,9 +109,11 @@ impl<T: Reflectable> Unrooted<T> {
|
|||
pub unsafe fn unsafe_get(&self) -> *const T {
|
||||
*self.ptr
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> Rootable<T> for Unrooted<T> {
|
||||
/// Create a stack-bounded root for this value.
|
||||
pub fn root(self) -> Root<T> {
|
||||
fn root(&self) -> Root<T> {
|
||||
STACK_ROOTS.with(|ref collection| {
|
||||
let RootCollectionPtr(collection) = collection.get().unwrap();
|
||||
unsafe {
|
||||
|
@ -150,14 +153,6 @@ impl<T> PartialEq for Temporary<T> {
|
|||
}
|
||||
|
||||
impl<T: Reflectable> Temporary<T> {
|
||||
/// Create a new `Temporary` value from a JS-owned value.
|
||||
pub fn new(inner: JS<T>) -> Temporary<T> {
|
||||
Temporary {
|
||||
inner: inner,
|
||||
_js_ptr: inner.reflector().get_jsobject(),
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a new `Temporary` value from an unrooted value.
|
||||
#[allow(unrooted_must_root)]
|
||||
pub fn from_unrooted(unrooted: Unrooted<T>) -> Temporary<T> {
|
||||
|
@ -168,22 +163,20 @@ impl<T: Reflectable> Temporary<T> {
|
|||
}
|
||||
|
||||
/// Create a new `Temporary` value from a rooted value.
|
||||
pub fn from_rooted<'a>(root: JSRef<'a, T>) -> Temporary<T> {
|
||||
Temporary::new(JS::from_rooted(root))
|
||||
#[allow(unrooted_must_root)]
|
||||
pub fn from_rooted<U: Assignable<T>>(root: U) -> Temporary<T> {
|
||||
let inner = JS::from_rooted(root);
|
||||
Temporary {
|
||||
inner: inner,
|
||||
_js_ptr: inner.reflector().get_jsobject(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> Rootable<T> for Temporary<T> {
|
||||
/// Create a stack-bounded root for this value.
|
||||
pub fn root(&self) -> Root<T> {
|
||||
STACK_ROOTS.with(|ref collection| {
|
||||
let RootCollectionPtr(collection) = collection.get().unwrap();
|
||||
unsafe {
|
||||
Root::new(&*collection, self.inner.ptr)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
unsafe fn inner(&self) -> JS<T> {
|
||||
self.inner.clone()
|
||||
fn root(&self) -> Root<T> {
|
||||
self.inner.root()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -264,9 +257,9 @@ impl LayoutJS<Node> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> JS<T> {
|
||||
impl<T: Reflectable> Rootable<T> for JS<T> {
|
||||
/// Root this JS-owned value to prevent its collection as garbage.
|
||||
pub fn root(&self) -> Root<T> {
|
||||
fn root(&self) -> Root<T> {
|
||||
STACK_ROOTS.with(|ref collection| {
|
||||
let RootCollectionPtr(collection) = collection.get().unwrap();
|
||||
unsafe {
|
||||
|
@ -376,7 +369,7 @@ impl<T: Reflectable> MutNullableHeap<JS<T>> {
|
|||
where F: FnOnce() -> Temporary<T>
|
||||
{
|
||||
match self.get() {
|
||||
Some(inner) => Temporary::new(inner),
|
||||
Some(inner) => Temporary::from_rooted(inner),
|
||||
None => {
|
||||
let inner = cb();
|
||||
self.set(Some(JS::from_rooted(inner.clone())));
|
||||
|
@ -406,7 +399,7 @@ impl<T: Reflectable> JS<T> {
|
|||
/// are reachable in the GC graph, so this unrooted value becomes
|
||||
/// transitively rooted for the lifetime of its new owner.
|
||||
pub fn assign(&mut self, val: Temporary<T>) {
|
||||
*self = unsafe { val.inner() };
|
||||
*self = val.inner.clone();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -461,96 +454,62 @@ impl<T> Assignable<T> for JS<T> {
|
|||
|
||||
impl<'a, T: Reflectable> Assignable<T> for JSRef<'a, T> {
|
||||
unsafe fn get_js(&self) -> JS<T> {
|
||||
self.unrooted()
|
||||
JS {
|
||||
ptr: self.ptr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> Assignable<T> for Temporary<T> {
|
||||
unsafe fn get_js(&self) -> JS<T> {
|
||||
self.inner()
|
||||
self.inner.clone()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Root a rootable `Option` type (used for `Option<Temporary<T>>`)
|
||||
pub trait OptionalRootable<T> {
|
||||
/// Root the inner value, if it exists.
|
||||
fn root(self) -> Option<Root<T>>;
|
||||
}
|
||||
|
||||
impl<T: Reflectable> OptionalRootable<T> for Option<Temporary<T>> {
|
||||
fn root(self) -> Option<Root<T>> {
|
||||
self.map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
/// Return an unrooted type for storing in optional DOM fields
|
||||
pub trait OptionalUnrootable<T> {
|
||||
/// Returns a `JS<T>` for the inner value, if it exists.
|
||||
fn unrooted(&self) -> Option<JS<T>>;
|
||||
}
|
||||
|
||||
impl<'a, T: Reflectable> OptionalUnrootable<T> for Option<JSRef<'a, T>> {
|
||||
fn unrooted(&self) -> Option<JS<T>> {
|
||||
self.as_ref().map(|inner| JS::from_rooted(*inner))
|
||||
}
|
||||
}
|
||||
|
||||
/// Root a rootable `Option` type (used for `Option<JS<T>>`)
|
||||
pub trait OptionalRootedRootable<T> {
|
||||
/// Root the inner value, if it exists.
|
||||
fn root(&self) -> Option<Root<T>>;
|
||||
}
|
||||
|
||||
impl<T: Reflectable> OptionalRootedRootable<T> for Option<JS<T>> {
|
||||
fn root(&self) -> Option<Root<T>> {
|
||||
self.as_ref().map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> OptionalRootedRootable<T> for Option<Unrooted<T>> {
|
||||
impl<T: Reflectable, U: Rootable<T>> OptionalRootable<T> for Option<U> {
|
||||
fn root(&self) -> Option<Root<T>> {
|
||||
self.as_ref().map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
/// Root a rootable `Option<Option>` type (used for `Option<Option<JS<T>>>`)
|
||||
pub trait OptionalOptionalRootedRootable<T> {
|
||||
pub trait OptionalOptionalRootable<T> {
|
||||
/// Root the inner value, if it exists.
|
||||
fn root(&self) -> Option<Option<Root<T>>>;
|
||||
}
|
||||
|
||||
impl<T: Reflectable> OptionalOptionalRootedRootable<T> for Option<Option<JS<T>>> {
|
||||
impl<T: Reflectable, U: OptionalRootable<T>> OptionalOptionalRootable<T> for Option<U> {
|
||||
fn root(&self) -> Option<Option<Root<T>>> {
|
||||
self.as_ref().map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable> OptionalOptionalRootedRootable<T> for Option<Option<Unrooted<T>>> {
|
||||
fn root(&self) -> Option<Option<Root<T>>> {
|
||||
self.as_ref().map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Root a rootable `Result` type (any of `Temporary<T>` or `JS<T>`)
|
||||
pub trait ResultRootable<T,U> {
|
||||
/// Root the inner value, if it exists.
|
||||
fn root(self) -> Result<Root<T>, U>;
|
||||
}
|
||||
|
||||
impl<T: Reflectable, U> ResultRootable<T, U> for Result<Temporary<T>, U> {
|
||||
impl<T: Reflectable, U, V: Rootable<T>> ResultRootable<T, U> for Result<V, U> {
|
||||
fn root(self) -> Result<Root<T>, U> {
|
||||
self.map(|inner| inner.root())
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Reflectable, U> ResultRootable<T, U> for Result<JS<T>, U> {
|
||||
fn root(self) -> Result<Root<T>, U> {
|
||||
self.map(|inner| inner.root())
|
||||
}
|
||||
/// Root a rootable type.
|
||||
pub trait Rootable<T> {
|
||||
/// Root the value.
|
||||
fn root(&self) -> Root<T>;
|
||||
}
|
||||
|
||||
|
||||
/// Provides a facility to push unrooted values onto lists of rooted values.
|
||||
/// This is safe under the assumption that said lists are reachable via the GC
|
||||
/// graph, and therefore the new values are transitively rooted for the
|
||||
|
@ -716,15 +675,6 @@ impl<'a, 'b, T> PartialEq<JSRef<'b, T>> for JSRef<'a, T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a,T> JSRef<'a,T> {
|
||||
/// Return an unrooted `JS<T>` for the inner pointer.
|
||||
pub fn unrooted(&self) -> JS<T> {
|
||||
JS {
|
||||
ptr: self.ptr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, T: Reflectable> JSRef<'a, T> {
|
||||
/// Returns the inner pointer directly.
|
||||
pub fn extended_deref(self) -> &'a T {
|
||||
|
@ -739,25 +689,3 @@ impl<'a, T: Reflectable> Reflectable for JSRef<'a, T> {
|
|||
(**self).reflector()
|
||||
}
|
||||
}
|
||||
|
||||
/// A trait for comparing smart pointers ignoring the lifetimes
|
||||
pub trait Comparable<T> {
|
||||
/// Returns whether the other value points to the same object.
|
||||
fn equals(&self, other: T) -> bool;
|
||||
}
|
||||
|
||||
impl<'a, 'b, T> Comparable<JSRef<'a, T>> for JSRef<'b, T> {
|
||||
fn equals(&self, other: JSRef<'a, T>) -> bool {
|
||||
self.ptr == other.ptr
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b, T> Comparable<Option<JSRef<'a, T>>> for Option<JSRef<'b, T>> {
|
||||
fn equals(&self, other: Option<JSRef<'a, T>>) -> bool {
|
||||
match (*self, other) {
|
||||
(Some(x), Some(y)) => x.ptr == y.ptr,
|
||||
(None, None) => true,
|
||||
_ => false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::codegen::PrototypeList::MAX_PROTO_CHAIN_LENGTH;
|
|||
use dom::bindings::conversions::{native_from_reflector_jsmanaged, is_dom_class};
|
||||
use dom::bindings::error::{Error, ErrorResult, Fallible, throw_type_error};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{Temporary, Root};
|
||||
use dom::bindings::js::{Temporary, Root, Rootable};
|
||||
use dom::browsercontext;
|
||||
use dom::window;
|
||||
use util::namespace;
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
use dom::bindings::conversions::native_from_reflector_jsmanaged;
|
||||
use dom::bindings::conversions::{ToJSValConvertible};
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, Root};
|
||||
use dom::bindings::js::{OptionalRootable, OptionalRootedRootable, ResultRootable};
|
||||
use dom::bindings::js::{OptionalRootedReference, OptionalOptionalRootedRootable};
|
||||
use dom::bindings::js::{OptionalRootable, OptionalOptionalRootable};
|
||||
use dom::bindings::js::{ResultRootable, Rootable};
|
||||
use dom::bindings::proxyhandler::{get_property_descriptor, fill_property_descriptor};
|
||||
use dom::bindings::utils::{Reflectable, WindowProxyHandler};
|
||||
use dom::bindings::utils::get_array_index_from_id;
|
||||
|
@ -50,7 +50,7 @@ impl BrowserContext {
|
|||
}
|
||||
|
||||
pub fn active_document(&self) -> Temporary<Document> {
|
||||
Temporary::new(self.history[self.active_index].document.clone())
|
||||
Temporary::from_rooted(self.history[self.active_index].document.clone())
|
||||
}
|
||||
|
||||
pub fn active_window(&self) -> Temporary<Window> {
|
||||
|
@ -59,7 +59,7 @@ impl BrowserContext {
|
|||
}
|
||||
|
||||
pub fn frame_element(&self) -> Option<Temporary<Element>> {
|
||||
self.frame_element.map(Temporary::new)
|
||||
self.frame_element.map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
pub fn window_proxy(&self) -> *mut JSObject {
|
||||
|
|
|
@ -11,7 +11,7 @@ use dom::bindings::codegen::UnionTypes::StringOrCanvasGradientOrCanvasPattern;
|
|||
use dom::bindings::error::Error::{IndexSize, NotSupported, Type, InvalidState};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::{GlobalRef, GlobalField};
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary};
|
||||
use dom::bindings::num::Finite;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::canvasgradient::{CanvasGradient, CanvasGradientStyle, ToFillOrStrokeStyle};
|
||||
|
@ -326,7 +326,7 @@ impl LayoutCanvasRenderingContext2DHelpers for LayoutJS<CanvasRenderingContext2D
|
|||
impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> {
|
||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-canvas
|
||||
fn Canvas(self) -> Temporary<HTMLCanvasElement> {
|
||||
Temporary::new(self.canvas)
|
||||
Temporary::from_rooted(self.canvas)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-save
|
||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
|||
use dom::bindings::codegen::InheritTypes::CommentDerived;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::characterdata::CharacterData;
|
||||
use dom::document::Document;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::{self, CSSStyl
|
|||
use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast};
|
||||
use dom::bindings::error::{Error, ErrorResult, Fallible};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootedRootable, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::document::DocumentHelpers;
|
||||
use dom::element::{Element, ElementHelpers, StylePriority};
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, CustomEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, MutHeap};
|
||||
use dom::bindings::js::{JSRef, MutHeap, Rootable, Temporary};
|
||||
use dom::bindings::utils::reflect_dom_object;
|
||||
use dom::event::{Event, EventTypeId};
|
||||
use js::jsapi::JSContext;
|
||||
|
|
|
@ -11,7 +11,7 @@ use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived;
|
|||
use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast};
|
||||
use dom::bindings::error::ErrorResult;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, RootCollection};
|
||||
use dom::bindings::js::{JSRef, RootCollection, Rootable, Temporary};
|
||||
use dom::bindings::refcounted::LiveDOMReferences;
|
||||
use dom::bindings::structuredclone::StructuredCloneData;
|
||||
use dom::bindings::utils::Reflectable;
|
||||
|
|
|
@ -25,8 +25,8 @@ use dom::bindings::error::Error::{NotSupported, InvalidCharacter, Security};
|
|||
use dom::bindings::error::Error::HierarchyRequest;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap};
|
||||
use dom::bindings::js::{OptionalRootable, OptionalRootedRootable};
|
||||
use dom::bindings::js::{RootedReference, Temporary};
|
||||
use dom::bindings::js::{OptionalRootable, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::js::TemporaryPushable;
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::bindings::trace::RootedVec;
|
||||
|
@ -242,7 +242,7 @@ pub trait DocumentHelpers<'a> {
|
|||
impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
|
||||
#[inline]
|
||||
fn window(self) -> Temporary<Window> {
|
||||
Temporary::new(self.window)
|
||||
Temporary::from_rooted(self.window)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
@ -341,7 +341,7 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
|
|||
|
||||
match idmap.entry(id) {
|
||||
Vacant(entry) => {
|
||||
entry.insert(vec!(element.unrooted()));
|
||||
entry.insert(vec![JS::from_rooted(element)]);
|
||||
}
|
||||
Occupied(entry) => {
|
||||
let elements = entry.into_mut();
|
||||
|
@ -444,7 +444,7 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
|
|||
/// Return the element that currently has focus.
|
||||
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#events-focusevent-doc-focus
|
||||
fn get_focused_element(self) -> Option<Temporary<Element>> {
|
||||
self.focused.get().map(Temporary::new)
|
||||
self.focused.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
/// Initiate a new round of checking for elements requesting focus. The last element to call
|
||||
|
@ -889,7 +889,7 @@ impl<'a> PrivateDocumentHelpers for JSRef<'a, Document> {
|
|||
for node in NodeCast::from_ref(root.r()).traverse_preorder() {
|
||||
let node = node.root();
|
||||
if callback(node.r()) {
|
||||
nodes.push(node.r().unrooted());
|
||||
nodes.push(JS::from_rooted(node.r()));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -1019,7 +1019,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
|
|||
let id = Atom::from_slice(&id);
|
||||
// FIXME(https://github.com/rust-lang/rust/issues/23338)
|
||||
let idmap = self.idmap.borrow();
|
||||
idmap.get(&id).map(|ref elements| Temporary::new((*elements)[0].clone()))
|
||||
idmap.get(&id).map(|ref elements| Temporary::from_rooted((*elements)[0].clone()))
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-document-createelement
|
||||
|
@ -1269,7 +1269,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
|
|||
|
||||
// https://html.spec.whatwg.org/#dom-document-currentscript
|
||||
fn GetCurrentScript(self) -> Option<Temporary<HTMLScriptElement>> {
|
||||
self.current_script.get().map(Temporary::new)
|
||||
self.current_script.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/#dom-document-body
|
||||
|
@ -1481,7 +1481,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-document-defaultview
|
||||
fn DefaultView(self) -> Temporary<Window> {
|
||||
Temporary::new(self.window)
|
||||
Temporary::from_rooted(self.window)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-document-cookie
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
|||
use dom::bindings::codegen::InheritTypes::DocumentFragmentDerived;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast};
|
||||
use dom::bindings::codegen::UnionTypes::NodeOrString;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::error::{ErrorResult, Fallible};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::document::Document;
|
||||
|
|
|
@ -9,7 +9,8 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
|||
use dom::bindings::codegen::InheritTypes::NodeCast;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Root, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Root, Rootable};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::bindings::utils::validate_qualified_name;
|
||||
use dom::document::{Document, DocumentHelpers, IsHTMLDocument};
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::DOMParserBinding::DOMParserMethods;
|
|||
use dom::bindings::codegen::Bindings::DOMParserBinding::SupportedType::{Text_html, Text_xml};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::document::{Document, DocumentHelpers, IsHTMLDocument};
|
||||
use dom::document::DocumentSource;
|
||||
|
|
|
@ -43,7 +43,7 @@ impl<'a> DOMRectListMethods for JSRef<'a, DOMRectList> {
|
|||
fn Item(self, index: u32) -> Option<Temporary<DOMRect>> {
|
||||
let rects = &self.rects;
|
||||
if index < rects.len() as u32 {
|
||||
Some(Temporary::new(rects[index as usize].clone()))
|
||||
Some(Temporary::from_rooted(rects[index as usize].clone()))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::DOMStringMapBinding;
|
|||
use dom::bindings::codegen::Bindings::DOMStringMapBinding::DOMStringMapMethods;
|
||||
use dom::bindings::error::ErrorResult;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::node::window_from_node;
|
||||
use dom::htmlelement::{HTMLElement, HTMLElementCustomAttributeHelpers};
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::DOMTokenListBinding::DOMTokenListMethods;
|
|||
use dom::bindings::error::{ErrorResult, Fallible};
|
||||
use dom::bindings::error::Error::{InvalidCharacter, Syntax};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
use dom::node::window_from_node;
|
||||
|
|
|
@ -29,8 +29,8 @@ use dom::bindings::error::{ErrorResult, Fallible};
|
|||
use dom::bindings::error::Error::{InvalidCharacter, Syntax};
|
||||
use dom::bindings::error::Error::NoModificationAllowed;
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap};
|
||||
use dom::bindings::js::{OptionalRootable, RootedReference, Temporary};
|
||||
use dom::bindings::js::TemporaryPushable;
|
||||
use dom::bindings::js::{OptionalRootable, Rootable, RootedReference};
|
||||
use dom::bindings::js::{Temporary, TemporaryPushable};
|
||||
use dom::bindings::trace::RootedVec;
|
||||
use dom::bindings::utils::{xml_name_type, validate_and_extract};
|
||||
use dom::bindings::utils::XMLName::InvalidXMLName;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::ErrorEventBinding::ErrorEventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, ErrorEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, MutHeap};
|
||||
use dom::bindings::js::{JSRef, MutHeap, Rootable, Temporary};
|
||||
use js::jsapi::JSContext;
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::EventBinding;
|
|||
use dom::bindings::codegen::Bindings::EventBinding::{EventConstants, EventMethods};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::eventtarget::{EventTarget, EventTargetHelpers};
|
||||
use util::str::DOMString;
|
||||
|
@ -188,12 +188,12 @@ impl<'a> EventMethods for JSRef<'a, Event> {
|
|||
|
||||
// https://dom.spec.whatwg.org/#dom-event-target
|
||||
fn GetTarget(self) -> Option<Temporary<EventTarget>> {
|
||||
self.target.get().map(Temporary::new)
|
||||
self.target.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-event-currenttarget
|
||||
fn GetCurrentTarget(self) -> Option<Temporary<EventTarget>> {
|
||||
self.current_target.get().map(Temporary::new)
|
||||
self.current_target.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-event-defaultprevented
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::callback::ExceptionHandling::Report;
|
||||
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{EventTargetCast, NodeCast};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable};
|
||||
use dom::bindings::trace::RootedVec;
|
||||
use dom::eventtarget::{EventTarget, ListenerPhase};
|
||||
use dom::event::{Event, EventPhase};
|
||||
|
|
|
@ -13,7 +13,7 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLImageElementDerived};
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
|
||||
use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary};
|
||||
use dom::bindings::js::OptionalRootable;
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::domtokenlist::DOMTokenList;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLBodyElementBinding::{self, HTMLBodyEle
|
|||
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||
use dom::bindings::codegen::InheritTypes::EventTargetCast;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementCast};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::Reflectable;
|
||||
use dom::document::Document;
|
||||
use dom::element::ElementTypeId;
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLButtonElementCast, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLButtonElementDerived, HTMLFieldSetElementDerived};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::{AttributeHandlers, Element, ElementTypeId};
|
||||
use dom::element::ActivationElementHelpers;
|
||||
|
|
|
@ -11,7 +11,8 @@ use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived;
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
|
||||
use dom::bindings::codegen::UnionTypes::CanvasRenderingContext2DOrWebGLRenderingContext;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap, Rootable};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::js::Unrooted;
|
||||
use dom::bindings::utils::{Reflectable};
|
||||
use dom::canvasrenderingcontext2d::{CanvasRenderingContext2D, LayoutCanvasRenderingContext2DHelpers};
|
||||
|
@ -128,7 +129,7 @@ impl<'a> HTMLCanvasElementHelpers for JSRef<'a, HTMLCanvasElement> {
|
|||
let context = self.GetContext(String::from_str("2d"));
|
||||
match context.unwrap() {
|
||||
CanvasRenderingContext2DOrWebGLRenderingContext::eCanvasRenderingContext2D(context) => {
|
||||
Temporary::new(context.root().r().unrooted())
|
||||
Temporary::from_unrooted(context)
|
||||
}
|
||||
_ => panic!("Wrong Context Type: Expected 2d context"),
|
||||
}
|
||||
|
@ -138,8 +139,8 @@ impl<'a> HTMLCanvasElementHelpers for JSRef<'a, HTMLCanvasElement> {
|
|||
let context = self.GetContext(String::from_str("webgl"));
|
||||
match context.unwrap() {
|
||||
CanvasRenderingContext2DOrWebGLRenderingContext::eWebGLRenderingContext(context) => {
|
||||
return Temporary::new(context.root().r().unrooted());
|
||||
}
|
||||
Temporary::from_unrooted(context)
|
||||
},
|
||||
_ => panic!("Wrong Context Type: Expected webgl context"),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::HTMLCollectionBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLCollectionBinding::HTMLCollectionMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::element::{Element, AttributeHandlers, ElementHelpers};
|
||||
|
@ -194,7 +194,7 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> {
|
|||
match self.collection {
|
||||
CollectionTypeId::Static(ref elems) => elems
|
||||
.get(index)
|
||||
.map(|elem| Temporary::new(elem.clone())),
|
||||
.map(|elem| Temporary::from_rooted(elem.clone())),
|
||||
CollectionTypeId::Live(ref root, ref filter) => {
|
||||
let root = root.root();
|
||||
HTMLCollection::traverse(root.r())
|
||||
|
|
|
@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::HTMLDataListElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLDataListElementDerived, HTMLOptionElementDerived};
|
||||
use dom::bindings::codegen::InheritTypes::NodeCast;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::Element;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -12,7 +12,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLFrameSetElementDerived};
|
||||
use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLInputElementCast, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementDerived, HTMLBodyElementDerived};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary};
|
||||
use dom::bindings::error::ErrorResult;
|
||||
use dom::bindings::error::Error::Syntax;
|
||||
use dom::bindings::utils::Reflectable;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLLegendElementDerived};
|
||||
use dom::bindings::js::{JSRef, Temporary, RootedReference};
|
||||
use dom::bindings::js::{JSRef, Rootable, RootedReference, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::{AttributeHandlers, Element, ElementHelpers};
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -11,7 +11,7 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElemen
|
|||
use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLFormElementDerived, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLInputElementCast, HTMLTextAreaElementCast, HTMLFormElementCast};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable};
|
||||
|
|
|
@ -14,7 +14,7 @@ use dom::bindings::conversions::ToJSValConvertible;
|
|||
use dom::bindings::error::{ErrorResult, Fallible};
|
||||
use dom::bindings::error::Error::NotSupported;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::customevent::CustomEvent;
|
||||
use dom::document::Document;
|
||||
use dom::element::Element;
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLImageElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventTargetCast, HTMLElementCast, HTMLImageElementDerived};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, LayoutJS, Temporary};
|
||||
use dom::bindings::js::{JSRef, LayoutJS, Rootable, Temporary};
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::element::Element;
|
||||
|
|
|
@ -15,9 +15,9 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLInp
|
|||
use dom::bindings::codegen::InheritTypes::{HTMLInputElementDerived, HTMLFieldSetElementDerived, EventTargetCast};
|
||||
use dom::bindings::codegen::InheritTypes::KeyboardEventCast;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{Comparable, JS, JSRef, LayoutJS, MutNullableHeap};
|
||||
use dom::bindings::js::{OptionalRootable, OptionalRootedRootable};
|
||||
use dom::bindings::js::{ResultRootable, Root, RootedReference, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap};
|
||||
use dom::bindings::js::{OptionalRootable, ResultRootable, Root, Rootable};
|
||||
use dom::bindings::js::{RootedReference, Temporary};
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::element::{AttributeHandlers, Element};
|
||||
use dom::element::{RawLayoutElementHelpers, ActivationElementHelpers};
|
||||
|
@ -371,7 +371,7 @@ fn in_same_group<'a,'b>(other: JSRef<'a, HTMLInputElement>,
|
|||
let other_owner = other_owner.r();
|
||||
other.input_type.get() == InputType::InputRadio &&
|
||||
// TODO Both a and b are in the same home subtree.
|
||||
other_owner.equals(owner) &&
|
||||
other_owner == owner &&
|
||||
// TODO should be a unicode compatibility caseless match
|
||||
match (other.get_radio_group_name(), group) {
|
||||
(Some(ref s1), Some(s2)) => &**s1 == s2,
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLLinkElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLLinkElementBinding::HTMLLinkElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::HTMLLinkElementDerived;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary};
|
||||
use dom::bindings::js::{OptionalRootable, RootedReference};
|
||||
use dom::document::Document;
|
||||
use dom::domtokenlist::DOMTokenList;
|
||||
|
|
|
@ -10,7 +10,7 @@ use dom::bindings::codegen::Bindings::HTMLObjectElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::Element;
|
||||
use dom::element::AttributeHandlers;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding;
|
|||
use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, HTMLOptionElementDerived};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::AttributeHandlers;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -11,7 +11,7 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast, HTMLE
|
|||
use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived};
|
||||
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::characterdata::CharacterData;
|
||||
use dom::document::Document;
|
||||
use dom::element::{AttributeHandlers, Element, ElementHelpers};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::HTMLOutputElementBinding;
|
||||
use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::HTMLOutputElementDerived;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
use dom::element::ElementTypeId;
|
||||
|
|
|
@ -16,7 +16,8 @@ use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived, HTMLScriptE
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::EventTargetCast;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, RootedReference};
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, Rootable};
|
||||
use dom::bindings::js::RootedReference;
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
|
|
|
@ -10,7 +10,7 @@ use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLSelectElementDerived, HTMLFieldSetElementDerived};
|
||||
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
|
||||
use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::element::{AttributeHandlers, Element};
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::HTMLStyleElementBinding;
|
||||
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLStyleElementDerived, NodeCast};
|
||||
use dom::bindings::js::{JSRef, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
use dom::element::{Element, ElementTypeId};
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLTableElementBinding;
|
|||
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCaptionElementCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLTableElementDerived, NodeCast};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::document::Document;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
use dom::element::ElementTypeId;
|
||||
|
|
|
@ -13,7 +13,8 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLEle
|
|||
use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementDerived, HTMLFieldSetElementDerived};
|
||||
use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, TextDerived};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, LayoutJS, Temporary, OptionalRootable};
|
||||
use dom::bindings::js::{JSRef, LayoutJS, OptionalRootable, Rootable};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::HTMLTitleElementBinding::HTMLTitleElementM
|
|||
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTitleElementDerived, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextCast};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::characterdata::CharacterDataHelpers;
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, KeyboardEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary, RootedReference};
|
||||
use dom::bindings::js::{JSRef, Temporary, Rootable, RootedReference};
|
||||
use dom::bindings::utils::{Reflectable, reflect_dom_object};
|
||||
use dom::event::{Event, EventTypeId};
|
||||
use dom::uievent::UIEvent;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::LocationBinding;
|
||||
use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::str::USVString;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::urlhelper::UrlHelper;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, MessageEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::reflect_dom_object;
|
||||
use dom::event::{Event, EventHelpers, EventTypeId};
|
||||
use dom::eventtarget::EventTarget;
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, MouseEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::utils::reflect_dom_object;
|
||||
use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
|
||||
|
@ -143,7 +143,7 @@ impl<'a> MouseEventMethods for JSRef<'a, MouseEvent> {
|
|||
}
|
||||
|
||||
fn GetRelatedTarget(self) -> Option<Temporary<EventTarget>> {
|
||||
self.related_target.get().map(Temporary::new)
|
||||
self.related_target.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
fn InitMouseEvent(self,
|
||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::NamedNodeMapBinding;
|
|||
use dom::bindings::codegen::Bindings::NamedNodeMapBinding::NamedNodeMapMethods;
|
||||
use dom::bindings::error::{Error, Fallible};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::element::{AttributeHandlers, Element, ElementHelpers};
|
||||
use dom::window::Window;
|
||||
|
@ -52,7 +52,7 @@ impl<'a> NamedNodeMapMethods for JSRef<'a, NamedNodeMap> {
|
|||
// FIXME(https://github.com/rust-lang/rust/issues/23338)
|
||||
let owner = owner.r();
|
||||
let attrs = owner.attrs();
|
||||
attrs.get(index as usize).map(|x| Temporary::new(x.clone()))
|
||||
attrs.get(index as usize).map(|x| Temporary::from_rooted(x.clone()))
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-namednodemap-getnameditem
|
||||
|
|
|
@ -24,10 +24,10 @@ use dom::bindings::conversions;
|
|||
use dom::bindings::error::{ErrorResult, Fallible};
|
||||
use dom::bindings::error::Error::{NotFound, HierarchyRequest, Syntax};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, OptionalRootable};
|
||||
use dom::bindings::js::{OptionalRootedRootable, MutNullableHeap};
|
||||
use dom::bindings::js::{ResultRootable, Root, RootedReference, Temporary};
|
||||
use dom::bindings::js::{TemporaryPushable, Unrooted};
|
||||
use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap};
|
||||
use dom::bindings::js::{OptionalRootable, ResultRootable, Root, Rootable};
|
||||
use dom::bindings::js::{RootedReference, Temporary, TemporaryPushable};
|
||||
use dom::bindings::js::Unrooted;
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
use dom::bindings::trace::RootedVec;
|
||||
use dom::bindings::utils::{Reflectable, reflect_dom_object};
|
||||
|
@ -570,25 +570,25 @@ impl<'a> NodeHelpers for JSRef<'a, Node> {
|
|||
}
|
||||
|
||||
fn parent_node(self) -> Option<Temporary<Node>> {
|
||||
self.parent_node.get().map(Temporary::new)
|
||||
self.parent_node.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
fn first_child(self) -> Option<Temporary<Node>> {
|
||||
self.first_child.get().map(Temporary::new)
|
||||
self.first_child.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
fn last_child(self) -> Option<Temporary<Node>> {
|
||||
self.last_child.get().map(Temporary::new)
|
||||
self.last_child.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
/// Returns the previous sibling of this node. Fails if this node is borrowed mutably.
|
||||
fn prev_sibling(self) -> Option<Temporary<Node>> {
|
||||
self.prev_sibling.get().map(Temporary::new)
|
||||
self.prev_sibling.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
/// Returns the next sibling of this node. Fails if this node is borrowed mutably.
|
||||
fn next_sibling(self) -> Option<Temporary<Node>> {
|
||||
self.next_sibling.get().map(Temporary::new)
|
||||
self.next_sibling.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
@ -947,7 +947,7 @@ impl<'a> NodeHelpers for JSRef<'a, Node> {
|
|||
}
|
||||
|
||||
fn owner_doc(self) -> Temporary<Document> {
|
||||
Temporary::new(self.owner_doc.get().unwrap())
|
||||
Temporary::from_rooted(self.owner_doc.get().unwrap())
|
||||
}
|
||||
|
||||
fn set_owner_doc(self, document: JSRef<Document>) {
|
||||
|
@ -1873,7 +1873,7 @@ impl<'a> NodeMethods for JSRef<'a, Node> {
|
|||
|
||||
// https://dom.spec.whatwg.org/#dom-node-parentnode
|
||||
fn GetParentNode(self) -> Option<Temporary<Node>> {
|
||||
self.parent_node.get().map(Temporary::new)
|
||||
self.parent_node.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-node-parentelement
|
||||
|
@ -1903,22 +1903,22 @@ impl<'a> NodeMethods for JSRef<'a, Node> {
|
|||
|
||||
// https://dom.spec.whatwg.org/#dom-node-firstchild
|
||||
fn GetFirstChild(self) -> Option<Temporary<Node>> {
|
||||
self.first_child.get().map(Temporary::new)
|
||||
self.first_child.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-node-lastchild
|
||||
fn GetLastChild(self) -> Option<Temporary<Node>> {
|
||||
self.last_child.get().map(Temporary::new)
|
||||
self.last_child.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-node-previoussibling
|
||||
fn GetPreviousSibling(self) -> Option<Temporary<Node>> {
|
||||
self.prev_sibling.get().map(Temporary::new)
|
||||
self.prev_sibling.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-node-nextsibling
|
||||
fn GetNextSibling(self) -> Option<Temporary<Node>> {
|
||||
self.next_sibling.get().map(Temporary::new)
|
||||
self.next_sibling.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-node-nodevalue
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::NodeListBinding;
|
||||
use dom::bindings::codegen::Bindings::NodeListBinding::NodeListMethods;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::trace::RootedVec;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::node::{Node, NodeHelpers};
|
||||
|
@ -64,7 +64,7 @@ impl<'a> NodeListMethods for JSRef<'a, NodeList> {
|
|||
fn Item(self, index: u32) -> Option<Temporary<Node>> {
|
||||
match self.list_type {
|
||||
_ if index >= self.Length() => None,
|
||||
NodeListType::Simple(ref elems) => Some(Temporary::new(elems[index as usize].clone())),
|
||||
NodeListType::Simple(ref elems) => Some(Temporary::from_rooted(elems[index as usize].clone())),
|
||||
NodeListType::Children(ref node) => {
|
||||
let node = node.root();
|
||||
node.r().children().nth(index as usize)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::PerformanceBinding;
|
||||
use dom::bindings::codegen::Bindings::PerformanceBinding::PerformanceMethods;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::num::Finite;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::performancetiming::{PerformanceTiming, PerformanceTimingHelpers};
|
||||
|
@ -45,7 +45,7 @@ impl Performance {
|
|||
|
||||
impl<'a> PerformanceMethods for JSRef<'a, Performance> {
|
||||
fn Timing(self) -> Temporary<PerformanceTiming> {
|
||||
Temporary::new(self.timing.clone())
|
||||
Temporary::from_rooted(self.timing.clone())
|
||||
}
|
||||
|
||||
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime/Overview.html#dom-performance-now
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::ProgressEventBinding::ProgressEventMethods
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, ProgressEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::reflect_dom_object;
|
||||
use dom::event::{Event, EventTypeId};
|
||||
use util::str::DOMString;
|
||||
|
|
|
@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::RangeBinding::RangeMethods;
|
|||
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::cell::DOMRefCell;
|
|||
use dom::bindings::codegen::Bindings::ServoHTMLParserBinding;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
use dom::bindings::js::{JS, JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::node::Node;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::StorageBinding;
|
||||
use dom::bindings::codegen::Bindings::StorageBinding::StorageMethods;
|
||||
use dom::bindings::global::{GlobalRef, GlobalField};
|
||||
use dom::bindings::js::{JSRef, Temporary, RootedReference};
|
||||
use dom::bindings::js::{JSRef, Temporary, Rootable, RootedReference};
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast};
|
||||
|
|
|
@ -10,7 +10,7 @@ use dom::bindings::codegen::Bindings::StorageEventBinding::{StorageEventMethods}
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::utils::{reflect_dom_object};
|
||||
use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
|
||||
|
@ -108,7 +108,7 @@ impl<'a> StorageEventMethods for JSRef<'a, StorageEvent> {
|
|||
}
|
||||
|
||||
fn GetStorageArea(self) -> Option<Temporary<Storage>> {
|
||||
self.storageArea.get().map(Temporary::new)
|
||||
self.storageArea.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,8 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextDerived};
|
|||
use dom::bindings::codegen::InheritTypes::NodeCast;
|
||||
use dom::bindings::error::{Error, Fallible};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, RootedReference, Temporary};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::characterdata::{CharacterData, CharacterDataHelpers};
|
||||
use dom::document::Document;
|
||||
use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
||||
|
|
|
@ -10,7 +10,8 @@ use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilter;
|
|||
use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilterConstants;
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Temporary, MutHeap};
|
||||
use dom::bindings::js::{JS, JSRef, MutHeap, OptionalRootable, Rootable};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
use dom::document::{Document, DocumentHelpers};
|
||||
use dom::node::{Node, NodeHelpers};
|
||||
|
@ -63,7 +64,7 @@ impl TreeWalker {
|
|||
impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> {
|
||||
// https://dom.spec.whatwg.org/#dom-treewalker-root
|
||||
fn Root(self) -> Temporary<Node> {
|
||||
Temporary::new(self.root_node)
|
||||
Temporary::from_rooted(self.root_node)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-treewalker-whattoshow
|
||||
|
@ -82,7 +83,7 @@ impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> {
|
|||
|
||||
// https://dom.spec.whatwg.org/#dom-treewalker-currentnode
|
||||
fn CurrentNode(self) -> Temporary<Node> {
|
||||
Temporary::new(self.current_node.get())
|
||||
Temporary::from_rooted(self.current_node.get())
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-treewalker-currentnode
|
||||
|
|
|
@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods;
|
|||
use dom::bindings::codegen::InheritTypes::{EventCast, UIEventDerived};
|
||||
use dom::bindings::error::Fallible;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
|
||||
use dom::bindings::utils::reflect_dom_object;
|
||||
|
@ -74,7 +74,7 @@ impl UIEvent {
|
|||
impl<'a> UIEventMethods for JSRef<'a, UIEvent> {
|
||||
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#widl-UIEvent-view
|
||||
fn GetView(self) -> Option<Temporary<Window>> {
|
||||
self.view.get().map(Temporary::new)
|
||||
self.view.get().map(Temporary::from_rooted)
|
||||
}
|
||||
|
||||
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#widl-UIEvent-detail
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams;
|
|||
use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eURLSearchParams, eString};
|
||||
use dom::bindings::error::{Fallible};
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::utils::{Reflector, reflect_dom_object};
|
||||
|
||||
use util::str::DOMString;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
use dom::bindings::codegen::InheritTypes::NodeCast;
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, RootedReference};
|
||||
use dom::bindings::js::{JSRef, OptionalRootable, Rootable, RootedReference};
|
||||
use dom::element::AttributeHandlers;
|
||||
use dom::htmlheadelement::HTMLHeadElement;
|
||||
use dom::node::{Node, NodeHelpers};
|
||||
|
|
|
@ -14,7 +14,7 @@ use dom::bindings::error::{report_pending_exception, Fallible};
|
|||
use dom::bindings::error::Error::InvalidCharacter;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, OptionalRootable};
|
||||
use dom::bindings::js::{RootedReference, Temporary};
|
||||
use dom::bindings::js::{Rootable, RootedReference, Temporary};
|
||||
use dom::bindings::utils::{GlobalStaticData, Reflectable, WindowProxyHandler};
|
||||
use dom::browsercontext::BrowserContext;
|
||||
use dom::console::Console;
|
||||
|
|
|
@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast};
|
|||
use dom::bindings::error::{Fallible, ErrorResult};
|
||||
use dom::bindings::error::Error::Syntax;
|
||||
use dom::bindings::global::{GlobalRef, GlobalField};
|
||||
use dom::bindings::js::{JSRef, Temporary};
|
||||
use dom::bindings::js::{JSRef, Rootable, Temporary};
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::bindings::structuredclone::StructuredCloneData;
|
||||
use dom::bindings::trace::JSTraceable;
|
||||
|
|
|
@ -14,8 +14,8 @@ use dom::bindings::error::{Error, ErrorResult, Fallible};
|
|||
use dom::bindings::error::Error::{InvalidState, InvalidAccess};
|
||||
use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout};
|
||||
use dom::bindings::global::{GlobalField, GlobalRef, GlobalRoot};
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary};
|
||||
use dom::bindings::js::OptionalRootedRootable;
|
||||
use dom::bindings::js::{JS, JSRef, MutNullableHeap, OptionalRootable};
|
||||
use dom::bindings::js::{Rootable, Temporary};
|
||||
use dom::bindings::refcounted::Trusted;
|
||||
use dom::bindings::str::ByteString;
|
||||
use dom::bindings::utils::{Reflectable, reflect_dom_object};
|
||||
|
@ -463,7 +463,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
|
|||
|
||||
// https://xhr.spec.whatwg.org/#the-upload-attribute
|
||||
fn Upload(self) -> Temporary<XMLHttpRequestUpload> {
|
||||
Temporary::new(self.upload)
|
||||
Temporary::from_rooted(self.upload)
|
||||
}
|
||||
|
||||
// https://xhr.spec.whatwg.org/#the-send()-method
|
||||
|
@ -711,7 +711,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
|
|||
|
||||
// https://xhr.spec.whatwg.org/#the-responsexml-attribute
|
||||
fn GetResponseXML(self) -> Option<Temporary<Document>> {
|
||||
self.response_xml.get().map(Temporary::new)
|
||||
self.response_xml.get().map(Temporary::from_rooted)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ impl Page {
|
|||
}
|
||||
|
||||
pub fn window(&self) -> Temporary<Window> {
|
||||
Temporary::new(self.frame.borrow().as_ref().unwrap().window.clone())
|
||||
Temporary::from_rooted(self.frame.borrow().as_ref().unwrap().window.clone())
|
||||
}
|
||||
|
||||
pub fn window_for_script_deallocation(&self) -> Unrooted<Window> {
|
||||
|
@ -81,7 +81,7 @@ impl Page {
|
|||
}
|
||||
|
||||
pub fn document(&self) -> Temporary<Document> {
|
||||
Temporary::new(self.frame.borrow().as_ref().unwrap().document.clone())
|
||||
Temporary::from_rooted(self.frame.borrow().as_ref().unwrap().document.clone())
|
||||
}
|
||||
|
||||
// must handle root case separately
|
||||
|
|
|
@ -11,8 +11,8 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentTypeCast};
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLScriptElementCast};
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, NodeCast};
|
||||
use dom::bindings::codegen::InheritTypes::ProcessingInstructionCast;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, Root};
|
||||
use dom::bindings::js::RootedReference;
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, Root, Rootable};
|
||||
use dom::bindings::js::{RootedReference, Temporary};
|
||||
use dom::bindings::trace::RootedVec;
|
||||
use dom::characterdata::CharacterDataHelpers;
|
||||
use dom::comment::Comment;
|
||||
|
@ -63,7 +63,7 @@ trait SinkHelpers {
|
|||
impl SinkHelpers for servohtmlparser::Sink {
|
||||
fn get_or_create(&self, child: NodeOrText<JS<Node>>) -> Temporary<Node> {
|
||||
match child {
|
||||
AppendNode(n) => Temporary::new(n),
|
||||
AppendNode(n) => Temporary::from_rooted(n),
|
||||
AppendText(t) => {
|
||||
let doc = self.document.root();
|
||||
let text = Text::new(t, doc.r());
|
||||
|
|
|
@ -24,8 +24,9 @@ use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, Documen
|
|||
use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLIFrameElementCast, NodeCast, EventCast};
|
||||
use dom::bindings::conversions::FromJSValConvertible;
|
||||
use dom::bindings::conversions::StringificationBehavior;
|
||||
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, RootedReference};
|
||||
use dom::bindings::js::{RootCollection, RootCollectionPtr};
|
||||
use dom::bindings::js::{JS, JSRef, OptionalRootable, RootCollection};
|
||||
use dom::bindings::js::{RootCollectionPtr, Rootable, RootedReference};
|
||||
use dom::bindings::js::Temporary;
|
||||
use dom::bindings::refcounted::{LiveDOMReferences, Trusted, TrustedReference};
|
||||
use dom::bindings::structuredclone::StructuredCloneData;
|
||||
use dom::bindings::trace::{JSTraceable, trace_collections, RootedVec};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use webdriver_traits::{EvaluateJSReply};
|
||||
use dom::bindings::conversions::FromJSValConvertible;
|
||||
use dom::bindings::conversions::StringificationBehavior;
|
||||
use dom::bindings::js::OptionalRootable;
|
||||
use dom::bindings::js::{OptionalRootable, Rootable};
|
||||
use dom::window::ScriptHelpers;
|
||||
use dom::document::DocumentHelpers;
|
||||
use page::Page;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue