aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/global.rs2
-rw-r--r--components/script/dom/bindings/utils.rs2
-rw-r--r--components/script/dom/htmlformelement.rs4
-rw-r--r--components/script/dom/htmliframeelement.rs2
-rw-r--r--components/script/dom/htmlimageelement.rs2
-rw-r--r--components/script/dom/htmlobjectelement.rs2
-rw-r--r--components/script/dom/performancetiming.rs4
-rw-r--r--components/script/dom/window.rs62
8 files changed, 56 insertions, 24 deletions
diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs
index b4b7d85452b..a1933db4aa5 100644
--- a/components/script/dom/bindings/global.rs
+++ b/components/script/dom/bindings/global.rs
@@ -83,7 +83,7 @@ impl<'a> GlobalRef<'a> {
/// thread.
pub fn script_chan<'b>(&'b self) -> &'b ScriptChan {
match *self {
- Window(ref window) => &window.script_chan,
+ Window(ref window) => window.script_chan(),
Worker(ref worker) => worker.script_chan(),
}
}
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index 834f274096f..082172a1f60 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -660,7 +660,7 @@ pub extern fn outerize_global(_cx: *mut JSContext, obj: JSHandleObject) -> *mut
IDLInterface::get_prototype_depth(None::<window::Window>))
.unwrap()
.root();
- win.browser_context.borrow().as_ref().unwrap().window_proxy()
+ win.browser_context().as_ref().unwrap().window_proxy()
}
}
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 825805703e4..8bc0b8ede8f 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -218,8 +218,8 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
}
// This is wrong. https://html.spec.whatwg.org/multipage/forms.html#planned-navigation
- let ScriptChan(ref script_chan) = win.script_chan;
- script_chan.send(TriggerLoadMsg(win.page.id, load_data));
+ let ScriptChan(ref script_chan) = *win.script_chan();
+ script_chan.send(TriggerLoadMsg(win.page().id, load_data));
}
fn get_form_dataset(self, _submitter: Option<FormSubmitter>) -> Vec<FormDatum> {
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 90edb8201c1..77bbfcf9013 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -171,7 +171,7 @@ impl<'a> HTMLIFrameElementMethods for JSRef<'a, HTMLIFrameElement> {
fn GetContentWindow(self) -> Option<Temporary<Window>> {
self.size.get().and_then(|size| {
let window = window_from_node(self).root();
- let children = window.page.children.borrow();
+ let children = window.page().children.borrow();
let child = children.iter().find(|child| {
child.subpage_id.unwrap() == size.subpage_id
});
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 0a616d9585d..d8a4f9d67f6 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -49,7 +49,7 @@ impl<'a> PrivateHTMLImageElementHelpers for JSRef<'a, HTMLImageElement> {
let node: JSRef<Node> = NodeCast::from_ref(self);
let document = node.owner_doc().root();
let window = document.window().root();
- let image_cache = &window.image_cache_task;
+ let image_cache = window.image_cache_task();
match value {
None => {
*self.image.borrow_mut() = None;
diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs
index b059257830f..d7a073150ef 100644
--- a/components/script/dom/htmlobjectelement.rs
+++ b/components/script/dom/htmlobjectelement.rs
@@ -109,7 +109,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> {
if "data" == name.as_slice() {
let window = window_from_node(*self).root();
- self.process_data_url(window.image_cache_task.clone());
+ self.process_data_url(window.image_cache_task().clone());
}
}
}
diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs
index 30c2a57462f..0c8b6a60008 100644
--- a/components/script/dom/performancetiming.rs
+++ b/components/script/dom/performancetiming.rs
@@ -30,8 +30,8 @@ impl PerformanceTiming {
#[allow(unrooted_must_root)]
pub fn new(window: JSRef<Window>) -> Temporary<PerformanceTiming> {
- let timing = PerformanceTiming::new_inherited(window.navigationStart,
- window.navigationStartPrecise);
+ let timing = PerformanceTiming::new_inherited(window.navigation_start(),
+ window.navigation_start_precise());
reflect_dom_object(box timing, &global::Window(window),
PerformanceTimingBinding::Wrap)
}
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index f3edfc04943..9a7eeef11c0 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -40,7 +40,7 @@ use url::{Url, UrlParser};
use libc;
use serialize::base64::{FromBase64, ToBase64, STANDARD};
use std::collections::hashmap::HashMap;
-use std::cell::{Cell, RefCell};
+use std::cell::{Cell, Ref, RefCell};
use std::cmp;
use std::comm::{channel, Sender};
use std::comm::Select;
@@ -57,9 +57,10 @@ use time;
pub struct TimerId(i32);
#[jstraceable]
+#[privatize]
pub struct TimerHandle {
handle: TimerId,
- pub data: TimerData,
+ data: TimerData,
cancel_chan: Option<Sender<()>>,
}
@@ -78,22 +79,23 @@ impl TimerHandle {
#[jstraceable]
#[must_root]
+#[privatize]
pub struct Window {
eventtarget: EventTarget,
- pub script_chan: ScriptChan,
- pub control_chan: ScriptControlChan,
+ script_chan: ScriptChan,
+ control_chan: ScriptControlChan,
console: MutNullableJS<Console>,
location: MutNullableJS<Location>,
navigator: MutNullableJS<Navigator>,
- pub image_cache_task: ImageCacheTask,
- pub active_timers: RefCell<HashMap<TimerId, TimerHandle>>,
+ image_cache_task: ImageCacheTask,
+ active_timers: RefCell<HashMap<TimerId, TimerHandle>>,
next_timer_handle: Cell<i32>,
- pub compositor: Box<ScriptListener+'static>,
- pub browser_context: RefCell<Option<BrowserContext>>,
- pub page: Rc<Page>,
+ compositor: Box<ScriptListener+'static>,
+ browser_context: RefCell<Option<BrowserContext>>,
+ page: Rc<Page>,
performance: MutNullableJS<Performance>,
- pub navigationStart: u64,
- pub navigationStartPrecise: f64,
+ navigation_start: u64,
+ navigation_start_precise: f64,
screen: MutNullableJS<Screen>,
}
@@ -103,9 +105,38 @@ impl Window {
(*js_info.as_ref().unwrap().js_context).ptr
}
+ pub fn script_chan<'a>(&'a self) -> &'a ScriptChan {
+ &self.script_chan
+ }
+
+ pub fn control_chan<'a>(&'a self) -> &'a ScriptControlChan {
+ &self.control_chan
+ }
+
+ pub fn image_cache_task<'a>(&'a self) -> &'a ImageCacheTask {
+ &self.image_cache_task
+ }
+
+ pub fn compositor<'a>(&'a self) -> &'a ScriptListener+'static {
+ &*self.compositor
+ }
+
+ pub fn browser_context(&self) -> Ref<Option<BrowserContext>> {
+ self.browser_context.borrow()
+ }
+
pub fn page<'a>(&'a self) -> &'a Page {
&*self.page
}
+
+ pub fn navigation_start(&self) -> u64 {
+ self.navigation_start
+ }
+
+ pub fn navigation_start_precise(&self) -> f64 {
+ self.navigation_start_precise
+ }
+
pub fn get_url(&self) -> Url {
self.page().get_url()
}
@@ -124,9 +155,10 @@ impl Drop for Window {
// (ie. function value to invoke and all arguments to pass
// to the function when calling it)
#[jstraceable]
+#[privatize]
pub struct TimerData {
- pub is_interval: bool,
- pub funval: JSVal,
+ is_interval: bool,
+ funval: JSVal,
}
// http://www.whatwg.org/html/#atob
@@ -543,8 +575,8 @@ impl Window {
next_timer_handle: Cell::new(0),
browser_context: RefCell::new(None),
performance: Default::default(),
- navigationStart: time::get_time().sec as u64,
- navigationStartPrecise: time::precise_time_s(),
+ navigation_start: time::get_time().sec as u64,
+ navigation_start_precise: time::precise_time_s(),
screen: Default::default(),
};