DOM Inspector

From MozillaWiki
Jump to: navigation, search

UI Improvements

There is considerable scope for improvement to the UI of the DOM Inspector.

… 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);

}