mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Auto merge of #8227 - asajeffrey:versioned_dom, r=eefriedman
Versioned dom This PR adds versioning to the DOM. There are now node.get_version and node.get_descendent_version methods that return a counter that is bumped when the node is dirtied. This is used to implement cache invalidation for caching HTMLCollection state. Caching HTMCollections gets a 1000x speedup in the Dromaeo DOM query tests. Addresses https://github.com/servo/servo/issues/6901, https://github.com/servo/servo/issues/3381 and https://github.com/servo/servo/issues/1916. Replaces PR https://github.com/servo/servo/pull/6927. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8227) <!-- Reviewable:end -->
This commit is contained in:
commit
f39faaf994
7 changed files with 325 additions and 89 deletions
|
@ -37,7 +37,7 @@ use std::result::Result;
|
|||
use std::sync::Arc;
|
||||
use str::{DOMString, LengthOrPercentageOrAuto};
|
||||
use string_cache::atom::Atom;
|
||||
use string_cache::namespace::Namespace;
|
||||
use string_cache::namespace::{QualName, Namespace};
|
||||
use url;
|
||||
|
||||
extern {
|
||||
|
@ -420,7 +420,7 @@ known_heap_size!(0, bool, f32, f64);
|
|||
known_heap_size!(0, Rect<T>, Point2D<T>, Size2D<T>, Matrix2D<T>, SideOffsets2D<T>, Range<T>);
|
||||
known_heap_size!(0, Length<T, U>, ScaleFactor<T, U, V>);
|
||||
|
||||
known_heap_size!(0, Au, WritingMode, CSSParserColor, Color, RGBA, Cursor, Matrix4, Atom, Namespace);
|
||||
known_heap_size!(0, Au, WritingMode, CSSParserColor, Color, RGBA, Cursor, Matrix4, QualName, Atom, Namespace);
|
||||
known_heap_size!(0, JSVal, PagePx, ViewportPx, DevicePixel, QuirksMode, OsRng, RawStatus);
|
||||
known_heap_size!(0, TokenSerializationType, LengthOrPercentageOrAuto);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue