Bug 326783 - Provide a ResumeEvent in JSDI
Summary: Provide a ResumeEvent in JSDI
Status: RESOLVED FIXED
Alias: None
Product: JSDT
Classification: WebTools
Component: Debug (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 3.3 M3   Edit
Assignee: Michael Rennie CLA
QA Contact: Simon Kaegi CLA
URL:
Whiteboard:
Keywords: api, plan
Depends on:
Blocks: 327005
  Show dependency tree
 
Reported: 2010-10-01 09:58 EDT by Michael Rennie CLA
Modified: 2010-10-21 16:23 EDT (History)
4 users (show)

See Also:
simon_kaegi: review+


Attachments
fix (15.05 KB, patch)
2010-10-21 15:21 EDT, Michael Rennie CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Rennie CLA 2010-10-01 09:58:19 EDT
code from HEAD

It has been found that we are lacking the ability to signal that a resume has occurred from a client (remote or local), meaning the only way to update the corresponding UI is to actually make a call to JavaScriptThread.resume() or perform a step operation. These are no viable options because:

1. if a remote client sends a resume event and we invoke JavaScriptThread.resume() it delegates to the underlying ThreadReference which in turn could issue a command to the client - bad for stability and performance

2. if we have to issue some form of step command, we could alter the debugger / client state just to cause a resume - bad for stability and sanity

To fix this would require three API changes one of them breaking.

1. we would have to add ResumeEvent to o.e.w.j.d.c.jsdi.event, which clients would be free to implement or not as they see fit

2. we would have to add ResumeEventRequest to o.e.w.j.d.c.jsdi.request, which clients would need to implement due to the API for:

3. the breaking change - we would have to add createResumeRequest() and resumeRequests() to EventRequestManager so the new event can be requested

The other option to mitigate the breaking API change would be create an EventRequestManager2 that extends EventRequestManager, but I would prefer to not do this.
Comment 1 Michael Rennie CLA 2010-10-21 15:21:56 EDT
Created attachment 181438 [details]
fix

The patch provides the fix as a breaking API change, it also contains the update to our Rhino implementation to create / manage the new event / request
Comment 2 Michael Rennie CLA 2010-10-21 16:23:42 EDT
Applied patch to HEAD, rev'd debug.core's version to 2.0 to denote the breaking API change