diff --git a/src/servo/layout/base.rs b/src/servo/layout/base.rs index 6fc12c7c730..75bd341db86 100644 --- a/src/servo/layout/base.rs +++ b/src/servo/layout/base.rs @@ -56,9 +56,10 @@ fn linked_box(n: node) -> @box { } fn linked_subtree(p: node) -> @box { + #debug["linked_subtree root=%?", p.rd() { |r| r.kind }]; let p_box = linked_box(p); for ntree.each_child(p) { |c| - let c_box = linked_box(c); + let c_box = linked_subtree(c); btree.add_child(p_box, c_box); } ret p_box; @@ -74,6 +75,7 @@ fn reflow_block(root: @box, available_width: au) { // - and recursively computes the bounds for each child let k = root.node.rd() { |r| r.kind }; + #debug["reflow_block root=%?", k]; alt k { nk_img(size) { root.bounds.size = size; diff --git a/src/servo/parser/html_builder.rs b/src/servo/parser/html_builder.rs index 0d4d1f2a4dc..464f021bb74 100644 --- a/src/servo/parser/html_builder.rs +++ b/src/servo/parser/html_builder.rs @@ -5,6 +5,7 @@ import dom::base::{methods, rd_tree_ops, wr_tree_ops}; import dom = dom::base; import parser = parser::html; import html::token; +import gfx::geom; fn build_dom(scope: dom::node_scope, stream: port) -> dom::node { @@ -15,11 +16,24 @@ fn build_dom(scope: dom::node_scope, #debug["token=%?", token]; alt token { parser::to_eof { break; } - parser::to_start_tag(_) { - let new_node = scope.new_node(dom::nk_div); + parser::to_start_tag("div") { + #debug["DIV"]; + let new_node = scope.new_node( + dom::nk_div); scope.add_child(cur, new_node); cur = new_node; } + parser::to_start_tag("img") { + #debug["IMG"]; + let new_node = scope.new_node( + dom::nk_img({mut width: geom::int_to_au(100), + mut height: geom::int_to_au(100)})); + scope.add_child(cur, new_node); + cur = new_node; + } + parser::to_start_tag(t) { + fail ("Unrecognized tag: " + t); + } parser::to_end_tag(_) { // TODO: Assert that the closing tag has the right name. // TODO: Fail more gracefully (i.e. according to the HTML5 diff --git a/test.html b/test.html index 8a950d14874..7d993f11bc3 100644 --- a/test.html +++ b/test.html @@ -1 +1,7 @@ -
+
+ +
+ +
+
+