mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
b5a2bda7ee
This will mean that in places like the tight loop in GetTypeIndex() we would no longer require calling strlen() on the input type argument once per loop iteration. Depends on D20236 Differential Revision: https://phabricator.services.mozilla.com/D20237 --HG-- extra : moz-landing-system : lando
55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_dom_Permissions_h_
|
|
#define mozilla_dom_Permissions_h_
|
|
|
|
#include "nsISupports.h"
|
|
#include "nsPIDOMWindow.h"
|
|
#include "nsWrapperCache.h"
|
|
|
|
namespace mozilla {
|
|
|
|
class ErrorResult;
|
|
|
|
namespace dom {
|
|
|
|
class Promise;
|
|
|
|
class Permissions final : public nsISupports, public nsWrapperCache {
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(Permissions)
|
|
|
|
explicit Permissions(nsPIDOMWindowInner* aWindow);
|
|
|
|
nsPIDOMWindowInner* GetParentObject() const { return mWindow; }
|
|
|
|
JSObject* WrapObject(JSContext* aCx,
|
|
JS::Handle<JSObject*> aGivenProto) override;
|
|
|
|
already_AddRefed<Promise> Query(JSContext* aCx,
|
|
JS::Handle<JSObject*> aPermission,
|
|
ErrorResult& aRv);
|
|
|
|
static nsresult RemovePermission(nsIPrincipal* aPrincipal,
|
|
const nsACString& aPermissionType);
|
|
|
|
already_AddRefed<Promise> Revoke(JSContext* aCx,
|
|
JS::Handle<JSObject*> aPermission,
|
|
ErrorResult& aRv);
|
|
|
|
private:
|
|
~Permissions();
|
|
|
|
nsCOMPtr<nsPIDOMWindowInner> mWindow;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_permissions_h_
|