DevTools/Features/Workspaces: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{| class="fullwidth-table"
{{FeatureStatus
|-
|Feature name=Scratchpad
| style="font-weight: bold; background: #DDD;" | Feature
|Feature stage=Complete
| style="font-weight: bold; background: #DDD;" | Status
|Feature status=Complete
| style="font-weight: bold; background: #DDD;" | ETA
|Feature version=Firefox 6
| style="font-weight: bold; background: #DDD;" | Owner
|Feature health=OK
|-
|Feature status note=SDR: C SIR: N
<section begin="status" />
}}
| [[DevTools/Features/Workspaces|Workspaces]]
{{FeatureTeam
| {{StatusHealthy|status=Main patch landed, a bit more needed}}
|Feature product manager=Kevin Dangoor
| 2011-04-30
|Feature feature manager=Kevin Dangoor
| Kevin Dangoor
|Feature lead engineer=Mihai Sucan (msucan), Rob Campbell
<section end="status" />
|Feature security lead=Curtis Koenig
|-
|Feature qa lead=Alex Lakatos (AlexLakatos)
|}
}}
{{FeaturePageBody
|Feature overview=After input from the localizers, this feature has been renamed "Scratchpad".


== 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 Workspace concept began with Smalltalk environments and has been ported
The prototype will allow us to get experience with this different work style and also give other people a chance to comment on it.  
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
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.  
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.  
 
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).
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).
|Feature users and 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.


== Release Requirements ==
'''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.


* Convert the add-on into a browser feature with tests
==== Basic Use Cases ====
* Add a pref to remove the content/chrome switch from view
*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.
|Feature 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)
Aurora backout strategy: there is a pref to turn off the feature (devtools.workspace.enabled)
|Feature non-goals=For this initial step, we're leaving off some obvious features:


== Next Steps ==
*a better editor (Ace)  
 
*external editor integration of any sort
* l10n review, ux review
*autocompletion
* finish landing the tests and pref
|Feature security review=Date Discussion occurred: 2011.04.14 Security Concerns:  
 
== Related Bugs & Dependencies ==
[http://mozilla.github.com/devtools/2011/status.html#workspaces 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)
*Feature could be used run arbitrary code
* external editor integration of any sort
* autocompletion


== Security ==
Responses to concerns:  
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  
* Interaction is one way and code only runs in a sandbox
*Sandbox inherits from content window  
* Sandbox inherits from content window
*Chrome settings preferences are off by default  
* Chrome settings preferences are off by default
*No collaboration built-in, scripts have to be shared out of band  
* No collaboration built-in, scripts have to be shared out of band
*Scripts can not autorun  
* Scripts can not autorun
*No built-in interaction with web console
* No built-in interaction with web console


Outstanding issue / Next steps:
Outstanding issue / Next steps:  
* None at this time
__NOTOC__


[[Category:Feature]]
*None at this time
[[Category:Firefox]]
|Feature qa review=* [https://wiki.mozilla.org/QA/Waverley/Developer-Tools/Workspaces/TestPlan Test Plan]
[[Category:DevTools]]
|Feature implementation notes=* [http://mozilla.github.com/devtools/2011/status.html#workspaces Workspaces Status]
[[Category:Priority 1]]
}}
{{FeatureInfo
|Feature priority=P1
|Feature roadmap=Developer Tools
|Feature list=Desktop
|Feature engineering team=DevTools
}}
{{FeatureTeamStatus
|Feature security status=sec-review-complete
|Feature security health=OK
|Feature privacy status=priv-review-unnecessary
|Feature qa status=Ready to land in Firefox 6
}}

Latest revision as of 19:22, 8 December 2011

Please use "Edit with form" above to edit this page.

Status

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

Team

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)

Non-goals

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

`

Accessibility

`

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 ` `