auto merge of #5400 : pcwalton/servo/transitions-redux, r=glennw

Transition events are not yet supported, and the only animatable
properties are `top`, `right`, `bottom`, and `left`. However, all other
features of transitions are supported. There are no automated tests at
present because I'm not sure how best to test it, but three manual tests
are included.

r? @glennw
This commit is contained in:
bors-servo 2015-03-31 10:39:56 -06:00
commit ebdf1d494b
31 changed files with 1603 additions and 224 deletions

View file

@ -186,4 +186,10 @@ partial interface CSSStyleDeclaration {
[TreatNullAs=EmptyString] attribute DOMString zIndex;
[TreatNullAs=EmptyString] attribute DOMString imageRendering;
[TreatNullAs=EmptyString] attribute DOMString transition;
[TreatNullAs=EmptyString] attribute DOMString transitionDuration;
[TreatNullAs=EmptyString] attribute DOMString transitionTimingFunction;
[TreatNullAs=EmptyString] attribute DOMString transitionProperty;
[TreatNullAs=EmptyString] attribute DOMString transitionDelay;
};

View file

@ -27,7 +27,7 @@ use dom::performance::Performance;
use dom::screen::Screen;
use dom::storage::Storage;
use layout_interface::{ReflowGoal, ReflowQueryType, LayoutRPC, LayoutChan, Reflow, Msg};
use layout_interface::{ContentBoxResponse, ContentBoxesResponse};
use layout_interface::{ContentBoxResponse, ContentBoxesResponse, ScriptReflow};
use page::Page;
use script_task::{TimerSource, ScriptChan};
use script_task::ScriptMsg;
@ -564,17 +564,19 @@ impl<'a> WindowHelpers for JSRef<'a, Window> {
}
// Send new document and relevant styles to layout.
let reflow = box Reflow {
let reflow = box ScriptReflow {
reflow_info: Reflow {
goal: goal,
url: self.get_url(),
iframe: self.parent_info.is_some(),
page_clip_rect: self.page_clip_rect.get(),
},
document_root: root.to_trusted_node_address(),
url: self.get_url(),
iframe: self.parent_info.is_some(),
goal: goal,
window_size: window_size,
script_chan: self.control_chan.clone(),
script_join_chan: join_chan,
id: last_reflow_id.get(),
query_type: query_type,
page_clip_rect: self.page_clip_rect.get(),
};
let LayoutChan(ref chan) = self.layout_chan;