diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2012-05-24 16:38:30 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2012-05-24 16:39:35 -0700 |
commit | 47f618bac2ca2dc34ab121dbdfff778982b689de (patch) | |
tree | 5668d4aa8d2ea4c2587d6f315fab50bf25477ba6 /src | |
parent | b281a508e066b64577c3b8950210bfd8d9b7c37d (diff) | |
download | servo-47f618bac2ca2dc34ab121dbdfff778982b689de.tar.gz servo-47f618bac2ca2dc34ab121dbdfff778982b689de.zip |
Make <head> display: none
Diffstat (limited to 'src')
m--------- | src/rust-azure | 0 | ||||
m--------- | src/rust-harfbuzz | 0 | ||||
m--------- | src/rust-mozjs | 0 | ||||
-rw-r--r-- | src/servo/dom/base.rs | 3 | ||||
-rw-r--r-- | src/servo/layout/box_builder.rs | 9 | ||||
-rw-r--r-- | src/servo/layout/style/style.rs | 7 | ||||
-rw-r--r-- | src/servo/parser/html_builder.rs | 46 |
7 files changed, 39 insertions, 26 deletions
diff --git a/src/rust-azure b/src/rust-azure -Subproject c25b44e58500a684d2937cbdb41c76966ba2ac1 +Subproject 4fc1f2a7f87c44dd87cb05815001dd4f0947023 diff --git a/src/rust-harfbuzz b/src/rust-harfbuzz -Subproject 43db075b2aac4c9b8623736b034479523cc2005 +Subproject 5c0def8dadcde1d4bea1f532067f6505ac893a2 diff --git a/src/rust-mozjs b/src/rust-mozjs -Subproject 1ba4722cd56771157c816ba1b0fc255ef6b5d50 +Subproject 2b9cb42b5c855e2f6925be8ddbff4684c2b2531 diff --git a/src/servo/dom/base.rs b/src/servo/dom/base.rs index bf125829d43..18341096fb4 100644 --- a/src/servo/dom/base.rs +++ b/src/servo/dom/base.rs @@ -26,7 +26,8 @@ class element { enum element_subclass { es_unknown, es_div, - es_img(size<au>) + es_img(size<au>), + es_head } #[doc="The rd_aux data is a (weak) pointer to the layout data, which contains diff --git a/src/servo/layout/box_builder.rs b/src/servo/layout/box_builder.rs index 7f5bcd65791..b9178d80eb3 100644 --- a/src/servo/layout/box_builder.rs +++ b/src/servo/layout/box_builder.rs @@ -73,6 +73,9 @@ impl methods for ctxt { }; btree.add_child(anon_box, kid_box); } + di_none { + // Nothing to do. + } } } } @@ -104,6 +107,9 @@ impl methods for ctxt { di_inline { btree.add_child(self.parent_box, kid_box); } + di_none { + // Nothing to do. + } } } } @@ -114,8 +120,9 @@ impl methods for ctxt { self.parent_node.dump(); alt self.parent_node.get_computed_style().display { - di_block { self.construct_boxes_for_block_children(); } + di_block { self.construct_boxes_for_block_children(); } di_inline { self.construct_boxes_for_inline_children(); } + di_none { /* Nothing to do. */ } } self.finish_anonymous_box_if_necessary(); diff --git a/src/servo/layout/style/style.rs b/src/servo/layout/style/style.rs index b031cad3bae..1ab574cb442 100644 --- a/src/servo/layout/style/style.rs +++ b/src/servo/layout/style/style.rs @@ -1,6 +1,7 @@ #[doc="High-level interface to CSS selector matching."] -import dom::base::{element, es_div, es_img, nk_element, nk_text, node}; +import dom::base::{element, es_div, es_head, es_img, nk_element, nk_text}; +import dom::base::{node}; import dom::base::node_kind; import dom::rcu::reader_methods; import /*layout::*/base::*; // FIXME: resolve bug requires * @@ -11,7 +12,8 @@ enum computed_style = { enum display { di_block, - di_inline + di_inline, + di_none } #[doc="Returns the default style for the given node kind."] @@ -23,6 +25,7 @@ fn default_style_for_node_kind(kind: node_kind) -> computed_style { nk_element(element) { alt *element.subclass { es_div { computed_style({ mut display: di_block }) } + es_head { computed_style({ mut display: di_none }) } es_img(*) { computed_style({ mut display: di_inline }) } es_unknown { computed_style({ mut display: di_inline }) } } diff --git a/src/servo/parser/html_builder.rs b/src/servo/parser/html_builder.rs index 93c77e5046e..ade6275ce41 100644 --- a/src/servo/parser/html_builder.rs +++ b/src/servo/parser/html_builder.rs @@ -1,8 +1,9 @@ #[doc="Constructs a DOM tree from an incoming token stream."] import dom::rcu::writer_methods; -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::base::{element, element_subclass, es_div, es_head, es_img}; +import dom::base::{es_unknown, methods, nk_element, nk_text, rd_tree_ops}; +import dom::base::{wr_tree_ops}; import dom = dom::base; import parser = parser::html; import html::token; @@ -29,8 +30,9 @@ 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_unknown { + es_div | es_img(*) | es_head | es_unknown { // Drop on the floor. + // FIXME: Implement attributes in a generic way. } } } @@ -41,6 +43,20 @@ fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str, } } +fn build_element_subclass(tag_name: str) -> ~element_subclass { + alt tag_name { + "div" { ret ~es_div; } + "img" { + ret ~es_img({ + mut width: geom::px_to_au(100), + mut height: geom::px_to_au(100) + }); + } + "head" { ret ~es_head; } + _ { ret ~es_unknown; } + } +} + fn build_dom(scope: dom::node_scope, stream: port<token>) -> dom::node { // The current reference node. @@ -49,26 +65,12 @@ fn build_dom(scope: dom::node_scope, let token = stream.recv(); alt token { parser::to_eof { break; } - parser::to_start_opening_tag("div") { - #debug["DIV"]; - let new_node = - scope.new_node(dom::nk_element(element("div", ~es_div))); - scope.add_child(cur, new_node); - cur = new_node; - } - parser::to_start_opening_tag("img") { - #debug["IMG"]; - let new_node = - scope.new_node(dom::nk_element(element("img", - ~es_img({mut width: geom::px_to_au(100), - mut height: geom::px_to_au(100)})))); - scope.add_child(cur, new_node); - cur = new_node; - } - parser::to_start_opening_tag(t) { - #debug["unknown element: %s", t]; + parser::to_start_opening_tag(tag_name) { + #debug["starting tag %s", tag_name]; + let element_subclass = build_element_subclass(tag_name); let new_node = - scope.new_node(dom::nk_element(element(t, ~es_unknown))); + scope.new_node(dom::nk_element(element(tag_name, + element_subclass))); scope.add_child(cur, new_node); cur = new_node; } |