User:GijsKruitbosch/JS Debugging/Tasks: Difference between revisions

 
(53 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Importance-ordered Task List ==
== Notes ==
A small note about this list: importance != working order, given that some of these items need other items, and that some require back-end changes which will need to happen fast, if at all, on the 1.8.1 branch (which is what I'm trying to cater to).
importance != working order, given that some of these items need other items, and that some require back-end changes which will need to happen fast, if at all, on the 1.8.1 branch (which is what I'm trying to cater to).


'''Front end work is being done on: Firebug'''
'''Front end work is (mostly) being done on: Firebug'''
== Status Summary ==
<table border="1">
<tr>
<td>'''Total'''</td>
<td>'''Fixed'''</td>
<td>'''Patch done'''</td>
<td>'''WFM'''</td>
<td>'''WONTFIX'''</td>
<td>Open</td>
<td>Other</td>
</tr>
<tr>
<td>23</td>
<td>11</td>
<td>4</td>
<td>1</td>
<td>1</td>
<td>5</td>
<td>1</td>
</tr>
</table>
 
== Task list ==
     <table border="1">
     <table border="1">
<tr>
<tr>
Line 12: Line 35:


</tr>
</tr>
        <tr>
            <td>0</td>
            <td>Security Issues</td>
            <td>Yes</td>
            <td>-</td>
            <td>Out of my hands</td>
        </tr>
         <tr>
         <tr>
             <td>1</td>
             <td>1</td>
Line 17: Line 47:
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>[http://gijs.codingo.org/mozilla/soc/results/patchBreakpoints.txt Patch]</td>


         </tr>
         </tr>
Line 25: Line 55:
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>[http://gijs.codingo.org/mozilla/soc/results/patchWatches.txt Patch]</td>


         </tr>
         </tr>
         <tr>
         <tr>
             <td>3</td>
             <td>3</td>
             <td>Backend for nsIScriptError to report the document an error came from - <strong>Wait... this will probably be too big/complicated to get right on 1.8...</strong></td>
             <td>Make the originating document accessible for a JS error in the console</td>
             <td>Yes</td>
             <td>No</td>
             <td>bug 228205</td>
             <td>None</td>
 
             <td>FIXED</td>
             <td>None yet</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>4</td>
             <td>4</td>
             <td>Frontend adapted to keep breakpoints and such separate on a per-document basis (see above)</td>
             <td>Frontend adapted to keep breakpoints and such separate on a per-document basis (for Firebug's console) (see above)</td>
             <td>Yes</td>
             <td>No</td>
             <td>bug 228205</td>
             <td>None</td>
 
             <td>FIXED</td>
             <td>None yet</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>5</td>
             <td>5</td>
             <td>Be able to go from a var referencing a DOM element to that DOM element in DOMI</td>
             <td>Be able to go from a var referencing a DOM element to that DOM element in DOMI</td>
             <td>Yes?</td>
             <td>No</td>
             <td>-</td>
             <td>{{bug|342651}}</td>


             <td>None yet</td>
             <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>6</td>
             <td>6</td>
             <td>Be able to debug from the slow script warning dialog.</td>
             <td>Be able to debug from the slow script warning dialog.</td>
             <td>Yes?</td>
             <td>Yes</td>
             <td>-</td>
             <td>{{bug|341764}}</td>


             <td>None yet</td>
             <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>7</td>
             <td>7</td>
             <td>Changing variable values / evaluating js shouldn't require changing tabs away from the debugger (in Firebug)</td>
             <td>Newlines are lost in Firebug's watch pane.</td>
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>


             <td>None yet</td>
             <td>WORKSFORME</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>8</td>
             <td>8</td>
             <td>Anonymous functions should not be lumped together in profiling.</td>
             <td>Venkman is too eager with __toplevel__ script linemaps</td>
             <td>Presumably not</td>
             <td>No</td>
             <td>-</td>
             <td>{{bug|341758}}</td>


             <td>None yet</td>
             <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>9</td>
             <td>9</td>
             <td>Newlines are lost in the watches view.</td>
             <td>Changing variable values / evaluating js shouldn't require changing tabs away from the debugger (in Firebug)</td>
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>


             <td>None yet</td>
             <td>[http://gijs.codingo.org/mozilla/soc/results/patchWatches.txt Patch]</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>10</td>
             <td>10</td>
             <td>Double-check handling of about:blank and (related) running/stopped state tracking in Firebug.</td>
             <td>Evaluate js in different windows/tabs/iframes</td>
 
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
 
             <td>[http://gijs.codingo.org/mozilla/soc/results/patchBreakpoints.txt Patch]</td>
             <td>None yet</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>11</td>
             <td>11</td>
             <td>JS 1.7 improvements</td>
             <td>Provide immediate access to profiling data</td>
            <td>Yes?</td>


             <td>-</td>
             <td>No</td>
             <td>None yet</td>
             <td>{{bug|341767}}</td>
            <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>12</td>
             <td>12</td>
             <td>Figure out why I'm crashing on GMail with firebug enabled (hack/sneak/workaround?)</td>
             <td>Anonymous functions should not be lumped together in profiling.</td>
 
             <td>No</td>
             <td>Hopefully not.</td>
             <td>{{bug|347888}}</td>
             <td>-</td>
             <td>FIXED</td>
             <td>None yet</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>13</td>
             <td>13</td>
             <td>Provide immediate access to profiling data</td>
             <td>Double-check handling of about:blank and (related) running/stopped state tracking in Firebug.</td>
 
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>14</td>
             <td>14</td>
             <td>Evaluate js in different windows/tabs/iframes</td>
             <td>Figure out why I'm crashing on GMail with firebug enabled (hack/sneak/workaround?) and on exit when using two debuggers</td>
 
             <td>Hopefully not.</td>
             <td>No</td>
             <td>{{bug|342074}}</td>
             <td>-</td>
             <td>FIXED</td>
             <td>None yet</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>15</td>
             <td>15</td>
             <td>Fix wrapping of variable/value tree</td>
             <td>Fix wrapping of variable/value tree</td>
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>FIXED</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>16</td>
             <td>16</td>
             <td>Inline editing of functions etc.</td>
             <td>JS 1.7 improvements</td>
 
             <td>Yes?</td>
             <td>No, hopefully.</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>None</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>17</td>
             <td>17</td>
             <td>Debug mutation events (watch DOM elements)</td>
             <td>Debug mutation events (watch DOM elements)</td>
             <td>Yes</td>
             <td>Yes</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>None</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>18</td>
             <td>18</td>
             <td>Getters / Setters improvements</td>
             <td>Getters / Setters improvements</td>
             <td>Yes?</td>
             <td>Yes?</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>None</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>19</td>
             <td>19</td>
             <td>'real' stack list (not a dropdown)</td>
             <td>'real' stack list (not a dropdown)</td>
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>WONTFIX</td>
         </tr>
         </tr>
         <tr>
         <tr>
             <td>20</td>
             <td>20</td>
            <td>Inline editing of functions etc.</td>
            <td>No, hopefully.</td>
            <td>-</td>
            <td>None</td>
        </tr>
        <tr>
            <td>21</td>
             <td>Pretty print</td>
             <td>Pretty print</td>
             <td>No</td>
             <td>No</td>
             <td>-</td>
             <td>-</td>
             <td>None yet</td>
             <td>None</td>
        </tr>
        <tr>
            <td>22</td>
            <td>Open Windows view misconstructs base URL</td>
            <td>No</td>
            <td>{{bug|349066}}</td>
            <td>FIXED</td>
         </tr>
         </tr>
     </table>
     </table>
== Getting to the document that error X originated from ==
[[User:GijsKruitbosch/JS_Debugging/DocumentFromException|Stuff]]
== Discussion ==


I would probably order these things higher:
I would probably order these things higher:
Line 190: Line 228:


-- shaver
-- shaver
: Done, I think. [[User:GijsKruitbosch|GijsKruitbosch]] 07:20, 16 June 2006 (PDT)

Latest revision as of 15:27, 20 August 2006

Notes

importance != working order, given that some of these items need other items, and that some require back-end changes which will need to happen fast, if at all, on the 1.8.1 branch (which is what I'm trying to cater to).

Front end work is (mostly) being done on: Firebug

Status Summary

Total Fixed Patch done WFM WONTFIX Open Other
23 11 4 1 1 5 1

Task list

N Task Needs backend changes Bug number Result
0 Security Issues Yes - Out of my hands
1 Implement list of Breakpoints No - Patch
2 Implement Watches No - Patch
3 Make the originating document accessible for a JS error in the console No None FIXED
4 Frontend adapted to keep breakpoints and such separate on a per-document basis (for Firebug's console) (see above) No None FIXED
5 Be able to go from a var referencing a DOM element to that DOM element in DOMI No bug 342651 FIXED
6 Be able to debug from the slow script warning dialog. Yes bug 341764 FIXED
7 Newlines are lost in Firebug's watch pane. No - WORKSFORME
8 Venkman is too eager with __toplevel__ script linemaps No bug 341758 FIXED
9 Changing variable values / evaluating js shouldn't require changing tabs away from the debugger (in Firebug) No - Patch
10 Evaluate js in different windows/tabs/iframes No - Patch
11 Provide immediate access to profiling data No bug 341767 FIXED
12 Anonymous functions should not be lumped together in profiling. No bug 347888 FIXED
13 Double-check handling of about:blank and (related) running/stopped state tracking in Firebug. No - FIXED
14 Figure out why I'm crashing on GMail with firebug enabled (hack/sneak/workaround?) and on exit when using two debuggers Hopefully not. bug 342074 FIXED
15 Fix wrapping of variable/value tree No - FIXED
16 JS 1.7 improvements Yes? - None
17 Debug mutation events (watch DOM elements) Yes - None
18 Getters / Setters improvements Yes? - None
19 'real' stack list (not a dropdown) No - WONTFIX
20 Inline editing of functions etc. No, hopefully. - None
21 Pretty print No - None
22 Open Windows view misconstructs base URL No bug 349066 FIXED

Getting to the document that error X originated from

Stuff

Discussion

I would probably order these things higher:

  • immediate profiling
  • newlines in watches view (but there's no watch support yet, so?)
  • eval JS in tab/frame/etc.

And these things lower:

  • JS 1.7
  • inline function editing

But I think you're generally on the right track. I need to write here how we can track what document an error came from without biting off everything that's in the current bug 228205, too. Basically involves finding the current document (via cx->contextPrivate->scriptOwner->frameElement or some such) from the handler called for exceptions and errors, and keeping track of it. We could also "just" have the console error object QI to nsIException, but I bet that would make some people API-sad, so I'm interested in us keeping the hacks to our side of the line if we can.

-- shaver

Done, I think. GijsKruitbosch 07:20, 16 June 2006 (PDT)