pub trait PermissionsMethods<D>where
    D: DomTypes,{
    // Required methods
    fn Query(
        &self,
        cx: JSContext,
        permissionDesc: *mut JSObject,
        _can_gc: CanGc,
    ) -> Rc<<D as DomTypes>::Promise>;
    fn Request(
        &self,
        cx: JSContext,
        permissionDesc: *mut JSObject,
        _can_gc: CanGc,
    ) -> Rc<<D as DomTypes>::Promise>;
    fn Revoke(
        &self,
        cx: JSContext,
        permissionDesc: *mut JSObject,
        _can_gc: CanGc,
    ) -> Rc<<D as DomTypes>::Promise>;
}