aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script
diff options
context:
space:
mode:
authorTim Kuehn <tkuehn@cmu.edu>2013-06-06 16:09:23 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-06-12 11:02:51 -0700
commitff1178f7ca6cf6ec89b79b38f0dc3bb226462841 (patch)
tree221adaaf1358889bc2a7ba623efcb8e6ee64cf43 /src/components/script
parentbf4df245215b1ffe90fab9e7b4781098db708c78 (diff)
downloadservo-ff1178f7ca6cf6ec89b79b38f0dc3bb226462841.tar.gz
servo-ff1178f7ca6cf6ec89b79b38f0dc3bb226462841.zip
handle relative url's when clicking
Diffstat (limited to 'src/components/script')
-rw-r--r--src/components/script/script_task.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index 716440dfffe..0482febe570 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -39,7 +39,8 @@ use js;
use servo_net::image_cache_task::ImageCacheTask;
use servo_net::resource_task::ResourceTask;
use servo_util::tree::TreeNodeRef;
-use std::net::url::{Url, from_str};
+use servo_util::url::make_url;
+use std::net::url::Url;
use std::net::url;
/// Messages used to control the script task.
@@ -559,12 +560,12 @@ impl ScriptContext {
for element.attrs.each |attr| {
if attr.name == ~"href" {
debug!("clicked on link to %?", attr.value);
- let url = from_str(attr.value);
- match url {
- Ok(url) => self.engine_task.send(LoadUrlMsg(url)),
- Err(msg) => debug!(msg)
+ let current_url = match self.root_frame {
+ Some(ref frame) => Some(frame.url.clone()),
+ None => None
};
- break;
+ let url = make_url(attr.value.clone(), current_url);
+ self.engine_task.send(LoadUrlMsg(url));
}
}
}