aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmliframeelement.rs
diff options
context:
space:
mode:
authorNazım Can Altınova <canaltinova@gmail.com>2016-06-11 01:59:59 +0300
committerNazım Can Altınova <canaltinova@gmail.com>2016-06-11 01:59:59 +0300
commit47984a52c6e0976f0dd5c36506b2c9b7ba8c180d (patch)
tree7ab8a160150005295debb341a80bf49ae78c9502 /components/script/dom/htmliframeelement.rs
parent41230fe03dff7f8c0fe72cd241dbc1ec9928021e (diff)
downloadservo-47984a52c6e0976f0dd5c36506b2c9b7ba8c180d.tar.gz
servo-47984a52c6e0976f0dd5c36506b2c9b7ba8c180d.zip
Add Sandbox field to HTMLIFrameElement
Diffstat (limited to 'components/script/dom/htmliframeelement.rs')
-rw-r--r--components/script/dom/htmliframeelement.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index b203f1f6e8a..53fe45584b8 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -19,11 +19,12 @@ use dom::bindings::conversions::ToJSValConvertible;
use dom::bindings::error::{Error, ErrorResult};
use dom::bindings::global::GlobalRef;
use dom::bindings::inheritance::Castable;
-use dom::bindings::js::{Root, LayoutJS};
+use dom::bindings::js::{JS, MutNullableHeap, Root, LayoutJS};
use dom::bindings::reflector::Reflectable;
use dom::bindings::str::DOMString;
use dom::customevent::CustomEvent;
use dom::document::Document;
+use dom::domtokenlist::DOMTokenList;
use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers};
use dom::event::Event;
use dom::eventtarget::EventTarget;
@@ -63,6 +64,7 @@ pub struct HTMLIFrameElement {
htmlelement: HTMLElement,
pipeline_id: Cell<Option<PipelineId>>,
subpage_id: Cell<Option<SubpageId>>,
+ sandbox: MutNullableHeap<JS<DOMTokenList>>,
sandbox_allowance: Cell<Option<u8>>,
load_blocker: DOMRefCell<Option<LoadBlocker>>,
}
@@ -193,6 +195,7 @@ impl HTMLIFrameElement {
htmlelement: HTMLElement::new_inherited(localName, prefix, document),
pipeline_id: Cell::new(None),
subpage_id: Cell::new(None),
+ sandbox: Default::default(),
sandbox_allowance: Cell::new(None),
load_blocker: DOMRefCell::new(None),
}
@@ -412,13 +415,8 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement {
}
// https://html.spec.whatwg.org/multipage/#dom-iframe-sandbox
- fn Sandbox(&self) -> DOMString {
- self.upcast::<Element>().get_string_attribute(&atom!("sandbox"))
- }
-
- // https://html.spec.whatwg.org/multipage/#dom-iframe-sandbox
- fn SetSandbox(&self, sandbox: DOMString) {
- self.upcast::<Element>().set_tokenlist_attribute(&atom!("sandbox"), sandbox);
+ fn Sandbox(&self) -> Root<DOMTokenList> {
+ self.sandbox.or_init(|| DOMTokenList::new(self.upcast::<Element>(), &atom!("sandbox")))
}
// https://html.spec.whatwg.org/multipage/#dom-iframe-contentwindow