aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/htmliframeelement.rs40
1 files changed, 21 insertions, 19 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 687867466e7..2c71488c5dc 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -51,15 +51,17 @@ use url::Url;
use util::prefs::mozbrowser_enabled;
use util::servo_version;
-#[derive(HeapSizeOf)]
-enum SandboxAllowance {
- AllowNothing = 0x00,
- AllowSameOrigin = 0x01,
- AllowTopNavigation = 0x02,
- AllowForms = 0x04,
- AllowScripts = 0x08,
- AllowPointerLock = 0x10,
- AllowPopups = 0x20
+bitflags! {
+ #[derive(JSTraceable, HeapSizeOf)]
+ flags SandboxAllowance: u8 {
+ const ALLOW_NOTHING = 0x00,
+ const ALLOW_SAME_ORIGIN = 0x01,
+ const ALLOW_TOP_NAVIGATION = 0x02,
+ const ALLOW_FORMS = 0x04,
+ const ALLOW_SCRIPTS = 0x08,
+ const ALLOW_POINTER_LOCK = 0x10,
+ const ALLOW_POPUPS = 0x20
+ }
}
#[dom_struct]
@@ -68,7 +70,7 @@ pub struct HTMLIFrameElement {
pipeline_id: Cell<Option<PipelineId>>,
subpage_id: Cell<Option<SubpageId>>,
sandbox: MutNullableHeap<JS<DOMTokenList>>,
- sandbox_allowance: Cell<Option<u8>>,
+ sandbox_allowance: Cell<Option<SandboxAllowance>>,
load_blocker: DOMRefCell<Option<LoadBlocker>>,
visibility: Cell<bool>,
}
@@ -591,17 +593,17 @@ impl VirtualMethods for HTMLIFrameElement {
match attr.local_name() {
&atom!("sandbox") => {
self.sandbox_allowance.set(mutation.new_value(attr).map(|value| {
- let mut modes = SandboxAllowance::AllowNothing as u8;
+ let mut modes = ALLOW_NOTHING;
for token in value.as_tokens() {
modes |= match &*token.to_ascii_lowercase() {
- "allow-same-origin" => SandboxAllowance::AllowSameOrigin,
- "allow-forms" => SandboxAllowance::AllowForms,
- "allow-pointer-lock" => SandboxAllowance::AllowPointerLock,
- "allow-popups" => SandboxAllowance::AllowPopups,
- "allow-scripts" => SandboxAllowance::AllowScripts,
- "allow-top-navigation" => SandboxAllowance::AllowTopNavigation,
- _ => SandboxAllowance::AllowNothing
- } as u8;
+ "allow-same-origin" => ALLOW_SAME_ORIGIN,
+ "allow-forms" => ALLOW_FORMS,
+ "allow-pointer-lock" => ALLOW_POINTER_LOCK,
+ "allow-popups" => ALLOW_POPUPS,
+ "allow-scripts" => ALLOW_SCRIPTS,
+ "allow-top-navigation" => ALLOW_TOP_NAVIGATION,
+ _ => ALLOW_NOTHING
+ };
}
modes
}));