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/HTML/Element/iframe#attr-mozbrowser
|
||||
fn Mozbrowser(&self) -> bool {
|
||||
let element = self.upcast::<Element>();
|
||||
element.has_attribute(&atom!("mozbrowser"))
|
||||
if window_from_node(self).is_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
|
||||
|
|
|
@ -146,16 +146,16 @@ interface BrowserElementPrivileged {
|
|||
// unsigned long count,
|
||||
// unsigned long modifiers);
|
||||
|
||||
[Throws]
|
||||
[Func="Window::global_is_mozbrowser", Throws]
|
||||
void goBack();
|
||||
|
||||
[Throws]
|
||||
[Func="Window::global_is_mozbrowser", Throws]
|
||||
void goForward();
|
||||
|
||||
[Throws]
|
||||
[Func="Window::global_is_mozbrowser", Throws]
|
||||
void reload(optional boolean hardReload = false);
|
||||
|
||||
[Throws]
|
||||
[Func="Window::global_is_mozbrowser", Throws]
|
||||
void stop();
|
||||
|
||||
//[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
|
||||
/// in a top-level `Window` global.
|
||||
#[allow(unsafe_code)]
|
||||
pub unsafe fn global_is_mozbrowser(_: *mut JSContext, obj: HandleObject) -> bool {
|
||||
if !mozbrowser_enabled() {
|
||||
return false;
|
||||
}
|
||||
match global_root_from_object(obj.get()).r() {
|
||||
GlobalRef::Window(window) => window.parent_info().is_none(),
|
||||
GlobalRef::Window(window) => window.is_mozbrowser(),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue