From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.


Stage Complete
Status Complete
Release target Firefox 6
Health OK
Status note SDR: C SIR: N


Product manager Kevin Dangoor
Directly Responsible Individual Kevin Dangoor
Lead engineer Mihai Sucan (msucan), Rob Campbell
Security lead Curtis Koenig
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Alex Lakatos (AlexLakatos)
UX lead `
Product marketing lead `
Operations lead `
Additional members `

Open issues/risks


Stage 1: Definition

1. Feature overview

After input from the localizers, this feature has been renamed "Scratchpad".

The Workspace concept began with Smalltalk environments and has been ported to a Firefox add-on. We believe that Workspaces provide a more pleasant way to experiment with code than the current tools which mimic a command line environment.

The prototype will allow us to get experience with this different work style and also give other people a chance to comment on it.

The basic idea behind creating a Workspace is that the Workspace gives you a convenient mechanism for running and rerunning snippets of code. If you're writing a new function, for example, you can keep redefining that function until you have one that works correctly. Then, you can just copy and paste it into your editor to become a part of your application.

Another example use would be to have a collection of utility functions that you use in debugging your application. Those functions aren't really a part of the application, and you don't want to deliver them to your users. You can keep them in a file that you load into the workspace whenever you're working on that particular app.

Most often, the files you save from a workspace are not complete script files and the snippets of code in a workspace may not run in all contexts (they may depend on variables that are defined on the page for which the workspace was created).

2. Users & use cases

Handy snippets: When working on an application, it's not uncommon to have a collection of common bits of code that you run against the page to test things. The Workspaces feature lets you load and save JavaScript files, which is a convenient way to keep track of these snippets.

Working on new code: You can use Workspaces to work on a new function. Write a little code, execute it and repeat. Once it works, you can copy/paste that code into your main program files.

Basic Use Cases

  • Run JavaScript against your web content
  • Run JavaScript against your chrome content
  • Develop a new feature of your already online webapp without having to close it down for maintenance.
  • Test a fix for your addon without having to repackage and re-install it.
  • Inspect the outcome of a code snippet without having to actually run it against the page.
  • Better comment your code using Display, without running the code against your content.

3. Dependencies


4. Requirements

  • Convert the add-on into a browser feature with tests
  • Add a pref to remove the content/chrome switch from view

Aurora backout strategy: there is a pref to turn off the feature (devtools.workspace.enabled)


For this initial step, we're leaving off some obvious features:

  • a better editor (Ace)
  • external editor integration of any sort
  • autocompletion

Stage 2: Design

5. Functional specification


6. User experience design


Stage 3: Planning

7. Implementation plan


8. Reviews

Security review

Date Discussion occurred: 2011.04.14 Security Concerns:

  • Feature could be used run arbitrary code

Responses to concerns:

  • Interaction is one way and code only runs in a sandbox
  • Sandbox inherits from content window
  • Chrome settings preferences are off by default
  • No collaboration built-in, scripts have to be shared out of band
  • Scripts can not autorun
  • No built-in interaction with web console

Outstanding issue / Next steps:

  • None at this time

Privacy review


Localization review




Quality Assurance review

Operations review


Stage 4: Development

9. Implementation

Stage 5: Release

10. Landing criteria


Feature details

Priority P1
Rank 999
Theme / Goal `
Roadmap Developer Tools
Secondary roadmap `
Feature list Desktop
Project `
Engineering team DevTools

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-complete `
Privacy priv-review-unnecessary `
Localization ` `
Accessibility ` `
Quality assurance Ready to land in Firefox 6 `
User experience ` `
Product marketing ` `
Operations ` `