Firebug 1.7: Mozilla Backend
Mozilla back-end represents an adapter between V8 like protocol and Mozilla JSD. This adapter lives in Firebug and implements BTI interface. This adapter should replace firebug-service in Firebug 1.7.
Corresponding BTI objects:
Can you describe relations among BTI objects, which are not on the picture?
Exploration of some real world scenarios that happens when debugging a web application. These scenarios describe in-process usage of the firebug-service through a BTI adapter. The basic concept is as follows:
Firebug UI (Script Panel) → BTI → FBS → JSD
Where is Firebug.Debugger in this concept?
Connect to the browser.
What object in Firebug infrastructure should be responsible for this?
Get list of all available contexts in the connected browser.
How TabWatcher is related to the mozilla-backend implementation?
Get list of all compilation units for given context.
This scenario represents initialization of the location-list that is available on the Script panel toolbar. Displayed popup menu is initialized when the user clicks on the toolbar button.
Get source code (range) of given compilation unit.
This scenario happens typically when the user changes the location of the Script panel (e.g. wants to see another script file). The
getSource method can be also used to get just part of the source (a range), which is used when the user scrolls the panel content. This allows to load only visible portion of the file and optimize networks traffic in case of remote debugging.
Set a breakpoint in given compilation unit.
The Script panel is always using toggleBreakpoint call, which is consequently transformed into setBreakpoint or removeBreakpoint (depends on existence of the breakpoint).
Is the list of compilation units still stored in the BrowserContext?
What is the event/callback that allows to collect all compilation units?
Get Stack Trace
Get stack-trace (aka backtrace) when a breakpoint hits.
This scenario is executed when the debuggers is hanging on a breakpoint and the user shows the CallstackPanel to see the current stack-trace.
Perform a debugger step (step over, step into, continue)
I don't see how to perform this action using BTI
Should this be done through an event?
Disconnect from the debugger
In order to make sure the architecture is suitable also for remote debugging (the goal) there should be proper unit test written for it.
TODO: describe architecture of these tests
What mockup objects will be necessary here?