diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-06-07 00:25:46 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-06-07 00:58:43 +0900 |
commit | 1f9f0a28ed8489281eb6a1cbe290704a90b1b2f7 (patch) | |
tree | ab8f019296aa6da6e20eb4ee6daf6e4f0389bfd6 /src/components/script/dom/htmliframeelement.rs | |
parent | 2aa1554b0c36bce1b25028c6f2a0dfbf9abefeb0 (diff) | |
download | servo-1f9f0a28ed8489281eb6a1cbe290704a90b1b2f7.tar.gz servo-1f9f0a28ed8489281eb6a1cbe290704a90b1b2f7.zip |
Use Cell for mutability of HTMLIFrameElement.sandbox.
Diffstat (limited to 'src/components/script/dom/htmliframeelement.rs')
-rw-r--r-- | src/components/script/dom/htmliframeelement.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/components/script/dom/htmliframeelement.rs b/src/components/script/dom/htmliframeelement.rs index 161d9ba77f2..7f9649d338d 100644 --- a/src/components/script/dom/htmliframeelement.rs +++ b/src/components/script/dom/htmliframeelement.rs @@ -5,6 +5,7 @@ use dom::bindings::codegen::Bindings::HTMLIFrameElementBinding; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLIFrameElementDerived, HTMLElementCast}; use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::trace::Traceable; use dom::document::Document; use dom::element::{HTMLIFrameElementTypeId, Element}; use dom::element::AttributeHandlers; @@ -22,6 +23,7 @@ use servo_util::str::DOMString; use servo_util::url::try_parse_url; use std::ascii::StrAsciiExt; +use std::cell::Cell; use url::Url; enum SandboxAllowance { @@ -38,7 +40,7 @@ enum SandboxAllowance { pub struct HTMLIFrameElement { pub htmlelement: HTMLElement, pub size: Option<IFrameSize>, - pub sandbox: Option<u8> + pub sandbox: Traceable<Cell<Option<u8>>>, } impl HTMLIFrameElementDerived for EventTarget { @@ -60,7 +62,7 @@ pub trait HTMLIFrameElementHelpers { impl<'a> HTMLIFrameElementHelpers for JSRef<'a, HTMLIFrameElement> { fn is_sandboxed(&self) -> bool { - self.sandbox.is_some() + self.sandbox.deref().get().is_some() } fn get_url(&self) -> Option<Url> { @@ -78,7 +80,7 @@ impl HTMLIFrameElement { HTMLIFrameElement { htmlelement: HTMLElement::new_inherited(HTMLIFrameElementTypeId, localName, document), size: None, - sandbox: None, + sandbox: Traceable::new(Cell::new(None)), } } @@ -146,8 +148,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLIFrameElement> { _ => AllowNothing } as u8; } - let mut self_alias = self.clone(); - self_alias.deref_mut().sandbox = Some(modes); + self.deref().sandbox.deref().set(Some(modes)); } } @@ -158,8 +159,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLIFrameElement> { } if "sandbox" == name.as_slice() { - let mut self_alias = self.clone(); - self_alias.deref_mut().sandbox = None; + self.deref().sandbox.deref().set(None); } } |