aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/browsercontext.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/browsercontext.rs')
-rw-r--r--src/components/script/dom/browsercontext.rs120
1 files changed, 0 insertions, 120 deletions
diff --git a/src/components/script/dom/browsercontext.rs b/src/components/script/dom/browsercontext.rs
deleted file mode 100644
index a54477a2ff8..00000000000
--- a/src/components/script/dom/browsercontext.rs
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use dom::bindings::js::{JS, JSRef, Temporary};
-use dom::bindings::trace::Traceable;
-use dom::bindings::utils::Reflectable;
-use dom::document::Document;
-use dom::window::Window;
-
-use js::jsapi::JSObject;
-use js::glue::{WrapperNew, CreateWrapperProxyHandler, ProxyTraps};
-use js::rust::with_compartment;
-
-use libc::c_void;
-use std::ptr;
-
-#[allow(raw_pointer_deriving)]
-#[deriving(Encodable)]
-pub struct BrowserContext {
- history: Vec<SessionHistoryEntry>,
- active_index: uint,
- window_proxy: Traceable<*mut JSObject>,
-}
-
-impl BrowserContext {
- pub fn new(document: &JSRef<Document>) -> BrowserContext {
- let mut context = BrowserContext {
- history: vec!(SessionHistoryEntry::new(document)),
- active_index: 0,
- window_proxy: Traceable::new(ptr::mut_null()),
- };
- context.create_window_proxy();
- context
- }
-
- pub fn active_document(&self) -> Temporary<Document> {
- Temporary::new(self.history[self.active_index].document.clone())
- }
-
- pub fn active_window(&self) -> Temporary<Window> {
- let doc = self.active_document().root();
- Temporary::new(doc.deref().window.clone())
- }
-
- pub fn window_proxy(&self) -> *mut JSObject {
- assert!(self.window_proxy.deref().is_not_null());
- *self.window_proxy
- }
-
- fn create_window_proxy(&mut self) {
- let win = self.active_window().root();
- let page = win.deref().page();
- let js_info = page.js_info();
-
- let handler = js_info.get_ref().dom_static.windowproxy_handler;
- assert!(handler.deref().is_not_null());
-
- let parent = win.deref().reflector().get_jsobject();
- let cx = js_info.get_ref().js_context.deref().deref().ptr;
- let wrapper = with_compartment(cx, parent, || unsafe {
- WrapperNew(cx, parent, *handler.deref())
- });
- assert!(wrapper.is_not_null());
- self.window_proxy = Traceable::new(wrapper);
- }
-}
-
-#[deriving(Encodable)]
-pub struct SessionHistoryEntry {
- document: JS<Document>,
- children: Vec<BrowserContext>
-}
-
-impl SessionHistoryEntry {
- fn new(document: &JSRef<Document>) -> SessionHistoryEntry {
- SessionHistoryEntry {
- document: JS::from_rooted(document),
- children: vec!()
- }
- }
-}
-
-static proxy_handler: ProxyTraps = ProxyTraps {
- getPropertyDescriptor: None,
- getOwnPropertyDescriptor: None,
- defineProperty: None,
- getOwnPropertyNames: 0 as *const u8,
- delete_: None,
- enumerate: 0 as *const u8,
-
- has: None,
- hasOwn: None,
- get: None,
- set: None,
- keys: 0 as *const u8,
- iterate: None,
-
- call: None,
- construct: None,
- nativeCall: 0 as *const u8,
- hasInstance: None,
- typeOf: None,
- objectClassIs: None,
- obj_toString: None,
- fun_toString: None,
- //regexp_toShared: 0 as *u8,
- defaultValue: None,
- iteratorNext: None,
- finalize: None,
- getElementIfPresent: None,
- getPrototypeOf: None,
- trace: None
-};
-
-pub fn new_window_proxy_handler() -> *const c_void {
- unsafe {
- CreateWrapperProxyHandler(&proxy_handler)
- }
-}