Auto merge of #14300 - bholley:restyle_driven_traversal, r=emilio

stylo: Basic infrastructure for RestyleHint-driven traversal

Gecko Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=131701

(Don't review yet, will flag on the gecko bug when the time comes)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14300)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-11-25 09:00:44 -08:00 committed by GitHub
commit d98abaec20
37 changed files with 1466 additions and 908 deletions

View file

@ -434,7 +434,6 @@ impl Document {
// that workable.
match self.GetDocumentElement() {
Some(root) => {
root.upcast::<Node>().is_dirty() ||
root.upcast::<Node>().has_dirty_descendants() ||
!self.pending_restyles.borrow().is_empty() ||
self.needs_paint()

View file

@ -149,9 +149,6 @@ bitflags! {
#[doc = "Specifies whether this node is in a document."]
const IS_IN_DOC = 0x01,
#[doc = "Specifies whether this node needs style recalc on next reflow."]
const IS_DIRTY = 0x04,
#[doc = "Specifies whether this node has descendants (inclusive of itself) which \
have changed since the last reflow."]
const HAS_DIRTY_DESCENDANTS = 0x08,
// TODO: find a better place to keep this (#4105)
// https://critic.hoppipolla.co.uk/showcomment?chain=8873
@ -172,7 +169,7 @@ bitflags! {
impl NodeFlags {
pub fn new() -> NodeFlags {
IS_DIRTY
NodeFlags::empty()
}
}
@ -428,14 +425,6 @@ impl Node {
self.flags.set(flags);
}
pub fn is_dirty(&self) -> bool {
self.get_flag(IS_DIRTY)
}
pub fn set_is_dirty(&self, state: bool) {
self.set_flag(IS_DIRTY, state)
}
pub fn has_dirty_descendants(&self) -> bool {
self.get_flag(HAS_DIRTY_DESCENDANTS)
}