/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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"

[scriptable, builtinclass, uuid(4f94b21f-2920-4bd9-8251-5fb60fb054b2)]
interface xpcIJSModuleLoader : nsISupports
{
  // These functions are for startup testing purposes. They are not expected
  // to be used for production code.
  void loadedModules([optional] out unsigned long length,
                     [retval, array, size_is(length)] out string aModules);

  void loadedComponents([optional] out unsigned long length,
                        [retval, array, size_is(length)] out string aComponents);

  // These 2 functions will only return useful values if the
  // "browser.startup.record" preference was true at the time the JS file
  // was loaded.
  ACString getModuleImportStack(in AUTF8String aLocation);
  ACString getComponentLoadStack(in AUTF8String aLocation);
};
