Firebug Roadmap

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(Added two more features)
(Struck all issues fixed in 'jsd2' branch)
(32 intermediate revisions not shown)
Line 3: Line 3:
== Strategy ==
== Strategy ==
-
This section describes goals and strategy that keeps Firebug a competitive in-browser tool and leader in space of in-browser developer tools.
+
This section describes the strategy and goals that keep Firebug a competitive in-browser tool and leader in space of in-browser developer tools.
-
 
+
-
* Improve memory footprint & performance
+
-
* Reuse built-in dev-tools API and components
+
-
* Innovate features that only Firebug can deliver
+
-
* Extension compatibility
+
-
* Faster release cycle
+
== Version Numbering ==
== Version Numbering ==
-
The next planned version number is: '''1.11'''
+
The next planned version number is '''1.13'''.
-
Development happens on [http://getfirebug.com/releases/firebug/1.11/ Firebug 1.11] branch (currently alpha).
+
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.
+
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 a feature can be support for JSD2 or even remote debugging.
== Schedule ==
== Schedule ==
-
The goal is to introduce new Firebug release till the end of 2012
 
-
 
{| class="wikitable" style=""
{| class="wikitable" style=""
|-  
|-  
! style="width:200px" | Phase || style="width:200px" | Start Date
! style="width:200px" | Phase || style="width:200px" | Start Date
|-  
|-  
-
| Alpha || Started
+
| Alpha || 2013-08-14
|-
|-
-
| Beta || 9th of November
+
| Beta || 2013-01-14
|-
|-
-
| Final Release || 7th of December
+
| Final release || 2013-02-14
|}
|}
-
* The entire release cycle (from the first alpha to the final release) should target 4-5 months
+
* The entire release cycle (from the first alpha to the final release) should target 6 months
* The beta phase should be at least 4 weeks
* The beta phase should be at least 4 weeks
* The new release should introduce 8-10 new features (or significant bug fixes)
* The new release should introduce 8-10 new features (or significant bug fixes)
Line 39: Line 31:
Use this section to suggest any feature you'd like to see in Firebug.next.
Use this section to suggest any feature you'd like to see in Firebug.next.
-
* JSD2 Adoption
+
* Remote Debugging (reason: allows debugging on mobile devices; built-in dev tools already have this)
-
* Remote Debugging
+
* Undo/redo option in HTML panel (+ CSS + DOM if possible) ([http://code.google.com/p/fbug/issues/detail?id=54 issue 54], [http://code.google.com/p/fbug/issues/detail?id=2569 issue 2569]; reason: people should be able to easily undo mistakes; built-in dev tools already have this)
-
* Integrating FireClosure
+
* Cut option in HTML panel ([http://code.google.com/p/fbug/issues/detail?id=6217 issue 6217]; reason: we already allow to copy HTML, OS conformity)
 +
* Ignoring scripts while debugging (aka "black boxing", [http://code.google.com/p/fbug/issues/detail?id=4888 issue 4888]; reason: makes debugging easier; built-in dev tools already [https://bugzilla.mozilla.org/show_bug.cgi?id=875034 have this])
 +
* Script pretty printing ([http://code.google.com/p/fbug/issues/detail?id=1238 issue 1238]; reason: people want to be able to debug compressed JavaScript)
 +
* New inspector ([http://code.google.com/p/fbug/issues/detail?id=4848 issue 4848]; would fix a bunch of problems; built-in dev tools already use [https://bugzilla.mozilla.org/show_bug.cgi?id=724507 a better approach])
 +
* Display of pseudo-elements inside [[HTML Panel]] ([http://code.google.com/p/fbug/issues/detail?id=5785 issue 5785]; reason: better UI and [http://code.google.com/p/fbug/issues/detail?id=6456 fixes issues]; built-in dev tools [https://bugzilla.mozilla.org/show_bug.cgi?id=694019 have this] now)
 +
* Linux theme ([http://code.google.com/p/fbug/issues/detail?id=471 issue 471]; reason: better integrated UI for Linux users)
 +
* Request auto-responder in the [[Net Panel]] ([http://code.google.com/p/fbug/issues/detail?id=6459 issue 6459]; reason: makes much easier to debug response headers and JS files in a production environment).
 +
* Integrate EventBug into Firebug ([http://code.google.com/p/fbug/issues/detail?id=5440 issue 5440]; reason: simplifies debugging of event listeners)
 +
 
 +
* New screencasts! ([http://code.google.com/p/fbug/issues/detail?id=4508 issue 4508]; reason: current screencasts are completely outdated, new features need to be described)
 +
* User statistics collector ([http://code.google.com/p/fbug/issues/detail?id=2633 2633]; reason: get info about Firebug usage to get a clue how to improve the UX)
 +
* Edit Javascript on-the-fly in the Script panel ([http://code.google.com/p/fbug/issues/detail?id=5083 5083]; reason: provide a powerful tool to test changes in the scripts)
== Planned Features / Changes ==
== Planned Features / Changes ==
Line 47: Line 50:
=== Regular Tasks ===
=== Regular Tasks ===
-
* [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.10 Firebug 1.10 blockers] (not fixed)
+
* [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.12 Firebug 1.12 blockers]
-
* [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.11 Firebug 1.11 blockers]
+
=== Feature Overview ===
=== Feature Overview ===
Line 55: Line 57:
! style="width:200px" | Feature || style="width:120px" | Developers || Related Issues || Status
! style="width:200px" | Feature || style="width:120px" | Developers || Related Issues || Status
|-  
|-  
-
| 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
+
| [[#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
|-
|-
-
| 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
+
| [[#Syntax highlighting for JavaScript|Syntax highlighting for JavaScript]] || Honza || <strike>[http://code.google.com/p/fbug/issues/detail?id=4823 Issue 4823]: Native javascript code color/highlight (without FireRainbow extension)</strike><br/><strike>[http://code.google.com/p/fbug/issues/detail?id=5175 Issue 5175]: Integrate Orion as replacement for the Script panel UI</strike><br/>[http://code.google.com/p/fbug/issues/detail?id=5353 Issue 5353]: Integrate CodeMirror || style="background-color:gold; font-weight:bold;" | started
|-
|-
-
| SPDY Support || Bharath || [http://code.google.com/p/fbug/issues/detail?id=5696 Issue 5696]: SPDY support in the Net panel || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
| [[#Auto-completion for Command Editor|Auto-completion for Command Editor]] || Simon || <strike>[http://code.google.com/p/fbug/issues/detail?id=55 Issue 55]: Auto-completion for Command Editor</strike><br/>[http://code.google.com/p/fbug/issues/detail?id=5741 issue 5741]: Auto-completion within expression in Command Line || style="background-color:gold; font-weight:bold;" | started
-
|-
+
-
| Support for <code>PerformanceTiming</code> || Honza || [http://code.google.com/p/fbug/issues/detail?id=5843 Issue 5843]: Support for PerformanceTiming spec || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
-
|-
+
-
| Integrate SelectBug || Honza || [http://code.google.com/p/fbug/issues/detail?id=5931 Issue 5843]: Integrate SelectBug extension into Firebug || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
-
|-
+
-
| Improve <code>$x()</code> || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=18 Issue 18]: Beef up $x || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
-
|-
+
-
| Auto-completion for [[Command Line|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
+
-
|-
+
-
| 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
+
|-
|-
-
| 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
+
| [[#Line numbers in CSS Edit Mode|Line numbers in CSS Edit Mode]] || Farshid || <strike>[http://code.google.com/p/fbug/issues/detail?id=2153 Issue 2153]: Show line numbers in Edit mode</strike> || style="background-color:gold; font-weight:bold;" | started
|-
|-
-
| Deleting all watch expressions at once || Florent || [http://code.google.com/p/fbug/issues/detail?id=5639 Issue 5639]: Allow deleting all watch expressions at once || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
| [[#Folding for shorthand properties|Folding for shorthand properties]] || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=5523 Issue 5523]: Folding for shorthand properties || style="background-color:lightgrey; font-weight:bold; color:black;" | not started
|-
|-
-
| Activate Same Origin URLs enhancements || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=2202 Issue 2202]: Activate Same Origin URLs enhancements || style="background-color:lightgrey; font-weight:bold; color:black;" | not started
+
| [[#Sniff WebSocket traffic|Sniff WebSocket traffic]] || Florent || [http://code.google.com/p/fbug/issues/detail?id=6330 Issue 6330]: Sniff WebSocket traffic || style="background-color:lightgrey; font-weight:bold; color:black;" | not started
|-
|-
 +
| [[#Display the return value and the exception thrown|Display the return value and the exception thrown]] || Florent || <strike>[http://code.google.com/p/fbug/issues/detail?id=6855 Issue 6855]:  Display the returned value or the exception thrown </strike><br />[http://code.google.com/p/fbug/issues/detail?id=6857 Issue 6857]:  Give the ability to modify the returned value (blocked by platform [https://bugzilla.mozilla.org/show_bug.cgi?id=736733bug #736733]) || style="background-color:gold; font-weight:bold;" | started
|}
|}
-
* Feature planning should keep in mind the suggested release schedule above
+
Feature planning should keep in mind the suggested release schedule above
=== Feature Description ===
=== Feature Description ===
Line 92: Line 85:
'''Resources:'''
'''Resources:'''
-
* [https://getfirebug.com/wiki/index.php/Firebug_1.7:_Mozilla_Backend Firebug 1.7 BTI]
+
* [[Firebug 1.7: Mozilla Backend|Firebug 1.7 BTI]]
-
* [https://getfirebug.com/wiki/index.php/Script_Panel_Refactoring Script Panel Refactoring]
+
* [[Script Panel Refactoring]]
-
* [https://getfirebug.com/wiki/index.php/Remoting_Prototype Remoting Prototype]
+
* [[Remoting Prototype]]
-
* [https://getfirebug.com/wiki/index.php/Remoting_Architecture Remoting Architecture]
+
* [[Remoting Architecture]]
 +
* [[JSD2 Adoption||JSD2 List of tasks]]
'''Source Repository:'''
'''Source Repository:'''
Development happens on [https://github.com/firebug/firebug/commits/jsd2 JSD2 branch]
Development happens on [https://github.com/firebug/firebug/commits/jsd2 JSD2 branch]
-
==== SPDY Support ====
+
==== Syntax highlighting for JavaScript ====
 +
The [[Script Panel]] should have syntax highlighting enabled for the displayed JavaScript code.
 +
 
'''Tasks:'''
'''Tasks:'''
-
* Display use of SPDY protocol for requests inside [[Net Panel]]
+
* Replace <code>SourceBox</code> code by Orion
 +
* Re-add context menu options
 +
* Adjust CSS to match the Firebug UI
-
==== Group Console Messages ====
+
==== Auto-completion for Command Editor ====
-
Console messages optionally need to be grouped to avoid spamming the [[Console Panel]].
+
Add the [[Command Line]] auto-completion to the (multi-line) [[Command Line|Command Editor]] inside the [[Console Panel]].
'''Tasks:'''
'''Tasks:'''
-
* Group error messages
+
* Allow auto-completion within an expression
-
* Group messages produced by the <code>console</code> object
+
* Add auto-completion to the Command Editor
 +
* Enhance positioning of the Completion List Popup
-
==== Support for <code>PerformanceTiming</code> ====
+
==== Line numbers in CSS Edit Mode ====
-
Performance timing data accessible through <code>window.performance.timing</code> should be displayed.
+
The Source Edit Mode of the [[CSS Panel]] should have line numbers for easier navigation.
-
 
+
-
'''Tasks:'''
+
-
* Decide where and how to display the data (probably inside [[Console Panel]])
+
-
* Create the graphical display
+
-
==== Integrate SelectBug ====
 
'''Tasks:'''
'''Tasks:'''
-
* Integrate SelectBug
+
* Integrate Orion into the Source Edit Mode
-
* Fix any occurring errors
+
* Ajust the display to fit to the Firebug UI
-
==== Improve <code>$x()</code> ====
+
==== Folding for shorthand properties ====
-
The [[Command Line API]] <code>[[$x()]]</code> should cover all functionality of <code>[https://developer.mozilla.org/en-US/docs/DOM/document.evaluate document.evaluate()]</code>.
+
For shorthand CSS properties it should be possible to expand them to see the longhand properties that make them up.
'''Tasks:'''
'''Tasks:'''
-
* Let <code>$x()</code> return arrays, strings, integers and booleans
+
* Save the longhand properties to every shorthand property
-
* Add a parameter to specify the root element
+
* Create a twisty and allow toggling the display of the longhand properties
-
* Add a parameter to specify the return type
+
* Remove the ''Expand Shorthand Properties'' option
-
==== Auto-completion for Command Editor ====
 
-
Add the [[Command Line]] auto-completion to the (multi-line) [[Command Line|Command Editor]] inside the [[Console Panel]].
 
-
'''Tasks:'''
+
==== Sniff WebSocket traffic ====
-
* Allow auto-completion within an expression
+
WebSocket requests should be displayed to the user.
-
* Add auto-completion to the Command Editor
+
-
* Enhance positioning of the Completion List Popup
+
-
 
+
-
==== Event types filter ====
+
-
The user should have the possibility to choose certain event types to be logged to the [[Console Panel]].
+
'''Tasks:'''
'''Tasks:'''
-
* Create menu items for the different event groups
+
* Create new tab for WebSocket requests
-
* Refactor setting the event types to work together with the ones set via <code>[[monitorEvents()]]</code>.
+
* Listen to WebSocket traffic
 +
* Dynamically output the WebSocket messages
-
==== Syntax highlighting for JavaScript ====
+
==== Display the return value and the exception thrown ====
-
The [[Script Panel]] should have syntax highlighting enabled for the displayed JavaScript code.
+
The value being returned or the exception being thrown should be displayed to the user.
'''Tasks:'''
'''Tasks:'''
-
* Replace <code>SourceBox</code> code by Orion
+
* Display a special "scope" row in the watch panel with these values
-
* Re-add context menu options
+
* Change the background color for this row
-
* Adjust CSS to match the Firebug UI
+
* Give the ability to edit the return value (future plan)
 +
* Prevent the user from editing the exception thrown or the return value (for now)
== Resources ==
== Resources ==
-
* [https://getfirebug.com/wiki/index.php/Firebug_Roadmap_1.10 Firebug 1.10 Roadmap]
+
* [[Firebug 1.12 Roadmap]]
 +
 
 +
[[Category:Firebug]]
 +
[[Category:Firebug Development]]

Revision as of 20:56, 30 November 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.13.

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 a feature can be support for JSD2 or even remote debugging.

Schedule

Phase Start Date
Alpha 2013-08-14
Beta 2013-01-14
Final release 2013-02-14
  • The entire release cycle (from the first alpha to the final release) should target 6 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.

  • Remote Debugging (reason: allows debugging on mobile devices; built-in dev tools already have this)
  • Undo/redo option in HTML panel (+ CSS + DOM if possible) (issue 54, issue 2569; reason: people should be able to easily undo mistakes; built-in dev tools already have this)
  • Cut option in HTML panel (issue 6217; reason: we already allow to copy HTML, OS conformity)
  • Ignoring scripts while debugging (aka "black boxing", issue 4888; reason: makes debugging easier; built-in dev tools already have this)
  • Script pretty printing (issue 1238; reason: people want to be able to debug compressed JavaScript)
  • New inspector (issue 4848; would fix a bunch of problems; built-in dev tools already use a better approach)
  • Display of pseudo-elements inside HTML Panel (issue 5785; reason: better UI and fixes issues; built-in dev tools have this now)
  • Linux theme (issue 471; reason: better integrated UI for Linux users)
  • Request auto-responder in the Net Panel (issue 6459; reason: makes much easier to debug response headers and JS files in a production environment).
  • Integrate EventBug into Firebug (issue 5440; reason: simplifies debugging of event listeners)
  • New screencasts! (issue 4508; reason: current screencasts are completely outdated, new features need to be described)
  • User statistics collector (2633; reason: get info about Firebug usage to get a clue how to improve the UX)
  • Edit Javascript on-the-fly in the Script panel (5083; reason: provide a powerful tool to test changes in the scripts)

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

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
Issue 5353: Integrate CodeMirror
started
Auto-completion for Command Editor Simon Issue 55: Auto-completion for Command Editor
issue 5741: Auto-completion within expression in Command Line
started
Line numbers in CSS Edit Mode Farshid Issue 2153: Show line numbers in Edit mode started
Folding for shorthand properties Sebastian Issue 5523: Folding for shorthand properties not started
Sniff WebSocket traffic Florent Issue 6330: Sniff WebSocket traffic not started
Display the return value and the exception thrown Florent Issue 6855: Display the returned value or the exception thrown
Issue 6857: Give the ability to modify the returned value (blocked by platform #736733)
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 SourceBox code by Orion
  • Re-add context menu options
  • Adjust CSS to match the Firebug UI

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

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

Folding for shorthand properties

For shorthand CSS properties it should be possible to expand them to see the longhand properties that make them up.

Tasks:

  • Save the longhand properties to every shorthand property
  • Create a twisty and allow toggling the display of the longhand properties
  • Remove the Expand Shorthand Properties option


Sniff WebSocket traffic

WebSocket requests should be displayed to the user.

Tasks:

  • Create new tab for WebSocket requests
  • Listen to WebSocket traffic
  • Dynamically output the WebSocket messages

Display the return value and the exception thrown

The value being returned or the exception being thrown should be displayed to the user.

Tasks:

  • Display a special "scope" row in the watch panel with these values
  • Change the background color for this row
  • Give the ability to edit the return value (future plan)
  • Prevent the user from editing the exception thrown or the return value (for now)

Resources

Personal tools