DOM Inspector
From MozillaWiki
UI Improvements
There is considerable scope for improvement to the UI of the DOM Inspector.
- ability to remember sessions
- show inspector views as tabs instead of dropdown list items
- autocomplete for the URL bar
- consolidate mismatched UI items
- inline search for computed style, etc. views with save ability
- computed style etc saves scroll position
- option to inspect the current window at startup instead of the current document
- option to add "inspect this element" to right-click menu (like https://addons.mozilla.org/extensions/moreinfo.php?id=434)
- The "find a node to inspect by id, tag, or attribute" ui could be changed to work like find-as-you-type
- the trees can get really deep, and i constantly find myself trying to make the window bigger, and scrolling upward to find the parent of the node i'm looking at. not sure if there's a good way to address this?
- microsoft developer toolbar is interesting: http://www.microsoft.com/downloads/details.aspx?FamilyID=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en having an option to pin/unpin would be cool.
- maybe integrate event spy? https://addons.mozilla.org/extensions/moreinfo.php?id=1100
… more DOM Inspector enhancement bugs
Interfaces
DOM Inspector's interfaces are not formalized, but if they were, they'd look something like this:
interface domiIViewer : domiIObservable { readonly attribute AString uid; readonly attribute domiIPanel pane; // bug 570879 is concerned with renaming selection to object attribute nsISupports subject; readonly attribute nsISupports selection; void destroy(); boolean isCommandEnabled(in string aCommandName); nsITransaction getCommand(in string aCommandName); }
interface domiIPanel : domiIObservable { readonly attribute domiIPanelset panelset; readonly attribute domiIPanel linkedPanel; attribute nsISupports subject; attribute nsIVariant params; readonly attribute domiIViewer viewer; readonly attribute nsIDOMDocument viewerDocument; void initialize(); void notifyViewerReady(in domiIViewer aViewer); void onViewerListCommand(in nsIDOMElement aViewerMenuItem); }
interface domiIPanelset : domiIObservable { readonly attribute domiIViewerRegistry registry; readonly attribute boolean initialized; readonly attribute nsIStringBundle stringBundle; readonly attribute domiIFlasher flasher; readonly attribute aString clipboardFlavor; void initialize(); void onViewerRegistryLoad(); void onViewerRegistryLoadError(); readonly attribute long panelCount; domiIPanel getPanel(in unsigned long aIndex); void updateAllCommands(); AString getCommandAttribute(in AString aCommandName, in aString aAttributeName); AString setCommandAttribute(in AString aCommandName, in aString aAttributeName, in AString aValue); void execCommand(in AString aCommandName); void setClipboardData(in nsIVariant aData, in AString aFlavor, in AString aTextRepresentation); nsIVariant getClipboardData(); }
interface domiIObserver : nsISupports { void onEvent(domiIEvent aEventData); }
interface domiIEvent : nsISupports { readonly attribute domiIObservable target; readonly attribute AString type; }
interface domiIObservable : nsISupports { void addObserver(in string aEventName, in domiIObserver aObserver); void removeObserver(in string aEventName, in domiIObserver aObserver); }