/* -*- indent-tabs-mode: nil; js-indent-level: 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/. */

#include "nsISupports.idl"
#include "nsIArray.idl"

[scriptable, uuid(13dd4c09-ff11-4943-8dc2-d96eb69c963b)]
interface nsICompartment : nsISupports {
  /* name of compartment */
  readonly attribute AString compartmentName;
  /* time spent executing code in this compartment in microseconds */
  readonly attribute unsigned long long time;
  /* the id of the addon associated with this compartment, or null */
  readonly attribute AString addonId;
  /* time spent processing CPOWs in microseconds */
  readonly attribute unsigned long long CPOWTime;
};

[scriptable, builtinclass, uuid(5795113a-39a1-4087-ba09-98b7d07d025a)]
interface nsICompartmentInfo : nsISupports {
  nsIArray getCompartments();
};

%{C++
#define NS_COMPARTMENT_INFO_CID \
{ 0x2d3c2f2d, 0x698d, 0x471d, \
{ 0xba, 0x3e, 0x14, 0x44, 0xdd, 0x52, 0x1e, 0x29 } }
%}
