aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/window.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-06-10 15:10:10 +0200
committerMs2ger <ms2ger@gmail.com>2014-06-11 19:51:07 +0200
commit07c67a1d5a1aacd5422b4f1968b6e103e75a9d0a (patch)
treeda7338148d1b8f64aa647706ed862dc372e63206 /src/components/script/dom/window.rs
parent288e0bc877aa09a95f440c603eddbaf166e8f592 (diff)
downloadservo-07c67a1d5a1aacd5422b4f1968b6e103e75a9d0a.tar.gz
servo-07c67a1d5a1aacd5422b4f1968b6e103e75a9d0a.zip
Use internal mutability for Window::browser_context.
Diffstat (limited to 'src/components/script/dom/window.rs')
-rw-r--r--src/components/script/dom/window.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index 098d118d3aa..7a25aac3761 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -29,7 +29,7 @@ use js::jsapi::{JS_GC, JS_GetRuntime};
use js::jsval::JSVal;
use collections::hashmap::HashMap;
-use std::cell::Cell;
+use std::cell::{Cell, RefCell};
use std::cmp;
use std::comm::{channel, Sender};
use std::comm::Select;
@@ -76,7 +76,7 @@ pub struct Window {
pub active_timers: Box<HashMap<TimerId, TimerHandle>>,
pub next_timer_handle: i32,
pub compositor: Untraceable<Box<ScriptListener>>,
- pub browser_context: Option<BrowserContext>,
+ pub browser_context: Traceable<RefCell<Option<BrowserContext>>>,
pub page: Rc<Page>,
pub performance: Cell<Option<JS<Performance>>>,
pub navigationStart: u64,
@@ -283,7 +283,7 @@ impl Reflectable for Window {
pub trait WindowHelpers {
fn damage_and_reflow(&self, damage: DocumentDamageLevel);
fn wait_until_safe_to_modify_dom(&self);
- fn init_browser_context(&mut self, doc: &JSRef<Document>);
+ fn init_browser_context(&self, doc: &JSRef<Document>);
fn load_url(&self, href: DOMString);
}
@@ -306,8 +306,8 @@ impl<'a> WindowHelpers for JSRef<'a, Window> {
self.page().join_layout();
}
- fn init_browser_context(&mut self, doc: &JSRef<Document>) {
- self.browser_context = Some(BrowserContext::new(doc));
+ fn init_browser_context(&self, doc: &JSRef<Document>) {
+ *self.browser_context.deref().borrow_mut() = Some(BrowserContext::new(doc));
}
/// Commence a new URL load which will either replace this window or scroll to a fragment.
@@ -402,7 +402,7 @@ impl Window {
image_cache_task: image_cache_task,
active_timers: box HashMap::new(),
next_timer_handle: 0,
- browser_context: None,
+ browser_context: Traceable::new(RefCell::new(None)),
performance: Cell::new(None),
navigationStart: time::get_time().sec as u64,
navigationStartPrecise: time::precise_time_s(),