michael@0: /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: // vim:cindent:tabstop=4:expandtab:shiftwidth=4: michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: michael@0: interface nsIDOMWindow; michael@0: michael@0: /** michael@0: * A series of hooks into non-IDL-ized layout code to allow all the michael@0: * layout debugging functions to be used from chrome. michael@0: */ michael@0: michael@0: [scriptable, uuid(4b968d4b-9c08-4635-a7e0-55084843f0fd)] michael@0: interface nsILayoutDebuggingTools : nsISupports michael@0: { michael@0: michael@0: /* michael@0: * Initialize debugger object to act on a docshell. michael@0: */ michael@0: void init(in nsIDOMWindow win); michael@0: michael@0: /* michael@0: * Notify the debugger that the docshell has been told to load a new michael@0: * URI. michael@0: */ michael@0: void newURILoaded(); michael@0: michael@0: /* Toggle various debugging states */ michael@0: attribute boolean visualDebugging; michael@0: attribute boolean visualEventDebugging; michael@0: attribute boolean paintFlashing; michael@0: attribute boolean paintDumping; michael@0: attribute boolean invalidateDumping; michael@0: attribute boolean eventDumping; michael@0: attribute boolean motionEventDumping; michael@0: attribute boolean crossingEventDumping; michael@0: attribute boolean reflowCounts; michael@0: michael@0: /* Run various tests. */ michael@0: void dumpWebShells(); michael@0: void dumpContent(); michael@0: void dumpFrames(); michael@0: void dumpViews(); michael@0: michael@0: void dumpStyleSheets(); michael@0: void dumpStyleContexts(); michael@0: michael@0: void dumpReflowStats(); michael@0: };