DevTools/Features/Workspaces: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 24: Line 24:
The prototype will allow us to get experience with this different work style
The prototype will allow us to get experience with this different work style
and also give other people a chance to comment on it.
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).


== Release Requirements ==
== Release Requirements ==

Revision as of 14:49, 21 April 2011

Feature Status ETA Owner
Workspaces Main patch landed, a bit more needed 2011-04-30 Kevin Dangoor

Summary

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).

Release 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)

Next Steps

  • l10n review, ux review
  • finish landing the tests and pref

Related Bugs & Dependencies

Workspaces Status

Team

The Workspaces idea is new, so we're happy to get more input and help. Talk to us in #devtools on irc.mozilla.org

  • Mihai Sucan (irc: msucan): current lead developer
  • Rob Campbell (irc: robcee): initial developer
  • Curtis Koenig: security contact
  • Kevin Dangoor (irc: kdangoor): PM

Goals/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.

Non-Goals

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

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

Security

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