Firefox/Projects/Console: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 99: Line 99:


[[File:Console Mockup.png|640px|thumb|left|initial Console mockup, courtesy Johnathan Nightingale]]
[[File:Console Mockup.png|640px|thumb|left|initial Console mockup, courtesy Johnathan Nightingale]]
== Additional Thoughts ==
Chris Blizzard mentioned the "timing" interface Google is working on with the WC3: http://dev.w3.org/2006/webapi/WebTiming/

Revision as of 03:07, 24 March 2010

Do not edit this page RESTRICTED Do not edit this page
Please do not edit this page without permission; comments should be added to the discussion page.

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

We have console! Pushed the current patch to tryserver. the console object is re-attached to the contentWindow on each reload, starting on the console output (HeadsUpDisplay) now bug 534398

Started working on a "bridge" component that - based on the APP_ID - reattaches the console in firefox one way, thunderbird, fennec, seamonkey in their preferred way (not planning on implementing other application "hooks" myself)

Timeline / Milestones

milestone 0.1

  • Testing, jsm and component scaffolding: bug 545266 bug 546708
  • create proper, threadsafe hud-service
    • possibly modify/reuse existing console service to serve our purposes - check.
    • bug 534398

milestone 0.2

  • console reattachment on reload, new window creation
  • console panel
  • eval JS from command-line
  • add global console object / API

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) so much. This may be a mute point thanks to sicking's patch on bug 549539

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

Tracking bug 529086


bug 545266 bug 546708 bug 551056 bug 552140 bug 552143 bug 552144

Team

  • Project Lead: robc
  • Participants: ddahl

Designs

initial Console mockup, courtesy Johnathan Nightingale

Additional Thoughts

Chris Blizzard mentioned the "timing" interface Google is working on with the WC3: http://dev.w3.org/2006/webapi/WebTiming/