aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/htmlimageelement.rs2
-rw-r--r--src/components/script/dom/htmlobjectelement.rs2
-rw-r--r--src/components/script/dom/location.rs2
-rw-r--r--src/components/script/dom/window.rs4
-rw-r--r--src/components/script/script_task.rs10
5 files changed, 13 insertions, 7 deletions
diff --git a/src/components/script/dom/htmlimageelement.rs b/src/components/script/dom/htmlimageelement.rs
index 1b336282b3d..05d2a0b7c3e 100644
--- a/src/components/script/dom/htmlimageelement.rs
+++ b/src/components/script/dom/htmlimageelement.rs
@@ -91,7 +91,7 @@ impl HTMLImageElement {
if "src" == name {
let document = self.htmlelement.element.node.owner_doc();
let window = document.get().window.get();
- let url = window.page.url.as_ref().map(|&(ref url, _)| url.clone());
+ let url = Some(window.get_url());
self.update_image(Some(value), url);
}
}
diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs
index d373a0e6df4..d75b9750b78 100644
--- a/src/components/script/dom/htmlobjectelement.rs
+++ b/src/components/script/dom/htmlobjectelement.rs
@@ -75,7 +75,7 @@ impl HTMLObjectElement {
if "data" == name {
let document = self.htmlelement.element.node.owner_doc();
let window = document.get().window.clone();
- let url = window.get().page.url.as_ref().map(|&(ref url, _)| url.clone());
+ let url = Some(window.get().get_url());
self.process_data_url(window.get().image_cache_task.clone(), url);
}
}
diff --git a/src/components/script/dom/location.rs b/src/components/script/dom/location.rs
index 442373fea90..40af193895d 100644
--- a/src/components/script/dom/location.rs
+++ b/src/components/script/dom/location.rs
@@ -44,7 +44,7 @@ impl Location {
}
pub fn Href(&self) -> DOMString {
- self.page.url.get_ref().first().to_str()
+ self.page.get_url().to_str()
}
pub fn SetHref(&self, _href: DOMString) -> Fallible<()> {
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index 5c78af9f0d2..86111c95be7 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -33,6 +33,7 @@ use std::ptr;
use std::to_bytes::Cb;
use extra::serialize::{Encoder, Encodable};
+use extra::url::{Url};
pub enum TimerControlMsg {
TimerMessage_Fire(~TimerData),
@@ -96,6 +97,9 @@ impl Window {
pub fn get_cx(&self) -> *JSObject {
self.page.js_info.get_ref().js_compartment.cx.ptr
}
+ pub fn get_url(&self) -> Url {
+ self.page.get_url()
+ }
}
#[unsafe_destructor]
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index 01539dcd128..a4fc38f1d28 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -261,6 +261,10 @@ impl Page {
};
}
+ pub fn get_url(&self) -> Url {
+ self.url.get_ref().first().clone()
+ }
+
/// Sends a ping to layout and waits for the response. The response will arrive when the
/// layout task has finished any pending request messages.
pub fn join_layout(&mut self) {
@@ -332,7 +336,7 @@ impl Page {
let root: JS<Node> = NodeCast::from(&root);
let reflow = ~Reflow {
document_root: root.to_trusted_node_address(),
- url: self.url.get_ref().first().clone(),
+ url: self.get_url(),
goal: goal,
window_size: self.window_size,
script_chan: script_chan,
@@ -989,9 +993,7 @@ impl ScriptTask {
for href in attr.iter() {
debug!("ScriptTask: clicked on link to {:s}", href.get().Value());
let click_frag = href.get().value_ref().starts_with("#");
- let base_url = page.url.as_ref().map(|&(ref url, _)| {
- url.clone()
- });
+ let base_url = Some(page.get_url());
debug!("ScriptTask: current url is {:?}", base_url);
let url = parse_url(href.get().value_ref(), base_url);