mirror of
https://github.com/servo/servo.git
synced 2025-06-21 07:38:59 +01:00
refactored url handling code in script task to be more idiomatic
This commit is contained in:
parent
1a4ea09205
commit
4815d8fccd
1 changed files with 11 additions and 14 deletions
|
@ -595,7 +595,7 @@ impl ScriptTask {
|
|||
match self.query_layout(HitTestQuery(root, point, chan), port) {
|
||||
Ok(node) => match node {
|
||||
HitTestResponse(node) => {
|
||||
debug!("clicked on %?", node.debug_str());
|
||||
debug!("clicked on %s", node.debug_str());
|
||||
let mut node = node;
|
||||
// traverse node generations until a node that is an element is found
|
||||
while !node.is_element() {
|
||||
|
@ -608,9 +608,8 @@ impl ScriptTask {
|
|||
}
|
||||
if node.is_element() {
|
||||
do node.with_imm_element |element| {
|
||||
match element.tag_name {
|
||||
~"a" => self.load_url_from_element(element),
|
||||
_ => {}
|
||||
if "a" == element.tag_name {
|
||||
self.load_url_from_element(element)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -628,17 +627,15 @@ impl ScriptTask {
|
|||
|
||||
priv fn load_url_from_element(&self, element: &Element) {
|
||||
// if the node's element is "a," load url from href attr
|
||||
for element.attrs.iter().advance |attr| {
|
||||
if attr.name == ~"href" {
|
||||
debug!("clicked on link to %?", attr.value);
|
||||
let current_url = match self.root_frame {
|
||||
Some(ref frame) => Some(frame.url.clone()),
|
||||
None => None
|
||||
let href = element.get_attr("href");
|
||||
for href.iter().advance |href| {
|
||||
debug!("clicked on link to %s", *href);
|
||||
let current_url = do self.root_frame.map |frame| {
|
||||
frame.url.clone()
|
||||
};
|
||||
let url = make_url(attr.value.clone(), current_url);
|
||||
let url = make_url(href.to_owned(), current_url);
|
||||
self.constellation_chan.send(LoadUrlMsg(url));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue