/* 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/. */

#include "domstubs.idl"

interface nsIDOMDOMRequest;

[scriptable, uuid(18390770-02ab-11e2-a21f-0800200c9a66)]
interface nsIDOMPermissionSettings : nsISupports
{
  DOMString get(in DOMString permission, in DOMString manifestURI, in DOMString origin, in bool browserFlag);

  void set(in DOMString permission, in DOMString value, in DOMString manifestURI, in DOMString origin, in bool browserFlag);

  bool isExplicit(in DOMString permission, in DOMString manifestURI, in DOMString origin, in bool browserFlag);

  // Removing a permission is only allowed for pages with a different origin than the app
  // and pages that have browserFlag=true, so remove() doesn't have a browserFlag parameter.
  void remove(in DOMString permission, in DOMString manifestURI, in DOMString origin);
};
