servo/components/script/dom
bors-servo 1e0321f7dd Auto merge of #12469 - emilio:stylo, r=bholley
style: Rewrite the restyle hints code to allow different kinds of element snapshots.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because refactoring.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This is a rewrite for how style interfaces with its consumers in order to allow
different representations for an element snapshot.

This also changes the requirements of an element snapshot, requiring them to
only implement MatchAttr, instead of MatchAttrGeneric. This is important for
stylo since implementing MatchAttrGeneric is way more difficult for us given the
atom limitations. This also allows for more performant implementations in the
Gecko side of things.

I don't want to get this merged just yet, mainly because the stylo part is not
implemented, but I'd like early feedback from @bholley and/or @heycam: How do
you see this approach? I don't think we'll have much problem to implement
MatchAttr for our element snapshots, but... worth checking.

r? @heycam

<!-- 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/12469)
<!-- Reviewable:end -->
2016-07-21 16:54:34 -05:00
..
bindings Auto merge of #12469 - emilio:stylo, r=bholley 2016-07-21 16:54:34 -05:00
webgl_validations webgl: Refactor texture validations to take advantage of rust type system 2016-06-25 00:03:15 +02:00
webidls Auto merge of #12541 - jdm:seqseq, r=nox 2016-07-21 14:24:52 -05:00
abstractworker.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
abstractworkerglobalscope.rs implement related sw interface and register method 2016-06-02 04:09:39 +05:30
activation.rs Issue 8719: Add basic support for :active selector 2016-07-04 22:24:13 +01:00
attr.rs Stop re-exporting AttrValue. 2016-06-07 13:15:23 +02:00
beforeunloadevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
blob.rs Auto merge of #12400 - izgzhen:fix-type-string, r=Manishearth 2016-07-18 07:19:49 -07:00
bluetooth.rs Fix an incorect behavior, when converting optional services. 2016-06-06 10:12:31 +02:00
bluetoothadvertisingdata.rs Fix value types 2016-05-03 10:17:38 +02:00
bluetoothcharacteristicproperties.rs
bluetoothdevice.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
bluetoothremotegattcharacteristic.rs Remove some unnecessary pub modifiers (#50) 2016-07-14 10:35:06 +02:00
bluetoothremotegattdescriptor.rs Remove some unnecessary pub modifiers (#50) 2016-07-14 10:35:06 +02:00
bluetoothremotegattserver.rs Add WebBluetooth Blacklist support 2016-05-31 17:05:45 +02:00
bluetoothremotegattservice.rs Remove some unnecessary pub modifiers (#50) 2016-07-14 10:35:06 +02:00
bluetoothuuid.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
browsingcontext.rs Switch to using the new rooted!/RootedGuard API for rooting. 2016-07-04 20:59:01 +03:00
canvasgradient.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
canvaspattern.rs
canvasrenderingcontext2d.rs Move util::vec::byte_swap to canvas_traits 2016-07-04 16:48:15 +02:00
characterdata.rs Make /dom/nodes/CharacterData-surrogates.html not panic. 2016-05-24 16:08:01 +02:00
client.rs implement related sw interface and register method 2016-06-02 04:09:39 +05:30
closeevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
comment.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
console.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
create.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
crypto.rs
css.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
cssstyledeclaration.rs Auto merge of #11428 - g-k:csstext, r=SimonSapin 2016-06-01 01:59:12 -05:00
customevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
dedicatedworkerglobalscope.rs Removed panic channel, replaced by integrated logging and issue reporting. 2016-07-20 21:56:43 -05:00
document.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
documentfragment.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
documenttype.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
domexception.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
domimplementation.rs script: Obtain referrer policy from header 2016-07-15 08:12:24 -07:00
domparser.rs script: Obtain referrer policy from header 2016-07-15 08:12:24 -07:00
dompoint.rs
dompointreadonly.rs
domquad.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
domrect.rs
domrectlist.rs Remove JS::from_rooted 2016-05-31 14:43:58 +02:00
domrectreadonly.rs
domstringmap.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
domtokenlist.rs Move util::str to style 2016-07-05 10:43:54 +02:00
element.rs Replace AdjacentPosition::parse by TryFrom 2016-07-12 23:33:49 +02:00
errorevent.rs Switch to using the new rooted!/RootedGuard API for rooting. 2016-07-04 20:59:01 +03:00
event.rs Add event runnables 2016-07-11 22:21:45 -06:00
eventdispatcher.rs Use a stack guard and a macro for RootedVec instead of return_address. 2016-07-04 20:59:06 +03:00
eventsource.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
eventtarget.rs Switch to using the new rooted!/RootedGuard API for rooting. 2016-07-04 20:59:01 +03:00
file.rs Fix Blob type-string 2016-07-13 22:21:21 +08:00
filelist.rs Remove JS::from_rooted 2016-05-31 14:43:58 +02:00
filereader.rs Implement file reading task source 2016-07-14 13:27:42 -04:00
focusevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
forcetouchevent.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
formdata.rs Remove DataSlice, fix #12249 2016-07-05 17:51:53 +08:00
hashchangeevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
headers.rs Small changes to Headers.webidl and headers.rs 2016-07-20 11:41:35 -07:00
htmlanchorelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlappletelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlareaelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlaudioelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlbaseelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlbodyelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlbrelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlbuttonelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlcanvaselement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlcollection.rs Move util::str to style 2016-07-05 10:43:54 +02:00
htmldataelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmldatalistelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmldetailselement.rs Make task queue API usable from non-main threads. 2016-07-14 13:27:41 -04:00
htmldialogelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmldirectoryelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmldivelement.rs Avoid memmove in HTMLDivElement constructor. 2016-07-10 10:24:16 -04:00
htmldlistelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlembedelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlfieldsetelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlfontelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlformcontrolscollection.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
htmlformelement.rs Make task queue API usable from non-main threads. 2016-07-14 13:27:41 -04:00
htmlframeelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlframesetelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlheadelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlheadingelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlhrelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlhtmlelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmliframeelement.rs Removed panic channel, replaced by integrated logging and issue reporting. 2016-07-20 21:56:43 -05:00
htmlimageelement.rs Make task queue API usable from non-main threads. 2016-07-14 13:27:41 -04:00
htmlinputelement.rs Put Blob URL online 2016-07-15 20:33:51 +08:00
htmllabelelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmllegendelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmllielement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmllinkelement.rs Remove some type aliases that are now just re-exports. 2016-07-20 08:42:47 +02:00
htmlmapelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlmediaelement.rs Implement Runnable trait name method for PauseIfNotInDocumentTask 2016-07-18 21:13:59 +02:00
htmlmetaelement.rs Remove some type aliases that are now just re-exports. 2016-07-20 08:42:47 +02:00
htmlmeterelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlmodelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlobjectelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlolistelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmloptgroupelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmloptionelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmloutputelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlparagraphelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlparamelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlpreelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlprogresselement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlquoteelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlscriptelement.rs Stop destructuring load in HTMLScriptElement::execute(). 2016-07-16 12:33:52 +02:00
htmlselectelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlsourceelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlspanelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlstyleelement.rs Remove some type aliases that are now just re-exports. 2016-07-20 08:42:47 +02:00
htmltablecaptionelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltablecellelement.rs Stop re-exporting AttrValue. 2016-06-07 13:15:23 +02:00
htmltablecolelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltabledatacellelement.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
htmltableelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltableheadercellelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltablerowelement.rs Stop re-exporting AttrValue. 2016-06-07 13:15:23 +02:00
htmltablesectionelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltemplateelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltextareaelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltimeelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltitleelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmltrackelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlulistelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlunknownelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
htmlvideoelement.rs Inline DOM element creation into box expressions in components/script/dom/ 2016-07-14 08:44:22 +02:00
imagedata.rs Update SpiderMonkey 2016-05-03 18:36:11 +02:00
keyboardevent.rs Make textinput handle actual key values. Don't restrict character values to a single byte. 2016-07-06 00:10:24 -04:00
location.rs Ensure that a navigation to the same URL is aborted. Fixes #10952. 2016-06-29 13:40:16 -04:00
macros.rs Use a stack guard and a macro for RootedVec instead of return_address. 2016-07-04 20:59:06 +03:00
mediaerror.rs Tidy fixes. 2016-05-03 18:05:27 -04:00
messageevent.rs Switch to using the new rooted!/RootedGuard API for rooting. 2016-07-04 20:59:01 +03:00
mimetype.rs Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
mimetypearray.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
mod.rs Add the append method for the Headers API for the Fetch API 2016-07-19 13:40:31 -07:00
mouseevent.rs Refactor util::prefs operations to be methods on static struct. 2016-07-02 16:43:39 -04:00
namednodemap.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
navigator.rs implement related sw interface and register method 2016-06-02 04:09:39 +05:30
navigatorinfo.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
node.rs Only restyle viewport-relative nodes on viewport size change 2016-07-18 11:01:42 +08:00
nodeiterator.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
nodelist.rs Update to rustc 2016-06-14. 2016-06-15 00:27:36 +01:00
pagetransitionevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
performance.rs Remove JS::from_rooted 2016-05-31 14:43:58 +02:00
performancetiming.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
plugin.rs Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
pluginarray.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
popstateevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
processinginstruction.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
progressevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
radionodelist.rs Remove JS::from_rooted 2016-05-31 14:43:58 +02:00
range.rs Use a stack guard and a macro for RootedVec instead of return_address. 2016-07-04 20:59:06 +03:00
screen.rs
serviceworker.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
serviceworkercontainer.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
serviceworkerglobalscope.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
serviceworkerregistration.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
servohtmlparser.rs Improve page load error information 2016-07-21 16:06:13 +02:00
servoxmlparser.rs Auto merge of #10647 - ConnorGBrewster:parse_xml, r=jdm 2016-04-27 07:50:54 -07:00
storage.rs Make task queue API usable from non-main threads. 2016-07-14 13:27:41 -04:00
storageevent.rs Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
stylesheet.rs Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
stylesheetlist.rs servo: Clean up unused variables and imports 2016-04-02 16:30:18 +02:00
testbinding.rs Auto merge of #12541 - jdm:seqseq, r=nox 2016-07-21 14:24:52 -05:00
testbindingproxy.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
text.rs Report use statements that use {} with only one entry 2016-05-27 10:18:44 +01:00
textdecoder.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
textencoder.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
touch.rs
touchevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
touchlist.rs
treewalker.rs
uievent.rs Fix all the links to the UI Events spec 2016-06-04 16:04:35 +02:00
url.rs Put Blob URL online 2016-07-15 20:33:51 +08:00
urlhelper.rs Upgrade to rust-url 1.0 and hyper 0.9 2016-04-23 20:27:58 +02:00
urlsearchparams.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
userscripts.rs Use Result instead of panicking when the resource dir can't be found 2016-07-21 12:07:25 +05:30
validation.rs
validitystate.rs Remove empty lines following braces. 2016-05-27 13:32:05 -04:00
values.rs
virtualmethods.rs Stop re-exporting AttrValue. 2016-06-07 13:15:23 +02:00
webglactiveinfo.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
webglbuffer.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webglcontextevent.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
webglframebuffer.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webglobject.rs
webglprogram.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webglrenderbuffer.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webglrenderingcontext.rs Auto merge of #12224 - nox:die-util-die, r=Ms2ger 2016-07-04 12:57:00 -07:00
webglshader.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webglshaderprecisionformat.rs
webgltexture.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
webgluniformlocation.rs Use wrappers for GL IDs 2016-06-28 20:11:55 +02:00
websocket.rs Remove DataSlice, fix #12249 2016-07-05 17:51:53 +08:00
window.rs Removed panic channel, replaced by integrated logging and issue reporting. 2016-07-20 21:56:43 -05:00
worker.rs Integrate service worker manager thread 2016-07-16 23:29:44 +05:30
workerglobalscope.rs Removed panic channel, replaced by integrated logging and issue reporting. 2016-07-20 21:56:43 -05:00
workerlocation.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
workernavigator.rs Move DOMString back to script 2016-05-24 10:54:57 +02:00
xmldocument.rs script: Obtain referrer policy from header 2016-07-15 08:12:24 -07:00
xmlhttprequest.rs Auto merge of #12467 - jeenalee:jeena-headersAPI, r=jdm 2016-07-20 16:24:48 -05:00
xmlhttprequesteventtarget.rs
xmlhttprequestupload.rs