aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom
diff options
context:
space:
mode:
authorTim Kuehn <tkuehn@cmu.edu>2013-06-26 22:42:01 -0700
committerTim Kuehn <tkuehn@cmu.edu>2013-07-01 11:03:31 -0700
commitfba7ec423c99a63bdcbe16029740e7ab4e38c088 (patch)
tree0e8a15014ee5bbf912153e8072c0a5505d3b4ecc /src/components/script/dom
parentfdb0d820a49fac9ae2df623751912adcbe7a119d (diff)
downloadservo-fba7ec423c99a63bdcbe16029740e7ab4e38c088.tar.gz
servo-fba7ec423c99a63bdcbe16029740e7ab4e38c088.zip
add pipeline.rs, modularized pipelines communicating with constellation
Diffstat (limited to 'src/components/script/dom')
-rw-r--r--src/components/script/dom/bindings/element.rs11
-rw-r--r--src/components/script/dom/bindings/proxyhandler.rs4
-rw-r--r--src/components/script/dom/bindings/utils.rs6
-rw-r--r--src/components/script/dom/element.rs45
-rw-r--r--src/components/script/dom/event.rs2
-rw-r--r--src/components/script/dom/window.rs12
6 files changed, 37 insertions, 43 deletions
diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs
index 9a34f7c5dc6..b79daf75db7 100644
--- a/src/components/script/dom/bindings/element.rs
+++ b/src/components/script/dom/bindings/element.rs
@@ -16,6 +16,7 @@ use std::cast;
use std::i32;
use std::libc;
use std::libc::c_uint;
+use std::comm;
use std::ptr;
use std::ptr::null;
use std::result;
@@ -229,13 +230,9 @@ extern fn HTMLImageElement_getWidth(cx: *JSContext, _argc: c_uint, vp: *mut JSVa
let width = match node.type_id() {
ElementNodeTypeId(HTMLImageElementTypeId) => {
let script_context = task_from_context(cx);
- match (*script_context).query_layout(ContentBoxQuery(node)) {
- Ok(rect) => {
- match rect {
- ContentBoxResponse(rect) => rect.size.width.to_px(),
- _ => fail!(~"unexpected layout reply")
- }
- }
+ let (port, chan) = comm::stream();
+ match (*script_context).query_layout(ContentBoxQuery(node, chan), port) {
+ Ok(ContentBoxResponse(rect)) => rect.size.width.to_px(),
Err(()) => 0
}
// TODO: if nothing is being rendered(?), return zero dimensions
diff --git a/src/components/script/dom/bindings/proxyhandler.rs b/src/components/script/dom/bindings/proxyhandler.rs
index 2780a969eb2..cbbc4f1525d 100644
--- a/src/components/script/dom/bindings/proxyhandler.rs
+++ b/src/components/script/dom/bindings/proxyhandler.rs
@@ -71,7 +71,7 @@ pub fn _obj_toString(cx: *JSContext, className: *libc::c_char) -> *JSString {
return ptr::null();
}
- let result = ~"[object " + name + ~"]";
+ let result = ~"[object " + name + "]";
for result.iter().enumerate().advance |(i, c)| {
*chars.offset(i) = c as jschar;
}
@@ -86,4 +86,4 @@ pub fn _obj_toString(cx: *JSContext, className: *libc::c_char) -> *JSString {
pub fn GetExpandoObject(_proxy: *JSObject) -> *JSObject {
ptr::null()
-} \ No newline at end of file
+}
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index 9d3105fefca..5a42e109268 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -21,12 +21,12 @@ use js::glue::{PROPERTY_STUB, STRICT_PROPERTY_STUB, ENUMERATE_STUB, CONVERT_STUB
use js::jsapi::{JS_AlreadyHasOwnProperty, JS_NewObject, JS_NewFunction};
use js::jsapi::{JS_DefineProperties, JS_WrapValue, JS_ForwardGetPropertyTo};
use js::jsapi::{JS_EncodeString, JS_free, JS_GetStringCharsAndLength};
-use js::jsapi::{JS_GetClass, JS_GetPrototype, JS_LinkConstructorAndPrototype};
+use js::jsapi::{JS_GetClass, JS_LinkConstructorAndPrototype};
use js::jsapi::{JS_GetFunctionPrototype, JS_InternString, JS_GetFunctionObject};
use js::jsapi::{JS_HasPropertyById, JS_GetPrototype, JS_GetGlobalForObject};
use js::jsapi::{JS_NewStringCopyN, JS_DefineFunctions, JS_DefineProperty};
use js::jsapi::{JS_ValueToString, JS_GetReservedSlot, JS_SetReservedSlot};
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSNative};
+use js::jsapi::{JSContext, JSObject, JSBool, jsid, JSClass, JSNative};
use js::jsapi::{JSFunctionSpec, JSPropertySpec, JSVal, JSPropertyDescriptor};
use js::jsfriendapi::bindgen::JS_NewObjectWithUniqueType;
use js::rust::Compartment;
@@ -83,7 +83,7 @@ extern fn InterfaceObjectToString(cx: *JSContext, _argc: uint, vp: *mut JSVal) -
}
let name = jsval_to_str(cx, *v).get();
- let retval = str(~"function " + name + ~"() {\n [native code]\n}");
+ let retval = str(~"function " + name + "() {\n [native code]\n}");
*vp = domstring_to_jsval(cx, &retval);
return 1;
}
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index e707a95ebb9..2595a68657d 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -12,6 +12,7 @@ use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
use layout_interface::{ContentBoxesResponse};
use std::cell::Cell;
+use std::comm;
use std::uint;
use std::str::eq_slice;
use extra::net::url::Url;
@@ -165,20 +166,19 @@ impl<'self> Element {
Some(win) => {
let node = self.parent.abstract.get();
assert!(node.is_element());
- let script_context = unsafe {
- &mut *win.script_context
+ let script_task = unsafe {
+ &mut *win.script_task
};
- match script_context.query_layout(ContentBoxesQuery(node)) {
- Ok(rects) => match rects {
- ContentBoxesResponse(rects) =>
- do rects.map |r| {
- ClientRect::new(
- r.origin.y.to_f32(),
- (r.origin.y + r.size.height).to_f32(),
- r.origin.x.to_f32(),
- (r.origin.x + r.size.width).to_f32())
- },
- _ => fail!(~"unexpected layout reply")
+ let (port, chan) = comm::stream();
+ match script_task.query_layout(ContentBoxesQuery(node, chan), port) {
+ Ok(ContentBoxesResponse(rects)) => {
+ do rects.map |r| {
+ ClientRect::new(
+ r.origin.y.to_f32(),
+ (r.origin.y + r.size.height).to_f32(),
+ r.origin.x.to_f32(),
+ (r.origin.x + r.size.width).to_f32())
+ }
},
Err(()) => {
debug!("layout query error");
@@ -207,16 +207,15 @@ impl<'self> Element {
Some(win) => {
let node = self.parent.abstract.get();
assert!(node.is_element());
- let script_context = unsafe { &mut *win.script_context };
- match script_context.query_layout(ContentBoxQuery(node)) {
- Ok(rect) => match rect {
- ContentBoxResponse(rect) =>
- Some(ClientRect::new(
- rect.origin.y.to_f32(),
- (rect.origin.y + rect.size.height).to_f32(),
- rect.origin.x.to_f32(),
- (rect.origin.x + rect.size.width).to_f32())),
- _ => fail!(~"unexpected layout result")
+ let script_task = unsafe { &mut *win.script_task };
+ let (port, chan) = comm::stream();
+ match script_task.query_layout(ContentBoxQuery(node, chan), port) {
+ Ok(ContentBoxResponse(rect)) => {
+ Some(ClientRect::new(
+ rect.origin.y.to_f32(),
+ (rect.origin.y + rect.size.height).to_f32(),
+ rect.origin.x.to_f32(),
+ (rect.origin.x + rect.size.width).to_f32()))
},
Err(()) => {
debug!("error querying layout");
diff --git a/src/components/script/dom/event.rs b/src/components/script/dom/event.rs
index 047b734e6b4..6b4be15b701 100644
--- a/src/components/script/dom/event.rs
+++ b/src/components/script/dom/event.rs
@@ -9,8 +9,6 @@ use dom::bindings::utils::{DOMString, ErrorResult, WrapperCache};
use geom::point::Point2D;
-use std::comm;
-
pub enum Event {
ResizeEvent(uint, uint),
ReflowEvent,
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index 5fb07c66f07..41f99eaa9e9 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -6,7 +6,7 @@ use dom::bindings::utils::WrapperCache;
use dom::bindings::window;
use layout_interface::ReflowForScriptQuery;
-use script_task::{ExitMsg, FireTimerMsg, ScriptChan, ScriptContext};
+use script_task::{ExitMsg, FireTimerMsg, ScriptChan, ScriptTask};
use std::comm;
use std::comm::Chan;
@@ -29,7 +29,7 @@ pub enum TimerControlMsg {
pub struct Window {
timer_chan: Chan<TimerControlMsg>,
script_chan: ScriptChan,
- script_context: *mut ScriptContext,
+ script_task: *mut ScriptTask,
wrapper: WrapperCache
}
@@ -89,11 +89,11 @@ impl Window {
pub fn content_changed(&self) {
unsafe {
- (*self.script_context).reflow_all(ReflowForScriptQuery)
+ (*self.script_task).reflow_all(ReflowForScriptQuery)
}
}
- pub fn new(script_chan: ScriptChan, script_context: *mut ScriptContext)
+ pub fn new(script_chan: ScriptChan, script_task: *mut ScriptTask)
-> @mut Window {
let script_chan_clone = script_chan.clone();
let win = @mut Window {
@@ -112,11 +112,11 @@ impl Window {
}
timer_chan
},
- script_context: script_context,
+ script_task: script_task,
};
unsafe {
- let compartment = (*script_context).js_compartment;
+ let compartment = (*script_task).js_compartment;
window::create(compartment, win);
}
win