diff options
author | Glenn Watson <gw@intuitionlibrary.com> | 2015-02-03 12:52:18 +1000 |
---|---|---|
committer | Glenn Watson <gw@intuitionlibrary.com> | 2015-02-05 07:04:04 +1000 |
commit | 0873e5c8ca60d977d164ce5f5b85ca70dd76e5d9 (patch) | |
tree | a88e73d5e9f98a2338f2de877ec7058aab8a7ba4 /components/script/dom/browsercontext.rs | |
parent | 7e3f504d94ffb77ec6148166d2ab73978e1c71c8 (diff) | |
download | servo-0873e5c8ca60d977d164ce5f5b85ca70dd76e5d9.tar.gz servo-0873e5c8ca60d977d164ce5f5b85ca70dd76e5d9.zip |
Implement window.parent for iframes.
Diffstat (limited to 'components/script/dom/browsercontext.rs')
-rw-r--r-- | components/script/dom/browsercontext.rs | 10 |
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(); |