aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2014-11-12 17:36:32 -0700
committerbors-servo <metajack+bors@gmail.com>2014-11-12 17:36:32 -0700
commit26045d7fcbab8851fbefe2851cd904203f8fd8dd (patch)
treeb2d7cf6732758f68df2355aff9ead4d924483002 /components/script/dom/bindings
parent668d9217d8b8d999547fd1e8b690da8c8d80ddda (diff)
parentc7327450ef1328a6045cfb8a47321e78976ca7a8 (diff)
downloadservo-26045d7fcbab8851fbefe2851cd904203f8fd8dd.tar.gz
servo-26045d7fcbab8851fbefe2851cd904203f8fd8dd.zip
auto merge of #3809 : mrobinson/servo/display-list-optimization, r=pcwalton
Instead of creating a display list for the entire page, only create one for an area that expands around the viewport. On my machine this makes incremental layout of http://timecube.com 50% faster.
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r--components/script/dom/bindings/trace.rs41
1 files changed, 21 insertions, 20 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index 94d05e4c477..1690cb5ddad 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -28,37 +28,37 @@
//! a datatype.
use dom::bindings::js::JS;
-use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector, WindowProxyHandler};
+use dom::node::{Node, TrustedNodeAddress};
+
+use collections::hash::{Hash, Hasher};
+use geom::rect::Rect;
+use html5ever::tree_builder::QuirksMode;
+use http::headers::request::HeaderCollection as RequestHeaderCollection;
+use http::headers::response::HeaderCollection as ResponseHeaderCollection;
+use http::method::Method;
use js::jsapi::{JSObject, JSTracer, JS_CallTracer, JSTRACE_OBJECT};
use js::jsval::JSVal;
-
+use js::rust::Cx;
+use layout_interface::{LayoutRPC, LayoutChan};
use libc;
-use std::rc::Rc;
-use std::cell::{Cell, RefCell};
-
-use url::Url;
use msg::constellation_msg::{PipelineId, SubpageId, WindowSizeData};
use net::image_cache_task::ImageCacheTask;
use script_traits::ScriptControlChan;
-use std::collections::hashmap::HashMap;
-use collections::hash::{Hash, Hasher};
-use style::PropertyDeclarationBlock;
-use std::comm::{Receiver, Sender};
-use string_cache::{Atom, Namespace};
-use js::rust::Cx;
-use http::headers::response::HeaderCollection as ResponseHeaderCollection;
-use http::headers::request::HeaderCollection as RequestHeaderCollection;
-use http::method::Method;
-use std::io::timer::Timer;
use script_traits::UntrustedNodeAddress;
use servo_msg::compositor_msg::ScriptListener;
use servo_msg::constellation_msg::ConstellationChan;
use servo_util::smallvec::{SmallVec1, SmallVec};
use servo_util::str::LengthOrPercentageOrAuto;
-use layout_interface::{LayoutRPC, LayoutChan};
-use dom::node::{Node, TrustedNodeAddress};
-use dom::bindings::utils::WindowProxyHandler;
-use html5ever::tree_builder::QuirksMode;
+use std::cell::{Cell, RefCell};
+use std::collections::hashmap::HashMap;
+use std::comm::{Receiver, Sender};
+use std::io::timer::Timer;
+use std::rc::Rc;
+use string_cache::{Atom, Namespace};
+use style::PropertyDeclarationBlock;
+use url::Url;
+
/// A trait to allow tracing (only) DOM objects.
pub trait JSTraceable {
@@ -200,6 +200,7 @@ no_jsmanaged_fields!(uint, u8, u16, u32, u64)
no_jsmanaged_fields!(int, i8, i16, i32, i64)
no_jsmanaged_fields!(Sender<T>)
no_jsmanaged_fields!(Receiver<T>)
+no_jsmanaged_fields!(Rect<T>)
no_jsmanaged_fields!(ImageCacheTask, ScriptControlChan)
no_jsmanaged_fields!(Atom, Namespace, Timer)
no_jsmanaged_fields!(PropertyDeclarationBlock)