Firebug Roadmap

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
m (Changed issue for Orion Text View)
(Added status column to roadmap table)
Line 203: Line 203:
{| class="wikitable" style="vertical-align:top;"
{| class="wikitable" style="vertical-align:top;"
|- bgcolor=lightgrey
|- bgcolor=lightgrey
-
! style="width:230px" | Feature || style="width:230px" | Developers || Related Issues
+
! style="width:230px" | Feature || style="width:230px" | Developers || Related Issues || Status
|-  
|-  
-
| Delayed Firebug Load || Honza, Harutyun? || [http://code.google.com/p/fbug/issues/detail?id=4989 Issue 4989]: Separate global UI (browser.xul) from Firebug UI (firebugFrame.xul)
+
| Delayed Firebug Load || Honza, Harutyun? || [http://code.google.com/p/fbug/issues/detail?id=4989 Issue 4989]: Separate global UI (browser.xul) from Firebug UI (firebugFrame.xul) || <span style="font-weight:bold; color:green;">done</span>
|-  
|-  
-
| Orion Text View || Honza || [http://code.google.com/p/fbug/issues/detail?id=5175 Issue 5175]: Integrate Orion as replacement for the Script panel UI
+
| Orion Text View || Honza || [http://code.google.com/p/fbug/issues/detail?id=5175 Issue 5175]: Integrate Orion as replacement for the Script panel UI || not started
|-
|-
-
| Firecookie || Honza || TODO
+
| Firecookie || Honza || TODO || not started
|-
|-
-
| Remote HTTP Monitor || Honza || TODO
+
| Remote HTTP Monitor || Honza || TODO || not started
|-
|-
-
| Restart-less Firebug Extensions || Honza || TODO
+
| Restart-less Firebug Extensions || Honza || TODO || not started
|-
|-
-
| JSD2 || Honza || TODO
+
| JSD2 || Honza || TODO || not started
|-
|-
-
| Review Internal File Structure || Honza, Sebastian || [http://code.google.com/p/fbug/issues/detail?id=4960 Issue 4960]: Review internal file structure
+
| Review Internal File Structure || Honza, Sebastian || [http://code.google.com/p/fbug/issues/detail?id=4960 Issue 4960]: Review internal file structure || <span style="color:goldenrod;">started</span>
|-
|-
-
| Style Tracing || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=2916 Issue 2916]: Trace Styles Feature
+
| Style Tracing || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=2916 Issue 2916]: Trace Styles Feature || not started
|-
|-
-
| New Inspector || - || [http://code.google.com/p/fbug/issues/detail?id=4848 Issue 4848]: Create new SVG inspector
+
| New Inspector || - || [http://code.google.com/p/fbug/issues/detail?id=4848 Issue 4848]: Create new SVG inspector || not started
|-
|-
-
| Net Panel Improvements || - || [http://code.google.com/p/fbug/issues/detail?id=2617 Issue 2617]: Net panel header should be fixed on top instead of scrolling with the content
+
| Net Panel Improvements || - || [http://code.google.com/p/fbug/issues/detail?id=2617 Issue 2617]: Net panel header should be fixed on top instead of scrolling with the content || not started
|-
|-
-
| HTML Entities || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=3159 Issue 3159]: Show numeric character reference of MathML
+
| HTML Entities || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=3159 Issue 3159]: Show numeric character reference of MathML || <span style="font-weight:bold; color:green;">done</span>
|-
|-
| Breakpoint Improvements || - || [http://code.google.com/p/fbug/issues/detail?id=4378 Issue 4378]: Move editing of breakpoint conditions to Breakpoints Side Panel
| Breakpoint Improvements || - || [http://code.google.com/p/fbug/issues/detail?id=4378 Issue 4378]: Move editing of breakpoint conditions to Breakpoints Side Panel
-
[http://code.google.com/p/fbug/issues/detail?id=2817 Issue 2817]: Hit counts for breakpoints
+
[http://code.google.com/p/fbug/issues/detail?id=2817 Issue 2817]: Hit counts for breakpoints || not started
|-
|-
-
| Group Console Messages || - || [http://code.google.com/p/fbug/issues/detail?id=4979 Issue 4979]: Group console messages
+
| Group Console Messages || - || [http://code.google.com/p/fbug/issues/detail?id=4979 Issue 4979]: Group console messages || not started
|}
|}

Revision as of 06:51, 13 March 2012

  • This page is intended to summarize plans and directions for Firebug.next
  • This summary should also help FWG to prioritize planned steps and features.


Contents

Status

Current status of Firebug development.

Firebug 1.8

Development frozen on this branch.

Firebug 1.9

Firebug 1.9 is the last released version (available on AMO and getfirebug.com) compatible with Firefox 5-11. Selected patches will be back-ported from 1.10.

Firebug 1.10

Development happens on Firebug 1.10 branch (currently alpha).


Goals for Firebug.next

  • Improve memory footprint & performance
  • Reuse built-in dev-tools API and components
  • Innovate features that only Firebug can deliver


New Features for 1.10

This section lists of all suggested areas FWG should focus on in Firebug 1.10

Regular Tasks:


Delayed Firebug Load

Firebug UI & Logic is mostly running inside an iframe (chrome://firebug/content/firebugFrame.xul). The goal here is to load the content of the iframe on demand at soon as the user needs Firebug the first time.

However there are some pieces that are running within the global Firefox UI (browser.xul) and must be loaded immediately after the browser window is loaded.

  • Page context menu (inspector, open with editor)
  • Firebug global menu (tool, view, web developer, ...)
  • Firebug start button (Firefox toolbar)
  • Firebug iframe and a splitter

Firebug iframe content should be automatically loaded when the user presses F12 or uses any command available through an existing menu or a keyboard shortcut. Such functionality requires all global parts to be clearly separated and independent for the Firebug UI itself (the one running in the iframe).

Tasks:

  • Separate Firebug UI from Global UI (create separate directory for global parts)
  • Create a command dispatcher for global commands that loads Firebug if necessary.
  • Initialize global UI independently of Firebug availability (e.g. translations)
  • Adapt to the current


Orion Text View Integration

The Script panel content (JavaScript text view) should be based on Orion Text View. The goal here is to have syntax coloring and improved performance for huge scripts.

Tasks:

  • Remove all code related to Script panel content generation (firebug/js/sourceBox module)
  • Integrate Orion Text View
  • Create a new Orion breakpoint ruler
  • Support for tooltips displaying result of and evaluated expressions under the mouse (based on Orion Text Styler)
  • Part of the integration is also using SourceEditor (Firefox 8+) for multiline console (command editor).

Firecookie Integration

Firecookie is a an extension for Firebug that makes possible to view and manage cookies in your browser.

It was required many times to have such functionality included in Firebug by default.

Tasks:

  • Firecookie code base doesn't support AMD
  • The code should be divided into more (AMD) modules
  • Support for backward compatibility can be removed
  • Blocking issues should be fixed
  • Firecookie automated tests should be merged into Firebug test list

Remote HTTP Monitor

The Net panel should use Remote Debugging Protocol (RDP) to communicate with the server side that is performing HTTP monitoring. This should enabled remote HTTP monitoring e.g. for mobile devices.

The server side script should be using the following interfaces (to monitor HTTP):

  • nsIActivityDistributor
  • nsIActivityObserver
  • nsIWebProgressListener (monitors the file:/// protocol)
  • nsIObserver (monitors http-on-* events to catch also BFCache responses)
  • nsITraceableChannel (intercepts response bodies)

Resources:

Tasks:

  • Define new actors and extend the RDP protocol
  • Clean separation of the client and server parts
  • Communication between client and server based on JSON packets
  • Optimization


Restart-less Firebug Extensions

There should be a way how to install Firebug and extensions without Firefox restart. Some API related to dynamic registration are already available.

Tasks:

  • Review API for dynamic adding/removal of panels
  • Review API for dynamic adding/removal of modules
  • Review extension example
  • Update documentation/tutorial

Resources:

JSD2

JSD2 (also known as JSDBG2 or JSDBGAPI) represents new API for JS debugging in Firefox.

Jim Blandy and Jason Orendorff are working on a JS implementation of JSD built on top of the JSDBG2 API (a wrapper). This wrapper should be injected into Firebug and make it compatible with JSDBG2. Prototype implementation is available (Firebug 1.9 fork).

Work on this goal depends on how much ready JSD2 is.

TBD

Resources:


Review Internal File Structure

If parts break extensions, they will go into 2.0.

Tasks:

  • Convert last few files into (AMD) modules
  • Split huge files into more modules
  • Suggest places/modules that needs refactoring (e.g. TabWatcher)


Style tracing

The CSS Panel should offer a different view on CSS properties to allow to find out how a specific value was generated.

Tasks:

  • Investigate built-in CSS API
  • Create a new property-based view for the CSS panel using the built-in CSS API
    • Add option to the CSS panel to toggle between the current view and the property-based view
    • Add display of assigned properties, which can be expanded to see the trace
    • Allow disabling of single styles in the trace and the complete style trace

New Inspector

Firebug should reuse the existing built-in Inspector to avoid conflicts with the page styles.

Tasks:

Net Panel Improvements

Proposed Net panel improvements

  • Net panel header should not scroll.


HTML entities

The HTML Panel needs different options how entities are displayed.

There should be three display options inside the HTML panel's options menu:

  • Show Entities as Symbols
  • Show Entities as Names
  • Show Entities as Unicode

Resources:

Tasks:

  • Find out how the API is working exactly
  • Implement new mapping function in lib/string.js including the API
  • Implement the new options


Breakpoint Improvements

Several new features related to breakpoints should be introduced. It should be possible to specify how many times a breakpoint should be hit before it breaks the script execution as well as to create and edit breakpoint conditions in the Breakpoints Side Panel.

Tasks:

  • Change the Breakpoints side panel to allow inline editing (required for the other tasks)
  • Hit count for breakpoints
    • Implement hit count into debugger
    • Add hit count to Breakpoints side panel
  • Move breakpoint condition editing to the Breakpoints side panel
    • Add breakpoint condition to Breakpoints side panel
    • Add context menu to Breakpoint Column containing option to edit the condition

Group Console Messages

Console messages optionally need to be grouped to avoid spamming the Console Panel.

Tasks:

  • Group error messages
  • Group messages produced by the 'console' object


Implementation

See the following table that summarizes list of features and dev folks working on them. Append yourself as a developer to features you are interested in to participate.

Feature Developers Related Issues Status
Delayed Firebug Load Honza, Harutyun? Issue 4989: Separate global UI (browser.xul) from Firebug UI (firebugFrame.xul) done
Orion Text View Honza Issue 5175: Integrate Orion as replacement for the Script panel UI not started
Firecookie Honza TODO not started
Remote HTTP Monitor Honza TODO not started
Restart-less Firebug Extensions Honza TODO not started
JSD2 Honza TODO not started
Review Internal File Structure Honza, Sebastian Issue 4960: Review internal file structure started
Style Tracing Sebastian Issue 2916: Trace Styles Feature not started
New Inspector - Issue 4848: Create new SVG inspector not started
Net Panel Improvements - Issue 2617: Net panel header should be fixed on top instead of scrolling with the content not started
HTML Entities Sebastian Issue 3159: Show numeric character reference of MathML done
Breakpoint Improvements - Issue 4378: Move editing of breakpoint conditions to Breakpoints Side Panel

Issue 2817: Hit counts for breakpoints || not started

Group Console Messages - Issue 4979: Group console messages not started

Further Suggestions

Please append further suggestions for new 1.10 features in this section so. We'll yet discuss all these suggestions.

Better user feedback

This has been already discussed before. It could be useful to have more feedback from Firebug users and use it for targeted improvements. The feedback should be collected using Testpilot and its related infrustructure and/or through a Firebug extension.

Questions:

  • What specific data should be collected?
  • What kind of knowledge we can get from the collected data?

Resources:


Mapping of URLs to file system paths

Firebug currently doesn't have any connection to the server files. Many people don't understand that and they are asking how to achieve that. This change would at least allow mapping between local server URLs and the file system.

Questions:

  • How is this related to Firediff?

Resources:

Open Questions

  • Apart from Firecookie integration, are there any other extensions we would like to distribute with Firebug by default? (e.g. EventBug, FireStarter, NetExport, ...).
  • What further API/Components related to built-in dev tools could be reused by Firebug?
Personal tools