Firebug Roadmap
From FirebugWiki
Sebastianz (Talk | contribs) m (Added issue for integration of Firecookie) |
Sebastianz (Talk | contribs) m (Removed "Window/Document menu" from the roadmap because we won't have enough resources for it) |
||
| (36 intermediate revisions not shown) | |||
| Line 1: | Line 1: | ||
* This page is intended to summarize plans and directions for Firebug.next | * This page is intended to summarize plans and directions for Firebug.next | ||
| + | * Provide any feedback on Firebug [https://groups.google.com/forum/#!forum/firebug newsgroup] | ||
| - | + | == Strategy == | |
| + | This section describes the strategy and goals that keep Firebug a competitive in-browser tool and leader in space of in-browser developer tools. | ||
| - | + | == Version Numbering == | |
| + | The next planned version number is: '''1.12''' | ||
| + | Development happens on [https://github.com/firebug/firebug <code>master</code>] branch (currently alpha). | ||
| - | + | If a significant new feature (or set of features) is introduced in new release, the version numbering can move into 2.* scheme. An example of such feature can be support for remote debugging. | |
| - | + | ||
| - | == | + | == Schedule == |
| - | + | The goal is to introduce new Firebug release till April 2013 | |
| - | === | + | {| class="wikitable" style="" |
| - | + | |- | |
| + | ! style="width:200px" | Phase || style="width:200px" | Start Date | ||
| + | |- | ||
| + | | Alpha || Started | ||
| + | |- | ||
| + | | Beta || - | ||
| + | |- | ||
| + | | Final Release || - | ||
| + | |} | ||
| - | + | * The entire release cycle (from the first alpha to the final release) should target 4-5 months | |
| - | + | * The beta phase should be at least 4 weeks | |
| + | * The new release should introduce 8-10 new features (or significant bug fixes) | ||
| + | == Suggested Features == | ||
| + | Use this section to suggest any feature you'd like to see in Firebug.next. | ||
| - | + | * JSD2 Adoption | |
| + | * Remote Debugging | ||
| + | * Integrating FireClosure | ||
| - | + | == Planned Features / Changes == | |
| - | + | This section summarizes all features that are planned for Firebug.next. Every feature in this section must have an owner. | |
| - | + | ||
| - | == | + | === Regular Tasks === |
| + | * [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.10 Firebug 1.11 blockers] (not fixed) | ||
| + | * [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.11 Firebug 1.12 blockers] | ||
| - | + | === Feature Overview === | |
| - | + | {| class="wikitable" style="width: 100%;" | |
| - | + | ||
| - | {| class="wikitable" style=" | + | |
|- bgcolor=lightgrey | |- bgcolor=lightgrey | ||
| - | ! style="width: | + | ! style="width:200px" | Feature || style="width:120px" | Developers || Related Issues || Status |
|- | |- | ||
| - | | | + | | [[#Adopt JSD2|Adopt JSD2]] || Honza, Sebastian, Farshid || [http://code.google.com/p/fbug/issues/detail?id=5421 Issue 5421]: Adopt JSD2 || style="background-color:gold; font-weight:bold;" | started |
| - | + | ||
| - | + | ||
|- | |- | ||
| - | | | + | | [[#Syntax highlighting for JavaScript|Syntax highlighting for JavaScript]] || Honza || [http://code.google.com/p/fbug/issues/detail?id=4823 Issue 4823]: Native javascript code color/highlight (without FireRainbow extension)<br/>[http://code.google.com/p/fbug/issues/detail?id=5175 Issue 5175]: Integrate Orion as replacement for the Script panel UI || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Group console messages|Group console messages]] || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=4979 Issue 4979]: Group console messages || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Mutation events removal|Mutation events removal]] || Simon || [http://code.google.com/p/fbug/issues/detail?id=5490 Issue 5490]: Get rid of mutation events || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Auto-completion for Command Editor|Auto-completion for Command Editor]] || Simon || [http://code.google.com/p/fbug/issues/detail?id=55 Issue 55]: Auto-completion for Command Editor<br/>[http://code.google.com/p/fbug/issues/detail?id=5741 issue 5741]: Auto-completion within expression in Command Line || style="background-color:lightgrey; font-weight:bold; color:black;" | not started |
|- | |- | ||
| - | | | + | | [[#Closure Inspector|Closure Inspector]] || Simon || [http://code.google.com/p/fbug/issues/detail?id=5873 Issue 5873]: Integrate FireClosure<br/>[http://code.google.com/p/fbug/issues/detail?id=6183 Issue 6183]: Closure Inspector: some variables are treated as DOM properties<br/>[http://code.google.com/p/fbug/issues/detail?id=6184 Issue 6184]: Closure Inspector: named function expression scopes are duplicated<br/>[http://code.google.com/p/fbug/issues/detail?id=6185 Issue 6185]: Closure Inspector: .% syntax doesn't work when execution is stopped in frame || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Event types filter|Event types filter]] || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=229 Issue 229]: Allow event types to be filtered with "Log Events" || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Libraries code rewrite|Libraries code rewrite]] || Florent || [http://code.google.com/p/fbug/issues/detail?id=6164 Issue 6164]: Libraries code rewrite || style="background-color:gold; font-weight:bold;" | started |
|- | |- | ||
| - | | | + | | [[#Line numbers in CSS Edit Mode|Line numbers in CSS Edit Mode]] || - || [http://code.google.com/p/fbug/issues/detail?id=2153 Issue 2153]: Show line numbers in Edit mode || style="background-color:lightgrey; font-weight:bold; color:black;" | not started |
|- | |- | ||
| - | | | + | | [[#Cache options|Cache options]] || - || [http://code.google.com/p/fbug/issues/detail?id=4536 Issue 4536]: Cache options || style="background-color:lightgrey; font-weight:bold; color:black;" | not started |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
|} | |} | ||
| - | + | Feature planning should keep in mind the suggested release schedule above | |
| - | + | ||
| - | + | === Feature Description === | |
| - | + | This section provides detailed description of all planned features. | |
| - | + | ||
| - | + | ||
| + | ==== Adopt JSD2 ==== | ||
| + | Firebug script debugger and all related features like BON (break on ...) should be based on new JSD2 API. Using JSD2 API will also enable remote debugging. | ||
| - | + | Part of this task is also internal Firebug architecture refactoring so it's ready for remote debugging features. Note that adopting JSD2 doesn't automatically mean that Firebug is remote-debugging-ready. This is covered by [http://code.google.com/p/fbug/issues/detail?id=5837 issue 5837] | |
| - | Firebug | + | |
| - | + | Note that this task doesn't have to make it into Firebug.next, but it could be possible (if useful) to at least merge code changes. | |
| - | + | '''Resources:''' | |
| - | * Firebug | + | * [https://getfirebug.com/wiki/index.php/Firebug_1.7:_Mozilla_Backend Firebug 1.7 BTI] |
| - | * | + | * [https://getfirebug.com/wiki/index.php/Script_Panel_Refactoring Script Panel Refactoring] |
| - | * | + | * [https://getfirebug.com/wiki/index.php/Remoting_Prototype Remoting Prototype] |
| + | * [https://getfirebug.com/wiki/index.php/Remoting_Architecture Remoting Architecture] | ||
| - | + | '''Source Repository:''' | |
| + | Development happens on [https://github.com/firebug/firebug/commits/jsd2 JSD2 branch] | ||
| - | + | ==== Syntax highlighting for JavaScript ==== | |
| - | + | The [[Script Panel]] should have syntax highlighting enabled for the displayed JavaScript code. | |
| - | + | ||
| - | + | ||
| - | + | ||
| + | '''Tasks:''' | ||
| + | * Replace <code>SourceBox</code> code by Orion | ||
| + | * Re-add context menu options | ||
| + | * Adjust CSS to match the Firebug UI | ||
| - | === | + | ==== Group console messages ==== |
| - | + | Console messages optionally need to be grouped to avoid spamming the [[Console Panel]]. | |
| - | Tasks: | + | '''Tasks:''' |
| - | * | + | * Group error messages |
| - | * | + | * Group messages produced by the <code>console</code> object |
| - | + | ||
| - | + | ||
| - | + | ||
| - | === | + | ==== Mutation events removal ==== |
| - | + | Mutation events are replaced by mutation observers. So we need to move to them. | |
| - | + | '''Tasks:''' | |
| + | * Replace mutation events by mutation observers in HTML panel | ||
| + | * Replace mutation events by mutation observers in CSS panel | ||
| + | * Remove "mutation" event type | ||
| + | * Replace mutation events by mutation observers in FBTest | ||
| - | + | '''Resources:''' | |
| - | + | * [https://developer.mozilla.org/en/DOM/DOM_Mutation_Observers Mutation observers reference] | |
| - | * | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | === | + | ==== Auto-completion for Command Editor ==== |
| - | + | Add the [[Command Line]] auto-completion to the (multi-line) [[Command Line|Command Editor]] inside the [[Console Panel]]. | |
| - | + | '''Tasks:''' | |
| - | * | + | * Allow auto-completion within an expression |
| - | * | + | * Add auto-completion to the Command Editor |
| - | + | * Enhance positioning of the Completion List Popup | |
| - | + | ||
| - | * | + | |
| - | + | ==== Closure Inspector ==== | |
| - | + | Closure variables should be displayed inside the [[DOM Panel]] and be accesssible via the [[Command Line]]. | |
| - | + | ||
| - | Tasks: | + | '''Tasks:''' |
| - | * | + | * Integrate FireClosure |
| - | * | + | * Improve UI |
| - | * | + | * Fix issues of FireClosure |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | '''Resources:''' | |
| - | + | * [https://github.com/simonlindholm/fireclosure FireClosure repository] | |
| - | === | + | ==== Event types filter ==== |
| - | + | The user should have the possibility to choose certain event types to be logged to the [[Console Panel]]. | |
| - | + | '''Tasks:''' | |
| - | * | + | * Create menu items for the different event groups |
| - | * | + | * Refactor setting the event types to work together with the ones set via <code>[[monitorEvents()]]</code>. |
| - | + | ==== Libraries code rewrite ==== | |
| - | + | The APIs inside the <code>/lib</code> should be refactored to simplify and optimize them. Because extensions are also using these functions, it is important to keep the backward compatibility as far as possible. | |
| - | + | ||
| + | '''Tasks:''' | ||
| + | * Rewrite the functions | ||
| + | * Add JSDocs to all functions | ||
| - | === | + | ==== Line numbers in CSS Edit Mode ==== |
| - | + | The Source Edit Mode of the [[CSS Panel]] should have line numbers for easier navigation. | |
| - | + | ||
| - | + | '''Tasks:''' | |
| - | * | + | * Integrate Orion into the Source Edit Mode |
| + | * Ajust the display to fit to the Firebug UI | ||
| - | + | ==== Cache options ==== | |
| - | + | Reading the Firebug preferences from the Firefox preferences should just happen once to avoid unnecessary disk accesses. | |
| - | + | '''Tasks:''' | |
| + | * Adjust <code>getPref()</code> | ||
| + | * Adjust <code>setPref()</code> | ||
| - | * | + | == Resources == |
| - | + | * [https://getfirebug.com/wiki/index.php/Firebug_Roadmap_1.11 Firebug 1.11 Roadmap] | |
Revision as of 09:29, 24 January 2013
- This page is intended to summarize plans and directions for Firebug.next
- Provide any feedback on Firebug newsgroup
Contents |
Strategy
This section describes the strategy and goals that keep Firebug a competitive in-browser tool and leader in space of in-browser developer tools.
Version Numbering
The next planned version number is: 1.12
Development happens on master branch (currently alpha).
If a significant new feature (or set of features) is introduced in new release, the version numbering can move into 2.* scheme. An example of such feature can be support for remote debugging.
Schedule
The goal is to introduce new Firebug release till April 2013
| Phase | Start Date |
|---|---|
| Alpha | Started |
| Beta | - |
| Final Release | - |
- The entire release cycle (from the first alpha to the final release) should target 4-5 months
- The beta phase should be at least 4 weeks
- The new release should introduce 8-10 new features (or significant bug fixes)
Suggested Features
Use this section to suggest any feature you'd like to see in Firebug.next.
- JSD2 Adoption
- Remote Debugging
- Integrating FireClosure
Planned Features / Changes
This section summarizes all features that are planned for Firebug.next. Every feature in this section must have an owner.
Regular Tasks
- Firebug 1.11 blockers (not fixed)
- Firebug 1.12 blockers
Feature Overview
| Feature | Developers | Related Issues | Status |
|---|---|---|---|
| Adopt JSD2 | Honza, Sebastian, Farshid | Issue 5421: Adopt JSD2 | started |
| Syntax highlighting for JavaScript | Honza | Issue 4823: Native javascript code color/highlight (without FireRainbow extension) Issue 5175: Integrate Orion as replacement for the Script panel UI | started |
| Group console messages | Sebastian | Issue 4979: Group console messages | started |
| Mutation events removal | Simon | Issue 5490: Get rid of mutation events | started |
| Auto-completion for Command Editor | Simon | Issue 55: Auto-completion for Command Editor issue 5741: Auto-completion within expression in Command Line | not started |
| Closure Inspector | Simon | Issue 5873: Integrate FireClosure Issue 6183: Closure Inspector: some variables are treated as DOM properties Issue 6184: Closure Inspector: named function expression scopes are duplicated Issue 6185: Closure Inspector: .% syntax doesn't work when execution is stopped in frame | started |
| Event types filter | Sebastian | Issue 229: Allow event types to be filtered with "Log Events" | started |
| Libraries code rewrite | Florent | Issue 6164: Libraries code rewrite | started |
| Line numbers in CSS Edit Mode | - | Issue 2153: Show line numbers in Edit mode | not started |
| Cache options | - | Issue 4536: Cache options | not started |
Feature planning should keep in mind the suggested release schedule above
Feature Description
This section provides detailed description of all planned features.
Adopt JSD2
Firebug script debugger and all related features like BON (break on ...) should be based on new JSD2 API. Using JSD2 API will also enable remote debugging.
Part of this task is also internal Firebug architecture refactoring so it's ready for remote debugging features. Note that adopting JSD2 doesn't automatically mean that Firebug is remote-debugging-ready. This is covered by issue 5837
Note that this task doesn't have to make it into Firebug.next, but it could be possible (if useful) to at least merge code changes.
Resources:
Source Repository: Development happens on JSD2 branch
Syntax highlighting for JavaScript
The Script Panel should have syntax highlighting enabled for the displayed JavaScript code.
Tasks:
- Replace
SourceBoxcode by Orion - Re-add context menu options
- Adjust CSS to match the Firebug UI
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
consoleobject
Mutation events removal
Mutation events are replaced by mutation observers. So we need to move to them.
Tasks:
- Replace mutation events by mutation observers in HTML panel
- Replace mutation events by mutation observers in CSS panel
- Remove "mutation" event type
- Replace mutation events by mutation observers in FBTest
Resources:
Auto-completion for Command Editor
Add the Command Line auto-completion to the (multi-line) Command Editor inside the Console Panel.
Tasks:
- Allow auto-completion within an expression
- Add auto-completion to the Command Editor
- Enhance positioning of the Completion List Popup
Closure Inspector
Closure variables should be displayed inside the DOM Panel and be accesssible via the Command Line.
Tasks:
- Integrate FireClosure
- Improve UI
- Fix issues of FireClosure
Resources:
Event types filter
The user should have the possibility to choose certain event types to be logged to the Console Panel.
Tasks:
- Create menu items for the different event groups
- Refactor setting the event types to work together with the ones set via
monitorEvents().
Libraries code rewrite
The APIs inside the /lib should be refactored to simplify and optimize them. Because extensions are also using these functions, it is important to keep the backward compatibility as far as possible.
Tasks:
- Rewrite the functions
- Add JSDocs to all functions
Line numbers in CSS Edit Mode
The Source Edit Mode of the CSS Panel should have line numbers for easier navigation.
Tasks:
- Integrate Orion into the Source Edit Mode
- Ajust the display to fit to the Firebug UI
Cache options
Reading the Firebug preferences from the Firefox preferences should just happen once to avoid unnecessary disk accesses.
Tasks:
- Adjust
getPref() - Adjust
setPref()