diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/global.rs | 2 | ||||
-rw-r--r-- | components/script/dom/bindings/utils.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlformelement.rs | 4 | ||||
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlimageelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlobjectelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/performancetiming.rs | 4 | ||||
-rw-r--r-- | components/script/dom/window.rs | 62 |
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(), }; |