mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Untry script
This commit is contained in:
parent
a5bb55790f
commit
7af5a7fd54
36 changed files with 199 additions and 199 deletions
|
@ -148,8 +148,8 @@ fn run_form_data_algorithm(root: &GlobalScope, bytes: Vec<u8>, mime: &[u8]) -> F
|
|||
} else {
|
||||
""
|
||||
};
|
||||
let mime: Mime = try!(mime_str.parse().map_err(
|
||||
|_| Error::Type("Inappropriate MIME-type for Body".to_string())));
|
||||
let mime: Mime = mime_str.parse().map_err(
|
||||
|_| Error::Type("Inappropriate MIME-type for Body".to_string()))?;
|
||||
match mime {
|
||||
// TODO
|
||||
// ... Parser for Mime(TopLevel::Multipart, SubLevel::FormData, _)
|
||||
|
|
|
@ -390,7 +390,7 @@ pub unsafe fn private_from_proto_check<F>(mut obj: *mut JSObject,
|
|||
-> Result<*const libc::c_void, ()>
|
||||
where F: Fn(&'static DOMClass) -> bool
|
||||
{
|
||||
let dom_class = try!(get_dom_class(obj).or_else(|_| {
|
||||
let dom_class = get_dom_class(obj).or_else(|_| {
|
||||
if IsWrapper(obj) {
|
||||
trace!("found wrapper");
|
||||
obj = UnwrapObject(obj, /* stopAtWindowProxy = */ 0);
|
||||
|
@ -406,7 +406,7 @@ pub unsafe fn private_from_proto_check<F>(mut obj: *mut JSObject,
|
|||
trace!("not a dom wrapper");
|
||||
Err(())
|
||||
}
|
||||
}));
|
||||
})?;
|
||||
|
||||
if proto_check(dom_class) {
|
||||
trace!("good prototype");
|
||||
|
|
|
@ -69,7 +69,7 @@ impl<T, C> FromJSValConvertible for MozMap<T>
|
|||
return Err(());
|
||||
}
|
||||
|
||||
let property = match try!(T::from_jsval(cx, property.handle(), config.clone())) {
|
||||
let property = match T::from_jsval(cx, property.handle(), config.clone())? {
|
||||
ConversionResult::Success(property) => property,
|
||||
ConversionResult::Failure(message) => return Ok(ConversionResult::Failure(message)),
|
||||
};
|
||||
|
|
|
@ -114,7 +114,7 @@ unsafe fn write_blob(blob: Root<Blob>,
|
|||
w: *mut JSStructuredCloneWriter)
|
||||
-> Result<(), ()> {
|
||||
let structured_writer = StructuredCloneWriter { w: w };
|
||||
let blob_vec = try!(blob.get_bytes());
|
||||
let blob_vec = blob.get_bytes()?;
|
||||
assert!(JS_WriteUint32Pair(w, StructuredCloneTags::DomBlob as u32, 0));
|
||||
structured_writer.write_slice(&blob_vec);
|
||||
structured_writer.write_str(&blob.type_string());
|
||||
|
|
|
@ -32,7 +32,7 @@ pub fn validate_and_extract(namespace: Option<DOMString>,
|
|||
let namespace = namespace_from_domstring(namespace);
|
||||
|
||||
// Step 2.
|
||||
try!(validate_qualified_name(qualified_name));
|
||||
validate_qualified_name(qualified_name)?;
|
||||
|
||||
let colon = ':';
|
||||
|
||||
|
|
|
@ -328,7 +328,7 @@ fn canonicalize_filter(filter: &BluetoothLEScanFilterInit) -> Fallible<Bluetooth
|
|||
|
||||
for service in services {
|
||||
// Step 3.2 - 3.3.
|
||||
let uuid = try!(BluetoothUUID::service(service.clone())).to_string();
|
||||
let uuid = BluetoothUUID::service(service.clone())?.to_string();
|
||||
|
||||
// Step 3.4.
|
||||
if uuid_is_blocklisted(uuid.as_ref(), Blocklist::All) {
|
||||
|
@ -393,7 +393,7 @@ fn canonicalize_filter(filter: &BluetoothLEScanFilterInit) -> Fallible<Bluetooth
|
|||
// Step 7.3: No need to convert to IDL values since this is only used by native code.
|
||||
|
||||
// Step 7.4 - 7.5.
|
||||
map.insert(manufacturer_id, try!(canonicalize_bluetooth_data_filter_init(bdfi)));
|
||||
map.insert(manufacturer_id, canonicalize_bluetooth_data_filter_init(bdfi)?);
|
||||
}
|
||||
Some(map)
|
||||
},
|
||||
|
@ -417,7 +417,7 @@ fn canonicalize_filter(filter: &BluetoothLEScanFilterInit) -> Fallible<Bluetooth
|
|||
};
|
||||
|
||||
// Step 9.3 - 9.4.
|
||||
let service = try!(BluetoothUUID::service(service_name)).to_string();
|
||||
let service = BluetoothUUID::service(service_name)?.to_string();
|
||||
|
||||
// Step 9.5.
|
||||
if uuid_is_blocklisted(service.as_ref(), Blocklist::All) {
|
||||
|
@ -427,7 +427,7 @@ fn canonicalize_filter(filter: &BluetoothLEScanFilterInit) -> Fallible<Bluetooth
|
|||
// Step 9.6: No need to convert to IDL values since this is only used by native code.
|
||||
|
||||
// Step 9.7 - 9.8.
|
||||
map.insert(service, try!(canonicalize_bluetooth_data_filter_init(bdfi)));
|
||||
map.insert(service, canonicalize_bluetooth_data_filter_init(bdfi)?);
|
||||
}
|
||||
Some(map)
|
||||
},
|
||||
|
|
|
@ -1137,18 +1137,18 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
|
|||
// https://html.spec.whatwg.org/multipage/#img-error
|
||||
// If the image argument is an HTMLImageElement object that is in the broken state,
|
||||
// then throw an InvalidStateError exception
|
||||
try!(self.fetch_image_data(image).ok_or(Error::InvalidState))
|
||||
self.fetch_image_data(image).ok_or(Error::InvalidState)?
|
||||
},
|
||||
HTMLImageElementOrHTMLCanvasElementOrCanvasRenderingContext2D::HTMLCanvasElement(ref canvas) => {
|
||||
let _ = canvas.get_or_init_2d_context();
|
||||
|
||||
try!(canvas.fetch_all_data().ok_or(Error::InvalidState))
|
||||
canvas.fetch_all_data().ok_or(Error::InvalidState)?
|
||||
},
|
||||
HTMLImageElementOrHTMLCanvasElementOrCanvasRenderingContext2D::CanvasRenderingContext2D(ref context) => {
|
||||
let canvas = context.Canvas();
|
||||
let _ = canvas.get_or_init_2d_context();
|
||||
|
||||
try!(canvas.fetch_all_data().ok_or(Error::InvalidState))
|
||||
canvas.fetch_all_data().ok_or(Error::InvalidState)?
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -293,11 +293,11 @@ impl DedicatedWorkerGlobalScope {
|
|||
}
|
||||
let ret = sel.wait();
|
||||
if ret == worker_handle.id() {
|
||||
Ok(MixedMessage::FromWorker(try!(worker_port.recv())))
|
||||
Ok(MixedMessage::FromWorker(worker_port.recv()?))
|
||||
} else if ret == timer_event_handle.id() {
|
||||
Ok(MixedMessage::FromScheduler(try!(timer_event_port.recv())))
|
||||
Ok(MixedMessage::FromScheduler(timer_event_port.recv()?))
|
||||
} else if ret == devtools_handle.id() {
|
||||
Ok(MixedMessage::FromDevtools(try!(devtools_port.recv())))
|
||||
Ok(MixedMessage::FromDevtools(devtools_port.recv()?))
|
||||
} else {
|
||||
panic!("unexpected select result!")
|
||||
}
|
||||
|
@ -384,7 +384,7 @@ impl DedicatedWorkerGlobalScopeMethods for DedicatedWorkerGlobalScope {
|
|||
#[allow(unsafe_code)]
|
||||
// https://html.spec.whatwg.org/multipage/#dom-dedicatedworkerglobalscope-postmessage
|
||||
unsafe fn PostMessage(&self, cx: *mut JSContext, message: HandleValue) -> ErrorResult {
|
||||
let data = try!(StructuredCloneData::write(cx, message));
|
||||
let data = StructuredCloneData::write(cx, message)?;
|
||||
let worker = self.worker.borrow().as_ref().unwrap().clone();
|
||||
self.parent_sender
|
||||
.send(CommonScriptMsg::RunnableMsg(WorkerEvent,
|
||||
|
|
|
@ -146,7 +146,7 @@ impl DissimilarOriginWindowMethods for DissimilarOriginWindow {
|
|||
|
||||
// Step 1-2, 6-8.
|
||||
// TODO(#12717): Should implement the `transfer` argument.
|
||||
let data = try!(StructuredCloneData::write(cx, message));
|
||||
let data = StructuredCloneData::write(cx, message)?;
|
||||
|
||||
// Step 9.
|
||||
self.post_message(origin, data);
|
||||
|
|
|
@ -1454,7 +1454,7 @@ impl Document {
|
|||
for node in nodes {
|
||||
match node {
|
||||
NodeOrString::Node(node) => {
|
||||
try!(fragment.AppendChild(&node));
|
||||
fragment.AppendChild(&node)?;
|
||||
},
|
||||
NodeOrString::String(string) => {
|
||||
let node = Root::upcast::<Node>(self.CreateTextNode(string));
|
||||
|
@ -2819,8 +2819,8 @@ impl DocumentMethods for Document {
|
|||
namespace: Option<DOMString>,
|
||||
qualified_name: DOMString)
|
||||
-> Fallible<Root<Element>> {
|
||||
let (namespace, prefix, local_name) = try!(validate_and_extract(namespace,
|
||||
&qualified_name));
|
||||
let (namespace, prefix, local_name) = validate_and_extract(namespace,
|
||||
&qualified_name)?;
|
||||
let name = QualName::new(prefix, namespace, local_name);
|
||||
Ok(Element::create(name, self, ElementCreator::ScriptCreated))
|
||||
}
|
||||
|
@ -2845,8 +2845,8 @@ impl DocumentMethods for Document {
|
|||
namespace: Option<DOMString>,
|
||||
qualified_name: DOMString)
|
||||
-> Fallible<Root<Attr>> {
|
||||
let (namespace, prefix, local_name) = try!(validate_and_extract(namespace,
|
||||
&qualified_name));
|
||||
let (namespace, prefix, local_name) = validate_and_extract(namespace,
|
||||
&qualified_name)?;
|
||||
let value = AttrValue::String("".to_owned());
|
||||
let qualified_name = LocalName::from(qualified_name);
|
||||
Ok(Attr::new(&self.window,
|
||||
|
|
|
@ -57,7 +57,7 @@ impl DOMImplementationMethods for DOMImplementation {
|
|||
pubid: DOMString,
|
||||
sysid: DOMString)
|
||||
-> Fallible<Root<DocumentType>> {
|
||||
try!(validate_qualified_name(&qualified_name));
|
||||
validate_qualified_name(&qualified_name)?;
|
||||
Ok(DocumentType::new(qualified_name, Some(pubid), Some(sysid), &self.document))
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ impl DOMTokenListMethods for DOMTokenList {
|
|||
fn Add(&self, tokens: Vec<DOMString>) -> ErrorResult {
|
||||
let mut atoms = self.element.get_tokenlist_attribute(&self.local_name);
|
||||
for token in &tokens {
|
||||
let token = try!(self.check_token_exceptions(&token));
|
||||
let token = self.check_token_exceptions(&token)?;
|
||||
if !atoms.iter().any(|atom| *atom == token) {
|
||||
atoms.push(token);
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ impl DOMTokenListMethods for DOMTokenList {
|
|||
fn Remove(&self, tokens: Vec<DOMString>) -> ErrorResult {
|
||||
let mut atoms = self.element.get_tokenlist_attribute(&self.local_name);
|
||||
for token in &tokens {
|
||||
let token = try!(self.check_token_exceptions(&token));
|
||||
let token = self.check_token_exceptions(&token)?;
|
||||
atoms.iter().position(|atom| *atom == token).map(|index| atoms.remove(index));
|
||||
}
|
||||
self.element.set_atomic_tokenlist_attribute(&self.local_name, atoms);
|
||||
|
@ -107,7 +107,7 @@ impl DOMTokenListMethods for DOMTokenList {
|
|||
// https://dom.spec.whatwg.org/#dom-domtokenlist-toggle
|
||||
fn Toggle(&self, token: DOMString, force: Option<bool>) -> Fallible<bool> {
|
||||
let mut atoms = self.element.get_tokenlist_attribute(&self.local_name);
|
||||
let token = try!(self.check_token_exceptions(&token));
|
||||
let token = self.check_token_exceptions(&token)?;
|
||||
match atoms.iter().position(|atom| *atom == token) {
|
||||
Some(index) => match force {
|
||||
Some(true) => Ok(true),
|
||||
|
|
|
@ -144,9 +144,9 @@ pub struct Element {
|
|||
|
||||
impl fmt::Debug for Element {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
try!(write!(f, "<{}", self.local_name));
|
||||
write!(f, "<{}", self.local_name)?;
|
||||
if let Some(ref id) = *self.id_attribute.borrow() {
|
||||
try!(write!(f, " id={}", id));
|
||||
write!(f, " id={}", id)?;
|
||||
}
|
||||
write!(f, ">")
|
||||
}
|
||||
|
@ -1532,7 +1532,7 @@ impl ElementMethods for Element {
|
|||
qualified_name: DOMString,
|
||||
value: DOMString) -> ErrorResult {
|
||||
let (namespace, prefix, local_name) =
|
||||
try!(validate_and_extract(namespace, &qualified_name));
|
||||
validate_and_extract(namespace, &qualified_name)?;
|
||||
let qualified_name = LocalName::from(qualified_name);
|
||||
let value = self.parse_attribute(&namespace, &local_name, value);
|
||||
self.set_first_matching_attribute(
|
||||
|
@ -1929,7 +1929,7 @@ impl ElementMethods for Element {
|
|||
/// https://w3c.github.io/DOM-Parsing/#widl-Element-innerHTML
|
||||
fn SetInnerHTML(&self, value: DOMString) -> ErrorResult {
|
||||
// Step 1.
|
||||
let frag = try!(self.parse_fragment(value));
|
||||
let frag = self.parse_fragment(value)?;
|
||||
// Step 2.
|
||||
// https://github.com/w3c/DOM-Parsing/issues/1
|
||||
let target = if let Some(template) = self.downcast::<HTMLTemplateElement>() {
|
||||
|
@ -1974,9 +1974,9 @@ impl ElementMethods for Element {
|
|||
};
|
||||
|
||||
// Step 5.
|
||||
let frag = try!(parent.parse_fragment(value));
|
||||
let frag = parent.parse_fragment(value)?;
|
||||
// Step 6.
|
||||
try!(context_parent.ReplaceChild(frag.upcast(), context_node));
|
||||
context_parent.ReplaceChild(frag.upcast(), context_node)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -2095,8 +2095,8 @@ impl ElementMethods for Element {
|
|||
// https://dom.spec.whatwg.org/#dom-element-insertadjacentelement
|
||||
fn InsertAdjacentElement(&self, where_: DOMString, element: &Element)
|
||||
-> Fallible<Option<Root<Element>>> {
|
||||
let where_ = try!(AdjacentPosition::try_from(&*where_));
|
||||
let inserted_node = try!(self.insert_adjacent(where_, element.upcast()));
|
||||
let where_ = AdjacentPosition::try_from(&*where_)?;
|
||||
let inserted_node = self.insert_adjacent(where_, element.upcast())?;
|
||||
Ok(inserted_node.map(|node| Root::downcast(node).unwrap()))
|
||||
}
|
||||
|
||||
|
@ -2107,7 +2107,7 @@ impl ElementMethods for Element {
|
|||
let text = Text::new(data, &document_from_node(self));
|
||||
|
||||
// Step 2.
|
||||
let where_ = try!(AdjacentPosition::try_from(&*where_));
|
||||
let where_ = AdjacentPosition::try_from(&*where_)?;
|
||||
self.insert_adjacent(where_, text.upcast()).map(|_| ())
|
||||
}
|
||||
|
||||
|
@ -2115,7 +2115,7 @@ impl ElementMethods for Element {
|
|||
fn InsertAdjacentHTML(&self, position: DOMString, text: DOMString)
|
||||
-> ErrorResult {
|
||||
// Step 1.
|
||||
let position = try!(AdjacentPosition::try_from(&*position));
|
||||
let position = AdjacentPosition::try_from(&*position)?;
|
||||
|
||||
let context = match position {
|
||||
AdjacentPosition::BeforeBegin | AdjacentPosition::AfterEnd => {
|
||||
|
@ -2137,7 +2137,7 @@ impl ElementMethods for Element {
|
|||
&context.owner_doc(), context.downcast::<Element>());
|
||||
|
||||
// Step 3.
|
||||
let fragment = try!(context.parse_fragment(text));
|
||||
let fragment = context.parse_fragment(text)?;
|
||||
|
||||
// Step 4.
|
||||
self.insert_adjacent(position, fragment.upcast()).map(|_| ())
|
||||
|
|
|
@ -52,7 +52,7 @@ impl Headers {
|
|||
pub fn Constructor(global: &GlobalScope, init: Option<HeadersInit>)
|
||||
-> Fallible<Root<Headers>> {
|
||||
let dom_headers_new = Headers::new(global);
|
||||
try!(dom_headers_new.fill(init));
|
||||
dom_headers_new.fill(init)?;
|
||||
Ok(dom_headers_new)
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ impl HeadersMethods for Headers {
|
|||
// Step 1
|
||||
let value = normalize_value(value);
|
||||
// Step 2
|
||||
let (mut valid_name, valid_value) = try!(validate_name_and_value(name, value));
|
||||
let (mut valid_name, valid_value) = validate_name_and_value(name, value)?;
|
||||
valid_name = valid_name.to_lowercase();
|
||||
// Step 3
|
||||
if self.guard.get() == Guard::Immutable {
|
||||
|
@ -95,7 +95,7 @@ impl HeadersMethods for Headers {
|
|||
// https://fetch.spec.whatwg.org/#dom-headers-delete
|
||||
fn Delete(&self, name: ByteString) -> ErrorResult {
|
||||
// Step 1
|
||||
let valid_name = try!(validate_name(name));
|
||||
let valid_name = validate_name(name)?;
|
||||
// Step 2
|
||||
if self.guard.get() == Guard::Immutable {
|
||||
return Err(Error::Type("Guard is immutable".to_string()));
|
||||
|
@ -121,7 +121,7 @@ impl HeadersMethods for Headers {
|
|||
// https://fetch.spec.whatwg.org/#dom-headers-get
|
||||
fn Get(&self, name: ByteString) -> Fallible<Option<ByteString>> {
|
||||
// Step 1
|
||||
let valid_name = &try!(validate_name(name));
|
||||
let valid_name = &validate_name(name)?;
|
||||
Ok(self.header_list.borrow().get_raw(&valid_name).map(|v| {
|
||||
ByteString::new(v[0].clone())
|
||||
}))
|
||||
|
@ -130,7 +130,7 @@ impl HeadersMethods for Headers {
|
|||
// https://fetch.spec.whatwg.org/#dom-headers-has
|
||||
fn Has(&self, name: ByteString) -> Fallible<bool> {
|
||||
// Step 1
|
||||
let valid_name = try!(validate_name(name));
|
||||
let valid_name = validate_name(name)?;
|
||||
// Step 2
|
||||
Ok(self.header_list.borrow_mut().get_raw(&valid_name).is_some())
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ impl HeadersMethods for Headers {
|
|||
// Step 1
|
||||
let value = normalize_value(value);
|
||||
// Step 2
|
||||
let (mut valid_name, valid_value) = try!(validate_name_and_value(name, value));
|
||||
let (mut valid_name, valid_value) = validate_name_and_value(name, value)?;
|
||||
valid_name = valid_name.to_lowercase();
|
||||
// Step 3
|
||||
if self.guard.get() == Guard::Immutable {
|
||||
|
@ -172,10 +172,10 @@ impl Headers {
|
|||
// Step 1
|
||||
Some(HeadersInit::Headers(h)) => {
|
||||
for header in h.header_list.borrow().iter() {
|
||||
try!(self.Append(
|
||||
self.Append(
|
||||
ByteString::new(Vec::from(header.name())),
|
||||
ByteString::new(Vec::from(header.value_string().into_bytes()))
|
||||
));
|
||||
)?;
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
@ -185,7 +185,7 @@ impl Headers {
|
|||
if seq.len() == 2 {
|
||||
let val = seq.pop().unwrap();
|
||||
let name = seq.pop().unwrap();
|
||||
try!(self.Append(name, val));
|
||||
self.Append(name, val)?;
|
||||
} else {
|
||||
return Err(Error::Type(
|
||||
format!("Each header object must be a sequence of length 2 - found one with length {}",
|
||||
|
@ -198,7 +198,7 @@ impl Headers {
|
|||
for (key, value) in m.iter() {
|
||||
let key_vec = key.as_ref().to_string().into();
|
||||
let headers_key = ByteString::new(key_vec);
|
||||
try!(self.Append(headers_key, value.clone()));
|
||||
self.Append(headers_key, value.clone())?;
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
@ -360,7 +360,7 @@ pub fn is_forbidden_header_name(name: &str) -> bool {
|
|||
// [4] https://www.rfc-editor.org/errata_search.php?rfc=7230
|
||||
fn validate_name_and_value(name: ByteString, value: ByteString)
|
||||
-> Fallible<(String, Vec<u8>)> {
|
||||
let valid_name = try!(validate_name(name));
|
||||
let valid_name = validate_name(name)?;
|
||||
if !is_field_content(&value) {
|
||||
return Err(Error::Type("Value is not valid".to_string()));
|
||||
}
|
||||
|
|
|
@ -297,9 +297,9 @@ impl HTMLCanvasElementMethods for HTMLCanvasElement {
|
|||
// Step 3.
|
||||
let raw_data = match *self.context.borrow() {
|
||||
Some(CanvasContext::Context2d(ref context)) => {
|
||||
let image_data = try!(context.GetImageData(Finite::wrap(0f64), Finite::wrap(0f64),
|
||||
let image_data = context.GetImageData(Finite::wrap(0f64), Finite::wrap(0f64),
|
||||
Finite::wrap(self.Width() as f64),
|
||||
Finite::wrap(self.Height() as f64)));
|
||||
Finite::wrap(self.Height() as f64))?;
|
||||
image_data.get_data_array()
|
||||
}
|
||||
None => {
|
||||
|
|
|
@ -49,7 +49,7 @@ impl HTMLOptionsCollection {
|
|||
for _ in 0..count {
|
||||
let element = HTMLOptionElement::new(local_name!("option"), None, &document);
|
||||
let node = element.upcast::<Node>();
|
||||
try!(root.AppendChild(node));
|
||||
root.AppendChild(node)?;
|
||||
};
|
||||
Ok(())
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ impl HTMLOptionsCollectionMethods for HTMLOptionsCollection {
|
|||
|
||||
// Step 4
|
||||
if n > 0 {
|
||||
try!(self.add_new_elements(n as u32));
|
||||
self.add_new_elements(n as u32)?;
|
||||
}
|
||||
|
||||
// Step 5
|
||||
|
|
|
@ -103,7 +103,7 @@ impl HTMLTableElement {
|
|||
let reference_element = node.child_elements().find(reference_predicate);
|
||||
let reference_node = reference_element.r().map(|e| e.upcast());
|
||||
|
||||
try!(node.InsertBefore(section.upcast(), reference_node));
|
||||
node.InsertBefore(section.upcast(), reference_node)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
|
@ -65,8 +65,8 @@ impl ImageData {
|
|||
if let Some(jsobject) = opt_jsobject {
|
||||
let cx = global.get_cx();
|
||||
typedarray!(in(cx) let array_res: Uint8ClampedArray = jsobject);
|
||||
let mut array = try!(array_res
|
||||
.map_err(|_| Error::Type("Argument to Image data is not an Uint8ClampedArray".to_owned())));
|
||||
let mut array = array_res
|
||||
.map_err(|_| Error::Type("Argument to Image data is not an Uint8ClampedArray".to_owned()))?;
|
||||
|
||||
let byte_len = array.as_slice().len() as u32;
|
||||
if byte_len % 4 != 0 {
|
||||
|
|
|
@ -70,7 +70,7 @@ impl Location {
|
|||
impl LocationMethods for Location {
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-assign
|
||||
fn Assign(&self, url: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
// TODO: per spec, we should use the _API base URL_ specified by the
|
||||
// _entry settings object_.
|
||||
let base_url = self.window.get_url();
|
||||
|
@ -84,7 +84,7 @@ impl LocationMethods for Location {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-reload
|
||||
fn Reload(&self) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.window.load_url(self.get_url(), true, true, None);
|
||||
Ok(())
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ impl LocationMethods for Location {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-hash
|
||||
fn GetHash(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Hash(&self.get_url()))
|
||||
}
|
||||
|
||||
|
@ -114,46 +114,46 @@ impl LocationMethods for Location {
|
|||
if value.0.is_empty() {
|
||||
value = USVString("#".to_owned());
|
||||
}
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetHash);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-host
|
||||
fn GetHost(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Host(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-host
|
||||
fn SetHost(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetHost);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-origin
|
||||
fn GetOrigin(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Origin(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-hostname
|
||||
fn GetHostname(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Hostname(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-hostname
|
||||
fn SetHostname(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetHostname);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-href
|
||||
fn GetHref(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Href(&self.get_url()))
|
||||
}
|
||||
|
||||
|
@ -170,57 +170,57 @@ impl LocationMethods for Location {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-pathname
|
||||
fn GetPathname(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Pathname(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-pathname
|
||||
fn SetPathname(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetPathname);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-port
|
||||
fn GetPort(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Port(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-port
|
||||
fn SetPort(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetPort);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-protocol
|
||||
fn GetProtocol(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Protocol(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-protocol
|
||||
fn SetProtocol(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetProtocol);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-href
|
||||
fn Stringifier(&self) -> Fallible<DOMString> {
|
||||
Ok(DOMString::from(try!(self.GetHref()).0))
|
||||
Ok(DOMString::from(self.GetHref()?.0))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-search
|
||||
fn GetSearch(&self) -> Fallible<USVString> {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
Ok(UrlHelper::Search(&self.get_url()))
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-location-search
|
||||
fn SetSearch(&self, value: USVString) -> ErrorResult {
|
||||
try!(self.check_same_origin_domain());
|
||||
self.check_same_origin_domain()?;
|
||||
self.set_url_component(value, UrlHelper::SetSearch);
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -631,7 +631,7 @@ impl Node {
|
|||
let viable_previous_sibling = first_node_not_in(self.preceding_siblings(), &nodes);
|
||||
|
||||
// Step 4.
|
||||
let node = try!(self.owner_doc().node_from_nodes_and_strings(nodes));
|
||||
let node = self.owner_doc().node_from_nodes_and_strings(nodes)?;
|
||||
|
||||
// Step 5.
|
||||
let viable_previous_sibling = match viable_previous_sibling {
|
||||
|
@ -640,7 +640,7 @@ impl Node {
|
|||
};
|
||||
|
||||
// Step 6.
|
||||
try!(Node::pre_insert(&node, &parent, viable_previous_sibling.r()));
|
||||
Node::pre_insert(&node, &parent, viable_previous_sibling.r())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -660,10 +660,10 @@ impl Node {
|
|||
let viable_next_sibling = first_node_not_in(self.following_siblings(), &nodes);
|
||||
|
||||
// Step 4.
|
||||
let node = try!(self.owner_doc().node_from_nodes_and_strings(nodes));
|
||||
let node = self.owner_doc().node_from_nodes_and_strings(nodes)?;
|
||||
|
||||
// Step 5.
|
||||
try!(Node::pre_insert(&node, &parent, viable_next_sibling.r()));
|
||||
Node::pre_insert(&node, &parent, viable_next_sibling.r())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -680,13 +680,13 @@ impl Node {
|
|||
// Step 3.
|
||||
let viable_next_sibling = first_node_not_in(self.following_siblings(), &nodes);
|
||||
// Step 4.
|
||||
let node = try!(self.owner_doc().node_from_nodes_and_strings(nodes));
|
||||
let node = self.owner_doc().node_from_nodes_and_strings(nodes)?;
|
||||
if self.parent_node == Some(&*parent) {
|
||||
// Step 5.
|
||||
try!(parent.ReplaceChild(&node, self));
|
||||
parent.ReplaceChild(&node, self)?;
|
||||
} else {
|
||||
// Step 6.
|
||||
try!(Node::pre_insert(&node, &parent, viable_next_sibling.r()));
|
||||
Node::pre_insert(&node, &parent, viable_next_sibling.r())?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -695,7 +695,7 @@ impl Node {
|
|||
pub fn prepend(&self, nodes: Vec<NodeOrString>) -> ErrorResult {
|
||||
// Step 1.
|
||||
let doc = self.owner_doc();
|
||||
let node = try!(doc.node_from_nodes_and_strings(nodes));
|
||||
let node = doc.node_from_nodes_and_strings(nodes)?;
|
||||
// Step 2.
|
||||
let first_child = self.first_child.get();
|
||||
Node::pre_insert(&node, self, first_child.r()).map(|_| ())
|
||||
|
@ -705,7 +705,7 @@ impl Node {
|
|||
pub fn append(&self, nodes: Vec<NodeOrString>) -> ErrorResult {
|
||||
// Step 1.
|
||||
let doc = self.owner_doc();
|
||||
let node = try!(doc.node_from_nodes_and_strings(nodes));
|
||||
let node = doc.node_from_nodes_and_strings(nodes)?;
|
||||
// Step 2.
|
||||
self.AppendChild(&node).map(|_| ())
|
||||
}
|
||||
|
@ -751,7 +751,7 @@ impl Node {
|
|||
#[allow(unsafe_code)]
|
||||
pub fn query_selector_all(&self, selectors: DOMString) -> Fallible<Root<NodeList>> {
|
||||
let window = window_from_node(self);
|
||||
let iter = try!(self.query_selector_iter(selectors));
|
||||
let iter = self.query_selector_iter(selectors)?;
|
||||
Ok(NodeList::new_simple_list(&window, iter))
|
||||
}
|
||||
|
||||
|
@ -852,7 +852,7 @@ impl Node {
|
|||
{
|
||||
let tr_node = tr.upcast::<Node>();
|
||||
if index == -1 {
|
||||
try!(self.InsertBefore(tr_node, None));
|
||||
self.InsertBefore(tr_node, None)?;
|
||||
} else {
|
||||
let items = get_items();
|
||||
let node = match items.elements_iter()
|
||||
|
@ -863,7 +863,7 @@ impl Node {
|
|||
None => return Err(Error::IndexSize),
|
||||
Some(node) => node,
|
||||
};
|
||||
try!(self.InsertBefore(tr_node, node.r()));
|
||||
self.InsertBefore(tr_node, node.r())?;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1566,7 +1566,7 @@ impl Node {
|
|||
pub fn pre_insert(node: &Node, parent: &Node, child: Option<&Node>)
|
||||
-> Fallible<Root<Node>> {
|
||||
// Step 1.
|
||||
try!(Node::ensure_pre_insertion_validity(node, parent, child));
|
||||
Node::ensure_pre_insertion_validity(node, parent, child)?;
|
||||
|
||||
// Steps 2-3.
|
||||
let reference_child_root;
|
||||
|
|
|
@ -107,7 +107,7 @@ impl NodeIteratorMethods for NodeIterator {
|
|||
before_node = false;
|
||||
|
||||
// Step 3-2.
|
||||
let result = try!(self.accept_node(&node));
|
||||
let result = self.accept_node(&node)?;
|
||||
|
||||
// Step 3-3.
|
||||
if result == NodeFilterConstants::FILTER_ACCEPT {
|
||||
|
@ -122,7 +122,7 @@ impl NodeIteratorMethods for NodeIterator {
|
|||
// Step 3-1.
|
||||
for following_node in node.following_nodes(&self.root_node) {
|
||||
// Step 3-2.
|
||||
let result = try!(self.accept_node(&following_node));
|
||||
let result = self.accept_node(&following_node)?;
|
||||
|
||||
// Step 3-3.
|
||||
if result == NodeFilterConstants::FILTER_ACCEPT {
|
||||
|
@ -151,7 +151,7 @@ impl NodeIteratorMethods for NodeIterator {
|
|||
before_node = true;
|
||||
|
||||
// Step 3-2.
|
||||
let result = try!(self.accept_node(&node));
|
||||
let result = self.accept_node(&node)?;
|
||||
|
||||
// Step 3-3.
|
||||
if result == NodeFilterConstants::FILTER_ACCEPT {
|
||||
|
@ -166,7 +166,7 @@ impl NodeIteratorMethods for NodeIterator {
|
|||
// Step 3-1.
|
||||
for preceding_node in node.preceding_nodes(&self.root_node) {
|
||||
// Step 3-2.
|
||||
let result = try!(self.accept_node(&preceding_node));
|
||||
let result = self.accept_node(&preceding_node)?;
|
||||
|
||||
// Step 3-3.
|
||||
if result == NodeFilterConstants::FILTER_ACCEPT {
|
||||
|
|
|
@ -269,25 +269,25 @@ impl RangeMethods for Range {
|
|||
|
||||
// https://dom.spec.whatwg.org/#dom-range-setstartbefore
|
||||
fn SetStartBefore(&self, node: &Node) -> ErrorResult {
|
||||
let parent = try!(node.GetParentNode().ok_or(Error::InvalidNodeType));
|
||||
let parent = node.GetParentNode().ok_or(Error::InvalidNodeType)?;
|
||||
self.SetStart(&parent, node.index())
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-range-setstartafter
|
||||
fn SetStartAfter(&self, node: &Node) -> ErrorResult {
|
||||
let parent = try!(node.GetParentNode().ok_or(Error::InvalidNodeType));
|
||||
let parent = node.GetParentNode().ok_or(Error::InvalidNodeType)?;
|
||||
self.SetStart(&parent, node.index() + 1)
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-range-setendbefore
|
||||
fn SetEndBefore(&self, node: &Node) -> ErrorResult {
|
||||
let parent = try!(node.GetParentNode().ok_or(Error::InvalidNodeType));
|
||||
let parent = node.GetParentNode().ok_or(Error::InvalidNodeType)?;
|
||||
self.SetEnd(&parent, node.index())
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-range-setendafter
|
||||
fn SetEndAfter(&self, node: &Node) -> ErrorResult {
|
||||
let parent = try!(node.GetParentNode().ok_or(Error::InvalidNodeType));
|
||||
let parent = node.GetParentNode().ok_or(Error::InvalidNodeType)?;
|
||||
self.SetEnd(&parent, node.index() + 1)
|
||||
}
|
||||
|
||||
|
@ -303,7 +303,7 @@ impl RangeMethods for Range {
|
|||
// https://dom.spec.whatwg.org/#dom-range-selectnode
|
||||
fn SelectNode(&self, node: &Node) -> ErrorResult {
|
||||
// Steps 1, 2.
|
||||
let parent = try!(node.GetParentNode().ok_or(Error::InvalidNodeType));
|
||||
let parent = node.GetParentNode().ok_or(Error::InvalidNodeType)?;
|
||||
// Step 3.
|
||||
let index = node.index();
|
||||
// Step 4.
|
||||
|
@ -446,7 +446,7 @@ impl RangeMethods for Range {
|
|||
let data = cdata.SubstringData(start_offset, end_offset - start_offset).unwrap();
|
||||
let clone = cdata.clone_with_data(data, &start_node.owner_doc());
|
||||
// Step 4.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 4.4
|
||||
return Ok(fragment);
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ impl RangeMethods for Range {
|
|||
|
||||
// Steps 5-12.
|
||||
let (first_contained_child, last_contained_child, contained_children) =
|
||||
try!(self.contained_children());
|
||||
self.contained_children()?;
|
||||
|
||||
if let Some(child) = first_contained_child {
|
||||
// Step 13.
|
||||
|
@ -464,12 +464,12 @@ impl RangeMethods for Range {
|
|||
let data = cdata.SubstringData(start_offset, start_node.len() - start_offset).unwrap();
|
||||
let clone = cdata.clone_with_data(data, &start_node.owner_doc());
|
||||
// Step 13.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
} else {
|
||||
// Step 14.1.
|
||||
let clone = child.CloneNode(false);
|
||||
// Step 14.2.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 14.3.
|
||||
let subrange = Range::new(&clone.owner_doc(),
|
||||
&start_node,
|
||||
|
@ -477,9 +477,9 @@ impl RangeMethods for Range {
|
|||
&child,
|
||||
child.len());
|
||||
// Step 14.4.
|
||||
let subfragment = try!(subrange.CloneContents());
|
||||
let subfragment = subrange.CloneContents()?;
|
||||
// Step 14.5.
|
||||
try!(clone.AppendChild(subfragment.upcast()));
|
||||
clone.AppendChild(subfragment.upcast())?;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -488,7 +488,7 @@ impl RangeMethods for Range {
|
|||
// Step 15.1.
|
||||
let clone = child.CloneNode(true);
|
||||
// Step 15.2.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
}
|
||||
|
||||
if let Some(child) = last_contained_child {
|
||||
|
@ -499,12 +499,12 @@ impl RangeMethods for Range {
|
|||
let data = cdata.SubstringData(0, end_offset).unwrap();
|
||||
let clone = cdata.clone_with_data(data, &start_node.owner_doc());
|
||||
// Step 16.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
} else {
|
||||
// Step 17.1.
|
||||
let clone = child.CloneNode(false);
|
||||
// Step 17.2.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 17.3.
|
||||
let subrange = Range::new(&clone.owner_doc(),
|
||||
&child,
|
||||
|
@ -512,9 +512,9 @@ impl RangeMethods for Range {
|
|||
&end_node,
|
||||
end_offset);
|
||||
// Step 17.4.
|
||||
let subfragment = try!(subrange.CloneContents());
|
||||
let subfragment = subrange.CloneContents()?;
|
||||
// Step 17.5.
|
||||
try!(clone.AppendChild(subfragment.upcast()));
|
||||
clone.AppendChild(subfragment.upcast())?;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -547,11 +547,11 @@ impl RangeMethods for Range {
|
|||
let text = end_data.SubstringData(start_offset, end_offset - start_offset);
|
||||
clone.downcast::<CharacterData>().unwrap().SetData(text.unwrap());
|
||||
// Step 4.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 4.4.
|
||||
try!(end_data.ReplaceData(start_offset,
|
||||
end_data.ReplaceData(start_offset,
|
||||
end_offset - start_offset,
|
||||
DOMString::new()));
|
||||
DOMString::new())?;
|
||||
// Step 4.5.
|
||||
return Ok(fragment);
|
||||
}
|
||||
|
@ -559,7 +559,7 @@ impl RangeMethods for Range {
|
|||
|
||||
// Steps 5-12.
|
||||
let (first_contained_child, last_contained_child, contained_children) =
|
||||
try!(self.contained_children());
|
||||
self.contained_children()?;
|
||||
|
||||
let (new_node, new_offset) = if start_node.is_inclusive_ancestor_of(&end_node) {
|
||||
// Step 13.
|
||||
|
@ -584,16 +584,16 @@ impl RangeMethods for Range {
|
|||
start_node.len() - start_offset);
|
||||
clone.downcast::<CharacterData>().unwrap().SetData(text.unwrap());
|
||||
// Step 15.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 15.4.
|
||||
try!(start_data.ReplaceData(start_offset,
|
||||
start_data.ReplaceData(start_offset,
|
||||
start_node.len() - start_offset,
|
||||
DOMString::new()));
|
||||
DOMString::new())?;
|
||||
} else {
|
||||
// Step 16.1.
|
||||
let clone = child.CloneNode(false);
|
||||
// Step 16.2.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 16.3.
|
||||
let subrange = Range::new(&clone.owner_doc(),
|
||||
&start_node,
|
||||
|
@ -601,15 +601,15 @@ impl RangeMethods for Range {
|
|||
&child,
|
||||
child.len());
|
||||
// Step 16.4.
|
||||
let subfragment = try!(subrange.ExtractContents());
|
||||
let subfragment = subrange.ExtractContents()?;
|
||||
// Step 16.5.
|
||||
try!(clone.AppendChild(subfragment.upcast()));
|
||||
clone.AppendChild(subfragment.upcast())?;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 17.
|
||||
for child in contained_children {
|
||||
try!(fragment.upcast::<Node>().AppendChild(&child));
|
||||
fragment.upcast::<Node>().AppendChild(&child)?;
|
||||
}
|
||||
|
||||
if let Some(child) = last_contained_child {
|
||||
|
@ -621,14 +621,14 @@ impl RangeMethods for Range {
|
|||
let text = end_data.SubstringData(0, end_offset);
|
||||
clone.downcast::<CharacterData>().unwrap().SetData(text.unwrap());
|
||||
// Step 18.3.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 18.4.
|
||||
try!(end_data.ReplaceData(0, end_offset, DOMString::new()));
|
||||
end_data.ReplaceData(0, end_offset, DOMString::new())?;
|
||||
} else {
|
||||
// Step 19.1.
|
||||
let clone = child.CloneNode(false);
|
||||
// Step 19.2.
|
||||
try!(fragment.upcast::<Node>().AppendChild(&clone));
|
||||
fragment.upcast::<Node>().AppendChild(&clone)?;
|
||||
// Step 19.3.
|
||||
let subrange = Range::new(&clone.owner_doc(),
|
||||
&child,
|
||||
|
@ -636,15 +636,15 @@ impl RangeMethods for Range {
|
|||
&end_node,
|
||||
end_offset);
|
||||
// Step 19.4.
|
||||
let subfragment = try!(subrange.ExtractContents());
|
||||
let subfragment = subrange.ExtractContents()?;
|
||||
// Step 19.5.
|
||||
try!(clone.AppendChild(subfragment.upcast()));
|
||||
clone.AppendChild(subfragment.upcast())?;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 20.
|
||||
try!(self.SetStart(&new_node, new_offset));
|
||||
try!(self.SetEnd(&new_node, new_offset));
|
||||
self.SetStart(&new_node, new_offset)?;
|
||||
self.SetEnd(&new_node, new_offset)?;
|
||||
|
||||
// Step 21.
|
||||
Ok(fragment)
|
||||
|
@ -690,16 +690,16 @@ impl RangeMethods for Range {
|
|||
};
|
||||
|
||||
// Step 6.
|
||||
try!(Node::ensure_pre_insertion_validity(node,
|
||||
Node::ensure_pre_insertion_validity(node,
|
||||
&parent,
|
||||
reference_node.r()));
|
||||
reference_node.r())?;
|
||||
|
||||
// Step 7.
|
||||
let split_text;
|
||||
let reference_node =
|
||||
match start_node.downcast::<Text>() {
|
||||
Some(text) => {
|
||||
split_text = try!(text.SplitText(start_offset));
|
||||
split_text = text.SplitText(start_offset)?;
|
||||
let new_reference = Root::upcast::<Node>(split_text);
|
||||
assert!(new_reference.GetParentNode().r() == Some(&parent));
|
||||
Some(new_reference)
|
||||
|
@ -729,7 +729,7 @@ impl RangeMethods for Range {
|
|||
};
|
||||
|
||||
// Step 12.
|
||||
try!(Node::pre_insert(node, &parent, reference_node.r()));
|
||||
Node::pre_insert(node, &parent, reference_node.r())?;
|
||||
|
||||
// Step 13.
|
||||
if self.Collapsed() {
|
||||
|
@ -839,16 +839,16 @@ impl RangeMethods for Range {
|
|||
}
|
||||
|
||||
// Step 3.
|
||||
let fragment = try!(self.ExtractContents());
|
||||
let fragment = self.ExtractContents()?;
|
||||
|
||||
// Step 4.
|
||||
Node::replace_all(None, new_parent);
|
||||
|
||||
// Step 5.
|
||||
try!(self.InsertNode(new_parent));
|
||||
self.InsertNode(new_parent)?;
|
||||
|
||||
// Step 6.
|
||||
try!(new_parent.AppendChild(fragment.upcast()));
|
||||
new_parent.AppendChild(fragment.upcast())?;
|
||||
|
||||
// Step 7.
|
||||
self.SelectNode(new_parent)
|
||||
|
@ -915,7 +915,7 @@ impl RangeMethods for Range {
|
|||
let element = Element::fragment_parsing_context(&owner_doc, element.r());
|
||||
|
||||
// Step 3.
|
||||
let fragment_node = try!(element.parse_fragment(fragment));
|
||||
let fragment_node = element.parse_fragment(fragment)?;
|
||||
|
||||
// Step 4.
|
||||
for node in fragment_node.upcast::<Node>().traverse_preorder() {
|
||||
|
|
|
@ -308,12 +308,12 @@ impl Request {
|
|||
headers_copy = Root::from_ref(&*init_headers);
|
||||
}
|
||||
&HeadersInit::ByteStringSequenceSequence(ref init_sequence) => {
|
||||
try!(headers_copy.fill(Some(
|
||||
HeadersInit::ByteStringSequenceSequence(init_sequence.clone()))));
|
||||
headers_copy.fill(Some(
|
||||
HeadersInit::ByteStringSequenceSequence(init_sequence.clone())))?;
|
||||
},
|
||||
&HeadersInit::StringByteStringRecord(ref init_map) => {
|
||||
try!(headers_copy.fill(Some(
|
||||
HeadersInit::StringByteStringRecord(init_map.clone()))));
|
||||
headers_copy.fill(Some(
|
||||
HeadersInit::StringByteStringRecord(init_map.clone())))?;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -351,10 +351,10 @@ impl Request {
|
|||
// but an input with headers is given, set request's
|
||||
// headers as the input's Headers.
|
||||
if let RequestInfo::Request(ref input_request) = input {
|
||||
try!(r.Headers().fill(Some(HeadersInit::Headers(input_request.Headers()))));
|
||||
r.Headers().fill(Some(HeadersInit::Headers(input_request.Headers())))?;
|
||||
}
|
||||
},
|
||||
Some(HeadersInit::Headers(_)) => try!(r.Headers().fill(Some(HeadersInit::Headers(headers_copy)))),
|
||||
Some(HeadersInit::Headers(_)) => r.Headers().fill(Some(HeadersInit::Headers(headers_copy)))?,
|
||||
_ => {},
|
||||
}
|
||||
|
||||
|
@ -391,8 +391,8 @@ impl Request {
|
|||
// Step 34.3
|
||||
if let Some(contents) = content_type {
|
||||
if !r.Headers().Has(ByteString::new(b"Content-Type".to_vec())).unwrap() {
|
||||
try!(r.Headers().Append(ByteString::new(b"Content-Type".to_vec()),
|
||||
ByteString::new(contents.as_bytes().to_vec())));
|
||||
r.Headers().Append(ByteString::new(b"Content-Type".to_vec()),
|
||||
ByteString::new(contents.as_bytes().to_vec()))?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -446,7 +446,7 @@ impl Request {
|
|||
*r_clone.request.borrow_mut() = req.clone();
|
||||
r_clone.body_used.set(body_used);
|
||||
*r_clone.mime_type.borrow_mut() = mime_type;
|
||||
try!(r_clone.Headers().fill(Some(HeadersInit::Headers(r.Headers()))));
|
||||
r_clone.Headers().fill(Some(HeadersInit::Headers(r.Headers())))?;
|
||||
r_clone.Headers().set_guard(headers_guard);
|
||||
Ok(r_clone)
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ impl Response {
|
|||
r.Headers().empty_header_list();
|
||||
|
||||
// Step 6.2
|
||||
try!(r.Headers().fill(Some(headers_member.clone())));
|
||||
r.Headers().fill(Some(headers_member.clone()))?;
|
||||
}
|
||||
|
||||
// Step 7
|
||||
|
@ -119,8 +119,8 @@ impl Response {
|
|||
// Step 7.4
|
||||
if let Some(content_type_contents) = content_type {
|
||||
if !r.Headers().Has(ByteString::new(b"Content-Type".to_vec())).unwrap() {
|
||||
try!(r.Headers().Append(ByteString::new(b"Content-Type".to_vec()),
|
||||
ByteString::new(content_type_contents.as_bytes().to_vec())));
|
||||
r.Headers().Append(ByteString::new(b"Content-Type".to_vec()),
|
||||
ByteString::new(content_type_contents.as_bytes().to_vec()))?;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ impl Response {
|
|||
|
||||
// Step 6
|
||||
let url_bytestring = ByteString::from_str(url.as_str()).unwrap_or(ByteString::new(b"".to_vec()));
|
||||
try!(r.Headers().Set(ByteString::new(b"Location".to_vec()), url_bytestring));
|
||||
r.Headers().Set(ByteString::new(b"Location".to_vec()), url_bytestring)?;
|
||||
|
||||
// Step 4 continued
|
||||
// Headers Guard is set to Immutable here to prevent error in Step 6
|
||||
|
@ -305,7 +305,7 @@ impl ResponseMethods for Response {
|
|||
// Step 2
|
||||
let new_response = Response::new(&self.global());
|
||||
new_response.Headers().set_guard(self.Headers().get_guard());
|
||||
try!(new_response.Headers().fill(Some(HeadersInit::Headers(self.Headers()))));
|
||||
new_response.Headers().fill(Some(HeadersInit::Headers(self.Headers())))?;
|
||||
|
||||
// https://fetch.spec.whatwg.org/#concept-response-clone
|
||||
// Instead of storing a net_traits::Response internally, we
|
||||
|
|
|
@ -89,7 +89,7 @@ impl ServiceWorkerMethods for ServiceWorker {
|
|||
return Err(Error::InvalidState);
|
||||
}
|
||||
// Step 7
|
||||
let data = try!(StructuredCloneData::write(cx, message));
|
||||
let data = StructuredCloneData::write(cx, message)?;
|
||||
let msg_vec = DOMMessage(data.move_to_arraybuffer());
|
||||
let _ =
|
||||
self.global()
|
||||
|
|
|
@ -303,11 +303,11 @@ impl ServiceWorkerGlobalScope {
|
|||
|
||||
let ret = sel.wait();
|
||||
if ret == worker_handle.id() {
|
||||
Ok(MixedMessage::FromServiceWorker(try!(worker_port.recv())))
|
||||
Ok(MixedMessage::FromServiceWorker(worker_port.recv()?))
|
||||
}else if ret == devtools_handle.id() {
|
||||
Ok(MixedMessage::FromDevtools(try!(devtools_port.recv())))
|
||||
Ok(MixedMessage::FromDevtools(devtools_port.recv()?))
|
||||
} else if ret == timer_port_handle.id() {
|
||||
Ok(MixedMessage::FromTimeoutThread(try!(timer_event_port.recv())))
|
||||
Ok(MixedMessage::FromTimeoutThread(timer_event_port.recv()?))
|
||||
} else {
|
||||
panic!("unexpected select result!")
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ impl<'a> Serialize for &'a Node {
|
|||
let ar: AttrRef = (&qname, &**value);
|
||||
ar
|
||||
});
|
||||
try!(serializer.start_elem(name.clone(), attr_refs));
|
||||
serializer.start_elem(name.clone(), attr_refs)?;
|
||||
}
|
||||
|
||||
let children = if let Some(tpl) = node.downcast::<HTMLTemplateElement>() {
|
||||
|
@ -146,18 +146,18 @@ impl<'a> Serialize for &'a Node {
|
|||
};
|
||||
|
||||
for handle in children {
|
||||
try!((&*handle).serialize(serializer, IncludeNode));
|
||||
(&*handle).serialize(serializer, IncludeNode)?;
|
||||
}
|
||||
|
||||
if traversal_scope == IncludeNode {
|
||||
try!(serializer.end_elem(name.clone()));
|
||||
serializer.end_elem(name.clone())?;
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
||||
(ChildrenOnly, NodeTypeId::Document(_)) => {
|
||||
for handle in node.children() {
|
||||
try!((&*handle).serialize(serializer, IncludeNode));
|
||||
(&*handle).serialize(serializer, IncludeNode)?;
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
|
|
@ -104,7 +104,7 @@ impl TreeWalkerMethods for TreeWalker {
|
|||
node = n;
|
||||
// "2. If node is not null and filtering node returns FILTER_ACCEPT,
|
||||
// then set the currentNode attribute to node, return node."
|
||||
if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(&node)) {
|
||||
if NodeFilterConstants::FILTER_ACCEPT == self.accept_node(&node)? {
|
||||
self.current_node.set(&node);
|
||||
return Ok(Some(node))
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ impl TreeWalkerMethods for TreeWalker {
|
|||
// "4. If result is FILTER_ACCEPT, then
|
||||
// set the currentNode attribute to node and return node."
|
||||
loop {
|
||||
let result = try!(self.accept_node(&node));
|
||||
let result = self.accept_node(&node)?;
|
||||
match result {
|
||||
NodeFilterConstants::FILTER_REJECT => break,
|
||||
_ if node.GetFirstChild().is_some() =>
|
||||
|
@ -192,7 +192,7 @@ impl TreeWalkerMethods for TreeWalker {
|
|||
}
|
||||
// "5. Filter node and if the return value is FILTER_ACCEPT, then
|
||||
// set the currentNode attribute to node and return node."
|
||||
if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(&node)) {
|
||||
if NodeFilterConstants::FILTER_ACCEPT == self.accept_node(&node)? {
|
||||
self.current_node.set(&node);
|
||||
return Ok(Some(node))
|
||||
}
|
||||
|
@ -220,7 +220,7 @@ impl TreeWalkerMethods for TreeWalker {
|
|||
// "1. Set node to its first child."
|
||||
node = child;
|
||||
// "2. Filter node and set result to the return value."
|
||||
result = try!(self.accept_node(&node));
|
||||
result = self.accept_node(&node)?;
|
||||
// "3. If result is FILTER_ACCEPT, then
|
||||
// set the currentNode attribute to node and return node."
|
||||
if NodeFilterConstants::FILTER_ACCEPT == result {
|
||||
|
@ -238,7 +238,7 @@ impl TreeWalkerMethods for TreeWalker {
|
|||
Some(n) => {
|
||||
node = n;
|
||||
// "3. Filter node and set result to the return value."
|
||||
result = try!(self.accept_node(&node));
|
||||
result = self.accept_node(&node)?;
|
||||
// "4. If result is FILTER_ACCEPT, then
|
||||
// set the currentNode attribute to node and return node."
|
||||
if NodeFilterConstants::FILTER_ACCEPT == result {
|
||||
|
@ -275,7 +275,7 @@ impl TreeWalker {
|
|||
// 4. Main: Repeat these substeps:
|
||||
'main: loop {
|
||||
// "1. Filter node and let result be the return value."
|
||||
let result = try!(self.accept_node(&node));
|
||||
let result = self.accept_node(&node)?;
|
||||
match result {
|
||||
// "2. If result is FILTER_ACCEPT, then set the currentNode
|
||||
// attribute to node and return node."
|
||||
|
@ -350,7 +350,7 @@ impl TreeWalker {
|
|||
// "1. Set node to sibling."
|
||||
node = sibling_op.unwrap();
|
||||
// "2. Filter node and let result be the return value."
|
||||
let result = try!(self.accept_node(&node));
|
||||
let result = self.accept_node(&node)?;
|
||||
// "3. If result is FILTER_ACCEPT, then set the currentNode
|
||||
// attribute to node and return node."
|
||||
if NodeFilterConstants::FILTER_ACCEPT == result {
|
||||
|
@ -378,7 +378,7 @@ impl TreeWalker {
|
|||
// "5. Filter node and if the return value is FILTER_ACCEPT, then return null."
|
||||
Some(n) => {
|
||||
node = n;
|
||||
if NodeFilterConstants::FILTER_ACCEPT == try!(self.accept_node(&node)) {
|
||||
if NodeFilterConstants::FILTER_ACCEPT == self.accept_node(&node)? {
|
||||
return Ok(None)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -636,8 +636,8 @@ fn validate_layer(cx: *mut JSContext,
|
|||
let ctx = layer.source.as_ref().map(|ref s| s.get_or_init_webgl_context(cx, None)).unwrap_or(None);
|
||||
if let Some(ctx) = ctx {
|
||||
let mut data = WebVRLayer::default();
|
||||
try!(parse_bounds(&layer.leftBounds, &mut data.left_bounds));
|
||||
try!(parse_bounds(&layer.rightBounds, &mut data.right_bounds));
|
||||
parse_bounds(&layer.leftBounds, &mut data.left_bounds)?;
|
||||
parse_bounds(&layer.rightBounds, &mut data.right_bounds)?;
|
||||
Ok((data, ctx))
|
||||
} else {
|
||||
Err("VRLayer source must be a WebGL Context")
|
||||
|
|
|
@ -285,7 +285,7 @@ impl<'a> WebGLValidator for TexImage2DValidator<'a> {
|
|||
width,
|
||||
height,
|
||||
border,
|
||||
} = try!(self.common_validator.validate());
|
||||
} = self.common_validator.validate()?;
|
||||
|
||||
// GL_INVALID_VALUE is generated if target is one of the six cube map 2D
|
||||
// image targets and the width and height parameters are not equal.
|
||||
|
|
|
@ -1496,7 +1496,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
typedarray!(in(cx) let array_buffer: ArrayBuffer = data);
|
||||
let data_vec = match array_buffer {
|
||||
Ok(mut data) => data.as_slice().to_vec(),
|
||||
Err(_) => try!(fallible_array_buffer_view_to_vec(cx, data)),
|
||||
Err(_) => fallible_array_buffer_view_to_vec(cx, data)?,
|
||||
};
|
||||
|
||||
let bound_buffer = match target {
|
||||
|
@ -1564,7 +1564,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
typedarray!(in(cx) let array_buffer: ArrayBuffer = data);
|
||||
let data_vec = match array_buffer {
|
||||
Ok(mut data) => data.as_slice().to_vec(),
|
||||
Err(_) => try!(fallible_array_buffer_view_to_vec(cx, data)),
|
||||
Err(_) => fallible_array_buffer_view_to_vec(cx, data)?,
|
||||
};
|
||||
|
||||
let bound_buffer = match target {
|
||||
|
@ -1596,7 +1596,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8
|
||||
unsafe fn CompressedTexImage2D(&self, cx: *mut JSContext, _target: u32, _level: i32, _internal_format: u32,
|
||||
_width: i32, _height: i32, _border: i32, pixels: *mut JSObject) -> Fallible<()> {
|
||||
let _data = try!(fallible_array_buffer_view_to_vec(cx, pixels) );
|
||||
let _data = fallible_array_buffer_view_to_vec(cx, pixels)?;
|
||||
// FIXME: No compressed texture format is currently supported, so error out as per
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#COMPRESSED_TEXTURE_SUPPORT
|
||||
self.webgl_error(InvalidEnum);
|
||||
|
@ -1608,7 +1608,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
unsafe fn CompressedTexSubImage2D(&self, cx: *mut JSContext, _target: u32, _level: i32,
|
||||
_xoffset: i32, _yoffset: i32, _width: i32, _height: i32,
|
||||
_format: u32, pixels: *mut JSObject) -> Fallible<()> {
|
||||
let _data = try!(fallible_array_buffer_view_to_vec(cx, pixels));
|
||||
let _data = fallible_array_buffer_view_to_vec(cx, pixels)?;
|
||||
// FIXME: No compressed texture format is currently supported, so error out as per
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#COMPRESSED_TEXTURE_SUPPORT
|
||||
self.webgl_error(InvalidEnum);
|
||||
|
@ -2682,7 +2682,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default)?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform, UniformSetterType::Int, &data_vec) {
|
||||
self.ipc_renderer
|
||||
|
@ -2700,7 +2700,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform, UniformSetterType::Float, &data_vec) {
|
||||
self.ipc_renderer
|
||||
|
@ -2729,7 +2729,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatVec2,
|
||||
|
@ -2762,7 +2762,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default)?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::IntVec2,
|
||||
|
@ -2795,7 +2795,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatVec3,
|
||||
|
@ -2828,7 +2828,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default)?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::IntVec3,
|
||||
|
@ -2862,7 +2862,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Int32>(cx, data, ConversionBehavior::Default)?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::IntVec4,
|
||||
|
@ -2895,7 +2895,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
uniform: Option<&WebGLUniformLocation>,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatVec4,
|
||||
|
@ -2916,7 +2916,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
transpose: bool,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatMat2,
|
||||
&data_vec) {
|
||||
|
@ -2936,7 +2936,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
transpose: bool,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatMat3,
|
||||
&data_vec) {
|
||||
|
@ -2956,7 +2956,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
transpose: bool,
|
||||
data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if self.validate_uniform_parameters(uniform,
|
||||
UniformSetterType::FloatMat4,
|
||||
&data_vec) {
|
||||
|
@ -2996,7 +2996,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
#[allow(unsafe_code)]
|
||||
unsafe fn VertexAttrib1fv(&self, cx: *mut JSContext, indx: u32, data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if data_vec.len() < 1 {
|
||||
return Ok(self.webgl_error(InvalidOperation));
|
||||
}
|
||||
|
@ -3013,7 +3013,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
#[allow(unsafe_code)]
|
||||
unsafe fn VertexAttrib2fv(&self, cx: *mut JSContext, indx: u32, data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if data_vec.len() < 2 {
|
||||
return Ok(self.webgl_error(InvalidOperation));
|
||||
}
|
||||
|
@ -3030,7 +3030,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
#[allow(unsafe_code)]
|
||||
unsafe fn VertexAttrib3fv(&self, cx: *mut JSContext, indx: u32, data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if data_vec.len() < 3 {
|
||||
return Ok(self.webgl_error(InvalidOperation));
|
||||
}
|
||||
|
@ -3047,7 +3047,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
#[allow(unsafe_code)]
|
||||
unsafe fn VertexAttrib4fv(&self, cx: *mut JSContext, indx: u32, data: *mut JSObject) -> Fallible<()> {
|
||||
assert!(!data.is_null());
|
||||
let data_vec = try!(typed_array_or_sequence_to_vec::<Float32>(cx, data, ()));
|
||||
let data_vec = typed_array_or_sequence_to_vec::<Float32>(cx, data, ())?;
|
||||
if data_vec.len() < 4 {
|
||||
return Ok(self.webgl_error(InvalidOperation));
|
||||
}
|
||||
|
@ -3134,7 +3134,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
let data = if data_ptr.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(try!(fallible_array_buffer_view_to_vec(cx, data_ptr)))
|
||||
Some(fallible_array_buffer_view_to_vec(cx, data_ptr)?)
|
||||
};
|
||||
|
||||
let validator = TexImage2DValidator::new(self, target, level,
|
||||
|
@ -3261,7 +3261,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
let data = if data_ptr.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(try!(fallible_array_buffer_view_to_vec(cx, data_ptr)))
|
||||
Some(fallible_array_buffer_view_to_vec(cx, data_ptr)?)
|
||||
};
|
||||
|
||||
let validator = TexImage2DValidator::new(self, target, level,
|
||||
|
|
|
@ -316,7 +316,7 @@ impl WebSocketMethods for WebSocket {
|
|||
// https://html.spec.whatwg.org/multipage/#dom-websocket-send
|
||||
fn Send(&self, data: USVString) -> ErrorResult {
|
||||
let data_byte_len = data.0.as_bytes().len() as u64;
|
||||
let send_data = try!(self.send_impl(data_byte_len));
|
||||
let send_data = self.send_impl(data_byte_len)?;
|
||||
|
||||
if send_data {
|
||||
let mut other_sender = self.sender.borrow_mut();
|
||||
|
@ -334,7 +334,7 @@ impl WebSocketMethods for WebSocket {
|
|||
If the buffer limit is reached in the first place, there are likely other major problems
|
||||
*/
|
||||
let data_byte_len = blob.Size();
|
||||
let send_data = try!(self.send_impl(data_byte_len));
|
||||
let send_data = self.send_impl(data_byte_len)?;
|
||||
|
||||
if send_data {
|
||||
let mut other_sender = self.sender.borrow_mut();
|
||||
|
|
|
@ -765,7 +765,7 @@ impl WindowMethods for Window {
|
|||
|
||||
// Step 1-2, 6-8.
|
||||
// TODO(#12717): Should implement the `transfer` argument.
|
||||
let data = try!(StructuredCloneData::write(cx, message));
|
||||
let data = StructuredCloneData::write(cx, message)?;
|
||||
|
||||
// Step 9.
|
||||
self.post_message(origin, data);
|
||||
|
@ -993,9 +993,9 @@ impl WindowMethods for Window {
|
|||
|
||||
// check-tidy: no specs after this line
|
||||
fn OpenURLInDefaultBrowser(&self, href: DOMString) -> ErrorResult {
|
||||
let url = try!(ServoUrl::parse(&href).map_err(|e| {
|
||||
let url = ServoUrl::parse(&href).map_err(|e| {
|
||||
Error::Type(format!("Couldn't parse URL: {}", e))
|
||||
}));
|
||||
})?;
|
||||
match open::that(url.as_str()) {
|
||||
Ok(_) => Ok(()),
|
||||
Err(e) => Err(Error::Type(format!("Couldn't open URL: {}", e))),
|
||||
|
|
|
@ -167,7 +167,7 @@ impl WorkerMethods for Worker {
|
|||
#[allow(unsafe_code)]
|
||||
// https://html.spec.whatwg.org/multipage/#dom-worker-postmessage
|
||||
unsafe fn PostMessage(&self, cx: *mut JSContext, message: HandleValue) -> ErrorResult {
|
||||
let data = try!(StructuredCloneData::write(cx, message));
|
||||
let data = StructuredCloneData::write(cx, message)?;
|
||||
let address = Trusted::new(self);
|
||||
|
||||
// NOTE: step 9 of https://html.spec.whatwg.org/multipage/#dom-messageport-postmessage
|
||||
|
|
|
@ -501,7 +501,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
|
|||
// Step 4 (first half)
|
||||
let extracted_or_serialized = match data {
|
||||
Some(DocumentOrBodyInit::Document(ref doc)) => {
|
||||
let data = Vec::from(try!(serialize_document(&doc)).as_ref());
|
||||
let data = Vec::from(serialize_document(&doc)?.as_ref());
|
||||
let content_type = if doc.is_html_document() {
|
||||
"text/html;charset=UTF-8"
|
||||
} else {
|
||||
|
@ -719,7 +719,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
|
|||
_ => {},
|
||||
}
|
||||
// Step 2
|
||||
let override_mime = try!(mime.parse::<Mime>().map_err(|_| Error::Syntax));
|
||||
let override_mime = mime.parse::<Mime>().map_err(|_| Error::Syntax)?;
|
||||
// Step 3
|
||||
let mime_no_params = Mime(override_mime.clone().0, override_mime.clone().1, vec![]);
|
||||
*self.override_mime_type.borrow_mut() = Some(mime_no_params);
|
||||
|
|
|
@ -371,9 +371,9 @@ pub struct ServoLayoutElement<'le> {
|
|||
|
||||
impl<'le> fmt::Debug for ServoLayoutElement<'le> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
try!(write!(f, "<{}", self.element.local_name()));
|
||||
write!(f, "<{}", self.element.local_name())?;
|
||||
if let &Some(ref id) = unsafe { &*self.element.id_attribute() } {
|
||||
try!(write!(f, " id={}", id));
|
||||
write!(f, " id={}", id)?;
|
||||
}
|
||||
write!(f, "> ({:#x})", self.as_node().opaque().0)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue