1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 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 8interface nsIConsoleListener; 9interface nsIConsoleMessage; 10 11[scriptable, uuid(0eb81d20-c37e-42d4-82a8-ca9ae96bdf52)] 12interface nsIConsoleService : nsISupports 13{ 14 void logMessage(in nsIConsoleMessage message); 15 16 /** 17 * Convenience method for logging simple messages. 18 */ 19 void logStringMessage(in wstring message); 20 21 /** 22 * Get an array of all the messages logged so far. 23 */ 24 Array<nsIConsoleMessage> getMessageArray(); 25 26 /** 27 * To guard against stack overflows from listeners that could log 28 * messages (it's easy to do this inadvertently from listeners 29 * implemented in JavaScript), we don't call any listeners when 30 * another error is already being logged. 31 */ 32 void registerListener(in nsIConsoleListener listener); 33 34 /** 35 * Each registered listener should also be unregistered. 36 */ 37 void unregisterListener(in nsIConsoleListener listener); 38 39 /** 40 * Clear the message buffer (e.g. for privacy reasons). 41 */ 42 void reset(); 43 44 /** 45 * Clear the message buffer for a given window. 46 */ 47 void resetWindow(in uint64_t windowInnerId); 48}; 49 50 51%{ C++ 52#define NS_CONSOLESERVICE_CID \ 53{ 0x7e3ff85c, 0x1dd2, 0x11b2, { 0x8d, 0x4b, 0xeb, 0x45, 0x2c, 0xb0, 0xff, 0x40 }} 54 55#define NS_CONSOLESERVICE_CONTRACTID "@mozilla.org/consoleservice;1" 56%} 57 58