Firebug Roadmap

From FirebugWiki

(Difference between revisions)
Jump to: navigation, search
(Added style tracing task results)
(Added "Sniff WebSocket traffic" to the roadmap)
(43 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]
-
* This summary should also help [http://groups.google.com/group/firebug-working-group FWG] to prioritize planned steps and features.
+
== 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.
-
* Provide any feedback on Firebug [https://groups.google.com/forum/#!forum/firebug newsgroup]
+
== Version Numbering ==
 +
The next planned version number is '''1.13'''.
 +
Development happens on [https://github.com/firebug/firebug <code>master</code>] branch (currently alpha).
-
== Status ==
+
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.
-
Current status of Firebug development.
+
-
=== Firebug 1.8 ===
+
== Schedule ==
-
Development frozen on this branch.
+
{| class="wikitable" style=""
 +
|-
 +
! style="width:200px" | Phase || style="width:200px" | Start Date
 +
|-
 +
| Alpha || 2013-08-14
 +
|-
 +
| Beta || 2013-01-14
 +
|-
 +
| Final release || 2013-02-14
 +
|}
-
=== Firebug 1.9 ===
+
* The entire release cycle (from the first alpha to the final release) should target 6 months
-
[https://addons.mozilla.org/en-US/firefox/addon/firebug/ Firebug 1.9] is the last released version (available on AMO and getfirebug.com) compatible with Firefox 5-13. Selected patches will be back-ported from 1.10.
+
* The beta phase should be at least 4 weeks
 +
* The new release should introduce 8-10 new features (or significant bug fixes)
-
=== Firebug 1.10 ===
+
== Suggested Features ==
-
Development happens on [http://getfirebug.com/releases/firebug/1.10/ Firebug 1.10] branch (currently alpha).
+
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) ([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)
 +
* 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)
-
== Goals for Firebug.next ==
+
* 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)
-
* Improve memory footprint & performance
+
== Planned Features / Changes ==
-
* Reuse built-in dev-tools API and components
+
This section summarizes all features that are planned for Firebug.next. Every feature in this section must have an owner.
-
* Innovate features that only Firebug can deliver
+
-
== Summary ==
+
=== Regular Tasks ===
-
 
+
* [http://code.google.com/p/fbug/issues/list?can=2&q=blocks%3A1.12 Firebug 1.12 blockers]
-
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 Overview ===
{| class="wikitable" style="width: 100%;"
{| class="wikitable" style="width: 100%;"
|- bgcolor=lightgrey
|- bgcolor=lightgrey
! style="width:200px" | Feature || style="width:120px" | Developers || Related Issues || Status
! style="width:200px" | Feature || style="width:120px" | 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) || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
| [[#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
-
|-
+
-
| Orion Text View || Honza || [http://code.google.com/p/fbug/issues/detail?id=5219 Issue 5219]: Use SourceEditor (Orion) for Command Editor<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;" | started
+
|-
|-
-
| Firecookie || Honza || [http://code.google.com/p/fbug/issues/detail?id=5422 Issue 5422]: Integrate Firecookie into Firebug || style="background-color:gold;" | 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/><span style="text-decoration:line-through;">[http://code.google.com/p/fbug/issues/detail?id=5175 Issue 5175]: Integrate Orion as replacement for the Script panel UI</span><br/>[http://code.google.com/p/fbug/issues/detail?id=5353 Issue 5353]: Integrate CodeMirror instead of Orion editor || style="background-color:gold; font-weight:bold;" | started
|-
|-
-
| Remote HTTP Monitor || Honza || [http://code.google.com/p/fbug/issues/detail?id=5423 Issue 5423]: Integrate HTTP Monitor into Firebug || style="background-color:gold;" | 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
|-
|-
-
| Restart-less Firebug Extensions || Honza || TODO || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
| [[#Line numbers in CSS Edit Mode|Line numbers in CSS Edit Mode]] || Farshid || [http://code.google.com/p/fbug/issues/detail?id=2153 Issue 2153]: Show line numbers in Edit mode || style="background-color:gold; font-weight:bold;" | started
|-
|-
-
| JSD2 || Honza || [http://code.google.com/p/fbug/issues/detail?id=5421 Issue 5421]: Implement JSD2 || style="background-color:#C8C8C8;" | not started
+
| [[#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
|-
|-
-
| Review Internal File Structure || Honza, Sebastian || [http://code.google.com/p/fbug/issues/detail?id=4960 Issue 4960]: Review internal file structure || style="background-color:gold;" | 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
-
|-
+
-
| Style Tracing || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=2916 Issue 2916]: Trace Styles Feature || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
-
|-
+
-
| New Inspector || - || [http://code.google.com/p/fbug/issues/detail?id=4848 Issue 4848]: Create new SVG inspector || style="background-color:#C8C8C8;" | 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 || style="background-color:#C8C8C8;" | not started
+
-
|-
+
-
| HTML Entities || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=3159 Issue 3159]: Show numeric character reference of MathML || style="background-color:#00B400; font-weight:bold; color:white;" | done
+
-
|-
+
-
| Breakpoint Improvements || - || [http://code.google.com/p/fbug/issues/detail?id=4378 Issue 4378]: Move editing of breakpoint conditions to Breakpoints Side Panel<br/>[http://code.google.com/p/fbug/issues/detail?id=2817 Issue 2817]: Hit counts for breakpoints || style="background-color:#C8C8C8;" | not started
+
-
|-
+
-
| Group Console Messages || Sebastian || [http://code.google.com/p/fbug/issues/detail?id=4979 Issue 4979]: Group console messages || style="background-color:gold;" | started
+
|}
|}
-
== New Features for 1.10 ==
+
Feature planning should keep in mind the suggested release schedule above
-
This section lists of all suggested areas FWG should focus on in Firebug 1.10
+
-
 
+
-
Regular Tasks:
+
-
* [http://code.google.com/p/fbug/issues/list?can=2&q=label%3Ablocks-1.10&colspec=ID+Type+Status+Owner+Test+Summary+Reporter&cells=tiles Firebug 1.10 blockers]
+
-
* Memory leaks ([https://bugzilla.mozilla.org/show_bug.cgi?id=zombiehunter Zombie Hunter] is necessary)
+
-
** Fixing memory leaks is still the top Firebug priority.
+
-
 
+
-
=== 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 ===
+
-
[http://www.softwareishard.com/blog/firecookie/ 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 [http://code.google.com/p/firecookie/issues/list issues] should be fixed
+
-
* Firecookie automated tests should be merged into Firebug test list
+
-
 
+
-
=== Remote HTTP Monitor ===
+
-
The Net panel should use [https://wiki.mozilla.org/Remote_Debugging_Protocol 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 [http://www.softwareishard.com/blog/firebug/firebug-16-tracking-also-bfcache-reads/ BFCache] responses)
+
-
* nsITraceableChannel (intercepts response bodies)
+
-
 
+
-
Resources:
+
-
* [http://getfirebug.com/wiki/index.php/Net_Panel_Architecture_Review Net Panel Architecture Review]
+
-
* [http://getfirebug.com/wiki/index.php/Net_Panel_Remoting Net Panel Remoting]
+
-
* [http://getfirebug.com/wiki/index.php/HTTP_Monitor HTTP Monitor]
+
-
 
+
-
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:
+
-
* http://code.google.com/p/fbug/issues/detail?id=4686
+
-
* https://github.com/cadorn/jetpack-firebug
+
-
 
+
-
=== 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 [http://hg.mozilla.org/users/jblandy_mozilla.com/firebug-on-jsdbg2/ is available] (Firebug 1.9 fork).
+
-
 
+
-
Work on this goal depends on how much ready JSD2 is.
+
-
 
+
-
TBD
+
-
 
+
-
Resources:
+
-
* [http://getfirebug.com/wiki/index.php/Script_Panel_Remoting Script Panel Remoting]
+
-
* [https://wiki.mozilla.org/Debugger Debugger]
+
-
* [https://wiki.mozilla.org/DevTools/Features/Debugger DevTools Debugger]
+
-
* [https://wiki.mozilla.org/Remote_Debugging_Protocol Remote Debugging Protocol]
+
-
 
+
-
=== 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 [http://dxr.mozilla.org/mozilla/mozilla-central/browser/devtools/styleinspector/CssLogic.jsm.html built-in CSS API]
+
-
* Create a new property-based view for the CSS panel using the built-in CSS API
+
-
** <span style="text-decoration: line-through;">Add option to the CSS panel to toggle between the current view and the property-based view</span> &rArr; reused the [[Computed Side Panel]] for this
+
-
** 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 &rArr; put into [http://code.google.com/p/fbug/issues/detail?id=5527 issue 5527].
+
-
 
+
-
=== New Inspector ===
+
-
Firebug should reuse the existing built-in Inspector to avoid conflicts with the page styles.
+
-
 
+
-
Tasks:
+
-
* Investigate [http://dxr.mozilla.org/mozilla/mozilla-central/browser/devtools/styleinspector/StyleInspector.jsm.html built-in Inspector API]
+
-
* Investigate related [http://code.google.com/p/fbug/source/browse/branches/firebug1.10/content/firebug/html/inspector.js Firebug API]
+
-
* Replace Firebug Inspector
+
-
 
+
-
=== 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:
+
-
* [http://code.google.com/p/fbug/issues/detail?id=3159#c23 Undocumented API].
+
-
 
+
-
Tasks:
+
-
* Find out how the API is working exactly
+
-
* Implement new mapping function in <code>lib/string.js</code> including the API
+
-
* Implement the new options
+
-
=== Breakpoint Improvements ===
+
=== Feature Description ===
-
Several new features related to breakpoints should be introduced.
+
This section provides detailed description of all planned features.
-
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:
+
==== Adopt JSD2 ====
-
* Change the Breakpoints side panel to allow inline editing (required for the other tasks)
+
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.
-
* Hit count for breakpoints
+
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]
-
** Implement hit count into debugger
+
-
** Add hit count to Breakpoints side panel
+
-
* Move breakpoint condition editing to the Breakpoints side panel
+
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.
-
** Add breakpoint condition to Breakpoints side panel
+
-
** Add context menu to Breakpoint Column containing option to edit the condition
+
-
=== Group Console Messages ===
+
'''Resources:'''
-
Console messages optionally need to be grouped to avoid spamming the [[Console Panel]].
+
* [[Firebug 1.7: Mozilla Backend|Firebug 1.7 BTI]]
 +
* [[Script Panel Refactoring]]
 +
* [[Remoting Prototype]]
 +
* [[Remoting Architecture]]
 +
* [[JSD2 Adoption||JSD2 List of tasks]]
-
Tasks:
+
'''Source Repository:'''
-
* Group error messages
+
Development happens on [https://github.com/firebug/firebug/commits/jsd2 JSD2 branch]
-
* Group messages produced by the 'console' object
+
-
== Further Suggestions ==
+
==== Syntax highlighting for JavaScript ====
-
Please append further suggestions for new 1.10 features in this section so. We'll yet discuss all these suggestions.
+
The [[Script Panel]] should have syntax highlighting enabled for the displayed JavaScript code.
-
=== Better user feedback ===
+
'''Tasks:'''
-
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.
+
* Replace <code>SourceBox</code> code by Orion
 +
* Re-add context menu options
 +
* Adjust CSS to match the Firebug UI
-
Questions:
+
==== Auto-completion for Command Editor ====
-
* What specific data should be collected?
+
Add the [[Command Line]] auto-completion to the (multi-line) [[Command Line|Command Editor]] inside the [[Console Panel]].
-
* What kind of knowledge we can get from the collected data?
+
-
Resources:
+
'''Tasks:'''
-
* [http://code.google.com/p/fbug/issues/detail?id=2633 Issue 2633]: Instrumentation for Firebug aka "Help Improve Firebug"
+
* Allow auto-completion within an expression
-
* [http://code.google.com/p/fbug/source/browse/#svn%2Fextensions%2Fbugpilot BugPilot]
+
* Add auto-completion to the Command Editor
 +
* Enhance positioning of the Completion List Popup
-
=== Mapping of URLs to file system paths ===
+
==== Line numbers in CSS Edit Mode ====
-
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.
+
The Source Edit Mode of the [[CSS Panel]] should have line numbers for easier navigation.
-
This change would at least allow mapping between local server URLs and the file system.
+
-
Questions:
+
'''Tasks:'''
-
* How is this related to Firediff?
+
* Integrate Orion into the Source Edit Mode
 +
* Ajust the display to fit to the Firebug UI
-
Resources:
+
==== Folding for shorthand properties ====
-
* [http://code.google.com/p/fbug/issues/detail?id=5035 issue 5035]
+
For shorthand CSS properties it should be possible to expand them to see the longhand properties that make them up.
-
=== Integrate more extensions into Firebug ===
+
'''Tasks:'''
-
Apart from Firecookie integration, [http://code.google.com/p/fbug/issues/detail?id=5440 EventBug was asked to be integrated into Firebug].
+
* Save the longhand properties to every shorthand property
-
Question was also if further extensions should be integrated:
+
* Create a twisty and allow toggling the display of the longhand properties
-
* FireStarter: No, because it just enhances the current activation model.
+
* Remove the ''Expand Shorthand Properties'' option
-
* NetExport: No, export functionality probably won't be used that often.
+
-
* ConsoleExport: No, export functionality probably won't be used that often.
+
-
Instead [[Swarms]] should be pushed, so users will install the extensions they need.
 
-
=== Integrate more web dev tools APIs/Components ===
+
==== Sniff WebSocket traffic ====
-
Firebug should share more APIs with the web dev tools team.
+
WebSocket requests should be displayed to the user.
-
[https://hg.mozilla.org/mozilla-central/file/654ac86492e8/browser/devtools Available APIs]
+
'''Tasks:'''
 +
* Create new tab for WebSocket requests
 +
* Listen to WebSocket traffic
 +
* Dynamically output the WebSocket messages
-
Possible candidates:
+
== Resources ==
-
* [https://hg.mozilla.org/mozilla-central/file/654ac86492e8/browser/devtools/webconsole Web Console APIs]
+
* [[Firebug 1.12 Roadmap]]
-
* [https://hg.mozilla.org/mozilla-central/file/654ac86492e8/browser/devtools/styleeditor Style Editor APIs]
+
-
* [https://hg.mozilla.org/mozilla-central/file/654ac86492e8/browser/devtools/debugger Debugger APIs]
+

Revision as of 09:55, 18 October 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)

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 instead of Orion editor
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
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

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

Resources

Personal tools