Firefox/Projects/Jetpack: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(68 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Summary ==
__NOTOC__


Make sure Jetpack's needs in Firefox and Platform are met. Facilitate communication between Firefox and Jetpack teams.
Work with the Jetpack team to implement a core set of modules. This is currently looking like JEPs 102 - 116, over releases 0.3, 0.4 and 0.5.


== Background ==
== Status ==


Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack "prototype") is being abandoned for a new architecture nicknamed the Jetpack "reboot". Check the [[Labs/Jetpack/Reboot|Labs reboot wiki page]] for details, but briefly, the differences between the two:
<onlyinclude>
'''IN FLIGHT''' In development for the 0.7 release.
</onlyinclude>


* "Jetpacks" produced under the reboot are actually XPIs.  They're real extensions.  Under the prototype they were single JS files.
'''Team:'''
* Since jetpacks are now extensions, it no longer makes sense to say "I made a jetpack."  It's more like, "I made an extension using Jetpack."
* Lead: Dietrich
* Jetpack itself is no longer an extension.  It no longer makes sense to say, "I installed Jetpack."
* Members: Drew, Paul, Felipe, Marco
* The reboot is basically a toolchain, runtime, and API -- a framework.
* "[[Labs/Jetpack/Reboot/Glossary|Cuddlefish]]" is what Atul has coined this framework.
* The reboot is very loosely integrated with Firefox.  The runtime is bundled in each XPI.  The only significant hook that these XPIs require is a [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 no-restart-needed mechanism].
* The reboot has a security model, the prototype didn't.
* Roughly speaking, there are two layers of APIs under the reboot.  There's a low-level, chrome-privileged layer that wraps the platform.  And there's a high-level, secure, low surface area, and friendly layer that builds on the lower.  It's the higher layer that might be thought of as "the Jetpack API," but it's entirely possible to use the lower to build an extension.
* The Bespin IDE of the prototype will be replaced with a contracted-out in-browser IDE called "FlightDeck."  FlightDeck provides a nice UI to Cuddlefish's toolchain.


== Current Status ==
SDK Release Details


