Untry script

This commit is contained in:
Simon Sapin 2017-06-18 13:21:32 +02:00
parent a5bb55790f
commit 7af5a7fd54
36 changed files with 199 additions and 199 deletions

View file

@ -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, _)

View file

@ -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");

View file

@ -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)),
};

View file

@ -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());

View file

@ -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 = ':';

View file

@ -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)
},

View file

@ -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)?
}
};

View file

@ -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,

View file

@ -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);

View file

@ -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,

View file

@ -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))
}

View file

@ -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),

View file

@ -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(|_| ())

View file

@ -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()));
}

View file

@ -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 => {

View file

@ -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

View file

@ -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(())

View file

@ -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 {

View file

@ -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(())
}

View file

@ -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;

View file

@ -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 {

View file

@ -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() {

View file

@ -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)
}

View file

@ -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

View file

@ -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()

View file

@ -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!")
}

View file

@ -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(())
},

View file

@ -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)
}
}

View file

@ -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")

View file

@ -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.

View file

@ -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,

View file

@ -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();

View file

@ -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))),

View file

@ -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

View file

@ -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);

View file

@ -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)
}