aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorKeegan McAllister <mcallister.keegan@gmail.com>2014-09-20 15:35:08 -0700
committerKeegan McAllister <mcallister.keegan@gmail.com>2014-09-20 15:35:08 -0700
commit045328c8e94f5bdfcd67105c5dfa9209f4cd501c (patch)
tree1d5f8d958e12ae59e0ac720a7873e3c3b08cb1e8 /components/script/dom
parentd6ba37c68c34a3748a789caeca225083275757e5 (diff)
parenta40b94d7f946d75e1a66af206efda9879b89c707 (diff)
downloadservo-045328c8e94f5bdfcd67105c5dfa9209f4cd501c.tar.gz
servo-045328c8e94f5bdfcd67105c5dfa9209f4cd501c.zip
Merge pull request #3438 from servo/rustup
Upgrade Rust
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/callback.rs2
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py16
-rw-r--r--components/script/dom/bindings/error.rs4
-rw-r--r--components/script/dom/bindings/js.rs2
-rw-r--r--components/script/dom/bindings/proxyhandler.rs80
-rw-r--r--components/script/dom/bindings/utils.rs30
-rw-r--r--components/script/dom/browsercontext.rs6
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs6
-rw-r--r--components/script/dom/document.rs30
-rw-r--r--components/script/dom/element.rs4
-rw-r--r--components/script/dom/eventtarget.rs4
-rw-r--r--components/script/dom/formdata.rs2
-rw-r--r--components/script/dom/htmlcollection.rs6
-rw-r--r--components/script/dom/htmloptionelement.rs8
-rw-r--r--components/script/dom/node.rs12
-rw-r--r--components/script/dom/urlsearchparams.rs10
-rw-r--r--components/script/dom/virtualmethods.rs76
-rw-r--r--components/script/dom/window.rs28
-rw-r--r--components/script/dom/worker.rs6
-rw-r--r--components/script/dom/workerglobalscope.rs10
-rw-r--r--components/script/dom/xmlhttprequest.rs13
21 files changed, 176 insertions, 179 deletions
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs
index b4394647bbd..5c1f4c771cb 100644
--- a/components/script/dom/bindings/callback.rs
+++ b/components/script/dom/bindings/callback.rs
@@ -121,7 +121,7 @@ pub fn WrapCallThisObject<T: Reflectable>(cx: *mut JSContext,
unsafe {
if JS_WrapObject(cx, &mut obj) == 0 {
- return ptr::mut_null();
+ return ptr::null_mut();
}
}
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 8ec5f24ccdd..383595248c3 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1757,6 +1757,7 @@ class CGAbstractMethod(CGThing):
decorators.append('#[inline(always)]')
if self.extern:
+ decorators.append('unsafe')
decorators.append('extern')
if self.pub:
@@ -1797,7 +1798,7 @@ let obj = with_compartment(aCx, proto, || {
NewProxyObject(aCx, handler,
&private,
proto, %s,
- ptr::mut_null(), ptr::mut_null())
+ ptr::null_mut(), ptr::null_mut())
});
assert!(obj.is_not_null());
@@ -3665,7 +3666,7 @@ if expando.is_not_null() {
}
}
""" + namedGet + """
-(*desc).obj = ptr::mut_null();
+(*desc).obj = ptr::null_mut();
return true;"""
def definition_body(self):
@@ -4302,11 +4303,11 @@ class CGDictionary(CGThing):
return string.Template(
"impl<'a, 'b> ${selfName}<'a, 'b> {\n"
" pub fn empty() -> ${selfName}<'a, 'b> {\n"
- " ${selfName}::new(ptr::mut_null(), NullValue()).unwrap()\n"
+ " ${selfName}::new(ptr::null_mut(), NullValue()).unwrap()\n"
" }\n"
" pub fn new(cx: *mut JSContext, val: JSVal) -> Result<${selfName}<'a, 'b>, ()> {\n"
" let object = if val.is_null_or_undefined() {\n"
- " ptr::mut_null()\n"
+ " ptr::null_mut()\n"
" } else if val.is_object() {\n"
" val.to_object()\n"
" } else {\n"
@@ -4538,7 +4539,6 @@ class CGBindingRoot(CGThing):
'dom::bindings::conversions::{Default, Empty}',
'dom::bindings::codegen::*',
'dom::bindings::codegen::Bindings::*',
- 'dom::bindings::codegen::RegisterBindings',
'dom::bindings::codegen::UnionTypes::*',
'dom::bindings::error::{FailureUnknown, Fallible, Error, ErrorResult}',
'dom::bindings::error::throw_dom_exception',
@@ -4914,7 +4914,7 @@ class CGCallback(CGClass):
# the private method.
argnames = [arg.name for arg in args]
argnamesWithThis = ["s.GetContext()", "thisObjJS"] + argnames
- argnamesWithoutThis = ["s.GetContext()", "ptr::mut_null()"] + argnames
+ argnamesWithoutThis = ["s.GetContext()", "ptr::null_mut()"] + argnames
# Now that we've recorded the argnames for our call to our private
# method, insert our optional argument for deciding whether the
# CallSetup should re-throw exceptions on aRv.
@@ -5477,12 +5477,12 @@ class GlobalGenRoots():
}
#[inline(always)]
- fn from_ref<'a, T: ${fromBound}>(derived: JSRef<'a, T>) -> JSRef<'a, Self> {
+ fn from_ref<'a, T: ${fromBound}+Reflectable>(derived: JSRef<'a, T>) -> JSRef<'a, Self> {
unsafe { derived.transmute() }
}
#[inline(always)]
- fn from_borrowed_ref<'a, 'b, T: ${fromBound}>(derived: &'a JSRef<'b, T>) -> &'a JSRef<'b, Self> {
+ fn from_borrowed_ref<'a, 'b, T: ${fromBound}+Reflectable>(derived: &'a JSRef<'b, T>) -> &'a JSRef<'b, Self> {
unsafe { derived.transmute_borrowed() }
}
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs
index cb39e4f0755..e2e06d8205a 100644
--- a/components/script/dom/bindings/error.rs
+++ b/components/script/dom/bindings/error.rs
@@ -97,7 +97,7 @@ static ERROR_FORMAT_STRING: JSErrorFormatString = JSErrorFormatString {
};
/// Callback used to throw `TypeError`s.
-extern fn get_error_message(_user_ref: *mut libc::c_void,
+unsafe extern fn get_error_message(_user_ref: *mut libc::c_void,
_locale: *const libc::c_char,
error_number: libc::c_uint) -> *const JSErrorFormatString
{
@@ -109,6 +109,6 @@ extern fn get_error_message(_user_ref: *mut libc::c_void,
pub fn throw_type_error(cx: *mut JSContext, error: &str) {
let error = error.to_c_str();
unsafe {
- JS_ReportErrorNumber(cx, Some(get_error_message), ptr::mut_null(), 0, error.as_ptr());
+ JS_ReportErrorNumber(cx, Some(get_error_message), ptr::null_mut(), 0, error.as_ptr());
}
}
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index 5395db760fd..3fff9445c3c 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -255,7 +255,7 @@ impl<T> Assignable<T> for JS<T> {
}
}
-impl<'a, T> Assignable<T> for JSRef<'a, T> {
+impl<'a, T: Reflectable> Assignable<T> for JSRef<'a, T> {
unsafe fn get_js(&self) -> JS<T> {
self.unrooted()
}
diff --git a/components/script/dom/bindings/proxyhandler.rs b/components/script/dom/bindings/proxyhandler.rs
index f2c1486280d..3c26206c373 100644
--- a/components/script/dom/bindings/proxyhandler.rs
+++ b/components/script/dom/bindings/proxyhandler.rs
@@ -26,11 +26,10 @@ use std::mem::size_of;
static JSPROXYSLOT_EXPANDO: u32 = 0;
-pub extern fn getPropertyDescriptor(cx: *mut JSContext, proxy: *mut JSObject,
- id: jsid, set: bool,
- desc: *mut JSPropertyDescriptor)
- -> bool {
- unsafe {
+pub unsafe extern fn getPropertyDescriptor(cx: *mut JSContext, proxy: *mut JSObject,
+ id: jsid, set: bool,
+ desc: *mut JSPropertyDescriptor)
+ -> bool {
let handler = GetProxyHandler(proxy);
if !InvokeGetOwnPropertyDescriptor(handler, cx, proxy, id, set, desc) {
return false;
@@ -42,55 +41,50 @@ pub extern fn getPropertyDescriptor(cx: *mut JSContext, proxy: *mut JSObject,
//let proto = JS_GetPrototype(proxy);
let proto = GetObjectProto(proxy);
if proto.is_null() {
- (*desc).obj = ptr::mut_null();
+ (*desc).obj = ptr::null_mut();
return true;
}
JS_GetPropertyDescriptorById(cx, proto, id, JSRESOLVE_QUALIFIED, desc) != 0
- }
}
-pub fn defineProperty_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
- desc: *mut JSPropertyDescriptor) -> bool {
+pub unsafe fn defineProperty_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
+ desc: *mut JSPropertyDescriptor) -> bool {
static JSMSG_GETTER_ONLY: libc::c_uint = 160;
- unsafe {
- //FIXME: Workaround for https://github.com/mozilla/rust/issues/13385
- let setter: *const libc::c_void = mem::transmute((*desc).setter);
- let setter_stub: *const libc::c_void = mem::transmute(JS_StrictPropertyStub);
- if ((*desc).attrs & JSPROP_GETTER) != 0 && setter == setter_stub {
- return JS_ReportErrorFlagsAndNumber(cx,
- JSREPORT_WARNING | JSREPORT_STRICT |
- JSREPORT_STRICT_MODE_ERROR,
- Some(RUST_js_GetErrorMessage), ptr::mut_null(),
- JSMSG_GETTER_ONLY) != 0;
- }
-
- let expando = EnsureExpandoObject(cx, proxy);
- if expando.is_null() {
- return false;
- }
+ //FIXME: Workaround for https://github.com/mozilla/rust/issues/13385
+ let setter: *const libc::c_void = mem::transmute((*desc).setter);
+ let setter_stub: *const libc::c_void = mem::transmute(JS_StrictPropertyStub);
+ if ((*desc).attrs & JSPROP_GETTER) != 0 && setter == setter_stub {
+ return JS_ReportErrorFlagsAndNumber(cx,
+ JSREPORT_WARNING | JSREPORT_STRICT |
+ JSREPORT_STRICT_MODE_ERROR,
+ Some(RUST_js_GetErrorMessage), ptr::null_mut(),
+ JSMSG_GETTER_ONLY) != 0;
+ }
- return JS_DefinePropertyById(cx, expando, id, (*desc).value, (*desc).getter,
- (*desc).setter, (*desc).attrs) != 0;
+ let expando = EnsureExpandoObject(cx, proxy);
+ if expando.is_null() {
+ return false;
}
+
+ return JS_DefinePropertyById(cx, expando, id, (*desc).value, (*desc).getter,
+ (*desc).setter, (*desc).attrs) != 0;
}
-pub extern fn defineProperty(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
- desc: *mut JSPropertyDescriptor) -> bool {
+pub unsafe extern fn defineProperty(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
+ desc: *mut JSPropertyDescriptor) -> bool {
defineProperty_(cx, proxy, id, desc)
}
-pub extern fn delete_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
- bp: *mut bool) -> bool {
- unsafe {
- let expando = EnsureExpandoObject(cx, proxy);
- if expando.is_null() {
- return false;
- }
-
- return delete_property_by_id(cx, expando, id, &mut *bp);
+pub unsafe extern fn delete_(cx: *mut JSContext, proxy: *mut JSObject, id: jsid,
+ bp: *mut bool) -> bool {
+ let expando = EnsureExpandoObject(cx, proxy);
+ if expando.is_null() {
+ return false;
}
+
+ return delete_property_by_id(cx, expando, id, &mut *bp);
}
pub fn _obj_toString(cx: *mut JSContext, className: *const libc::c_char) -> *mut JSString {
@@ -99,7 +93,7 @@ pub fn _obj_toString(cx: *mut JSContext, className: *const libc::c_char) -> *mut
let nchars = "[object ]".len() + name.len();
let chars: *mut jschar = JS_malloc(cx, (nchars + 1) as libc::size_t * (size_of::<jschar>() as libc::size_t)) as *mut jschar;
if chars.is_null() {
- return ptr::mut_null();
+ return ptr::null_mut();
}
let result = format!("[object {}]", name);
@@ -121,7 +115,7 @@ pub fn GetExpandoObject(obj: *mut JSObject) -> *mut JSObject {
assert!(is_dom_proxy(obj));
let val = GetProxyExtra(obj, JSPROXYSLOT_EXPANDO);
if val.is_undefined() {
- ptr::mut_null()
+ ptr::null_mut()
} else {
val.to_object()
}
@@ -133,11 +127,11 @@ pub fn EnsureExpandoObject(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObj
assert!(is_dom_proxy(obj));
let mut expando = GetExpandoObject(obj);
if expando.is_null() {
- expando = JS_NewObjectWithGivenProto(cx, ptr::mut_null(),
- ptr::mut_null(),
+ expando = JS_NewObjectWithGivenProto(cx, ptr::null_mut(),
+ ptr::null_mut(),
GetObjectParent(obj));
if expando.is_null() {
- return ptr::mut_null();
+ return ptr::null_mut();
}
SetProxyExtra(obj, JSPROXYSLOT_EXPANDO, ObjectValue(&*expando));
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index 0f6ab2098fe..a923371ae8e 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -129,7 +129,7 @@ pub fn unwrap_jsmanaged<T: Reflectable>(mut obj: *mut JSObject,
let dom_class = get_dom_class(obj).or_else(|_| {
if IsWrapper(obj) == 1 {
debug!("found wrapper");
- obj = UnwrapObject(obj, /* stopAtOuter = */ 0, ptr::mut_null());
+ obj = UnwrapObject(obj, /* stopAtOuter = */ 0, ptr::null_mut());
if obj.is_null() {
debug!("unwrapping security wrapper failed");
Err(())
@@ -421,7 +421,7 @@ fn CreateInterfacePrototypeObject(cx: *mut JSContext, global: *mut JSObject,
/// A throwing constructor, for those interfaces that have neither
/// `NoInterfaceObject` nor `Constructor`.
-pub extern fn ThrowingConstructor(cx: *mut JSContext, _argc: c_uint, _vp: *mut JSVal) -> JSBool {
+pub unsafe extern fn ThrowingConstructor(cx: *mut JSContext, _argc: c_uint, _vp: *mut JSVal) -> JSBool {
throw_type_error(cx, "Illegal constructor.");
return 0;
}
@@ -488,7 +488,7 @@ impl Reflector {
/// Create an uninitialized `Reflector`.
pub fn new() -> Reflector {
Reflector {
- object: Cell::new(ptr::mut_null()),
+ object: Cell::new(ptr::null_mut()),
}
}
}
@@ -613,7 +613,7 @@ pub fn get_dictionary_property(cx: *mut JSContext,
pub fn HasPropertyOnPrototype(cx: *mut JSContext, proxy: *mut JSObject, id: jsid) -> bool {
// MOZ_ASSERT(js::IsProxy(proxy) && js::GetProxyHandler(proxy) == handler);
let mut found = false;
- return !GetPropertyOnPrototype(cx, proxy, id, &mut found, ptr::mut_null()) || found;
+ return !GetPropertyOnPrototype(cx, proxy, id, &mut found, ptr::null_mut()) || found;
}
/// Returns whether `obj` can be converted to a callback interface per IDL.
@@ -626,9 +626,9 @@ pub fn IsConvertibleToCallbackInterface(cx: *mut JSContext, obj: *mut JSObject)
/// Create a DOM global object with the given class.
pub fn CreateDOMGlobal(cx: *mut JSContext, class: *const JSClass) -> *mut JSObject {
unsafe {
- let obj = JS_NewGlobalObject(cx, class, ptr::mut_null());
+ let obj = JS_NewGlobalObject(cx, class, ptr::null_mut());
if obj.is_null() {
- return ptr::mut_null();
+ return ptr::null_mut();
}
with_compartment(cx, obj, || {
JS_InitStandardClasses(cx, obj);
@@ -639,18 +639,14 @@ pub fn CreateDOMGlobal(cx: *mut JSContext, class: *const JSClass) -> *mut JSObje
}
/// Callback to outerize windows when wrapping.
-pub extern fn wrap_for_same_compartment(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObject {
- unsafe {
- JS_ObjectToOuterObject(cx, obj)
- }
+pub unsafe extern fn wrap_for_same_compartment(cx: *mut JSContext, obj: *mut JSObject) -> *mut JSObject {
+ JS_ObjectToOuterObject(cx, obj)
}
/// Callback to outerize windows before wrapping.
-pub extern fn pre_wrap(cx: *mut JSContext, _scope: *mut JSObject,
+pub unsafe extern fn pre_wrap(cx: *mut JSContext, _scope: *mut JSObject,
obj: *mut JSObject, _flags: c_uint) -> *mut JSObject {
- unsafe {
- JS_ObjectToOuterObject(cx, obj)
- }
+ JS_ObjectToOuterObject(cx, obj)
}
/// Callback to outerize windows.
@@ -664,7 +660,7 @@ pub extern fn outerize_global(_cx: *mut JSContext, obj: JSHandleObject) -> *mut
IDLInterface::get_prototype_depth(None::<window::Window>))
.unwrap()
.root();
- win.deref().browser_context.deref().borrow().get_ref().window_proxy()
+ win.deref().browser_context.deref().borrow().as_ref().unwrap().window_proxy()
}
}
@@ -675,12 +671,12 @@ pub fn global_object_for_js_object(obj: *mut JSObject) -> GlobalField {
let global = GetGlobalForObjectCrossCompartment(obj);
let clasp = JS_GetClass(global);
assert!(((*clasp).flags & (JSCLASS_IS_DOMJSCLASS | JSCLASS_IS_GLOBAL)) != 0);
- match FromJSValConvertible::from_jsval(ptr::mut_null(), ObjectOrNullValue(global), ()) {
+ match FromJSValConvertible::from_jsval(ptr::null_mut(), ObjectOrNullValue(global), ()) {
Ok(window) => return WindowField(window),
Err(_) => (),
}
- match FromJSValConvertible::from_jsval(ptr::mut_null(), ObjectOrNullValue(global), ()) {
+ match FromJSValConvertible::from_jsval(ptr::null_mut(), ObjectOrNullValue(global), ()) {
Ok(worker) => return WorkerField(worker),
Err(_) => (),
}
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index fee00301d55..c9ac5e2f040 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -28,7 +28,7 @@ impl BrowserContext {
let mut context = BrowserContext {
history: vec!(SessionHistoryEntry::new(document)),
active_index: 0,
- window_proxy: Traceable::new(ptr::mut_null()),
+ window_proxy: Traceable::new(ptr::null_mut()),
};
context.create_window_proxy();
context
@@ -53,11 +53,11 @@ impl BrowserContext {
let page = win.deref().page();
let js_info = page.js_info();
- let handler = js_info.get_ref().dom_static.windowproxy_handler;
+ let handler = js_info.as_ref().unwrap().dom_static.windowproxy_handler;
assert!(handler.deref().is_not_null());
let parent = win.deref().reflector().get_jsobject();
- let cx = js_info.get_ref().js_context.deref().deref().ptr;
+ let cx = js_info.as_ref().unwrap().js_context.deref().deref().ptr;
let wrapper = with_compartment(cx, parent, || unsafe {
WrapperNew(cx, parent, *handler.deref())
});
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 4050e157dad..8842aee2f37 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -127,7 +127,7 @@ impl DedicatedWorkerGlobalScope {
assert!(JS_ReadStructuredClone(
js_context.ptr, data as *const u64, nbytes,
JS_STRUCTURED_CLONE_VERSION, &mut message,
- ptr::null(), ptr::mut_null()) != 0);
+ ptr::null(), ptr::null_mut()) != 0);
}
MessageEvent::dispatch_jsval(target, &Worker(scope), message);
@@ -152,11 +152,11 @@ impl DedicatedWorkerGlobalScope {
impl<'a> DedicatedWorkerGlobalScopeMethods for JSRef<'a, DedicatedWorkerGlobalScope> {
fn PostMessage(self, cx: *mut JSContext, message: JSVal) {
- let mut data = ptr::mut_null();
+ let mut data = ptr::null_mut();
let mut nbytes = 0;
unsafe {
assert!(JS_WriteStructuredClone(cx, message, &mut data, &mut nbytes,
- ptr::null(), ptr::mut_null()) != 0);
+ ptr::null(), ptr::null_mut()) != 0);
}
let ScriptChan(ref sender) = self.parent_sender;
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index b6971f5dd14..265131f00f0 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -356,12 +356,14 @@ impl<'a> PrivateDocumentHelpers for JSRef<'a, Document> {
}
fn get_html_element(self) -> Option<Temporary<HTMLHtmlElement>> {
- self.GetDocumentElement().root().filtered(|root| {
- let root: JSRef<Node> = NodeCast::from_ref(**root);
- root.type_id() == ElementNodeTypeId(HTMLHtmlElementTypeId)
- }).map(|elem| {
- Temporary::from_rooted(HTMLHtmlElementCast::to_ref(*elem).unwrap())
- })
+ match self.GetDocumentElement().root() {
+ Some(ref root) if {
+ let root: JSRef<Node> = NodeCast::from_ref(**root);
+ root.type_id() == ElementNodeTypeId(HTMLHtmlElementTypeId)
+ } => Some(Temporary::from_rooted(HTMLHtmlElementCast::to_ref(**root).unwrap())),
+
+ _ => None,
+ }
}
}
@@ -371,7 +373,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
if self.implementation.get().is_none() {
self.implementation.assign(Some(DOMImplementation::new(self)));
}
- Temporary::new(self.implementation.get().get_ref().clone())
+ Temporary::new(self.implementation.get().as_ref().unwrap().clone())
}
// http://dom.spec.whatwg.org/#dom-document-url
@@ -751,7 +753,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box ImagesFilter;
self.images.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.images.get().get_ref().clone())
+ Temporary::new(self.images.get().as_ref().unwrap().clone())
}
fn Embeds(self) -> Temporary<HTMLCollection> {
@@ -761,7 +763,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box EmbedsFilter;
self.embeds.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.embeds.get().get_ref().clone())
+ Temporary::new(self.embeds.get().as_ref().unwrap().clone())
}
fn Plugins(self) -> Temporary<HTMLCollection> {
@@ -775,7 +777,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box LinksFilter;
self.links.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.links.get().get_ref().clone())
+ Temporary::new(self.links.get().as_ref().unwrap().clone())
}
fn Forms(self) -> Temporary<HTMLCollection> {
@@ -785,7 +787,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box FormsFilter;
self.forms.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.forms.get().get_ref().clone())
+ Temporary::new(self.forms.get().as_ref().unwrap().clone())
}
fn Scripts(self) -> Temporary<HTMLCollection> {
@@ -795,7 +797,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box ScriptsFilter;
self.scripts.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.scripts.get().get_ref().clone())
+ Temporary::new(self.scripts.get().as_ref().unwrap().clone())
}
fn Anchors(self) -> Temporary<HTMLCollection> {
@@ -805,7 +807,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box AnchorsFilter;
self.anchors.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.anchors.get().get_ref().clone())
+ Temporary::new(self.anchors.get().as_ref().unwrap().clone())
}
fn Applets(self) -> Temporary<HTMLCollection> {
@@ -816,7 +818,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
let filter = box AppletsFilter;
self.applets.assign(Some(HTMLCollection::create(*window, root, filter)));
}
- Temporary::new(self.applets.get().get_ref().clone())
+ Temporary::new(self.applets.get().as_ref().unwrap().clone())
}
fn Location(self) -> Temporary<Location> {
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 612188f7be1..ee0abd3a3ac 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -581,7 +581,7 @@ impl<'a> ElementMethods for JSRef<'a, Element> {
let window = doc.deref().window.root();
let list = NamedNodeMap::new(*window, self);
self.attr_list.assign(Some(list));
- Temporary::new(self.attr_list.get().get_ref().clone())
+ Temporary::new(self.attr_list.get().as_ref().unwrap().clone())
}
// http://dom.spec.whatwg.org/#dom-element-getattribute
@@ -830,7 +830,7 @@ pub fn get_attribute_parts<'a>(name: &'a str) -> (Option<&'a str>, &'a str) {
//FIXME: Throw for XML-invalid names
//FIXME: Throw for XMLNS-invalid names
let (prefix, local_name) = if name.contains(":") {
- let mut parts = name.splitn(':', 1);
+ let mut parts = name.splitn(1, ':');
(Some(parts.next().unwrap()), parts.next().unwrap())
} else {
(None, name)
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index ebe904bc476..62404fe4004 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -185,7 +185,7 @@ impl<'a> EventTargetHelpers for JSRef<'a, EventTarget> {
let source: Vec<u16> = source.as_slice().utf16_units().collect();
let handler = unsafe {
JS_CompileUCFunction(cx,
- ptr::mut_null(),
+ ptr::null_mut(),
name.as_ptr(),
nargs,
&arg_names as *const *const i8 as *mut *const i8,
@@ -254,7 +254,7 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> {
Some(listener) => {
let mut handlers = self.handlers.deref().borrow_mut();
let mut entry = handlers.find_mut(&ty);
- for entry in entry.mut_iter() {
+ for entry in entry.iter_mut() {
let phase = if capture { Capturing } else { Bubbling };
let old_entry = EventListenerEntry {
phase: phase,
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs
index 4374a55067e..4a023505244 100644
--- a/components/script/dom/formdata.rs
+++ b/components/script/dom/formdata.rs
@@ -73,7 +73,7 @@ impl<'a> FormDataMethods for JSRef<'a, FormData> {
fn Get(self, name: DOMString) -> Option<FileOrString> {
if self.data.deref().borrow().contains_key_equiv(&name) {
- match self.data.deref().borrow().get(&name)[0].clone() {
+ match (*self.data.deref().borrow())[name][0].clone() {
StringData(ref s) => Some(eString(s.clone())),
FileData(ref f) => {
Some(eFile(f.clone()))
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index 6a4baf3f5dc..b321d40b4eb 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -23,7 +23,7 @@ pub trait CollectionFilter {
fn filter(&self, elem: JSRef<Element>, root: JSRef<Node>) -> bool;
}
-impl<S: Encoder<E>, E> Encodable<S, E> for Box<CollectionFilter> {
+impl<S: Encoder<E>, E> Encodable<S, E> for Box<CollectionFilter+'static> {
fn encode(&self, _s: &mut S) -> Result<(), E> {
Ok(())
}
@@ -33,7 +33,7 @@ impl<S: Encoder<E>, E> Encodable<S, E> for Box<CollectionFilter> {
#[must_root]
pub enum CollectionTypeId {
Static(Vec<JS<Element>>),
- Live(JS<Node>, Box<CollectionFilter>)
+ Live(JS<Node>, Box<CollectionFilter+'static>)
}
#[deriving(Encodable)]
@@ -59,7 +59,7 @@ impl HTMLCollection {
impl HTMLCollection {
pub fn create(window: JSRef<Window>, root: JSRef<Node>,
- filter: Box<CollectionFilter>) -> Temporary<HTMLCollection> {
+ filter: Box<CollectionFilter+'static>) -> Temporary<HTMLCollection> {
HTMLCollection::new(window, Live(JS::from_rooted(root), filter))
}
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index 156749fb623..31562953cd9 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -78,8 +78,8 @@ impl<'a> HTMLOptionElementMethods for JSRef<'a, HTMLOptionElement> {
}
// http://www.whatwg.org/html/#dom-option-text
- fn Text(&self) -> DOMString {
- let node: JSRef<Node> = NodeCast::from_ref(*self);
+ fn Text(self) -> DOMString {
+ let node: JSRef<Node> = NodeCast::from_ref(self);
let mut content = String::new();
collect_text(&node, &mut content);
let v: Vec<&str> = split_html_space_chars(content.as_slice()).collect();
@@ -87,8 +87,8 @@ impl<'a> HTMLOptionElementMethods for JSRef<'a, HTMLOptionElement> {
}
// http://www.whatwg.org/html/#dom-option-text
- fn SetText(&self, value: DOMString) {
- let node: JSRef<Node> = NodeCast::from_ref(*self);
+ fn SetText(self, value: DOMString) {
+ let node: JSRef<Node> = NodeCast::from_ref(self);
node.SetTextContent(Some(value))
}
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 786445bf628..40b3aa57085 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -657,7 +657,7 @@ impl<'m, 'n> NodeHelpers<'m, 'n> for JSRef<'n, Node> {
}
fn owner_doc(&self) -> Temporary<Document> {
- Temporary::new(self.owner_doc.get().get_ref().clone())
+ Temporary::new(self.owner_doc.get().as_ref().unwrap().clone())
}
fn set_owner_doc(&self, document: JSRef<Document>) {
@@ -869,7 +869,7 @@ impl<'a> Iterator<JSRef<'a, Node>> for AncestorIterator<'a> {
}
// FIXME: Do we need two clones here?
- let x = self.current.get_ref().clone();
+ let x = self.current.as_ref().unwrap().clone();
self.current = x.parent_node().map(|node| (*node.root()).clone());
Some(x)
}
@@ -1236,7 +1236,7 @@ impl Node {
// Step 7: mutation records.
// Step 8.
- for node in nodes.mut_iter() {
+ for node in nodes.iter_mut() {
parent.add_child(*node, child);
let is_in_doc = parent.is_in_doc();
for kid in node.traverse_preorder() {
@@ -1571,7 +1571,7 @@ impl<'a> NodeMethods for JSRef<'a, Node> {
let window = doc.deref().window.root();
let child_list = NodeList::new_child_list(*window, self);
self.child_list.assign(Some(child_list));
- Temporary::new(self.child_list.get().get_ref().clone())
+ Temporary::new(self.child_list.get().as_ref().unwrap().clone())
}
// http://dom.spec.whatwg.org/#dom-node-firstchild
@@ -2023,12 +2023,12 @@ impl Reflectable for Node {
}
}
-pub fn document_from_node<T: NodeBase>(derived: JSRef<T>) -> Temporary<Document> {
+pub fn document_from_node<T: NodeBase+Reflectable>(derived: JSRef<T>) -> Temporary<Document> {
let node: JSRef<Node> = NodeCast::from_ref(derived);
node.owner_doc()
}
-pub fn window_from_node<T: NodeBase>(derived: JSRef<T>) -> Temporary<Window> {
+pub fn window_from_node<T: NodeBase+Reflectable>(derived: JSRef<T>) -> Temporary<Window> {
let document = document_from_node(derived).root();
Temporary::new(document.deref().window.clone())
}
diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs
index ea8d7da7002..f675e01d014 100644
--- a/components/script/dom/urlsearchparams.rs
+++ b/components/script/dom/urlsearchparams.rs
@@ -14,7 +14,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use servo_util::str::DOMString;
use encoding::all::UTF_8;
-use encoding::types::{Encoding, EncodeReplace};
+use encoding::types::{EncodingRef, EncodeReplace};
use std::cell::RefCell;
use std::collections::hashmap::HashMap;
@@ -93,14 +93,14 @@ impl Reflectable for URLSearchParams {
}
pub trait URLSearchParamsHelpers {
- fn serialize(&self, encoding: Option<&'static Encoding>) -> Vec<u8>;
+ fn serialize(&self, encoding: Option<EncodingRef>) -> Vec<u8>;
fn update_steps(&self);
}
impl URLSearchParamsHelpers for URLSearchParams {
- fn serialize(&self, encoding: Option<&'static Encoding>) -> Vec<u8> {
+ fn serialize(&self, encoding: Option<EncodingRef>) -> Vec<u8> {
// http://url.spec.whatwg.org/#concept-urlencoded-serializer
- fn serialize_string(value: &DOMString, encoding: &'static Encoding) -> Vec<u8> {
+ fn serialize_string(value: &DOMString, encoding: EncodingRef) -> Vec<u8> {
// http://url.spec.whatwg.org/#concept-urlencoded-byte-serializer
let value = value.as_slice();
@@ -126,7 +126,7 @@ impl URLSearchParamsHelpers for URLSearchParams {
}
buf
}
- let encoding = encoding.unwrap_or(UTF_8 as &'static Encoding);
+ let encoding = encoding.unwrap_or(UTF_8 as EncodingRef);
let mut buf = vec!();
let mut first_pair = true;
for (k, v) in self.data.deref().borrow().iter() {
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs
index 43c2d7184bd..d2332fcce1f 100644
--- a/components/script/dom/virtualmethods.rs
+++ b/components/script/dom/virtualmethods.rs
@@ -138,82 +138,82 @@ pub trait VirtualMethods {
/// method call on the trait object will invoke the corresponding method on the
/// concrete type, propagating up the parent hierarchy unless otherwise
/// interrupted.
-pub fn vtable_for<'a>(node: &'a JSRef<Node>) -> &'a VirtualMethods {
+pub fn vtable_for<'a>(node: &'a JSRef<'a, Node>) -> &'a VirtualMethods + 'a {
match node.type_id() {
ElementNodeTypeId(HTMLAnchorElementTypeId) => {
- let element: &JSRef<HTMLAnchorElement> = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLAnchorElement> = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLAreaElementTypeId) => {
- let element: &JSRef<HTMLAreaElement> = HTMLAreaElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLAreaElement> = HTMLAreaElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLBodyElementTypeId) => {
- let element: &JSRef<HTMLBodyElement> = HTMLBodyElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLBodyElement> = HTMLBodyElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLButtonElementTypeId) => {
- let element: &JSRef<HTMLButtonElement> = HTMLButtonElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLButtonElement> = HTMLButtonElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLCanvasElementTypeId) => {
- let element: &JSRef<HTMLCanvasElement> = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLCanvasElement> = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLFieldSetElementTypeId) => {
- let element: &JSRef<HTMLFieldSetElement> = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLFieldSetElement> = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLImageElementTypeId) => {
- let element: &JSRef<HTMLImageElement> = HTMLImageElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLImageElement> = HTMLImageElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLIFrameElementTypeId) => {
- let element: &JSRef<HTMLIFrameElement> = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLIFrameElement> = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLInputElementTypeId) => {
- let element: &JSRef<HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLLinkElementTypeId) => {
- let element: &JSRef<HTMLLinkElement> = HTMLLinkElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLLinkElement> = HTMLLinkElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLObjectElementTypeId) => {
- let element: &JSRef<HTMLObjectElement> = HTMLObjectElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLObjectElement> = HTMLObjectElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLOptGroupElementTypeId) => {
- let element: &JSRef<HTMLOptGroupElement> = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLOptGroupElement> = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLOptionElementTypeId) => {
- let element: &JSRef<HTMLOptionElement> = HTMLOptionElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLOptionElement> = HTMLOptionElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLSelectElementTypeId) => {
- let element: &JSRef<HTMLSelectElement> = HTMLSelectElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLSelectElement> = HTMLSelectElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLStyleElementTypeId) => {
- let element: &JSRef<HTMLStyleElement> = HTMLStyleElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLStyleElement> = HTMLStyleElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(HTMLTextAreaElementTypeId) => {
- let element: &JSRef<HTMLTextAreaElement> = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLTextAreaElement> = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(ElementTypeId) => {
- let element: &JSRef<Element> = ElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, Element> = ElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
ElementNodeTypeId(_) => {
- let element: &JSRef<HTMLElement> = HTMLElementCast::to_borrowed_ref(node).unwrap();
- element as &VirtualMethods
+ let element: &'a JSRef<'a, HTMLElement> = HTMLElementCast::to_borrowed_ref(node).unwrap();
+ element as &'a VirtualMethods + 'a
}
_ => {
- node as &VirtualMethods
+ node as &'a VirtualMethods + 'a
}
}
}
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 631dfbec858..371e33d4588 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -48,6 +48,7 @@ use std::hash::{Hash, sip};
use std::io::timer::Timer;
use std::ptr;
use std::rc::Rc;
+use std::time::duration::Duration;
use time;
#[deriving(PartialEq, Encodable, Eq)]
@@ -85,7 +86,7 @@ pub struct Window {
pub image_cache_task: ImageCacheTask,
pub active_timers: Traceable<RefCell<HashMap<TimerId, TimerHandle>>>,
next_timer_handle: Traceable<Cell<i32>>,
- pub compositor: Untraceable<Box<ScriptListener>>,
+ pub compositor: Untraceable<Box<ScriptListener+'static>>,
pub browser_context: Traceable<RefCell<Option<BrowserContext>>>,
pub page: Rc<Page>,
performance: Cell<Option<JS<Performance>>>,
@@ -97,7 +98,7 @@ pub struct Window {
impl Window {
pub fn get_cx(&self) -> *mut JSContext {
let js_info = self.page().js_info();
- (**js_info.get_ref().js_context).ptr
+ (**js_info.as_ref().unwrap().js_context).ptr
}
pub fn page<'a>(&'a self) -> &'a Page {
@@ -111,7 +112,7 @@ impl Window {
#[unsafe_destructor]
impl Drop for Window {
fn drop(&mut self) {
- for (_, timer_handle) in self.active_timers.borrow_mut().mut_iter() {
+ for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() {
timer_handle.cancel();
}
}
@@ -214,7 +215,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
fn Document(self) -> Temporary<Document> {
let frame = self.page().frame();
- Temporary::new(frame.get_ref().document.clone())
+ Temporary::new(frame.as_ref().unwrap().document.clone())
}
fn Location(self) -> Temporary<Location> {
@@ -223,7 +224,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let location = Location::new(self, page);
self.location.assign(Some(location));
}
- Temporary::new(self.location.get().get_ref().clone())
+ Temporary::new(self.location.get().as_ref().unwrap().clone())
}
fn Console(self) -> Temporary<Console> {
@@ -231,7 +232,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let console = Console::new(&global::Window(self));
self.console.assign(Some(console));
}
- Temporary::new(self.console.get().get_ref().clone())
+ Temporary::new(self.console.get().as_ref().unwrap().clone())
}
fn Navigator(self) -> Temporary<Navigator> {
@@ -239,7 +240,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let navigator = Navigator::new(self);
self.navigator.assign(Some(navigator));
}
- Temporary::new(self.navigator.get().get_ref().clone())
+ Temporary::new(self.navigator.get().as_ref().unwrap().clone())
}
fn SetTimeout(self, _cx: *mut JSContext, callback: JSVal, timeout: i32) -> i32 {
@@ -287,7 +288,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let performance = Performance::new(self);
self.performance.assign(Some(performance));
}
- Temporary::new(self.performance.get().get_ref().clone())
+ Temporary::new(self.performance.get().as_ref().unwrap().clone())
}
fn GetOnclick(self) -> Option<EventHandlerNonNull> {
@@ -335,7 +336,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let screen = Screen::new(self);
self.screen.assign(Some(screen));
}
- Temporary::new(self.screen.get().get_ref().clone())
+ Temporary::new(self.screen.get().as_ref().unwrap().clone())
}
fn Debug(self, message: DOMString) {
@@ -444,7 +445,7 @@ impl<'a> WindowHelpers for JSRef<'a, Window> {
let mut rval = NullValue();
unsafe {
JS_CallFunctionValue(cx, this_value, *data.funval,
- 0, ptr::mut_null(), &mut rval);
+ 0, ptr::null_mut(), &mut rval);
}
});
@@ -473,10 +474,11 @@ impl<'a> PrivateWindowHelpers for JSRef<'a, Window> {
};
spawn_named(spawn_name, proc() {
let mut tm = tm;
+ let duration = Duration::milliseconds(timeout as i64);
let timeout_port = if is_interval {
- tm.periodic(timeout)
+ tm.periodic(duration)
} else {
- tm.oneshot(timeout)
+ tm.oneshot(duration)
};
let cancel_port = cancel_port;
@@ -519,7 +521,7 @@ impl Window {
page: Rc<Page>,
script_chan: ScriptChan,
control_chan: ScriptControlChan,
- compositor: Box<ScriptListener>,
+ compositor: Box<ScriptListener+'static>,
image_cache_task: ImageCacheTask)
-> Temporary<Window> {
let win = box Window {
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index af7302a1671..a0d8f4685cd 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -89,7 +89,7 @@ impl Worker {
assert!(JS_ReadStructuredClone(
global.root_ref().get_cx(), data as *const u64, nbytes,
JS_STRUCTURED_CLONE_VERSION, &mut message,
- ptr::null(), ptr::mut_null()) != 0);
+ ptr::null(), ptr::null_mut()) != 0);
}
let target: JSRef<EventTarget> = EventTargetCast::from_ref(*worker);
@@ -131,11 +131,11 @@ impl Worker {
impl<'a> WorkerMethods for JSRef<'a, Worker> {
fn PostMessage(self, cx: *mut JSContext, message: JSVal) {
- let mut data = ptr::mut_null();
+ let mut data = ptr::null_mut();
let mut nbytes = 0;
unsafe {
assert!(JS_WriteStructuredClone(cx, message, &mut data, &mut nbytes,
- ptr::null(), ptr::mut_null()) != 0);
+ ptr::null(), ptr::null_mut()) != 0);
}
self.addref();
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index b0df64f0b11..f5bb583fddb 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -88,12 +88,12 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
let location = WorkerLocation::new(self, self.worker_url.deref().clone());
self.location.assign(Some(location));
}
- Temporary::new(self.location.get().get_ref().clone())
+ Temporary::new(self.location.get().as_ref().unwrap().clone())
}
fn ImportScripts(self, url_strings: Vec<DOMString>) -> ErrorResult {
let mut urls = Vec::with_capacity(url_strings.len());
- for url in url_strings.move_iter() {
+ for url in url_strings.into_iter() {
let url = UrlParser::new().base_url(&*self.worker_url)
.parse(url.as_slice());
match url {
@@ -102,7 +102,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
};
}
- for url in urls.move_iter() {
+ for url in urls.into_iter() {
let (url, source) = match load_whole_resource(&*self.resource_task, url) {
Err(_) => return Err(Network),
Ok((metadata, bytes)) => {
@@ -128,7 +128,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
let navigator = WorkerNavigator::new(self);
self.navigator.assign(Some(navigator));
}
- Temporary::new(self.navigator.get().get_ref().clone())
+ Temporary::new(self.navigator.get().as_ref().unwrap().clone())
}
fn Console(self) -> Temporary<Console> {
@@ -136,7 +136,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
let console = Console::new(&global::Worker(self));
self.console.assign(Some(console));
}
- Temporary::new(self.console.get().get_ref().clone())
+ Temporary::new(self.console.get().as_ref().unwrap().clone())
}
fn Btoa(self, btoa: DOMString) -> Fallible<DOMString> {
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 42ff2f483cb..d2813f505b0 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -28,8 +28,8 @@ use encoding::all::UTF_8;
use encoding::label::encoding_from_whatwg_label;
use encoding::types::{DecodeReplace, Encoding, EncodingRef, EncodeReplace};
-use ResponseHeaderCollection = http::headers::response::HeaderCollection;
-use RequestHeaderCollection = http::headers::request::HeaderCollection;
+use http::headers::response::HeaderCollection as ResponseHeaderCollection;
+use http::headers::request::HeaderCollection as RequestHeaderCollection;
use http::headers::content_type::MediaType;
use http::headers::{HeaderEnum, HeaderValueByteIterator};
use http::headers::request::Header;
@@ -56,6 +56,8 @@ use std::io::{BufReader, MemWriter, Timer};
use std::from_str::FromStr;
use std::path::BytesContainer;
use std::task::TaskBuilder;
+use std::time::duration::Duration;
+use std::num::Zero;
use time;
use url::{Url, UrlParser};
@@ -538,7 +540,7 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> {
referer_url.serialize_host().map(|ref h| buf.push_str(h.as_slice()));
referer_url.port().as_ref().map(|&p| {
buf.push_str(":".as_slice());
- buf.push_str(p);
+ buf.push_str(format!("{:u}", p).as_slice());
});
referer_url.serialize_path().map(|ref h| buf.push_str(h.as_slice()));
self.request_headers.deref().borrow_mut().referer = Some(buf);
@@ -888,7 +890,8 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
fn set_timeout(self, timeout: u32) {
// Sets up the object to timeout in a given number of milliseconds
// This will cancel all previous timeouts
- let oneshot = self.timer.deref().borrow_mut().oneshot(timeout as u64);
+ let oneshot = self.timer.deref().borrow_mut()
+ .oneshot(Duration::milliseconds(timeout as i64));
let addr = unsafe {
self.to_trusted() // This will increment the pin counter by one
};
@@ -923,7 +926,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
self.release_once();
}
// oneshot() closes the previous channel, canceling the timeout
- self.timer.deref().borrow_mut().oneshot(0);
+ self.timer.deref().borrow_mut().oneshot(Zero::zero());
}
fn text_response(self) -> DOMString {
let mut encoding = UTF_8 as EncodingRef;