|Release target||Firefox 6|
|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|
|QA lead||Alex Lakatos (AlexLakatos)|
|Product marketing lead||`|
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
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
- 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.
- 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
Stage 2: Design
5. Functional specification
6. User experience design
Stage 3: Planning
7. Implementation plan
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
Quality Assurance review
Stage 4: Development
Stage 5: Release
10. Landing criteria
|Theme / Goal||`|
Team status notes
|Quality assurance||Ready to land in Firefox 6||`|