1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6#include "nsISupports.idl"
7
8[scriptable, uuid(9e32a7b6-c4d1-4d9a-87b9-1ef6b75c27a9)]
9interface nsIConsoleAPIStorage : nsISupports
10{
11  /**
12   * Get the events array by inner window ID or all events from all windows.
13   *
14   * @param string [aId]
15   *        Optional, the inner window ID for which you want to get the array of
16   *        cached events.
17   * @returns array
18   *          The array of cached events for the given window. If no |aId| is
19   *          given this function returns all of the cached events, from any
20   *          window.
21   */
22  jsval getEvents([optional] in AString aId);
23
24  /**
25   * Record an event associated with the given window ID.
26   *
27   * @param string aId
28   *        The ID of the inner window for which the event occurred or "jsm" for
29   *        messages logged from JavaScript modules..
30   * @param string aOuterId
31   *        This ID is used as 3rd parameters for the console-api-log-event
32   *        notification.
33   * @param object aEvent
34   *        A JavaScript object you want to store.
35   */
36  void recordEvent(in AString aId, in AString aOuterId, in jsval aEvent);
37
38  /**
39   * Clear storage data for the given window.
40   *
41   * @param string [aId]
42   *        Optional, the inner window ID for which you want to clear the
43   *        messages. If this is not specified all of the cached messages are
44   *        cleared, from all window objects.
45   */
46  void clearEvents([optional] in AString aId);
47};
48