This changeset gets rid of the `FooView` phantom type in favor of a more brute force approach that just whitelists methods that layout is allowed to call. The set is surprisingly small now that layout isn't going to the DOM for much.
If this approach turns out not to scale, we can do something fancier, but I'd rather just have it be safe and secure first and then refactor later for programmer happiness.
r? @kmcallister
Source-Repo: https://github.com/servo/servo
Source-Revision: 824c7ac613ebb80bb432ff6425c5e25c642b6afb
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.
Source-Repo: https://github.com/servo/servo
Source-Revision: 13644ccab1942c053c3fd5e4a19bb75d9ebe8739
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`, …)
Source-Repo: https://github.com/servo/servo
Source-Revision: 21270738ae0b49097472aa6f861fac7cf465038e
I believe this is all the preparatory work discussed in #1006 and #1057: The new 'style' crate implements the whole style system (including parsing, matching and cascading) and only depends on cssparser and util, so that gfx, script and main can all depend on it.
Next: porting the layout code to this. (Really, this time! I think.)
Source-Repo: https://github.com/servo/servo
Source-Revision: 6db57e6f72c85cd5233f431817f9344aed8eab87
--HG--
rename : servo/src/components/gfx/geometry.rs => servo/src/components/util/geometry.rs
Turns out that documents without a window `fail!` a lot, because we need the `cx` all over.
Source-Repo: https://github.com/servo/servo
Source-Revision: 509934cf65acb1061cf4b012556ff6782e3203c9
In preparation for removing it as part of making Document a Node.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8d3c7a2ded69f035f8fc98a38dd337237cb7db2a
This should fix#652 and #775. I'm not sure if that's all that is needed to properly implement NodeList? Should we add tests somewhere? Sorry for any stupid stuff I might have done :)
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fc9fdf30a6b4b4437cfe7a624c52c9a8b5e5a645
--HG--
rename : servo/src/components/script/dom/bindings/codegen/EventTarget.webidl => servo/src/components/script/dom/bindings/codegen/NodeList.webidl
There are still a few instances of "wrapper"-ish names scattered throughout the code, but this is a good start.
Source-Repo: https://github.com/servo/servo
Source-Revision: 89dd9dd8eb2e473dffd5ad2d5d75012b15f75570
Haven't figured out what to do about page_from_context yet, but this is a big improvement.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8994dc3a1e2b62fe0fee65f84f46ac3fe17dbb9c
Simplify some APIs that returns HTMLCollection in `dom::Document`.
In order to do this, `dom::htmldocument::createHTMLCollection` is moved to `dom::document::createHTMLCollection`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 73e7b6519b64160c802acd5175c01aacfd0daba6
Add a getter for document.head and document.title.
Like in the modified test (document.title="changed title"), setters for elements doesn't seem to be called.
Source-Repo: https://github.com/servo/servo
Source-Revision: ad41c3acfb235a40d0230b33a3b6a8e7c44c7dd4
... named getter and setter and indexed getter support, as well as proxy object expandos. Fixes#660.
Source-Repo: https://github.com/servo/servo
Source-Revision: e41fdc43f4d173e5ec959283105e1f4ae14a8549
Basic implementation about DOM tree accessors in HTMLDocument.
(image, embeds, plugins, links, forms, scripts, anchors, applets)
Source-Repo: https://github.com/servo/servo
Source-Revision: 5f62c95437ff544bb51dbc98fae12fd0d8d24285
This one also looks larger than necessary because GetParentObject needed to be changed to return an Option.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7911ae56954cc0ff03f77ff901233a411a30f1e7
There are several mechanical changes here that make this look more intimidating than it is. DOMStrings are now passed by reference, and Event and Event_ have swapped names. Finally, there are the various places that need to use `document.with_base |doc| { document.foo }` instead of `document.foo`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0c105b5307bb69e8d43a1c6263b09c1b8e52c355