aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py2
-rw-r--r--src/components/script/dom/bindings/node.rs4
-rw-r--r--src/components/script/dom/node.rs4
-rw-r--r--src/components/script/dom/window.rs3
-rw-r--r--src/components/script/html/cssparse.rs2
-rw-r--r--src/components/script/html/hubbub_html_parser.rs39
-rw-r--r--src/components/script/script.rc2
-rw-r--r--src/components/script/script_task.rs25
8 files changed, 44 insertions, 37 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 18e590fc30d..5734df036c6 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4025,7 +4025,7 @@ def finalizeHook(descriptor, hookName, context):
assert descriptor.nativeIsISupports
release = """let val = JS_GetReservedSlot(obj, dom_object_slot(obj));
let _: @mut %s = cast::transmute(RUST_JSVAL_TO_PRIVATE(val));
-debug!("%s finalize: %%p", this);
+debug!("%s finalize: {:p}", this);
""" % (descriptor.concreteType, descriptor.concreteType)
#return clearWrapper + release
return release
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index e2d10ec6387..09f17770c56 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -127,7 +127,7 @@ impl Traceable for Node<ScriptView> {
if node.is_none() {
return;
}
- debug!("tracing %s", name);
+ debug!("tracing {:s}", name);
let node = node.unwrap();
let obj = node.reflector().get_jsobject();
assert!(obj.is_not_null());
@@ -140,7 +140,7 @@ impl Traceable for Node<ScriptView> {
}
}
}
- debug!("tracing %p?:", self.reflector_.get_jsobject());
+ debug!("tracing {:p}?:", self.reflector_.get_jsobject());
trace_node(tracer, self.parent_node, "parent");
trace_node(tracer, self.first_child, "first child");
trace_node(tracer, self.last_child, "last child");
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index 43178101e01..725d69e711f 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -425,7 +425,7 @@ impl<'self, View> AbstractNode<View> {
}
s.push_str(self.debug_str());
- debug!("%s", s);
+ debug!("{:s}", s);
// FIXME: this should have a pure version?
for kid in self.children() {
@@ -435,7 +435,7 @@ impl<'self, View> AbstractNode<View> {
/// Returns a string that describes this node.
pub fn debug_str(&self) -> ~str {
- fmt!("%?", self.type_id())
+ format!("{:?}", self.type_id())
}
pub fn children(&self) -> AbstractNodeChildrenIterator<View> {
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index 8f9994458fb..0a5bb19d3ec 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -23,7 +23,6 @@ use std::cell::Cell;
use std::comm;
use std::comm::SharedChan;
use std::hashmap::HashSet;
-use std::io;
use std::ptr;
use std::int;
use std::libc;
@@ -74,7 +73,7 @@ pub struct TimerData {
impl Window {
pub fn Alert(&self, s: &DOMString) {
// Right now, just print to the console
- io::println(fmt!("ALERT: %s", null_str_as_empty(s)));
+ println(format!("ALERT: {:s}", null_str_as_empty(s)));
}
pub fn Close(&self) {
diff --git a/src/components/script/html/cssparse.rs b/src/components/script/html/cssparse.rs
index bfe1d984171..ade3b58ed69 100644
--- a/src/components/script/html/cssparse.rs
+++ b/src/components/script/html/cssparse.rs
@@ -35,7 +35,7 @@ pub fn spawn_css_parser(provenance: StylesheetProvenance,
let sheet = match provenance_cell.take() {
UrlProvenance(url) => {
- debug!("cssparse: loading style sheet at %s", url.to_str());
+ debug!("cssparse: loading style sheet at {:s}", url.to_str());
let (input_port, input_chan) = comm::stream();
resource_task.send(Load(url, input_chan));
Stylesheet::from_iter(ProgressMsgPortIterator {
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index c0da70de983..b1f8cc96484 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -118,7 +118,6 @@ pub enum HtmlDiscoveryMessage {
pub struct HtmlParserResult {
root: AbstractNode<ScriptView>,
discovery_port: Port<HtmlDiscoveryMessage>,
- url: Url,
}
trait NodeWrapping {
@@ -183,7 +182,7 @@ fn js_script_listener(to_parent: SharedChan<HtmlDiscoveryMessage>,
JSTaskNewFile(url) => {
match load_whole_resource(&resource_task, url.clone()) {
Err(_) => {
- error!("error loading script %s", url.to_str());
+ error!("error loading script {:s}", url.to_str());
}
Ok((metadata, bytes)) => {
result_vec.push(JSFile {
@@ -299,7 +298,7 @@ pub fn parse_html(cx: *JSContext,
image_cache_task: ImageCacheTask,
next_subpage_id: SubpageId,
constellation_chan: ConstellationChan) -> HtmlParserResult {
- debug!("Hubbub: parsing %?", url);
+ debug!("Hubbub: parsing {:?}", url);
// Spawn a CSS parser to receive links to CSS style sheets.
let resource_task2 = resource_task.clone();
@@ -330,11 +329,22 @@ pub fn parse_html(cx: *JSContext,
resource_task.send(Load(url.clone(), input_chan));
let load_response = input_port.recv();
- debug!("Fetched page; metadata is %?", load_response.metadata);
+ debug!("Fetched page; metadata is {:?}", load_response.metadata);
let url2 = load_response.metadata.final_url.clone();
let url3 = url2.clone();
+ // Store the final URL before we start parsing, so that DOM routines
+ // (e.g. HTMLImageElement::update_image) can resolve relative URLs
+ // correctly.
+ //
+ // FIXME: is this safe? When we instead pass an &mut Page to parse_html,
+ // we crash with a dynamic borrow failure.
+ let page = page_from_context(cx);
+ unsafe {
+ (*page).url = Some((url2.clone(), true));
+ }
+
// Build the root node.
let root = @HTMLHtmlElement { htmlelement: HTMLElement::new(HTMLHtmlElementTypeId, ~"html", document) };
let root = unsafe { Node::as_abstract_node(cx, root) };
@@ -390,7 +400,7 @@ pub fn parse_html(cx: *JSContext,
match (element.get_attr("rel"), element.get_attr("href")) {
(Some(rel), Some(href)) => {
if rel == "stylesheet" {
- debug!("found CSS stylesheet: %s", href);
+ debug!("found CSS stylesheet: {:s}", href);
let url = make_url(href.to_str(), Some(url2.clone()));
css_chan2.send(CSSTaskNewFile(UrlProvenance(url)));
}
@@ -459,7 +469,7 @@ pub fn parse_html(cx: *JSContext,
unref_node: |_| {},
append_child: |parent: hubbub::NodeDataPtr, child: hubbub::NodeDataPtr| {
unsafe {
- debug!("append child %x %x", cast::transmute(parent), cast::transmute(child));
+ debug!("append child {:x} {:x}", parent, child);
let parent: AbstractNode<ScriptView> = NodeWrapping::from_hubbub_node(parent);
let child: AbstractNode<ScriptView> = NodeWrapping::from_hubbub_node(child);
// FIXME this needs to be AppendChild.
@@ -512,21 +522,21 @@ pub fn parse_html(cx: *JSContext,
do scriptnode.with_imm_element |script| {
match script.get_attr("src") {
Some(src) => {
- debug!("found script: %s", src);
+ debug!("found script: {:s}", src);
let new_url = make_url(src.to_str(), Some(url3.clone()));
js_chan2.send(JSTaskNewFile(new_url));
}
None => {
let mut data = ~[];
- debug!("iterating over children %?", scriptnode.first_child());
+ debug!("iterating over children {:?}", scriptnode.first_child());
for child in scriptnode.children() {
- debug!("child = %?", child);
+ debug!("child = {:?}", child);
do child.with_imm_text() |text| {
data.push(text.element.data.to_str()); // FIXME: Bad copy.
}
}
- debug!("script data = %?", data);
+ debug!("script data = {:?}", data);
js_chan2.send(JSTaskNewInlineScript(data.concat(), url3.clone()));
}
}
@@ -542,15 +552,15 @@ pub fn parse_html(cx: *JSContext,
let url_cell = Cell::new(url);
let mut data = ~[];
- debug!("iterating over children %?", style.first_child());
+ debug!("iterating over children {:?}", style.first_child());
for child in style.children() {
- debug!("child = %?", child);
+ debug!("child = {:?}", child);
do child.with_imm_text() |text| {
data.push(text.element.data.to_str()); // FIXME: Bad copy.
}
}
- debug!("style data = %?", data);
+ debug!("style data = {:?}", data);
let provenance = InlineProvenance(url_cell.take().unwrap(), data.concat());
css_chan3.send(CSSTaskNewFile(provenance));
}
@@ -566,7 +576,7 @@ pub fn parse_html(cx: *JSContext,
parser.parse_chunk(data);
}
Done(Err(*)) => {
- fail!("Failed to load page URL %s", url.to_str());
+ fail!("Failed to load page URL {:s}", url.to_str());
}
Done(*) => {
break;
@@ -580,7 +590,6 @@ pub fn parse_html(cx: *JSContext,
HtmlParserResult {
root: root,
discovery_port: discovery_port,
- url: load_response.metadata.final_url,
}
}
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index cf376f08fcd..bef239a5ec9 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -11,7 +11,7 @@
#[license = "MPL"];
#[crate_type = "lib"];
-#[feature(globs, macro_rules, struct_variant)];
+#[feature(globs, macro_rules, struct_variant, managed_boxes)];
extern mod geom;
extern mod gfx (name = "gfx");
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index b17449ab0ba..fed211c1fce 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -282,7 +282,7 @@ impl Page {
match root {
None => {},
Some(root) => {
- debug!("script: performing reflow for goal %?", goal);
+ debug!("script: performing reflow for goal {:?}", goal);
// Now, join the layout so that they will see the latest changes we have made.
self.join_layout();
@@ -541,7 +541,7 @@ impl ScriptTask {
}
fn handle_new_layout(&mut self, new_layout_info: NewLayoutInfo) {
- debug!("Script: new layout: %?", new_layout_info);
+ debug!("Script: new layout: {:?}", new_layout_info);
let NewLayoutInfo {
old_id,
new_id,
@@ -588,7 +588,7 @@ impl ScriptTask {
/// Handles a notification that reflow completed.
fn handle_reflow_complete_msg(&mut self, pipeline_id: PipelineId, reflow_id: uint) {
- debug!("Script: Reflow %? complete for %?", reflow_id, pipeline_id);
+ debug!("Script: Reflow {:?} complete for {:?}", reflow_id, pipeline_id);
let page_tree = self.page_tree.find(pipeline_id).expect(
"ScriptTask: received a load message for a layout channel that is not associated \
with this script task. This is a bug.");
@@ -656,7 +656,7 @@ impl ScriptTask {
/// The entry point to document loading. Defines bindings, sets up the window and document
/// objects, parses HTML and CSS, and kicks off initial layout.
fn load(&mut self, pipeline_id: PipelineId, url: Url) {
- debug!("ScriptTask: loading %? on page %?", url, pipeline_id);
+ debug!("ScriptTask: loading {:?} on page {:?}", url, pipeline_id);
let page = self.page_tree.find(pipeline_id).expect("ScriptTask: received a load
message for a layout channel that is not associated with this script task. This
@@ -699,14 +699,13 @@ impl ScriptTask {
self.constellation_chan.clone());
- let HtmlParserResult {root, discovery_port, url: final_url} = html_parsing_result;
+ let HtmlParserResult {root, discovery_port} = html_parsing_result;
// Create the root frame.
page.frame = Some(Frame {
document: document,
window: window,
});
- page.url = Some((final_url, true));
// Send style sheets over to layout.
//
@@ -752,7 +751,7 @@ impl ScriptTask {
// Receive the JavaScript scripts.
assert!(js_scripts.is_some());
let js_scripts = js_scripts.take_unwrap();
- debug!("js_scripts: %?", js_scripts);
+ debug!("js_scripts: {:?}", js_scripts);
// Define debug functions.
let compartment = page.js_info.get_ref().js_compartment;
@@ -778,7 +777,7 @@ impl ScriptTask {
match event {
ResizeEvent(new_width, new_height) => {
- debug!("script got resize event: %u, %u", new_width, new_height);
+ debug!("script got resize event: {:u}, {:u}", new_width, new_height);
page.window_size = Future::from_value(Size2D(new_width, new_height));
@@ -799,7 +798,7 @@ impl ScriptTask {
}
ClickEvent(_button, point) => {
- debug!("ClickEvent: clicked at %?", point);
+ debug!("ClickEvent: clicked at {:?}", point);
let document = page.frame.expect("root frame is None").document;
let root = document.document().GetDocumentElement();
@@ -810,7 +809,7 @@ impl ScriptTask {
match page.query_layout(HitTestQuery(root.unwrap(), point, chan), port) {
Ok(node) => match node {
HitTestResponse(node) => {
- debug!("clicked on %s", 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() {
@@ -831,7 +830,7 @@ impl ScriptTask {
}
},
Err(()) => {
- debug!(fmt!("layout query error"));
+ debug!("layout query error");
}
}
}
@@ -844,11 +843,11 @@ impl ScriptTask {
// if the node's element is "a," load url from href attr
let attr = element.get_attr("href");
for href in attr.iter() {
- debug!("ScriptTask: clicked on link to %s", *href);
+ debug!("ScriptTask: clicked on link to {:s}", *href);
let current_url = do page.url.as_ref().map |&(ref url, _)| {
url.clone()
};
- debug!("ScriptTask: current url is %?", current_url);
+ debug!("ScriptTask: current url is {:?}", current_url);
let url = make_url(href.to_owned(), current_url);
self.constellation_chan.send(LoadUrlMsg(page.id, url, Future::from_value(page.window_size.get())));
}