mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Make <head> display: none
This commit is contained in:
parent
b281a508e0
commit
47f618bac2
7 changed files with 42 additions and 29 deletions
|
@ -1 +1 @@
|
|||
Subproject commit c25b44e58500a684d2937cbdb41c76966ba2ac18
|
||||
Subproject commit 4fc1f2a7f87c44dd87cb05815001dd4f09470231
|
|
@ -1 +1 @@
|
|||
Subproject commit 43db075b2aac4c9b8623736b034479523cc2005d
|
||||
Subproject commit 5c0def8dadcde1d4bea1f532067f6505ac893a2c
|
|
@ -1 +1 @@
|
|||
Subproject commit 1ba4722cd56771157c816ba1b0fc255ef6b5d503
|
||||
Subproject commit 2b9cb42b5c855e2f6925be8ddbff4684c2b25312
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 }) }
|
||||
}
|
||||
|
|
|
@ -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"];
|
||||
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("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];
|
||||
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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue