servo/components/script/dom
Clark Gaebel d12c6e7383 Incremental Style Recalc
This patch puts in the initial framework for incremental reflow. Nodes' styles
are no longer recalculated unless the node has changed.

I've been hacking on the general problem of incremental reflow for the past
couple weeks, and I've yet to get a full implementation that actually passes all
the reftests + wikipedia + cnn. Therefore, I'm going to try to land the different
parts of it one by one.

This patch only does incremental style recalc, without incremental flow
construction, inline-size bubbling, reflow, or display lists. Those will be coming
in that order as I finish them.

At least with this strategy, I can land a working version of incremental reflow,
even if not yet complete.

r? @pcwalton
2014-10-09 12:55:21 -04:00
..
bindings Incremental Style Recalc 2014-10-09 12:55:21 -04:00
webidls Implement most of HTMLFormElement's webidl 2014-10-07 21:12:55 +05:30
attr.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
blob.rs Use JSTraceable everywhere 2014-09-24 05:44:49 +05:30
browsercontext.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
canvasrenderingcontext2d.rs Remove Untraceable from canvasrenderingcontext2d.rs 2014-10-05 21:36:19 +05:30
characterdata.rs Remove Traceable from characterdata.rs 2014-10-05 21:33:43 +05:30
comment.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
console.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
customevent.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
dedicatedworkerglobalscope.rs Remove Untraceable from dedicatedglobalworkerscope.rs 2014-10-05 21:36:17 +05:30
document.rs Incremental Style Recalc 2014-10-09 12:55:21 -04:00
documentfragment.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
documenttype.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
domexception.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
domimplementation.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
domparser.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
domrect.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
domrectlist.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
domtokenlist.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
element.rs Incremental Style Recalc 2014-10-09 12:55:21 -04:00
event.rs Remove Traceable from event.rs 2014-10-05 22:13:14 +05:30
eventdispatcher.rs Remove Traceable from event.rs 2014-10-05 22:13:14 +05:30
eventtarget.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
file.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
formdata.rs Remove Traceable from formdata.rs 2014-10-05 22:13:16 +05:30
htmlanchorelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlappletelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlareaelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlaudioelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlbaseelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlbodyelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlbrelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlbuttonelement.rs Address review comments 2014-10-08 14:37:22 +05:30
htmlcanvaselement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlcollection.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmldataelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmldatalistelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmldirectoryelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmldivelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmldlistelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlembedelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlfieldsetelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlfontelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlformelement.rs Address review comments 2014-10-08 14:37:22 +05:30
htmlframeelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlframesetelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlheadelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlheadingelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlhrelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlhtmlelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmliframeelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlimageelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlinputelement.rs Incremental Style Recalc 2014-10-09 12:55:21 -04:00
htmllabelelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmllegendelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmllielement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmllinkelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlmapelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlmediaelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlmetaelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlmeterelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlmodelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlobjectelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlolistelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmloptgroupelement.rs Address review comments 2014-10-08 14:37:22 +05:30
htmloptionelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmloutputelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlparagraphelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlparamelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlpreelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlprogresselement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlquoteelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlscriptelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlselectelement.rs Address review comments 2014-10-08 14:37:22 +05:30
htmlserializer.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmlsourceelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlspanelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlstyleelement.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
htmltablecaptionelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltablecellelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltablecolelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltabledatacellelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltableelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltableheadercellelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltablerowelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltablesectionelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltemplateelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltextareaelement.rs Address review comments 2014-10-08 14:37:22 +05:30
htmltimeelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltitleelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmltrackelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlulistelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlunknownelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
htmlvideoelement.rs Take the prefix from createElementNS into account for HTML elements 2014-10-06 22:49:49 -04:00
location.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
macros.rs Address review comments 2014-10-08 14:37:22 +05:30
messageevent.rs Remove Traceable from messageevent.rs 2014-10-05 22:16:41 +05:30
mouseevent.rs Remove Traceable from mouseevent.rs 2014-10-05 22:22:59 +05:30
namednodemap.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
navigator.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
navigatorinfo.rs Share code between Navigator and WorkerNavigator 2014-09-20 08:51:35 -04:00
node.rs Incremental Style Recalc 2014-10-09 12:55:21 -04:00
nodeiterator.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
nodelist.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
performance.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
performancetiming.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
processinginstruction.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
progressevent.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
range.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
screen.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
testbinding.rs Use JSTraceable everywhere 2014-09-24 05:44:49 +05:30
text.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
treewalker.rs Remove Untraceable from treewalker.rs 2014-10-05 22:23:02 +05:30
uievent.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
urlhelper.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
urlsearchparams.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
validitystate.rs Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
virtualmethods.rs Eliminate servo_util::atom 2014-09-29 18:39:36 -07:00
window.rs Incremental Style Recalc 2014-10-09 12:55:21 -04:00
worker.rs Remove Untraceable from dedicatedglobalworkerscope.rs 2014-10-05 21:36:17 +05:30
workerglobalscope.rs Remove Untraceable from workerglobalscope.rs 2014-10-05 22:27:52 +05:30
workerlocation.rs Remove Untraceable from workerlocation.rs 2014-10-05 22:27:54 +05:30
workernavigator.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00
xmlhttprequest.rs Remove unnecessary deref()s (fixes #3586) 2014-10-09 15:01:54 +02:00
xmlhttprequesteventtarget.rs Use JSTraceable everywhere 2014-09-24 05:44:49 +05:30
xmlhttprequestupload.rs Made some DOM fields private. 2014-09-26 20:35:01 +02:00