aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/script_task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/script_task.rs')
-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));
}
}
}