{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/14190","repository_url":"https://api.github.com/repos/servo/servo","labels_url":"https://api.github.com/repos/servo/servo/issues/14190/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/14190/comments","events_url":"https://api.github.com/repos/servo/servo/issues/14190/events","html_url":"https://github.com/servo/servo/pull/14190","id":188941828,"number":14190,"title":"Immutable CSSOM","user":{"login":"Manishearth","id":1617736,"avatar_url":"https://avatars.githubusercontent.com/u/1617736?v=3","gravatar_id":"","url":"https://api.github.com/users/Manishearth","html_url":"https://github.com/Manishearth","followers_url":"https://api.github.com/users/Manishearth/followers","following_url":"https://api.github.com/users/Manishearth/following{/other_user}","gists_url":"https://api.github.com/users/Manishearth/gists{/gist_id}","starred_url":"https://api.github.com/users/Manishearth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Manishearth/subscriptions","organizations_url":"https://api.github.com/users/Manishearth/orgs","repos_url":"https://api.github.com/users/Manishearth/repos","events_url":"https://api.github.com/users/Manishearth/events{/privacy}","received_events_url":"https://api.github.com/users/Manishearth/received_events","type":"User","site_admin":false},"labels":[{"id":152310100,"url":"https://api.github.com/repos/servo/servo/labels/S-tests-failed","name":"S-tests-failed","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":{"login":"SimonSapin","id":291359,"avatar_url":"https://avatars.githubusercontent.com/u/291359?v=3","gravatar_id":"","url":"https://api.github.com/users/SimonSapin","html_url":"https://github.com/SimonSapin","followers_url":"https://api.github.com/users/SimonSapin/followers","following_url":"https://api.github.com/users/SimonSapin/following{/other_user}","gists_url":"https://api.github.com/users/SimonSapin/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonSapin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonSapin/subscriptions","organizations_url":"https://api.github.com/users/SimonSapin/orgs","repos_url":"https://api.github.com/users/SimonSapin/repos","events_url":"https://api.github.com/users/SimonSapin/events{/privacy}","received_events_url":"https://api.github.com/users/SimonSapin/received_events","type":"User","site_admin":false},"assignees":[{"login":"SimonSapin","id":291359,"avatar_url":"https://avatars.githubusercontent.com/u/291359?v=3","gravatar_id":"","url":"https://api.github.com/users/SimonSapin","html_url":"https://github.com/SimonSapin","followers_url":"https://api.github.com/users/SimonSapin/followers","following_url":"https://api.github.com/users/SimonSapin/following{/other_user}","gists_url":"https://api.github.com/users/SimonSapin/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonSapin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonSapin/subscriptions","organizations_url":"https://api.github.com/users/SimonSapin/orgs","repos_url":"https://api.github.com/users/SimonSapin/repos","events_url":"https://api.github.com/users/SimonSapin/events{/privacy}","received_events_url":"https://api.github.com/users/SimonSapin/received_events","type":"User","site_admin":false}],"milestone":null,"comments":37,"created_at":"2016-11-12T23:45:27Z","updated_at":"2016-11-15T06:35:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/servo/servo/pulls/14190","html_url":"https://github.com/servo/servo/pull/14190","diff_url":"https://github.com/servo/servo/pull/14190.diff","patch_url":"https://github.com/servo/servo/pull/14190.patch"},"body":"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.\r\n\r\nMutation 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)\r\n\r\nThis 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.\r\n\r\nf? @SimonSapin @emilio\r\n\r\ncc @upsuper\r\n\r\nTodo:\r\n\r\n - [x] Stubs for rest of the CSSRule subclasses\r\n - [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\r\n - [x] Cache CSSStyleSheet on the relevant node\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/servo/14190)\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/260559638","html_url":"https://github.com/servo/servo/pull/14190#issuecomment-260559638","issue_url":"https://api.github.com/repos/servo/servo/issues/14190","id":260559638,"user":{"login":"bors-servo","id":4368172,"avatar_url":"https://avatars.githubusercontent.com/u/4368172?v=3","gravatar_id":"","url":"https://api.github.com/users/bors-servo","html_url":"https://github.com/bors-servo","followers_url":"https://api.github.com/users/bors-servo/followers","following_url":"https://api.github.com/users/bors-servo/following{/other_user}","gists_url":"https://api.github.com/users/bors-servo/gists{/gist_id}","starred_url":"https://api.github.com/users/bors-servo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bors-servo/subscriptions","organizations_url":"https://api.github.com/users/bors-servo/orgs","repos_url":"https://api.github.com/users/bors-servo/repos","events_url":"https://api.github.com/users/bors-servo/events{/privacy}","received_events_url":"https://api.github.com/users/bors-servo/received_events","type":"User","site_admin":false},"created_at":"2016-11-15T06:35:21Z","updated_at":"2016-11-15T06:35:21Z","body":":zap: Previous build results for [arm32](http://build.servo.org/builders/arm32/builds/4089), [arm64](http://build.servo.org/builders/arm64/builds/4096), [linux-dev](http://build.servo.org/builders/linux-dev/builds/4190), [linux-rel-css](http://build.servo.org/builders/linux-rel-css/builds/839), [mac-dev-unit](http://build.servo.org/builders/mac-dev-unit/builds/4173), [mac-rel-css](http://build.servo.org/builders/mac-rel-css/builds/4170), [mac-rel-wpt2](http://build.servo.org/builders/mac-rel-wpt2/builds/868), [windows-dev](http://build.servo.org/builders/windows-dev/builds/2106) are reusable. Rebuilding only [linux-rel-wpt](http://build.servo.org/builders/linux-rel-wpt/builds/833), [mac-rel-wpt1](http://build.servo.org/builders/mac-rel-wpt1/builds/857)..."}}
{"actor":{"display_login":"bors-servo"}}