canmove, Confirmed users, Bureaucrats and Sysops emeriti
1,093
edits
No edit summary |
|||
(26 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
{| | {{FeatureStatus | ||
| | |Feature name=Debugger | ||
| | |Feature stage=Complete | ||
| | |Feature status=In progress | ||
| | |Feature version=Firefox 15 | ||
| | |Feature health=OK | ||
| | }} | ||
{{FeatureTeam | |||
| | |Feature product manager=Kevin Dangoor | ||
| | |Feature feature manager=Rob Campbell | ||
| | |Feature lead engineer=Panos Astithas | ||
| | |Feature security lead=Mark Goodwin | ||
|Feature qa lead=Ioana Budnar | |||
|Feature ux lead=Stephen Horlander | |||
|Feature additional members=Jason Orendorff, Jim Blandy, Victor Porof, Mihai Sucan | |||
}} | |||
= | {{FeaturePageBody | ||
|Feature overview=New JavaScript debugger. | |||
|Feature users and use cases=JavaScript developers | |||
}} | |||
{{FeatureInfo | |||
|Feature priority=P1 | |||
|Feature rank=6 | |||
|Feature roadmap=Developer Tools | |||
|Feature list=Desktop | |||
|Feature engineering team=DevTools | |||
}} | |||
{{FeatureTeamStatus | |||
|Feature security status=sec-review-complete | |||
|Feature security health=OK | |||
|Feature security notes=[[Security/Reviews/Firefox/RemoteDebug|Notes]] | |||
|Feature qa status=work in progress | |||
|Feature qa notes=[https://wiki.mozilla.org/index.php?title=DevTools/Features/Debugger/TestPlan Test Plan] | |||
}} | |||
= | |||
== Designs == | == Designs == | ||
* [[JSInspector]] | * [[JSInspector]] | ||
Line 82: | Line 78: | ||
| 2d | | 2d | ||
| 4d | | 4d | ||
| | | In remote-debug. | ||
|- | |- | ||
| Protocol handler thread (socket transport) | | Protocol handler thread (socket transport) | ||
Line 91: | Line 87: | ||
| ? | | ? | ||
| ? | | ? | ||
| | | Put off for now. | ||
|- | |- | ||
| Debug Object creation and debuggerHook | | Debug Object creation and debuggerHook | ||
Line 100: | Line 96: | ||
| 1d | | 1d | ||
| 2d | | 2d | ||
| | | In jsdb2 | ||
|- | |- | ||
| Debug Object loader | | Debug Object loader | ||
Line 127: | Line 123: | ||
| 2d | | 2d | ||
| 4d | | 4d | ||
| In | | In remote-debug | ||
|- | |- | ||
| New execution model specification in the remote protocol | | New execution model specification in the remote protocol | ||
Line 136: | Line 132: | ||
| | | | ||
| | | | ||
| | | Complete | ||
|- | |- | ||
| debuggerHook and "continue" exposed over remote protocol as specified. | | debuggerHook and "continue" exposed over remote protocol as specified. | ||
Line 145: | Line 141: | ||
| 3d | | 3d | ||
| 5d | | 5d | ||
| | | In remote-debug. | ||
|- | |- | ||
| Client JS API (socket transport) | | Client JS API (socket transport) | ||
Line 154: | Line 150: | ||
| 2d | | 2d | ||
| 3d | | 3d | ||
| | | In remote-debug. | ||
|- | |- | ||
| HTML UI shell per tab, in its own window | | HTML UI shell per tab, in its own window | ||
Line 163: | Line 159: | ||
| 2d | | 2d | ||
| 5d | | 5d | ||
| | | In remote-debug | ||
|- | |- | ||
| UI responding to pauses (from debugger keyword) | | UI responding to pauses (from debugger keyword) | ||
Line 172: | Line 168: | ||
| 2d | | 2d | ||
| 4d | | 4d | ||
| | | In remote-debug | ||
|- | |- | ||
| HTML Stack frame viewer (no locals/environment yet, just | | HTML Stack frame viewer (no locals/environment yet, just | ||
Line 181: | Line 177: | ||
| 3d | | 3d | ||
| 5d | | 5d | ||
| In patch queue | |||
|} | |||
=== Property Viewer === | |||
* A simple property viewer, limited to viewing frame arguments for now. | |||
{| class="fullwidth-table" | |||
|- | |||
| style="font-weight: bold; background: #DDD;" | Description | |||
| style="font-weight: bold; background: #DDD;" | Area | |||
| style="font-weight: bold; background: #DDD;" | Bug | |||
| style="font-weight: bold; background: #DDD;" | Owner | |||
| style="font-weight: bold; background: #DDD;" | Best | |||
| style="font-weight: bold; background: #DDD;" | Likely | |||
| style="font-weight: bold; background: #DDD;" | Worst | |||
| style="font-weight: bold; background: #DDD;" | Status | |||
|- | |||
| Debug.Object.prototype.{proto, class, isFunction, name, getOwnPropertyDescriptor, getOwnPropertyNames} | |||
| JSD2 | |||
| | |||
| jorendorff/jimb | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| Primitive data grips for frame arguments | |||
| Remote Proto | |||
| | |||
| dcamp | |||
| 1d | |||
| 1d | |||
| 2d | |||
| In remote-debug | |||
|- | |||
| Pause-lifetime object grips | |||
| Remote Proto | |||
| | |||
| dcamp | |||
| 1d | |||
| 1d | |||
| 2d | |||
| In remote-debug | |||
|- | |||
| Thread-lifetime grip promotion | |||
| Remote Proto | |||
| | |||
| dcamp | |||
| 1d | |||
| 2d | |||
| 4d | |||
| In remote-debug | |||
|- | |||
| Object grip enumeration | |||
| Remote Proto | |||
| | |||
| dcamp | |||
| 1d | |||
| 2d | |||
| 4d | |||
| Waiting on jsd2 | |||
|- | |||
| Property UI design | |||
| UI | |||
| | | | ||
| past/dcamp | |||
| 1d | |||
| 1d | |||
| 2d | |||
| | |||
|- | |||
| Property Inspector UI | |||
| UI | |||
| | |||
| past | |||
| ? | |||
| ? | |||
| ? | |||
| Split up as needed. | |||
|} | |} | ||
Line 211: | Line 286: | ||
=== Environment/Property Viewer === | === Environment/Property Viewer === | ||
* JSD2 support | * JSD2 support | ||
** Debug.Frame.prototype.environment - jorendorff | ** Debug.Frame.prototype.environment - jorendorff | ||
** Debug.Environment.prototype.{type,outerEnvironment,object, boundIdentifiers,getVariableDescriptor,findBinding} - jorendorff | ** Debug.Environment.prototype.{type,outerEnvironment,object, boundIdentifiers,getVariableDescriptor,findBinding} - jorendorff | ||
By the time this milestone is complete, we'll have a somewhat competent debugger if you're willing to use debugger; statements instead of breakpoints. | By the time this milestone is complete, we'll have a somewhat competent debugger if you're willing to use debugger; statements instead of breakpoints. | ||
Line 300: | Line 370: | ||
|} | |} | ||
__NOTOC__ | __NOTOC__ | ||