servo/components/script
bors-servo afc60bee28 Auto merge of #14190 - Manishearth:cssom, r=SimonSapin
Immutable CSSOM

This PR is intended to add basic support for all CSSOM interfaces, with the ability to index `document.styleSheets` and css rule lists, and serializing individual css rules. Handling individual interface methods for CSSRule subclasses can probably be done with easy/medium bugs.

Mutation safety isn't dealt with here; if the css rule list is mutated the CSSOM will be in an inconsistent state. I intend to deal with this via zero sized tokens, see https://groups.google.com/forum/#!topic/mozilla.dev.servo/AnxJoVmtMXQ .  I'll handle that when I start making the CSSOM mutable. (Getting the immutable bit landed first opens this up for easy bugs)

This doesn't really change style aside from adding an extra arc in the CSS rule list as discussed in the linked thread. So far this same design can be used by stylo as well when the time comes.

f? @SimonSapin @emilio

cc @upsuper

part of #11420
Todo:

 - [x] Stubs for rest of the CSSRule subclasses
 - [x] <s>ToCSS impls for CSSRules.</s> May make into easy bugs and stub out in this PR https://github.com/servo/servo/issues/14195
 - [x] Cache CSSStyleSheet on the relevant node

<!-- 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/14190)
<!-- Reviewable:end -->
2016-11-16 15:05:59 -06:00
..
docs
dom Auto merge of #14190 - Manishearth:cssom, r=SimonSapin 2016-11-16 15:05:59 -06:00
task_source Properly implement TaskSource for NetworkingTaskSource 2016-11-11 14:50:42 -08:00
body.rs Rename Reflectable::global_scope to global 2016-10-06 21:36:41 +02:00
build.rs Native MSVC windows build, convert to cmake 2016-08-17 09:50:51 -04:00
Cargo.toml Update html5ever to 0.10.1 2016-11-10 14:58:10 +01:00
clipboard_provider.rs Remove ConstellationChan. 2016-05-19 17:13:44 +02:00
CMakeLists.txt Fix doc build by resurrecting generation of supported DOM APIs.h 2016-09-24 15:06:06 -04:00
devtools.rs Replace script thread root browsing context by a collection of documents. 2016-11-08 10:48:58 -06:00
document_loader.rs Lookup frames by frame_id, not pipeline_id. 2016-11-03 15:39:51 -05:00
fetch.rs Properly implement TaskSource for NetworkingTaskSource 2016-11-11 14:50:42 -08:00
layout_wrapper.rs Stop using associated types for the concrete TRestyleDamage implementation. 2016-11-07 11:10:48 -08:00
lib.rs Auto merge of #13774 - KiChjang:event-source-constructor, r=jdm 2016-11-12 08:08:38 -06:00
mem.rs
network_listener.rs Properly implement TaskSource for NetworkingTaskSource 2016-11-11 14:50:42 -08:00
origin.rs Reorder use statements 2016-09-09 04:55:19 +02:00
script_runtime.rs Remove GlobalRoot and GlobalRef 2016-10-06 21:36:00 +02:00
script_thread.rs Storage notifications routed via the constellation. 2016-11-15 09:57:12 -06:00
serviceworker_manager.rs Remove ScopeThings::pipeline_id 2016-10-04 14:05:28 +02:00
textinput.rs Return KeyReaction::Nothing for a Tab event 2016-11-12 15:49:00 +01:00
timers.rs Use a timer callback when re-establishing a connection 2016-11-11 14:52:20 -08:00
unpremultiplytable.rs
webdriver_handlers.rs Replace script thread root browsing context by a collection of documents. 2016-11-08 10:48:58 -06:00