* Firefox team
Q2
** adw, mossop, ddahl, zpao attending weekly Jetpack meetings.
* [[Labs/Jetpack/SDK/0.3#Deliverables|0.3]] - SHIPPED
* Jetpack team
* [[Labs/Jetpack/SDK/0.4#Deliverables|0.4]] - SHIPPED
** Determining the [[Labs/Jetpack/Reboot/JEP|set of APIs to expose under the reboot]].
* [[Labs/Jetpack/SDK/0.5#Deliverables|0.5]] - SHIPPED
** Published a [[Labs/Jetpack/Reboot/Roadmap|roadmap]].


== Next Steps ==
Q3
* [[Labs/Jetpack/SDK/0.6#Deliverables|0.6]] - SHIPPED
* [[Labs/Jetpack/SDK/0.6#Deliverables|0.7]] - IN PROGRESS
* [[Labs/Jetpack/SDK/0.6#Deliverables|0.8]] - PLANNED


* Continue to iterate on the API we want under the Jetpack reboot.
== Goals ==
* Find any Firefox/Platform blockers or larger concerns arising from that API.
* Separately, mossop will be working on {{bug|542385}}, (re)loadable extensions.


== Related Bugs ==
* Help Labs implement modules for JEPs 102 - 116.
* Bonus goal: Drive code reviews core Jetpack code ({{bug|551311}})
* Late-quarter bonus goal: Aid E10S transition


* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3A%5Bjetpack%5D List of Jetpack-related Firefox/Platform bugs] (quicksearch [jetpack])
== Roadmap ==
* Integration of runtime into Firefox/Platform:
** {{bug|542385}}, the no-restart-needed mechanism on trunk.  {{bug|544021}} tracks the same work on 3.{5,6}.
* Enabling Jetpack APIs:
** Layout bugs related to sticking iframes with arbitrary content into XUL panels: {{bug|130078}}, {{bug|532569}}.


== Related Links ==
Q3
{| class="fullwidth-table"
|- style="background:#efefef"
| '''Date'''
| '''Milestone'''
| '''Status'''
| '''Notes'''
|-
|}


* [[Labs/Jetpack/Reboot|Jetpack reboot wiki]]
Q2
* [[Labs/Jetpack/Weekly_Meeting|Jetpack team weekly meetings wiki]]
{| class="fullwidth-table"
* [irc://irc.mozilla.org/jetpack #jetpack]
|- style="background:#efefef"
* There's a Jetpack drivers mailing listPing adw or Daniel Buchner if interested.
| '''Date'''
| '''Milestone'''
| '''Status'''
| '''Notes'''
|-
| Fri Apr 09 || JEPs selected, owners found, estimates given || {{done|}} ||
|-
| Fri Apr 16 (0.3 freeze on 20th)|| Drew mostly finished with Context Menu module || {{done|}} || Made 0.4
|-
| Fri Apr 23 || Paul finishes Private Browsing module || {{miss|}} || Made 0.4
|-
| || Felipe finishes Page Worker module || {{miss|}} || Made 0.4
|-
| Fri Apr 30 || Dietrich finishes SingleUI Pt1 || {{miss|}} || Made 0.4
|-
| Fri May 07 || Marco finishes Places module || {{miss|}} || Missed 0.4
|-
|  || Paul finishes Request module || {{miss|}} || Missed 0.4
|-
| Fri May 14 (0.4 freeze on 18th)|| Dietrich finishes Lifecycle module || {{miss|}} || Missed 0.4
|-
| Fri May 21 || Drew finishes Storage module || {{done|}} || Made 0.4 (!)
|-
| Fri May 28 ||  ||  ||
|-
| Fri Jun 04 || Dietrich finishes Tabs module || {{miss|}}  || Made 0.5
|-
|  || Paul finishes Request module || {{miss|}}  || Made 0.5
|-
| Fri Jun 11 || Drew finishes Lifecycle module || {{done|}} || Made 0.5
|-
| Fri Jun 18 (0.5 freeze)||  ||  ||
|-
| Fri Jun 25 ||  ||  ||
|-
|}


== Team ==
== Background ==


*'''Lead''': adw
Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack Prototype) is being phased out for a new architecture called the Jetpack SDK.  Check the SDK [https://jetpack.mozillalabs.com/sdk/latest/docs docs] and [[Labs/Jetpack/Reboot|wiki]] for details, but briefly, the differences between the two:
*'''Members''': mossop
*'''Jetpack team contact''': atul


== Goals ==
* '''The Jetpack SDK is a framework for making (traditional) extensions.'''
* "Jetpacks" produced under the SDK are actually XPIs.  They're real extensions.  Under the Prototype they were single JS files.
* Since jetpacks are now extensions, it no longer makes sense to say "I made a jetpack."  It's more like, "I made an extension using Jetpack."
* Jetpack itself is no longer an extension.  It no longer makes sense to say, "I installed Jetpack."
* The SDK is basically a toolchain, runtime, and API -- a framework.
* The SDK is very loosely integrated with Firefox.  The runtime is bundled in each XPI.  Aside from changes required to support the SDK's high-level APIs, the runtime doesn't require any significant changes to Firefox or Gecko.  A  [https://bugzilla.mozilla.org/show_bug.cgi?id=542385 (re)loadable extension mechanism] is being worked on, but it's like icing on the cake.
* The SDK has a security model, the Prototype didn't.
* Roughly speaking, there are two layers of APIs under the SDK.  There's a low-level, chrome-privileged layer that wraps the platform.  And there's a high-level, secure, low surface area, and friendly layer that builds on the lower.  It's the higher layer that might be thought of as "the Jetpack API," but it's entirely possible to use the lower to build an extension.
* The Bespin IDE of the Prototype will be replaced with a contracted-out in-browser IDE called "[[Labs/Jetpack/FlightDeck|FlightDeck]]."  (Maybe you've heard of it?)  FlightDeck provides a nice UI to the SDK's toolchain.  It will be available as a Web app.


* Make sure Jetpack has what it needs for a smooth uplift into Firefox.
== Related Links ==
* Keep an open communication channel between the Firefox and Jetpack teams.


== Non Goals ==
* [[Labs/Jetpack/Reboot|Jetpack SDK wiki]]
 
* [[Labs/Jetpack/Weekly_Meeting|Jetpack team weekly meetings wiki]]
* Finalize or dictate the Jetpack APIs.
* [irc://irc.mozilla.org/jetpack #jetpack]
* There's a Jetpack drivers mailing list.  Ping adw or Daniel Buchner if interested.
* [[Labs/Jetpack/Design_Guidelines|Module coding guidelines]]

Latest revision as of 17:12, 12 August 2010


Work with the Jetpack team to implement a core set of modules. This is currently looking like JEPs 102 - 116, over releases 0.3, 0.4 and 0.5.

Status

IN FLIGHT In development for the 0.7 release.


Team:

  • Lead: Dietrich
  • Members: Drew, Paul, Felipe, Marco

SDK Release Details

Q2

Q3

  • 0.6 - SHIPPED
  • 0.7 - IN PROGRESS
  • 0.8 - PLANNED

Goals

  • Help Labs implement modules for JEPs 102 - 116.
  • Bonus goal: Drive code reviews core Jetpack code (bug 551311)
  • Late-quarter bonus goal: Aid E10S transition

Roadmap

Q3

Date Milestone Status Notes

Q2

Date Milestone Status Notes
Fri Apr 09 JEPs selected, owners found, estimates given [DONE]
Fri Apr 16 (0.3 freeze on 20th) Drew mostly finished with Context Menu module [DONE] Made 0.4
Fri Apr 23 Paul finishes Private Browsing module [MISSED] Made 0.4
Felipe finishes Page Worker module [MISSED] Made 0.4
Fri Apr 30 Dietrich finishes SingleUI Pt1 [MISSED] Made 0.4
Fri May 07 Marco finishes Places module [MISSED] Missed 0.4
Paul finishes Request module [MISSED] Missed 0.4
Fri May 14 (0.4 freeze on 18th) Dietrich finishes Lifecycle module [MISSED] Missed 0.4
Fri May 21 Drew finishes Storage module [DONE] Made 0.4 (!)
Fri May 28
Fri Jun 04 Dietrich finishes Tabs module [MISSED] Made 0.5
Paul finishes Request module [MISSED] Made 0.5
Fri Jun 11 Drew finishes Lifecycle module [DONE] Made 0.5
Fri Jun 18 (0.5 freeze)
Fri Jun 25

Background

Jetpack's architecture under versions 0.8 and earlier (now called the Jetpack Prototype) is being phased out for a new architecture called the Jetpack SDK. Check the SDK docs and wiki for details, but briefly, the differences between the two:

  • The Jetpack SDK is a framework for making (traditional) extensions.
  • "Jetpacks" produced under the SDK are actually XPIs. They're real extensions. Under the Prototype they were single JS files.
  • Since jetpacks are now extensions, it no longer makes sense to say "I made a jetpack." It's more like, "I made an extension using Jetpack."
  • Jetpack itself is no longer an extension. It no longer makes sense to say, "I installed Jetpack."
  • The SDK is basically a toolchain, runtime, and API -- a framework.
  • The SDK is very loosely integrated with Firefox. The runtime is bundled in each XPI. Aside from changes required to support the SDK's high-level APIs, the runtime doesn't require any significant changes to Firefox or Gecko. A (re)loadable extension mechanism is being worked on, but it's like icing on the cake.
  • The SDK has a security model, the Prototype didn't.
  • Roughly speaking, there are two layers of APIs under the SDK. There's a low-level, chrome-privileged layer that wraps the platform. And there's a high-level, secure, low surface area, and friendly layer that builds on the lower. It's the higher layer that might be thought of as "the Jetpack API," but it's entirely possible to use the lower to build an extension.
  • The Bespin IDE of the Prototype will be replaced with a contracted-out in-browser IDE called "FlightDeck." (Maybe you've heard of it?) FlightDeck provides a nice UI to the SDK's toolchain. It will be available as a Web app.

Related Links