diff options
author | Nazım Can Altınova <canaltinova@gmail.com> | 2016-06-11 01:59:59 +0300 |
---|---|---|
committer | Nazım Can Altınova <canaltinova@gmail.com> | 2016-06-11 01:59:59 +0300 |
commit | 47984a52c6e0976f0dd5c36506b2c9b7ba8c180d (patch) | |
tree | 7ab8a160150005295debb341a80bf49ae78c9502 /components/script/dom/htmliframeelement.rs | |
parent | 41230fe03dff7f8c0fe72cd241dbc1ec9928021e (diff) | |
download | servo-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.rs | 14 |
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 |