aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo/parser/html_builder.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-05-24 13:57:50 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-05-24 13:58:00 -0700
commitf5236ef7e3a88e7abeb2f2263950f14868e0427a (patch)
treec5396f7933f4e86775db73f6aba6c8a879a22fb7 /src/servo/parser/html_builder.rs
parent02a20258d9a085b74b00632679c806fb2699875f (diff)
downloadservo-f5236ef7e3a88e7abeb2f2263950f14868e0427a.tar.gz
servo-f5236ef7e3a88e7abeb2f2263950f14868e0427a.zip
Parse unknown HTML elements into something sane
Diffstat (limited to 'src/servo/parser/html_builder.rs')
-rw-r--r--src/servo/parser/html_builder.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/servo/parser/html_builder.rs b/src/servo/parser/html_builder.rs
index 8d65a77c64b..f5545b8d8c4 100644
--- a/src/servo/parser/html_builder.rs
+++ b/src/servo/parser/html_builder.rs
@@ -1,8 +1,8 @@
#[doc="Constructs a DOM tree from an incoming token stream."]
import dom::rcu::writer_methods;
-import dom::base::{element, es_div, es_img, methods, nk_element, nk_text};
-import dom::base::{rd_tree_ops, wr_tree_ops};
+import dom::base::{element, es_div, es_img, es_unknown, methods, nk_element};
+import dom::base::{nk_text, rd_tree_ops, wr_tree_ops};
import dom = dom::base;
import parser = parser::html;
import html::token;
@@ -29,7 +29,7 @@ fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str,
some(s) { dimensions.height = geom::px_to_au(s); }
}
}
- es_div | es_img(*) {
+ es_div | es_img(*) | es_unknown {
// Drop on the floor.
}
}
@@ -67,7 +67,11 @@ fn build_dom(scope: dom::node_scope,
cur = new_node;
}
parser::to_start_opening_tag(t) {
- fail ("Unrecognized tag: " + t);
+ #debug["unknown element: %s", t];
+ let new_node =
+ scope.new_node(dom::nk_element(element(t, ~es_unknown)));
+ scope.add_child(cur, new_node);
+ cur = new_node;
}
parser::to_attr(key, value) {
#debug["attr: %? = %?", key, value];