aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/browsercontext.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/browsercontext.rs')
-rw-r--r--components/script/dom/browsercontext.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index 3d486a3fe11..f7572d6d6a7 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -33,14 +33,16 @@ pub struct BrowserContext {
history: Vec<SessionHistoryEntry>,
active_index: uint,
window_proxy: *mut JSObject,
+ parent: Option<JS<Window>>,
}
impl BrowserContext {
- pub fn new(document: JSRef<Document>) -> BrowserContext {
+ pub fn new(document: JSRef<Document>, parent: Option<JSRef<Window>>) -> BrowserContext {
let mut context = BrowserContext {
history: vec!(SessionHistoryEntry::new(document)),
active_index: 0,
window_proxy: ptr::null_mut(),
+ parent: parent.map(|p| JS::from_rooted(p)),
};
context.create_window_proxy();
context
@@ -60,6 +62,12 @@ impl BrowserContext {
self.window_proxy
}
+ pub fn parent(&self) -> Option<Temporary<Window>> {
+ self.parent.map(|p| {
+ p.root().browser_context().as_ref().unwrap().active_window()
+ })
+ }
+
#[allow(unsafe_blocks)]
fn create_window_proxy(&mut self) {
let win = self.active_window().root();