**This build is expected to fail** at first, because `test_img_width_height` is broken on `master`. It's the simplest way I know to check that with this change, buildbot will indeed catch failing content tests.
After that happens I'll push the commits to fix `test_img_width_height` and request a re-review.
The bit I don't like about these changes is that I ended up hiding the document node from the CSS selecting/matching code, so it continues thinking of the document's first child as the root. When I tried to send the full tree including the document node to layout, the layout code refused to create any child flows. When I sent the document's first child without hiding the document, it saw inherited values for properties like font-family, and later tried to treat the document node as an Element when searching for named nodes.
This broke in ab0d620 and in trying to fix it, it's become clear that I don't understand the intended behavior of `getClientRects()`. In fact I only see one rect in Firefox even when all three `<div>`s have drawn borders, which confuses me compared to [the spec](http://www.w3.org/TR/cssom-view/#the-getclientrects-and-getboundingclientrect-methods). Let's remove the test for now and someone who understands what's going on (which could be future me!) will re-add it.
I don't think it's useful to keep those lying around, in particular because we should never even implement some of those (`mozHidden`, `mozVisibilityState`, …)
This broke in ab0d620 and in trying to fix it, it's become clear that I don't
understand the intended behavior of getClientRects(). In fact I only see one
rect in Firefox even when all three <div>s have drawn borders, which confuses
me. Let's remove the test for now and someone who understands what's going on
(which could be future me!) will re-add it.
Regressions are:
* Incremental layout is broken
* `:link` is broken
* Source URL is not passed to CSS parser
* `text-decoration` propagation for block containers establishing an inline formatting context is not handled
This also does not remove NetSurf libcss from the build. That can be done in a followup.
This was a team effort. Credits to Deokjin Kim, Ilyong Cho, Jaeman Park, Junyoung Cho, Ryan Choi, Sangeun Kim, Yongjin Kim, Youngmin Yoo, Youngsoo Son.
In this implemantation `GetParentNode()` just returns `self.parent_node`.
But according to MDN(https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode), it says.
"parentNode returns null for the following node types: Attr, Document, DocumentFragment, Entity, and Notation."
should this be checked?
r? @jdm