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) {
|
match self.query_layout(HitTestQuery(root, point, chan), port) {
|
||||||
Ok(node) => match node {
|
Ok(node) => match node {
|
||||||
HitTestResponse(node) => {
|
HitTestResponse(node) => {
|
||||||
debug!("clicked on %?", node.debug_str());
|
debug!("clicked on %s", node.debug_str());
|
||||||
let mut node = node;
|
let mut node = node;
|
||||||
// traverse node generations until a node that is an element is found
|
// traverse node generations until a node that is an element is found
|
||||||
while !node.is_element() {
|
while !node.is_element() {
|
||||||
|
@ -608,9 +608,8 @@ impl ScriptTask {
|
||||||
}
|
}
|
||||||
if node.is_element() {
|
if node.is_element() {
|
||||||
do node.with_imm_element |element| {
|
do node.with_imm_element |element| {
|
||||||
match element.tag_name {
|
if "a" == element.tag_name {
|
||||||
~"a" => self.load_url_from_element(element),
|
self.load_url_from_element(element)
|
||||||
_ => {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -628,16 +627,14 @@ impl ScriptTask {
|
||||||
|
|
||||||
priv fn load_url_from_element(&self, element: &Element) {
|
priv fn load_url_from_element(&self, element: &Element) {
|
||||||
// if the node's element is "a," load url from href attr
|
// if the node's element is "a," load url from href attr
|
||||||
for element.attrs.iter().advance |attr| {
|
let href = element.get_attr("href");
|
||||||
if attr.name == ~"href" {
|
for href.iter().advance |href| {
|
||||||
debug!("clicked on link to %?", attr.value);
|
debug!("clicked on link to %s", *href);
|
||||||
let current_url = match self.root_frame {
|
let current_url = do self.root_frame.map |frame| {
|
||||||
Some(ref frame) => Some(frame.url.clone()),
|
frame.url.clone()
|
||||||
None => None
|
};
|
||||||
};
|
let url = make_url(href.to_owned(), current_url);
|
||||||
let url = make_url(attr.value.clone(), current_url);
|
self.constellation_chan.send(LoadUrlMsg(url));
|
||||||
self.constellation_chan.send(LoadUrlMsg(url));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue