mirror of
https://github.com/servo/servo.git
synced 2025-06-29 19:43:39 +01:00
Auto merge of #11508 - nox:mozbrowser, r=Ms2ger
Fix permissions of mozbrowser and BrowserElementPrivileged (fixes #11498) <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11508) <!-- Reviewable:end -->
This commit is contained in:
commit
0ec30a6127
3 changed files with 16 additions and 10 deletions
|
@ -437,8 +437,12 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement {
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API
|
// https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-mozbrowser
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-mozbrowser
|
||||||
fn Mozbrowser(&self) -> bool {
|
fn Mozbrowser(&self) -> bool {
|
||||||
let element = self.upcast::<Element>();
|
if window_from_node(self).is_mozbrowser() {
|
||||||
element.has_attribute(&atom!("mozbrowser"))
|
let element = self.upcast::<Element>();
|
||||||
|
element.has_attribute(&atom!("mozbrowser"))
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-mozbrowser
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-mozbrowser
|
||||||
|
|
|
@ -146,16 +146,16 @@ interface BrowserElementPrivileged {
|
||||||
// unsigned long count,
|
// unsigned long count,
|
||||||
// unsigned long modifiers);
|
// unsigned long modifiers);
|
||||||
|
|
||||||
[Throws]
|
[Func="Window::global_is_mozbrowser", Throws]
|
||||||
void goBack();
|
void goBack();
|
||||||
|
|
||||||
[Throws]
|
[Func="Window::global_is_mozbrowser", Throws]
|
||||||
void goForward();
|
void goForward();
|
||||||
|
|
||||||
[Throws]
|
[Func="Window::global_is_mozbrowser", Throws]
|
||||||
void reload(optional boolean hardReload = false);
|
void reload(optional boolean hardReload = false);
|
||||||
|
|
||||||
[Throws]
|
[Func="Window::global_is_mozbrowser", Throws]
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
//[Throws,
|
//[Throws,
|
||||||
|
|
|
@ -1459,15 +1459,17 @@ impl Window {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether this window is mozbrowser.
|
||||||
|
pub fn is_mozbrowser(&self) -> bool {
|
||||||
|
mozbrowser_enabled() && self.parent_info().is_none()
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns whether mozbrowser is enabled and `obj` has been created
|
/// Returns whether mozbrowser is enabled and `obj` has been created
|
||||||
/// in a top-level `Window` global.
|
/// in a top-level `Window` global.
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
pub unsafe fn global_is_mozbrowser(_: *mut JSContext, obj: HandleObject) -> bool {
|
pub unsafe fn global_is_mozbrowser(_: *mut JSContext, obj: HandleObject) -> bool {
|
||||||
if !mozbrowser_enabled() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
match global_root_from_object(obj.get()).r() {
|
match global_root_from_object(obj.get()).r() {
|
||||||
GlobalRef::Window(window) => window.parent_info().is_none(),
|
GlobalRef::Window(window) => window.is_mozbrowser(),
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue