The near-future of Inspector

I’ll let Christopher Aillon (module owner for Inspector) speak on long-term planning for Inspector, but I felt I should just take a moment to summarize just what I’ve been up to for Inspector.
First off, if you really want to look at all bugs filed against DOM Inspector, here’s a Bugzilla query:
http://bugzilla.mozilla.org/buglist.cgi?query_format=&short_desc_type=allwordssubstr&short_desc=&product=Browser&component=DOM+Inspector&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=exact&email1=&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailtype2=exact&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit


A lot of those bugs catch my eye. Among them is bug 109682, my ultimate goal in the long-term: making Inspector into a fifth panel on Editor.
Bug 112775 is my first major change (by major, I mean something which requires significant tinkering to figure out how to do it right), for something that you’d think would be simple: inserting a node. Turns out there’s a lot of possibilities to consider.
Bug 112922 is a bug for editing and splitting text nodes — a pretty important feature of a DOM editor tool. I haven’t yet explained my approach, so in a nutshell, I’m thinking of textareas which update the node as you type. This is consistent with how Editor works, and it’s seamless (WYSIWYG).
It also makes handling undo and redo operations in Inspector a bit touchy. Bug 179621 is a multi-phase process for converting Inspector to use Editor’s Transaction Manager model, which governs undo/redo for the major applications of Mozilla (Navigator, Composer, Mail/News).
The bread and butter of DOM Inspector are the various viewers — the applets that let you see the structure of the document and interact with said document. Big changes are coming. I already mentioned bug 112775 (that affects the DOM Nodes, or dom.xul, panel) and bug 112922 (that affects the DOM Node, or domNode.xul, panel). Looking from viewer to viewer, there are other improvements to note.
In dom.xul, we’re finally going to see the #document node. Bug 156072. We’re also going to see other #document nodes which are “contentDocument” properties of framed documents (like the HTML iframe’s contents). That one is bug 201585, and bzbarsky is handling it. (Sorry, I can’t hack C++.)
As a direct result of bug 201585, we’ll be able to look at stylesheets for framed documents as well. (Bug 201586.) That’ll be the Stylesheets viewer for a document, stylesheets.xul.
For specific DOM nodes selected in the left panel, the right panel will see a lot of new information, tailored to newly-exposed nodes such as document nodes, document-type nodes, and processing instructions. Bug 201129.
I’m not touching the box model. Fuggedaboudit.
XBL bindings, I should probably take the time to redesign it a little bit. The interface is confusing. I’m not going to file a bug on that yet, or accept one (if you readers get any ideas). but it’s itching in the back of my mind.
Style Rules, well, we need a way to add a new style rule. I’m waiting to hear back from Mr. Aillon as to whether his bug on changing how Inspector accesses style rules includes that or not. If not, I’ll file then.
Bug 192841, for non-CSSStyleRule rules, is pretty important to fix for this panel.
Computed Style: It’s a simple interface, doesn’t need anything from me.
JavaScript Object: the most drastic changes of all the panels, by far. You won’t recognize it at first. Bug 193942. New features:
* Dynamic resorting by alphabetical listing or by original ordering
* Revealing unenumerated properties (like window.Components)
* Regular-expression searches of the tree for names or values matching a regexp
* A multiline textbox for those multiline values
* Typeof included
* Matching an inspected value against a higher inspected value (for instance, document.defaultView.document == document)
* Assigning a match for convenience
* Creating new properties and methods on the fly
* Executing methods on the fly and getting a return value added to the tree
* I think that’s all I’ve come up with so far…
Other bugs:
I really should take the time to fix bug 111411.
I filed bug 119388, and I should investigate that one further.
Bug 121774, I should ask for reviews on for what I’ve got, and again I wait for Mr. Aillon for style rules.
Bug 123089 sounds interesting.
Bug 128421 I think bzbarsky is going to take.
Bug 150560 is another I should take the time to fix.
Bug 158826 will almost certainly need a DOM extension if it’s ever going to happen.
Bug 166749, shouldn’t be too hard.
Bug 178582 and bug 178583, I’m not sure why I filed those…
Bug 183060 I will probably spend some time fixing. Seems easy.
Bug 189950 I came up with a fix for, and it’s the wrong one…
Bug 193724 is assertion-cleanup (so I’ve heard, since I don’t work with assertions) and minor UI improvements.
That’s the news so far. We’re looking at a timeline for most of the bugs (except under “Other Bugs”) of roughly Mozilla 1.5 or 1.6 beta.

9 thoughts on “The near-future of Inspector”

  1. This is great stuff! The DOM Inspector is the reason I went back to Moz after a brief (but enjoyable) fling with Phoenix. 🙂

  2. I also find the DOM inspector great, and it is virtually the only reason why I (sometimes) use Mozilla anymore.
    But you talk of integrating the DOM inspector into Phoenix? It is certainly useful for web developers, but not for the normal surfer.
    Would it not be better if it was a plug-in?

  3. Actually, integrating Inspector into Phoenix isn’t something I’m working on at all. There’s a bug filed for it (bug 193486). Also, it’s in the new roadmap (http://www.mozilla.org/roadmap), so sooner or later it’s going to happen.
    Regarding Inspector in Phoenix, just cc yourself on the bug. I can’t help with that one.

  4. integration is NOT what’s needed. to the contrary. we need MODULARIZATION of components. what is needed is:
    1. XUL runtime libraries installable seperately.
    2. browser (i.e. phoenix) built on the XUL lib
    3. email (minotaur) built on the XUL lib
    4. composer built on …
    5. irc built on …
    6. DOM inspector built on …
    7. good API for interconnectivity and namespace resolution definitions.
    8. the possibility to install/upgrade every component independantly of the others EASILY!!, as long as the dependant API doesn’t change (and also to replace components. i.e. phoenix supports the http protocol. others might also. give it enough perliminary thought such that the others might replace phoenix if the user wishes so)
    9. i’m sure MANY more XUL based apps will follow, as long as we don’t have to compile mozilla to make an XUL simple alarm clock. and we can distribute the app independant of the runtime libs.
    integration of DOM inspector with phoenix is a tactical move. we need strategic ones. and now’s THE time to make them, since mozilla is stopped, and we’re going for independant modules.
    cheers
    avih

  5. i would wish though that we could still have mozilla as an integrated suit as a reference platform (with navigator/irc/composer/email/address/calendar/etc). although in the future, such suite could well be all those independant packages installed in a sequence.
    cheers
    avih

  6. For the last time, I’m not the one hacking to make Inspector work on Phoenix, and I don’t know jack about Phoenix. For all I know, what I’m calling integration is really modularization. Phoenix and Inspector and modularization and installation and all that is really not relevant to me (by that, I mean it’s being worked on by others, and the code I’m hacking has nothing to do with that). Except possibly for bug 109682, and we’re not that advanced in the planning for it yet.
    Please understand me when I say I just cannot provide any support or intelligent debate on mod/integ/deriv/limit/whatever of Inspector with other applications. You’re preaching to the wrong audience.

  7. Another oldish bug for me to work on is bug 152122; the Inspector sidebar. That code hasn’t been touched since Nov 2001…

Comments are closed.