Firefox/Projects/Console
Interactive Console, 'HeadsUpDisplay'
Create an interactive Console to help web developers understand everything that happens during the creation of a web-page. Console entries will be time-stamped objects representing errors, network traffic, javascript events, DOM/HTML mutation and logging output. The Console will also have an interactive command line for evaluating javascript against the current webpage and an interactive Workspace window for entering and evaluating larger blocks of code.
For web-developers, the Console should include a logging API and a richer interactive environment for executing live javascript against the active webpage.
The Console should fully-replace the existing Error Console window.
Goals/Use Cases
- Replace Error Console
- Provide rich logging experience for web developers
- Provide interactive JS editing environment
- Provide simple object inspection (either via console or separate UI)
Non Goals
- chrome manipulation
- provide enough information to actually recreate the webpage from the logs
- e.g., displaying images in expanded boxes
- overly pretty display. it's text!
Status
Scaffolding is up and working, xpcshell tests for service and browser chrome tests for the front end are working bug 545266 and bug 546708. Actual logging is possile, but only via the internal, chrome apis. Working out a wrappedJSObject issue. More bugs for the next steps being filed today 3/8/2010
Timeline / Milestones
milestone 0.1
- create proper, threadsafe hud-service
- possibly modify/reuse existing console service to serve our purposes
- add global console object / API
milestone 0.2
- console panel
- eval JS from command-line
- shorten timestamps in log output
milestone 0.3
- create popup menu for console content area
- edit (copy / paste), save (import(?), apply(?) for later)
- JS command line history
milestone 0.4
- JS workspaces (tentative name)
- create popup menu for workspaces, eg file, edit, evaluate
- console command line aliases and magic
milestone 0.5
- add links to view source in console
- Create event for Reflow
milestone 0.6
- more events!
milestone 0.7
- ...
Delivery Requirements
- Talked to jst about using an observer to instantiate our console object inside of the nsIDOMWindow's constructor to really make our implementation not have to deal with wrappers (or the details of) somuch.
Constraints
- Wrappers, but I think this will be a mute point, as mrbkap is close to landing a patch to make contentWindow property attachment "easy" and "fun"
- Security reviews early and often?
Dependencies
Testing
- now that the testing scaffolding is up, I plan on testing every method written, and am trying to write all of this code with testing on the "front burner"
- TDD!
Related Projects
Inspector [Inspector Page]
Related Bugs
bug 529086 bug 545266 bug 546708
Team
- Project Lead: robc
- Participants: ddahl